From c450ced074698dee4fd061de9e93047a6de570f0 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Fri, 15 Sep 2023 13:11:07 +0300 Subject: [PATCH 001/117] UI: Added client/server/shared attribute to key filter --- .../home/components/filter/key-filter-dialog.component.ts | 3 ++- ui-ngx/src/app/shared/models/query/query.models.ts | 5 ++++- ui-ngx/src/assets/locale/locale.constant-en_US.json | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/filter/key-filter-dialog.component.ts b/ui-ngx/src/app/modules/home/components/filter/key-filter-dialog.component.ts index d8b1a21f6a..b210605d95 100644 --- a/ui-ngx/src/app/modules/home/components/filter/key-filter-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/filter/key-filter-dialog.component.ts @@ -70,7 +70,8 @@ export class KeyFilterDialogComponent extends entityKeyTypes = this.data.telemetryKeysOnly ? [EntityKeyType.ATTRIBUTE, EntityKeyType.TIME_SERIES, EntityKeyType.CONSTANT] : - [EntityKeyType.ENTITY_FIELD, EntityKeyType.ATTRIBUTE, EntityKeyType.TIME_SERIES]; + [EntityKeyType.ENTITY_FIELD, EntityKeyType.ATTRIBUTE, EntityKeyType.CLIENT_ATTRIBUTE, + EntityKeyType.SERVER_ATTRIBUTE, EntityKeyType.SHARED_ATTRIBUTE, EntityKeyType.TIME_SERIES]; entityKeyTypeTranslations = entityKeyTypeTranslationMap; diff --git a/ui-ngx/src/app/shared/models/query/query.models.ts b/ui-ngx/src/app/shared/models/query/query.models.ts index 5e4e7b3527..696ce5c3fb 100644 --- a/ui-ngx/src/app/shared/models/query/query.models.ts +++ b/ui-ngx/src/app/shared/models/query/query.models.ts @@ -54,7 +54,10 @@ export const entityKeyTypeTranslationMap = new Map( [EntityKeyType.ATTRIBUTE, 'filter.key-type.attribute'], [EntityKeyType.TIME_SERIES, 'filter.key-type.timeseries'], [EntityKeyType.ENTITY_FIELD, 'filter.key-type.entity-field'], - [EntityKeyType.CONSTANT, 'filter.key-type.constant'] + [EntityKeyType.CONSTANT, 'filter.key-type.constant'], + [EntityKeyType.CLIENT_ATTRIBUTE, 'filter.key-type.client-attribute'], + [EntityKeyType.SERVER_ATTRIBUTE, 'filter.key-type.server-attribute'], + [EntityKeyType.SHARED_ATTRIBUTE, 'filter.key-type.shared-attribute'] ] ); diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 76c30d46ae..cfae20cbe4 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2595,7 +2595,10 @@ "attribute": "Attribute", "timeseries": "Timeseries", "entity-field": "Entity field", - "constant": "Constant" + "constant": "Constant", + "client-attribute": "Client attribute", + "server-attribute": "Server attribute", + "shared-attribute": "Shared attribute" }, "value-type": { "value-type": "Value type", From 487d5f75bcb14fdd9bcafad2a2ea0608a3a9e028 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Mon, 18 Sep 2023 17:28:24 +0300 Subject: [PATCH 002/117] UI: Add defalut label --- .../src/app/shared/components/entity/entity-list.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/shared/components/entity/entity-list.component.ts b/ui-ngx/src/app/shared/components/entity/entity-list.component.ts index 125d4d77d8..835d253816 100644 --- a/ui-ngx/src/app/shared/components/entity/entity-list.component.ts +++ b/ui-ngx/src/app/shared/components/entity/entity-list.component.ts @@ -65,7 +65,7 @@ export class EntityListComponent implements ControlValueAccessor, OnInit, AfterV subType: string; @Input() - labelText: string; + labelText = this.translate.instant('entity.entity-list'); @Input() placeholderText = this.translate.instant('entity.entity-list'); From 8064993c66fe981822085ec7a12fb43f1efc960a Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Tue, 19 Sep 2023 12:10:35 +0300 Subject: [PATCH 003/117] UI: Remove default placeholder --- .../src/app/shared/components/entity/entity-list.component.html | 2 +- .../src/app/shared/components/entity/entity-list.component.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui-ngx/src/app/shared/components/entity/entity-list.component.html b/ui-ngx/src/app/shared/components/entity/entity-list.component.html index 80b051e75c..af03f0c690 100644 --- a/ui-ngx/src/app/shared/components/entity/entity-list.component.html +++ b/ui-ngx/src/app/shared/components/entity/entity-list.component.html @@ -25,7 +25,7 @@ {{entity.name}} close - Date: Tue, 19 Sep 2023 13:29:51 +0300 Subject: [PATCH 004/117] UI: Refactoring --- .../home/components/entity/entity-filter.component.html | 1 + .../app/shared/components/entity/entity-list.component.html | 2 +- .../src/app/shared/components/entity/entity-list.component.ts | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/entity/entity-filter.component.html b/ui-ngx/src/app/modules/home/components/entity/entity-filter.component.html index 9cde6f4431..f0892ebb53 100644 --- a/ui-ngx/src/app/modules/home/components/entity/entity-filter.component.html +++ b/ui-ngx/src/app/modules/home/components/entity/entity-filter.component.html @@ -41,6 +41,7 @@ formControlName="entityType"> diff --git a/ui-ngx/src/app/shared/components/entity/entity-list.component.html b/ui-ngx/src/app/shared/components/entity/entity-list.component.html index af03f0c690..80b051e75c 100644 --- a/ui-ngx/src/app/shared/components/entity/entity-list.component.html +++ b/ui-ngx/src/app/shared/components/entity/entity-list.component.html @@ -25,7 +25,7 @@ {{entity.name}} close - Date: Wed, 20 Sep 2023 14:39:08 +0300 Subject: [PATCH 005/117] UI: Fixed table style specificity --- ui-ngx/src/styles.scss | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/ui-ngx/src/styles.scss b/ui-ngx/src/styles.scss index 47a7bbbac2..0ee154cf7d 100644 --- a/ui-ngx/src/styles.scss +++ b/ui-ngx/src/styles.scss @@ -738,16 +738,21 @@ mat-label { } } - .mat-mdc-row { - transition: background-color .2s; - &:hover:not(.tb-current-entity) { - background-color: #f4f4f4; - } - &.tb-current-entity { - background-color: #e9e9e9; - } - &.tb-pointer { - cursor: pointer; + .mat-mdc-table { + .mat-mdc-row { + transition: background-color .2s; + + &:hover:not(.tb-current-entity) { + background-color: #f4f4f4; + } + + &.tb-current-entity { + background-color: #e9e9e9; + } + + &.tb-pointer { + cursor: pointer; + } } } From 8f1c13b3354715662f7190937aae35934b1aaf77 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 21 Sep 2023 17:03:04 +0300 Subject: [PATCH 006/117] added api rate limits tbel --- .../main/data/upgrade/3.6.0/schema_update.sql | 18 +++++++++++++++++ .../service/apiusage/BaseApiUsageState.java | 5 +++++ .../install/SqlDatabaseUpgradeService.java | 15 ++++++++++++++ .../service/mail/DefaultMailService.java | 4 ++++ .../server/controller/HomePageApiTest.java | 3 +++ .../server/common/data/ApiFeature.java | 1 + .../server/common/data/ApiUsageRecordKey.java | 4 ++++ .../server/common/data/ApiUsageState.java | 6 ++++++ .../server/common/data/UsageInfo.java | 2 ++ .../DefaultTenantProfileConfiguration.java | 3 +++ .../api/AbstractScriptInvokeService.java | 20 ++++++------------- .../api/js/AbstractJsInvokeService.java | 17 +++++++++++++++- .../api/tbel/DefaultTbelInvokeService.java | 17 +++++++++++++++- .../server/dao/model/ModelConstants.java | 1 + .../dao/model/sql/ApiUsageStateEntity.java | 5 +++++ .../dao/usage/BasicUsageInfoService.java | 3 +++ .../usagerecord/ApiUsageStateServiceImpl.java | 3 +++ .../main/resources/sql/schema-entities.sql | 1 + 18 files changed, 112 insertions(+), 16 deletions(-) create mode 100644 application/src/main/data/upgrade/3.6.0/schema_update.sql diff --git a/application/src/main/data/upgrade/3.6.0/schema_update.sql b/application/src/main/data/upgrade/3.6.0/schema_update.sql new file mode 100644 index 0000000000..81a0e5443f --- /dev/null +++ b/application/src/main/data/upgrade/3.6.0/schema_update.sql @@ -0,0 +1,18 @@ +-- +-- Copyright © 2016-2023 The Thingsboard Authors +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +ALTER TABLE api_usage_state ADD COLUMN IF NOT EXISTS tbel_exec varchar(32); +UPDATE api_usage_state SET tbel_exec = js_exec WHERE tbel_exec IS NULL; \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/apiusage/BaseApiUsageState.java b/application/src/main/java/org/thingsboard/server/service/apiusage/BaseApiUsageState.java index 1215bef0bf..9ae25fe2ef 100644 --- a/application/src/main/java/org/thingsboard/server/service/apiusage/BaseApiUsageState.java +++ b/application/src/main/java/org/thingsboard/server/service/apiusage/BaseApiUsageState.java @@ -145,6 +145,8 @@ public abstract class BaseApiUsageState { return apiUsageState.getDbStorageState(); case JS: return apiUsageState.getJsExecState(); + case TBEL: + return apiUsageState.getTbelExecState(); case EMAIL: return apiUsageState.getEmailExecState(); case SMS: @@ -171,6 +173,9 @@ public abstract class BaseApiUsageState { case JS: apiUsageState.setJsExecState(value); break; + case TBEL: + apiUsageState.setTbelExecState(value); + break; case EMAIL: apiUsageState.setEmailExecState(value); break; diff --git a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java index 307e2e5f3a..c02b7e9cc1 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java @@ -777,6 +777,21 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService log.error("Failed updating schema!!!", e); } break; + case "3.6.0": + try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { + if (isOldSchema(conn, 3006000)) { + log.info("Updating schema ..."); + schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "3.6.0", SCHEMA_UPDATE_SQL); + loadSql(schemaUpdateFile, conn); + conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3006001;"); + log.info("Schema updated to version 3.6.1."); + } else { + log.info("Skip schema re-update to version 3.6.1. Use env flag 'SKIP_SCHEMA_VERSION_CHECK' to force the re-update."); + } + } catch (Exception e) { + log.error("Failed updating schema!!!", e); + } + break; default: throw new RuntimeException("Unable to upgrade SQL database, unsupported fromVersion: " + fromVersion); } diff --git a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java index 246fa4a0fa..ff54fb6e7a 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java @@ -362,6 +362,8 @@ public class DefaultMailService implements MailService { return valueInM + " out of " + thresholdInM + " allowed messages"; case JS_EXEC_COUNT: return valueInM + " out of " + thresholdInM + " allowed JavaScript functions"; + case TBEL_EXEC_COUNT: + return valueInM + " out of " + thresholdInM + " allowed Tbel functions"; case RE_EXEC_COUNT: return valueInM + " out of " + thresholdInM + " allowed Rule Engine messages"; case EMAIL_EXEC_COUNT: @@ -382,6 +384,8 @@ public class DefaultMailService implements MailService { return recordState.getValueAsString() + " messages"; case JS_EXEC_COUNT: return "JavaScript functions " + recordState.getValueAsString() + " times"; + case TBEL_EXEC_COUNT: + return "Tbel functions " + recordState.getValueAsString() + " times"; case RE_EXEC_COUNT: return recordState.getValueAsString() + " Rule Engine messages"; case EMAIL_EXEC_COUNT: diff --git a/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java b/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java index c601be7272..d020fef1cb 100644 --- a/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/HomePageApiTest.java @@ -417,6 +417,9 @@ public class HomePageApiTest extends AbstractControllerTest { Assert.assertEquals(0, usageInfo.getJsExecutions()); Assert.assertEquals(configuration.getMaxJSExecutions(), usageInfo.getMaxJsExecutions()); + Assert.assertEquals(0, usageInfo.getTbelExecutions()); + Assert.assertEquals(configuration.getMaxTbelExecutions(), usageInfo.getMaxTbelExecutions()); + Assert.assertEquals(0, usageInfo.getEmails()); Assert.assertEquals(configuration.getMaxEmails(), usageInfo.getMaxEmails()); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ApiFeature.java b/common/data/src/main/java/org/thingsboard/server/common/data/ApiFeature.java index 31d8b7aeea..84fe049ee9 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ApiFeature.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ApiFeature.java @@ -22,6 +22,7 @@ public enum ApiFeature { DB("dbApiState", "Telemetry persistence"), RE("ruleEngineApiState", "Rule Engine execution"), JS("jsExecutionApiState", "JavaScript functions execution"), + TBEL("tbelExecutionApiState", "Tbel functions execution"), EMAIL("emailApiState", "Email messages"), SMS("smsApiState", "SMS messages"), ALARM("alarmApiState", "Alarms"); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageRecordKey.java b/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageRecordKey.java index 64eabfdd16..4554ec8f5f 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageRecordKey.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageRecordKey.java @@ -24,6 +24,7 @@ public enum ApiUsageRecordKey { STORAGE_DP_COUNT(ApiFeature.DB, "storageDataPointsCount", "storageDataPointsLimit", "data point"), RE_EXEC_COUNT(ApiFeature.RE, "ruleEngineExecutionCount", "ruleEngineExecutionLimit", "Rule Engine execution"), JS_EXEC_COUNT(ApiFeature.JS, "jsExecutionCount", "jsExecutionLimit", "JavaScript execution"), + TBEL_EXEC_COUNT(ApiFeature.TBEL, "tbelExecutionCount", "tbelExecutionLimit", "Tbel execution"), EMAIL_EXEC_COUNT(ApiFeature.EMAIL, "emailCount", "emailLimit", "email message"), SMS_EXEC_COUNT(ApiFeature.SMS, "smsCount", "smsLimit", "SMS message"), CREATED_ALARMS_COUNT(ApiFeature.ALARM, "createdAlarmsCount", "createdAlarmsLimit", "alarm"), @@ -31,6 +32,7 @@ public enum ApiUsageRecordKey { INACTIVE_DEVICES("inactiveDevicesCount"); private static final ApiUsageRecordKey[] JS_RECORD_KEYS = {JS_EXEC_COUNT}; + private static final ApiUsageRecordKey[] TBEL_RECORD_KEYS = {TBEL_EXEC_COUNT}; private static final ApiUsageRecordKey[] RE_RECORD_KEYS = {RE_EXEC_COUNT}; private static final ApiUsageRecordKey[] DB_RECORD_KEYS = {STORAGE_DP_COUNT}; private static final ApiUsageRecordKey[] TRANSPORT_RECORD_KEYS = {TRANSPORT_MSG_COUNT, TRANSPORT_DP_COUNT}; @@ -75,6 +77,8 @@ public enum ApiUsageRecordKey { return RE_RECORD_KEYS; case JS: return JS_RECORD_KEYS; + case TBEL: + return TBEL_RECORD_KEYS; case EMAIL: return EMAIL_RECORD_KEYS; case SMS: diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageState.java b/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageState.java index d28a8b0908..e6f3192194 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageState.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/ApiUsageState.java @@ -37,6 +37,7 @@ public class ApiUsageState extends BaseData implements HasTenan private ApiUsageStateValue dbStorageState; private ApiUsageStateValue reExecState; private ApiUsageStateValue jsExecState; + private ApiUsageStateValue tbelExecState; private ApiUsageStateValue emailExecState; private ApiUsageStateValue smsExecState; private ApiUsageStateValue alarmExecState; @@ -57,6 +58,7 @@ public class ApiUsageState extends BaseData implements HasTenan this.dbStorageState = ur.getDbStorageState(); this.reExecState = ur.getReExecState(); this.jsExecState = ur.getJsExecState(); + this.tbelExecState = ur.getTbelExecState(); this.emailExecState = ur.getEmailExecState(); this.smsExecState = ur.getSmsExecState(); this.alarmExecState = ur.getAlarmExecState(); @@ -78,6 +80,10 @@ public class ApiUsageState extends BaseData implements HasTenan return !ApiUsageStateValue.DISABLED.equals(jsExecState); } + public boolean isTbelExecEnabled() { + return !ApiUsageStateValue.DISABLED.equals(tbelExecState); + } + public boolean isEmailSendEnabled(){ return !ApiUsageStateValue.DISABLED.equals(emailExecState); } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/UsageInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/UsageInfo.java index 9b03118bad..bdd9801b0c 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/UsageInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/UsageInfo.java @@ -33,7 +33,9 @@ public class UsageInfo { private long transportMessages; private long maxTransportMessages; private long jsExecutions; + private long tbelExecutions; private long maxJsExecutions; + private long maxTbelExecutions; private long emails; private long maxEmails; private long sms; diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java b/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java index bd2b80f10a..2e5c78f4ba 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/tenant/profile/DefaultTenantProfileConfiguration.java @@ -56,6 +56,7 @@ public class DefaultTenantProfileConfiguration implements TenantProfileConfigura private long maxTransportDataPoints; private long maxREExecutions; private long maxJSExecutions; + private long maxTbelExecutions; private long maxDPStorageDays; private int maxRuleNodeExecutionsPerMessage; private long maxEmails; @@ -94,6 +95,8 @@ public class DefaultTenantProfileConfiguration implements TenantProfileConfigura return maxTransportDataPoints; case JS_EXEC_COUNT: return maxJSExecutions; + case TBEL_EXEC_COUNT: + return maxTbelExecutions; case RE_EXEC_COUNT: return maxREExecutions; case STORAGE_DP_COUNT: diff --git a/common/script/script-api/src/main/java/org/thingsboard/script/api/AbstractScriptInvokeService.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/AbstractScriptInvokeService.java index 23274e863d..ad45891cda 100644 --- a/common/script/script-api/src/main/java/org/thingsboard/script/api/AbstractScriptInvokeService.java +++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/AbstractScriptInvokeService.java @@ -25,11 +25,8 @@ import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.common.data.ApiUsageRecordKey; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.stats.TbApiUsageReportClient; -import org.thingsboard.server.common.stats.TbApiUsageStateClient; import java.util.Map; -import java.util.Optional; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; @@ -45,9 +42,6 @@ import static java.lang.String.format; public abstract class AbstractScriptInvokeService implements ScriptInvokeService { protected final Map disabledScripts = new ConcurrentHashMap<>(); - - private final Optional apiUsageStateClient; - private final Optional apiUsageReportClient; private final AtomicInteger pushedMsgs = new AtomicInteger(0); private final AtomicInteger invokeMsgs = new AtomicInteger(0); private final AtomicInteger evalMsgs = new AtomicInteger(0); @@ -59,11 +53,6 @@ public abstract class AbstractScriptInvokeService implements ScriptInvokeService protected ScheduledExecutorService timeoutExecutorService; - protected AbstractScriptInvokeService(Optional apiUsageStateClient, Optional apiUsageReportClient) { - this.apiUsageStateClient = apiUsageStateClient; - this.apiUsageReportClient = apiUsageReportClient; - } - protected long getMaxEvalRequestsTimeout() { return getMaxInvokeRequestsTimeout(); } @@ -88,6 +77,9 @@ public abstract class AbstractScriptInvokeService implements ScriptInvokeService protected abstract boolean isScriptPresent(UUID scriptId); + protected abstract boolean isExecEnabled(TenantId tenantId); + protected abstract void reportExecution(TenantId tenantId, CustomerId customerId); + protected abstract ListenableFuture doEvalScript(TenantId tenantId, ScriptType scriptType, String scriptBody, UUID scriptId, String[] argNames); protected abstract TbScriptExecutionTask doInvokeFunction(UUID scriptId, Object[] args); @@ -122,7 +114,7 @@ public abstract class AbstractScriptInvokeService implements ScriptInvokeService @Override public ListenableFuture eval(TenantId tenantId, ScriptType scriptType, String scriptBody, String... argNames) { - if (!apiUsageStateClient.isPresent() || apiUsageStateClient.get().getApiUsageState(tenantId).isJsExecEnabled()) { + if (isExecEnabled(tenantId)) { if (scriptBodySizeExceeded(scriptBody)) { return error(format("Script body exceeds maximum allowed size of %s symbols", getMaxScriptBodySize())); } @@ -137,7 +129,7 @@ public abstract class AbstractScriptInvokeService implements ScriptInvokeService @Override public ListenableFuture invokeScript(TenantId tenantId, CustomerId customerId, UUID scriptId, Object... args) { - if (!apiUsageStateClient.isPresent() || apiUsageStateClient.get().getApiUsageState(tenantId).isJsExecEnabled()) { + if (isExecEnabled(tenantId)) { if (!isScriptPresent(scriptId)) { return error("No compiled script found for scriptId: [" + scriptId + "]!"); } @@ -148,7 +140,7 @@ public abstract class AbstractScriptInvokeService implements ScriptInvokeService )); return Futures.immediateFailedFuture(handleScriptException(scriptId, null, t)); } - apiUsageReportClient.ifPresent(client -> client.report(tenantId, customerId, ApiUsageRecordKey.JS_EXEC_COUNT, 1)); + reportExecution(tenantId, customerId); pushedMsgs.incrementAndGet(); log.trace("[{}] InvokeScript uuid {} with timeout {}ms", tenantId, scriptId, getMaxInvokeRequestsTimeout()); var task = doInvokeFunction(scriptId, args); diff --git a/common/script/script-api/src/main/java/org/thingsboard/script/api/js/AbstractJsInvokeService.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/js/AbstractJsInvokeService.java index df84876869..192997f6a7 100644 --- a/common/script/script-api/src/main/java/org/thingsboard/script/api/js/AbstractJsInvokeService.java +++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/js/AbstractJsInvokeService.java @@ -23,6 +23,8 @@ import org.springframework.beans.factory.annotation.Value; import org.thingsboard.script.api.AbstractScriptInvokeService; import org.thingsboard.script.api.RuleNodeScriptFactory; import org.thingsboard.script.api.ScriptType; +import org.thingsboard.server.common.data.ApiUsageRecordKey; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.stats.TbApiUsageReportClient; import org.thingsboard.server.common.stats.TbApiUsageStateClient; @@ -39,6 +41,8 @@ import java.util.concurrent.ConcurrentHashMap; public abstract class AbstractJsInvokeService extends AbstractScriptInvokeService implements JsInvokeService { protected final Map scriptInfoMap = new ConcurrentHashMap<>(); + private final Optional apiUsageStateClient; + private final Optional apiUsageReportClient; @Getter @Value("${js.max_total_args_size:100000}") @@ -51,7 +55,8 @@ public abstract class AbstractJsInvokeService extends AbstractScriptInvokeServic private long maxScriptBodySize; protected AbstractJsInvokeService(Optional apiUsageStateClient, Optional apiUsageReportClient) { - super(apiUsageStateClient, apiUsageReportClient); + this.apiUsageStateClient = apiUsageStateClient; + this.apiUsageReportClient = apiUsageReportClient; } @Override @@ -59,6 +64,16 @@ public abstract class AbstractJsInvokeService extends AbstractScriptInvokeServic return scriptInfoMap.containsKey(scriptId); } + @Override + protected boolean isExecEnabled(TenantId tenantId) { + return !apiUsageStateClient.isPresent() || apiUsageStateClient.get().getApiUsageState(tenantId).isJsExecEnabled(); + } + + @Override + protected void reportExecution(TenantId tenantId, CustomerId customerId) { + apiUsageReportClient.ifPresent(client -> client.report(tenantId, customerId, ApiUsageRecordKey.JS_EXEC_COUNT, 1)); + } + @Override protected JsScriptExecutionTask doInvokeFunction(UUID scriptId, Object[] args) { return new JsScriptExecutionTask(doInvokeFunction(scriptId, scriptInfoMap.get(scriptId), args)); diff --git a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/DefaultTbelInvokeService.java b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/DefaultTbelInvokeService.java index 2a60980f84..221d68c33b 100644 --- a/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/DefaultTbelInvokeService.java +++ b/common/script/script-api/src/main/java/org/thingsboard/script/api/tbel/DefaultTbelInvokeService.java @@ -40,6 +40,8 @@ import org.thingsboard.common.util.ThingsBoardExecutors; import org.thingsboard.script.api.AbstractScriptInvokeService; import org.thingsboard.script.api.ScriptType; import org.thingsboard.script.api.TbScriptException; +import org.thingsboard.server.common.data.ApiUsageRecordKey; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.stats.TbApiUsageReportClient; import org.thingsboard.server.common.stats.TbApiUsageStateClient; @@ -69,6 +71,8 @@ public class DefaultTbelInvokeService extends AbstractScriptInvokeService implem protected Cache compiledScriptsCache; private SandboxedParserConfiguration parserConfig; + private final Optional apiUsageStateClient; + private final Optional apiUsageReportClient; @Getter @Value("${tbel.max_total_args_size:100000}") @@ -110,7 +114,8 @@ public class DefaultTbelInvokeService extends AbstractScriptInvokeService implem private final Lock lock = new ReentrantLock(); protected DefaultTbelInvokeService(Optional apiUsageStateClient, Optional apiUsageReportClient) { - super(apiUsageStateClient, apiUsageReportClient); + this.apiUsageStateClient = apiUsageStateClient; + this.apiUsageReportClient = apiUsageReportClient; } @Scheduled(fixedDelayString = "${tbel.stats.print_interval_ms:10000}") @@ -167,6 +172,16 @@ public class DefaultTbelInvokeService extends AbstractScriptInvokeService implem return scriptIdToHash.containsKey(scriptId); } + @Override + protected boolean isExecEnabled(TenantId tenantId) { + return !apiUsageStateClient.isPresent() || apiUsageStateClient.get().getApiUsageState(tenantId).isTbelExecEnabled(); + } + + @Override + protected void reportExecution(TenantId tenantId, CustomerId customerId) { + apiUsageReportClient.ifPresent(client -> client.report(tenantId, customerId, ApiUsageRecordKey.TBEL_EXEC_COUNT, 1)); + } + @Override protected ListenableFuture doEvalScript(TenantId tenantId, ScriptType scriptType, String scriptBody, UUID scriptId, String[] argNames) { return executor.submit(() -> { diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java index 0e8ea2db15..278c2b094e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java @@ -477,6 +477,7 @@ public class ModelConstants { public static final String API_USAGE_STATE_DB_STORAGE_COLUMN = "db_storage"; public static final String API_USAGE_STATE_RE_EXEC_COLUMN = "re_exec"; public static final String API_USAGE_STATE_JS_EXEC_COLUMN = "js_exec"; + public static final String API_USAGE_STATE_TBEL_EXEC_COLUMN = "tbel_exec"; public static final String API_USAGE_STATE_EMAIL_EXEC_COLUMN = "email_exec"; public static final String API_USAGE_STATE_SMS_EXEC_COLUMN = "sms_exec"; public static final String API_USAGE_STATE_ALARM_EXEC_COLUMN = "alarm_exec"; diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/ApiUsageStateEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/ApiUsageStateEntity.java index b18f414c63..8b92002db5 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/ApiUsageStateEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/ApiUsageStateEntity.java @@ -64,6 +64,9 @@ public class ApiUsageStateEntity extends BaseSqlEntity implements @Column(name = ModelConstants.API_USAGE_STATE_JS_EXEC_COLUMN) private ApiUsageStateValue jsExecState = ApiUsageStateValue.ENABLED; @Enumerated(EnumType.STRING) + @Column(name = ModelConstants.API_USAGE_STATE_TBEL_EXEC_COLUMN) + private ApiUsageStateValue tbelExecState = ApiUsageStateValue.ENABLED; + @Enumerated(EnumType.STRING) @Column(name = ModelConstants.API_USAGE_STATE_EMAIL_EXEC_COLUMN) private ApiUsageStateValue emailExecState = ApiUsageStateValue.ENABLED; @Enumerated(EnumType.STRING) @@ -92,6 +95,7 @@ public class ApiUsageStateEntity extends BaseSqlEntity implements this.dbStorageState = ur.getDbStorageState(); this.reExecState = ur.getReExecState(); this.jsExecState = ur.getJsExecState(); + this.tbelExecState = ur.getTbelExecState(); this.emailExecState = ur.getEmailExecState(); this.smsExecState = ur.getSmsExecState(); this.alarmExecState = ur.getAlarmExecState(); @@ -111,6 +115,7 @@ public class ApiUsageStateEntity extends BaseSqlEntity implements ur.setDbStorageState(dbStorageState); ur.setReExecState(reExecState); ur.setJsExecState(jsExecState); + ur.setTbelExecState(tbelExecState); ur.setEmailExecState(emailExecState); ur.setSmsExecState(smsExecState); ur.setAlarmExecState(alarmExecState); diff --git a/dao/src/main/java/org/thingsboard/server/dao/usage/BasicUsageInfoService.java b/dao/src/main/java/org/thingsboard/server/dao/usage/BasicUsageInfoService.java index fcd75b25f7..7f4e065bd9 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/usage/BasicUsageInfoService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/usage/BasicUsageInfoService.java @@ -67,6 +67,7 @@ public class BasicUsageInfoService implements UsageInfoService { usageInfo.setMaxAlarms(profileConfiguration.getMaxCreatedAlarms()); usageInfo.setMaxTransportMessages(profileConfiguration.getMaxTransportMessages()); usageInfo.setMaxJsExecutions(profileConfiguration.getMaxJSExecutions()); + usageInfo.setMaxTbelExecutions(profileConfiguration.getMaxTbelExecutions()); usageInfo.setMaxEmails(profileConfiguration.getMaxEmails()); usageInfo.setMaxSms(profileConfiguration.getMaxSms()); usageInfo.setSmsEnabled(profileConfiguration.getSmsEnabled()); @@ -75,6 +76,7 @@ public class BasicUsageInfoService implements UsageInfoService { Collection keys = Arrays.asList( ApiUsageRecordKey.TRANSPORT_MSG_COUNT.getApiCountKey(), ApiUsageRecordKey.JS_EXEC_COUNT.getApiCountKey(), + ApiUsageRecordKey.TBEL_EXEC_COUNT.getApiCountKey(), ApiUsageRecordKey.EMAIL_EXEC_COUNT.getApiCountKey(), ApiUsageRecordKey.SMS_EXEC_COUNT.getApiCountKey(), ApiUsageRecordKey.CREATED_ALARMS_COUNT.getApiCountKey()); @@ -82,6 +84,7 @@ public class BasicUsageInfoService implements UsageInfoService { List entries = tsService.findLatest(tenantId, apiUsageState.getId(), keys).get(); usageInfo.setTransportMessages(getLongValueFromTsEntries(entries, ApiUsageRecordKey.TRANSPORT_MSG_COUNT.getApiCountKey())); usageInfo.setJsExecutions(getLongValueFromTsEntries(entries, ApiUsageRecordKey.JS_EXEC_COUNT.getApiCountKey())); + usageInfo.setTbelExecutions(getLongValueFromTsEntries(entries, ApiUsageRecordKey.TBEL_EXEC_COUNT.getApiCountKey())); usageInfo.setEmails(getLongValueFromTsEntries(entries, ApiUsageRecordKey.EMAIL_EXEC_COUNT.getApiCountKey())); usageInfo.setSms(getLongValueFromTsEntries(entries, ApiUsageRecordKey.SMS_EXEC_COUNT.getApiCountKey())); usageInfo.setAlarms(getLongValueFromTsEntries(entries, ApiUsageRecordKey.CREATED_ALARMS_COUNT.getApiCountKey())); diff --git a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java index ba49cc964c..25d3c97c42 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/usagerecord/ApiUsageStateServiceImpl.java @@ -93,6 +93,7 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A apiUsageState.setTransportState(ApiUsageStateValue.ENABLED); apiUsageState.setReExecState(ApiUsageStateValue.ENABLED); apiUsageState.setJsExecState(ApiUsageStateValue.ENABLED); + apiUsageState.setTbelExecState(ApiUsageStateValue.ENABLED); apiUsageState.setDbStorageState(ApiUsageStateValue.ENABLED); apiUsageState.setSmsExecState(ApiUsageStateValue.ENABLED); apiUsageState.setEmailExecState(ApiUsageStateValue.ENABLED); @@ -110,6 +111,8 @@ public class ApiUsageStateServiceImpl extends AbstractEntityService implements A new StringDataEntry(ApiFeature.RE.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), new StringDataEntry(ApiFeature.JS.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); + apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), + new StringDataEntry(ApiFeature.TBEL.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), new StringDataEntry(ApiFeature.EMAIL.getApiStateKey(), ApiUsageStateValue.ENABLED.name()))); apiUsageStates.add(new BasicTsKvEntry(saved.getCreatedTime(), diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index 72469e3bdd..d10be65a50 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -696,6 +696,7 @@ CREATE TABLE IF NOT EXISTS api_usage_state ( db_storage varchar(32), re_exec varchar(32), js_exec varchar(32), + tbel_exec varchar(32), email_exec varchar(32), sms_exec varchar(32), alarm_exec varchar(32), From bae0ce48a85a0caaf81e7de747e0567ebd30236b Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Thu, 21 Sep 2023 17:48:53 +0200 Subject: [PATCH 007/117] BaseController: log experience improvement. use a child class logger instead of abstract class controller --- .../org/thingsboard/server/controller/BaseController.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/BaseController.java b/application/src/main/java/org/thingsboard/server/controller/BaseController.java index 0af55d7c00..365f1fc379 100644 --- a/application/src/main/java/org/thingsboard/server/controller/BaseController.java +++ b/application/src/main/java/org/thingsboard/server/controller/BaseController.java @@ -21,7 +21,7 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import lombok.Getter; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; @@ -174,10 +174,11 @@ import static org.thingsboard.server.common.data.query.EntityKeyType.ENTITY_FIEL import static org.thingsboard.server.controller.UserController.YOU_DON_T_HAVE_PERMISSION_TO_PERFORM_THIS_OPERATION; import static org.thingsboard.server.dao.service.Validator.validateId; -@Slf4j @TbCoreComponent public abstract class BaseController { + private final Logger log = org.slf4j.LoggerFactory.getLogger(getClass()); + /*Swagger UI description*/ @Autowired From 8cefca23acac97d2bc1be1787b2cccf98e6c0aaf Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Mon, 25 Sep 2023 11:27:00 +0300 Subject: [PATCH 008/117] Version set to 3.6.1-SNAPSHOT --- application/pom.xml | 2 +- common/actor/pom.xml | 2 +- common/cache/pom.xml | 2 +- common/cluster-api/pom.xml | 2 +- common/coap-server/pom.xml | 2 +- common/dao-api/pom.xml | 2 +- common/data/pom.xml | 2 +- common/edge-api/pom.xml | 2 +- common/message/pom.xml | 2 +- common/pom.xml | 2 +- common/queue/pom.xml | 2 +- common/script/pom.xml | 2 +- common/script/remote-js-client/pom.xml | 2 +- common/script/script-api/pom.xml | 2 +- common/stats/pom.xml | 2 +- common/transport/coap/pom.xml | 2 +- common/transport/http/pom.xml | 2 +- common/transport/lwm2m/pom.xml | 2 +- common/transport/mqtt/pom.xml | 2 +- common/transport/pom.xml | 2 +- common/transport/snmp/pom.xml | 2 +- common/transport/transport-api/pom.xml | 2 +- common/util/pom.xml | 2 +- common/version-control/pom.xml | 2 +- dao/pom.xml | 2 +- monitoring/pom.xml | 2 +- msa/black-box-tests/pom.xml | 2 +- msa/js-executor/package.json | 2 +- msa/js-executor/pom.xml | 2 +- msa/monitoring/pom.xml | 2 +- msa/pom.xml | 2 +- msa/tb-node/pom.xml | 2 +- msa/tb/pom.xml | 2 +- msa/transport/coap/pom.xml | 2 +- msa/transport/http/pom.xml | 2 +- msa/transport/lwm2m/pom.xml | 2 +- msa/transport/mqtt/pom.xml | 2 +- msa/transport/pom.xml | 2 +- msa/transport/snmp/pom.xml | 2 +- msa/vc-executor-docker/pom.xml | 2 +- msa/vc-executor/pom.xml | 2 +- msa/web-ui/package.json | 2 +- msa/web-ui/pom.xml | 2 +- netty-mqtt/pom.xml | 4 ++-- pom.xml | 2 +- rest-client/pom.xml | 2 +- rule-engine/pom.xml | 2 +- rule-engine/rule-engine-api/pom.xml | 2 +- rule-engine/rule-engine-components/pom.xml | 2 +- tools/pom.xml | 2 +- transport/coap/pom.xml | 2 +- transport/http/pom.xml | 2 +- transport/lwm2m/pom.xml | 2 +- transport/mqtt/pom.xml | 2 +- transport/pom.xml | 2 +- transport/snmp/pom.xml | 2 +- ui-ngx/package.json | 2 +- ui-ngx/pom.xml | 2 +- 58 files changed, 59 insertions(+), 59 deletions(-) diff --git a/application/pom.xml b/application/pom.xml index 9cc4ca8dd5..ee01bfbaf3 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard application diff --git a/common/actor/pom.xml b/common/actor/pom.xml index 2de85be932..7fa770c811 100644 --- a/common/actor/pom.xml +++ b/common/actor/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/cache/pom.xml b/common/cache/pom.xml index 440860fda6..8ec12ca0e7 100644 --- a/common/cache/pom.xml +++ b/common/cache/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/cluster-api/pom.xml b/common/cluster-api/pom.xml index c9fa6d0894..1546121b77 100644 --- a/common/cluster-api/pom.xml +++ b/common/cluster-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/coap-server/pom.xml b/common/coap-server/pom.xml index 420fc4dae6..d4b54af0b5 100644 --- a/common/coap-server/pom.xml +++ b/common/coap-server/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/dao-api/pom.xml b/common/dao-api/pom.xml index 029c660500..3c735dd073 100644 --- a/common/dao-api/pom.xml +++ b/common/dao-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/data/pom.xml b/common/data/pom.xml index d3651c332a..ab1831a6e7 100644 --- a/common/data/pom.xml +++ b/common/data/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/edge-api/pom.xml b/common/edge-api/pom.xml index 60562efbf2..71d6a42819 100644 --- a/common/edge-api/pom.xml +++ b/common/edge-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/message/pom.xml b/common/message/pom.xml index e64d4676ce..2a8171ec72 100644 --- a/common/message/pom.xml +++ b/common/message/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/pom.xml b/common/pom.xml index 0edd153a3c..9e293cdd69 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard common diff --git a/common/queue/pom.xml b/common/queue/pom.xml index edd4574bdd..6a03c6bff3 100644 --- a/common/queue/pom.xml +++ b/common/queue/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/script/pom.xml b/common/script/pom.xml index 26f60bd358..dcd5c6bc55 100644 --- a/common/script/pom.xml +++ b/common/script/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/script/remote-js-client/pom.xml b/common/script/remote-js-client/pom.xml index 8fa852d977..e0ad5ec3b1 100644 --- a/common/script/remote-js-client/pom.xml +++ b/common/script/remote-js-client/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT script org.thingsboard.common.script diff --git a/common/script/script-api/pom.xml b/common/script/script-api/pom.xml index c4e069f695..6680199616 100644 --- a/common/script/script-api/pom.xml +++ b/common/script/script-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT script org.thingsboard.common.script diff --git a/common/stats/pom.xml b/common/stats/pom.xml index 0869243e7a..6514b65b2a 100644 --- a/common/stats/pom.xml +++ b/common/stats/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/transport/coap/pom.xml b/common/transport/coap/pom.xml index 2ac15d3e42..52758820cf 100644 --- a/common/transport/coap/pom.xml +++ b/common/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/http/pom.xml b/common/transport/http/pom.xml index 8cf3e0efe8..bcd05edba4 100644 --- a/common/transport/http/pom.xml +++ b/common/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/lwm2m/pom.xml b/common/transport/lwm2m/pom.xml index 4433eae2b9..c2a5d8bd4b 100644 --- a/common/transport/lwm2m/pom.xml +++ b/common/transport/lwm2m/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/mqtt/pom.xml b/common/transport/mqtt/pom.xml index bb4767640c..0baf8be935 100644 --- a/common/transport/mqtt/pom.xml +++ b/common/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/transport/pom.xml b/common/transport/pom.xml index 6879a4924d..be175ae817 100644 --- a/common/transport/pom.xml +++ b/common/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/transport/snmp/pom.xml b/common/transport/snmp/pom.xml index 1865f498fa..be95664251 100644 --- a/common/transport/snmp/pom.xml +++ b/common/transport/snmp/pom.xml @@ -21,7 +21,7 @@ org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport diff --git a/common/transport/transport-api/pom.xml b/common/transport/transport-api/pom.xml index 2e2174e0a9..ce4594be7d 100644 --- a/common/transport/transport-api/pom.xml +++ b/common/transport/transport-api/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.common - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.common.transport diff --git a/common/util/pom.xml b/common/util/pom.xml index 14ae1748b2..3d37912ba1 100644 --- a/common/util/pom.xml +++ b/common/util/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/common/version-control/pom.xml b/common/version-control/pom.xml index a8acdf2be9..a0811b1e1a 100644 --- a/common/version-control/pom.xml +++ b/common/version-control/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT common org.thingsboard.common diff --git a/dao/pom.xml b/dao/pom.xml index 420c72bd7d..e90694f22e 100644 --- a/dao/pom.xml +++ b/dao/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard dao diff --git a/monitoring/pom.xml b/monitoring/pom.xml index 399e34092d..989cd113af 100644 --- a/monitoring/pom.xml +++ b/monitoring/pom.xml @@ -21,7 +21,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard diff --git a/msa/black-box-tests/pom.xml b/msa/black-box-tests/pom.xml index 12d36272c0..341bdbb560 100644 --- a/msa/black-box-tests/pom.xml +++ b/msa/black-box-tests/pom.xml @@ -21,7 +21,7 @@ org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/js-executor/package.json b/msa/js-executor/package.json index dc72a2bb22..558eddd3e4 100644 --- a/msa/js-executor/package.json +++ b/msa/js-executor/package.json @@ -1,7 +1,7 @@ { "name": "thingsboard-js-executor", "private": true, - "version": "3.6.0", + "version": "3.6.1", "description": "ThingsBoard JavaScript Executor Microservice", "main": "server.ts", "bin": "server.js", diff --git a/msa/js-executor/pom.xml b/msa/js-executor/pom.xml index 0bd7bf4d60..128479e5eb 100644 --- a/msa/js-executor/pom.xml +++ b/msa/js-executor/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/monitoring/pom.xml b/msa/monitoring/pom.xml index ba96ada39c..092bcfccc8 100644 --- a/msa/monitoring/pom.xml +++ b/msa/monitoring/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa diff --git a/msa/pom.xml b/msa/pom.xml index bf4e15d9d4..fde5244ddf 100644 --- a/msa/pom.xml +++ b/msa/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard msa diff --git a/msa/tb-node/pom.xml b/msa/tb-node/pom.xml index 8437cc35c3..61185f4eda 100644 --- a/msa/tb-node/pom.xml +++ b/msa/tb-node/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/tb/pom.xml b/msa/tb/pom.xml index 4fd630aafd..4f0d14aabb 100644 --- a/msa/tb/pom.xml +++ b/msa/tb/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/transport/coap/pom.xml b/msa/transport/coap/pom.xml index 386b91ea76..404006d2fa 100644 --- a/msa/transport/coap/pom.xml +++ b/msa/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/http/pom.xml b/msa/transport/http/pom.xml index 344219a660..2ba1a5cb73 100644 --- a/msa/transport/http/pom.xml +++ b/msa/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/lwm2m/pom.xml b/msa/transport/lwm2m/pom.xml index 8dfef617cd..3db99773c8 100644 --- a/msa/transport/lwm2m/pom.xml +++ b/msa/transport/lwm2m/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/mqtt/pom.xml b/msa/transport/mqtt/pom.xml index e1d740c877..3b67d74fee 100644 --- a/msa/transport/mqtt/pom.xml +++ b/msa/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard.msa - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.msa.transport diff --git a/msa/transport/pom.xml b/msa/transport/pom.xml index e0bd5a9457..445ee31bf7 100644 --- a/msa/transport/pom.xml +++ b/msa/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/transport/snmp/pom.xml b/msa/transport/snmp/pom.xml index b6a4e15b04..af3dc31629 100644 --- a/msa/transport/snmp/pom.xml +++ b/msa/transport/snmp/pom.xml @@ -21,7 +21,7 @@ org.thingsboard.msa transport - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT org.thingsboard.msa.transport diff --git a/msa/vc-executor-docker/pom.xml b/msa/vc-executor-docker/pom.xml index 9b6fc493cd..3bca1a5c8d 100644 --- a/msa/vc-executor-docker/pom.xml +++ b/msa/vc-executor-docker/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/vc-executor/pom.xml b/msa/vc-executor/pom.xml index 9bd2befa90..4e6b6c4e11 100644 --- a/msa/vc-executor/pom.xml +++ b/msa/vc-executor/pom.xml @@ -21,7 +21,7 @@ org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/msa/web-ui/package.json b/msa/web-ui/package.json index 3338d2ae76..a1ac96937b 100644 --- a/msa/web-ui/package.json +++ b/msa/web-ui/package.json @@ -1,7 +1,7 @@ { "name": "thingsboard-web-ui", "private": true, - "version": "3.6.0", + "version": "3.6.1", "description": "ThingsBoard Web UI Microservice", "main": "server.ts", "bin": "server.js", diff --git a/msa/web-ui/pom.xml b/msa/web-ui/pom.xml index e9500cf5e0..cbee67c12e 100644 --- a/msa/web-ui/pom.xml +++ b/msa/web-ui/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT msa org.thingsboard.msa diff --git a/netty-mqtt/pom.xml b/netty-mqtt/pom.xml index 962a9a8bbc..492d120d05 100644 --- a/netty-mqtt/pom.xml +++ b/netty-mqtt/pom.xml @@ -19,11 +19,11 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard netty-mqtt - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT jar Netty MQTT Client diff --git a/pom.xml b/pom.xml index 6eba036d51..0344ced04e 100755 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT pom Thingsboard diff --git a/rest-client/pom.xml b/rest-client/pom.xml index 638dc42009..8651656744 100644 --- a/rest-client/pom.xml +++ b/rest-client/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard rest-client diff --git a/rule-engine/pom.xml b/rule-engine/pom.xml index fe8cb3fab5..39e395b756 100644 --- a/rule-engine/pom.xml +++ b/rule-engine/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard rule-engine diff --git a/rule-engine/rule-engine-api/pom.xml b/rule-engine/rule-engine-api/pom.xml index 47d13e5658..9658f51e05 100644 --- a/rule-engine/rule-engine-api/pom.xml +++ b/rule-engine/rule-engine-api/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT rule-engine org.thingsboard.rule-engine diff --git a/rule-engine/rule-engine-components/pom.xml b/rule-engine/rule-engine-components/pom.xml index 34c6e315f7..636f59ca5f 100644 --- a/rule-engine/rule-engine-components/pom.xml +++ b/rule-engine/rule-engine-components/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT rule-engine org.thingsboard.rule-engine diff --git a/tools/pom.xml b/tools/pom.xml index c0b74bb0a9..5417f12119 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard tools diff --git a/transport/coap/pom.xml b/transport/coap/pom.xml index 3b1e0a9e62..c4b52361b7 100644 --- a/transport/coap/pom.xml +++ b/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/http/pom.xml b/transport/http/pom.xml index 3d4b806d03..4e3abea0d1 100644 --- a/transport/http/pom.xml +++ b/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/lwm2m/pom.xml b/transport/lwm2m/pom.xml index efe76111f3..5bac4f5973 100644 --- a/transport/lwm2m/pom.xml +++ b/transport/lwm2m/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/mqtt/pom.xml b/transport/mqtt/pom.xml index 75daa483a1..67f27f8ab4 100644 --- a/transport/mqtt/pom.xml +++ b/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/pom.xml b/transport/pom.xml index 203ea6cbbb..4e0182928c 100644 --- a/transport/pom.xml +++ b/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard transport diff --git a/transport/snmp/pom.xml b/transport/snmp/pom.xml index c04e7d1f1f..da4c8c23d3 100644 --- a/transport/snmp/pom.xml +++ b/transport/snmp/pom.xml @@ -21,7 +21,7 @@ org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT transport diff --git a/ui-ngx/package.json b/ui-ngx/package.json index 80ccca6050..805cfe267b 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -1,6 +1,6 @@ { "name": "thingsboard", - "version": "3.6.0", + "version": "3.6.1", "scripts": { "ng": "ng", "start": "node --max_old_space_size=8048 ./node_modules/@angular/cli/bin/ng serve --configuration development --host 0.0.0.0 --open", diff --git a/ui-ngx/pom.xml b/ui-ngx/pom.xml index d6dc28490f..84b5f8b98c 100644 --- a/ui-ngx/pom.xml +++ b/ui-ngx/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 3.6.0-SNAPSHOT + 3.6.1-SNAPSHOT thingsboard org.thingsboard From 25d3b96c6c2ce1405bb40048f145b08ff4749980 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 25 Sep 2023 13:57:21 +0300 Subject: [PATCH 009/117] text refactoring --- .../org/thingsboard/server/service/mail/DefaultMailService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java index ff54fb6e7a..ba1b8cca75 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/DefaultMailService.java @@ -385,7 +385,7 @@ public class DefaultMailService implements MailService { case JS_EXEC_COUNT: return "JavaScript functions " + recordState.getValueAsString() + " times"; case TBEL_EXEC_COUNT: - return "Tbel functions " + recordState.getValueAsString() + " times"; + return "TBEL functions " + recordState.getValueAsString() + " times"; case RE_EXEC_COUNT: return recordState.getValueAsString() + " Rule Engine messages"; case EMAIL_EXEC_COUNT: From 20ba944a3c6a82d498f5367f87225c339494d281 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 25 Sep 2023 16:30:45 +0300 Subject: [PATCH 010/117] fixed upgrade script --- .../thingsboard/server/install/ThingsboardInstallService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java index 208da7d36c..5ed009d4b6 100644 --- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java +++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java @@ -262,6 +262,10 @@ public class ThingsboardInstallService { databaseEntitiesUpgradeService.upgradeDatabase("3.5.1"); dataUpdateService.updateData("3.5.1"); systemDataLoaderService.updateDefaultNotificationConfigs(); + break; + case "3.6.0": + log.info("Upgrading ThingsBoard from version 3.6.0 to 3.6.1 ..."); + databaseEntitiesUpgradeService.upgradeDatabase("3.6.0"); //TODO DON'T FORGET to update switch statement in the CacheCleanupService if you need to clear the cache break; default: From ff5582b948c8c2f9798cce2894f74f1fbac5dcd1 Mon Sep 17 00:00:00 2001 From: rusikv Date: Tue, 26 Sep 2023 12:27:19 +0300 Subject: [PATCH 011/117] UI: Added tbel api limit config to tenant profile and updated api usage dashboard to display its status --- ...enant-profile-configuration.component.html | 26 +- ...-tenant-profile-configuration.component.ts | 1 + .../src/app/shared/models/api-usage.models.ts | 2 + ui-ngx/src/app/shared/models/tenant.model.ts | 2 + ui-ngx/src/assets/dashboard/api_usage.json | 490 +++++++++++++++--- .../assets/locale/locale.constant-ca_ES.json | 2 - .../assets/locale/locale.constant-cs_CZ.json | 2 - .../assets/locale/locale.constant-da_DK.json | 2 - .../assets/locale/locale.constant-en_US.json | 12 +- .../assets/locale/locale.constant-es_ES.json | 2 - .../assets/locale/locale.constant-fr_FR.json | 2 - .../assets/locale/locale.constant-ko_KR.json | 2 - .../assets/locale/locale.constant-sl_SI.json | 2 - .../assets/locale/locale.constant-tr_TR.json | 2 - .../assets/locale/locale.constant-zh_CN.json | 2 - .../assets/locale/locale.constant-zh_TW.json | 2 - 16 files changed, 461 insertions(+), 92 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html index c2872d4145..0445cce71c 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html +++ b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.html @@ -169,15 +169,15 @@ - tenant-profile.max-transport-data-points + tenant-profile.max-tbel-executions - - {{ 'tenant-profile.max-transport-data-points-required' | translate}} + + {{ 'tenant-profile.max-tbel-executions-required' | translate}} - - {{ 'tenant-profile.max-transport-data-points-range' | translate}} + + {{ 'tenant-profile.max-tbel-executions-range' | translate}} @@ -196,7 +196,19 @@ -
+ + tenant-profile.max-transport-data-points + + + {{ 'tenant-profile.max-transport-data-points-required' | translate}} + + + {{ 'tenant-profile.max-transport-data-points-range' | translate}} + + + diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts index a4915f924b..6640f0bab0 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/tenant/default-tenant-profile-configuration.component.ts @@ -81,6 +81,7 @@ export class DefaultTenantProfileConfigurationComponent implements ControlValueA maxTransportDataPoints: [null, [Validators.required, Validators.min(0)]], maxREExecutions: [null, [Validators.required, Validators.min(0)]], maxJSExecutions: [null, [Validators.required, Validators.min(0)]], + maxTbelExecutions: [null, [Validators.required, Validators.min(0)]], maxDPStorageDays: [null, [Validators.required, Validators.min(0)]], maxRuleNodeExecutionsPerMessage: [null, [Validators.required, Validators.min(0)]], maxEmails: [null, [Validators.required, Validators.min(0)]], diff --git a/ui-ngx/src/app/shared/models/api-usage.models.ts b/ui-ngx/src/app/shared/models/api-usage.models.ts index bbc0ff5597..e6b1d86207 100644 --- a/ui-ngx/src/app/shared/models/api-usage.models.ts +++ b/ui-ngx/src/app/shared/models/api-usage.models.ts @@ -31,6 +31,7 @@ export enum ApiFeature { DB = 'DB', RE = 'RE', JS = 'JS', + TBEL = 'TBEL', EMAIL = 'EMAIL', SMS = 'SMS', ALARM = 'ALARM' @@ -41,6 +42,7 @@ export const ApiFeatureTranslationMap = new Map([ [ApiFeature.DB, 'api-usage.telemetry-persistence'], [ApiFeature.RE, 'api-usage.rule-engine-executions'], [ApiFeature.JS, 'api-usage.javascript-executions'], + [ApiFeature.TBEL, 'api-usage.tbel-executions'], [ApiFeature.EMAIL, 'api-usage.email-messages'], [ApiFeature.SMS, 'api-usage.sms-messages'], [ApiFeature.ALARM, 'api-usage.alarm'], diff --git a/ui-ngx/src/app/shared/models/tenant.model.ts b/ui-ngx/src/app/shared/models/tenant.model.ts index 9074d599f5..8bc730010f 100644 --- a/ui-ngx/src/app/shared/models/tenant.model.ts +++ b/ui-ngx/src/app/shared/models/tenant.model.ts @@ -50,6 +50,7 @@ export interface DefaultTenantProfileConfiguration { maxTransportDataPoints: number; maxREExecutions: number; maxJSExecutions: number; + maxTbelExecutions: number; maxDPStorageDays: number; maxRuleNodeExecutionsPerMessage: number; maxEmails: number; @@ -102,6 +103,7 @@ export function createTenantProfileConfiguration(type: TenantProfileType): Tenan maxTransportDataPoints: 0, maxREExecutions: 0, maxJSExecutions: 0, + maxTbelExecutions: 0, maxDPStorageDays: 0, maxRuleNodeExecutionsPerMessage: 0, maxEmails: 0, diff --git a/ui-ngx/src/assets/dashboard/api_usage.json b/ui-ngx/src/assets/dashboard/api_usage.json index 5733b011f9..3c9259f453 100644 --- a/ui-ngx/src/assets/dashboard/api_usage.json +++ b/ui-ngx/src/assets/dashboard/api_usage.json @@ -21,7 +21,7 @@ { "name": "jsExecutionApiState", "type": "timeseries", - "label": "apiState", + "label": "jsApiState", "color": "#2196f3", "settings": {}, "_hash": 0.8830669138660703, @@ -29,12 +29,13 @@ "decimals": null, "funcBody": null, "usePostProcessing": true, - "postFuncBody": "return value ? value : 'ENABLED';" + "postFuncBody": "return value ? value : 'ENABLED';", + "aggregationType": "NONE" }, { "name": "jsExecutionLimit", "type": "timeseries", - "label": "limit", + "label": "jsLimit", "color": "#4caf50", "settings": {}, "_hash": 0.5463603803546802, @@ -42,12 +43,13 @@ "decimals": null, "funcBody": null, "usePostProcessing": null, - "postFuncBody": null + "postFuncBody": null, + "aggregationType": "NONE" }, { "name": "jsExecutionCount", "type": "timeseries", - "label": "count", + "label": "jsCount", "color": "#f44336", "settings": {}, "_hash": 0.5564241862015964, @@ -55,20 +57,8 @@ "decimals": null, "funcBody": null, "usePostProcessing": null, - "postFuncBody": null - }, - { - "name": "jsExecutionApiState", - "type": "timeseries", - "label": "apiStateClass", - "color": "#ffc107", - "settings": {}, - "_hash": 0.8737107059960671, - "units": null, - "decimals": null, - "funcBody": null, - "usePostProcessing": true, - "postFuncBody": "return value ? value.toLowerCase() : 'enabled';" + "postFuncBody": null, + "aggregationType": "NONE" }, { "name": "jsExecutionApiState", @@ -94,12 +84,13 @@ "decimals": null, "funcBody": null, "usePostProcessing": true, - "postFuncBody": "return \"{i18n:api-usage.javascript}\";" + "postFuncBody": "return \"{i18n:api-usage.udf-executions}\";", + "aggregationType": "NONE" }, { "name": "jsExecutionApiState", "type": "timeseries", - "label": "unit", + "label": "jsUnit", "color": "#8bc34a", "settings": {}, "_hash": 0.7926918686567068, @@ -107,7 +98,64 @@ "decimals": null, "funcBody": null, "usePostProcessing": true, - "postFuncBody": "return \"{i18n:api-usage.executions}\";" + "postFuncBody": "return \"{i18n:api-usage.javascript}\";", + "aggregationType": "NONE" + }, + { + "name": "tbelExecutionApiState", + "type": "timeseries", + "label": "tbelApiState", + "color": "#3f51b5", + "settings": {}, + "_hash": 0.950264191483049, + "aggregationType": "NONE", + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": true, + "postFuncBody": "return value ? value : 'ENABLED';" + }, + { + "name": "tbelExecutionLimit", + "type": "timeseries", + "label": "tbelLimit", + "color": "#e91e63", + "settings": {}, + "_hash": 0.9618078963734347, + "aggregationType": "NONE", + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null + }, + { + "name": "tbelExecutionCount", + "type": "timeseries", + "label": "tbelCount", + "color": "#ffeb3b", + "settings": {}, + "_hash": 0.26695276374882493, + "aggregationType": "NONE", + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null + }, + { + "name": "tbelExecutionApiState", + "type": "timeseries", + "label": "tbelUnit", + "color": "#03a9f4", + "settings": {}, + "_hash": 0.41720010909473104, + "aggregationType": "NONE", + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": true, + "postFuncBody": "return \"{i18n:api-usage.tbel}\";" } ] } @@ -141,8 +189,8 @@ "color": "#666666", "padding": "0", "settings": { - "cardHtml": "
\n \n \n
\n
\n
\n
${title}
\n
${apiState}
\n
\n
\n
${unit}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
", - "cardCss": ".card {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n\n.card > img {\n height: 0;\n}\n\n.card .content {\n flex: 1; \n padding: 13px 13px 0;\n display: flex;\n box-sizing: border-box;\n}\n\n.card .content .column {\n display: flex;\n flex-direction: column; \n justify-content: space-around;\n flex: 1;\n}\n\n.card .content .title-row {\n display: flex;\n flex-direction: row;\n padding-bottom: 10px;\n}\n\n.card .title {\n flex: 1;\n font-size: 20px;\n font-weight: 400;\n color: #666666;\n}\n\n.card .state {\n text-transform: uppercase;\n font-size: 20px;\n font-weight: bold;\n}\n\n.card.enabled .state {\n color: #00B260;\n}\n\n.card.warning .state {\n color: #FFAD6F;\n}\n\n.card.disabled .state {\n color: #F73243;\n}\n\n.card .bar-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.card .bar {\n flex: 1;\n max-height: 30px;\n margin-top: 3.5px;\n margin-bottom: 4px;\n background-color: #F0F0F0;\n border: 1px solid #DADCDB;\n border-radius: 2px;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);\n}\n\n.card.enabled .bar {\n border-color: #00B260;\n background-color: #F0FBF7;\n}\n\n.card.warning .bar {\n border-color: #FFAD6F;\n background-color: #FFFAF6;\n}\n\n.card.disabled .bar {\n border-color: #F73243;\n background-color: #FFF0F0;\n}\n\n.card .bar .bar-fill {\n background-color: #F0F0F0;\n border-radius: 2px;\n height: 100%;\n width: 0%;\n}\n\n.card.enabled .bar-fill {\n background-color: #00C46C;\n}\n\n.card.warning .bar-fill {\n background-color: #FFD099;\n}\n\n.card.disabled .bar-fill {\n background-color: #FF9494;\n}\n\n.card .bar-labels {\n height: 20px;\n font-size: 16px;\n color: #666;\n display: flex;\n flex-direction: row;\n}\n\n\n.card .mat-mdc-button-base {\n text-transform: uppercase;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.card .mdc-button__label {\n pointer-events: none;\n}\n\n.card .action-row {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n padding: 8px 0;\n}\n\n@media screen and (min-width: 960px) and (max-width: 1279px) {\n .card .title {\n font-size: 12px;\n }\n .card .state {\n font-size: 12px;\n }\n .card .unit {\n font-size: 8px;\n }\n .card .bar-labels {\n font-size: 8px;\n }\n .card .mat-mdc-button-base {\n font-size: 8px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1280px) and (max-width: 1599px) {\n .card .title {\n font-size: 14px;\n }\n .card .state {\n font-size: 14px;\n }\n .card .unit {\n font-size: 10px;\n }\n .card .bar-labels {\n font-size: 10px;\n }\n .card .mat-mdc-button-base {\n font-size: 10px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1600px) and (max-width: 1919px) {\n .card .title {\n font-size: 16px;\n }\n .card .state {\n font-size: 16px;\n }\n .card .unit {\n font-size: 12px;\n }\n .card .bar-labels {\n font-size: 12px;\n }\n .card .mat-mdc-button-base {\n font-size: 12px;\n }\n .card .action-row {\n padding: 0;\n }\n} \n\n\n" + "cardHtml": "
\n \n \n
\n
\n
\n
${title}
\n
\n
\n
\n
\n
\n
${jsUnit}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
${tbelUnit}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
", + "cardCss": ".card {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n\n.card > img {\n height: 0;\n}\n\n.card .content {\n flex: 1; \n padding: 13px 13px 0;\n display: flex;\n box-sizing: border-box;\n}\n\n.card .content .column {\n display: flex;\n flex-direction: column; \n justify-content: space-around;\n flex: 1;\n}\n\n.card .content .title-row {\n display: flex;\n flex-direction: row;\n padding-bottom: 10px;\n}\n\n.card .title {\n flex: 1;\n font-size: 20px;\n font-weight: 400;\n color: #666666;\n}\n\n.card .state {\n text-transform: uppercase;\n font-size: 20px;\n font-weight: bold;\n}\n\n.card.enabled .state {\n color: #00B260;\n}\n\n.card.warning .state {\n color: #FFAD6F;\n}\n\n.card.disabled .state {\n color: #F73243;\n}\n\n.card .bars-row {\n flex: 1;\n display: flex;\n flex-direction: row;\n}\n\n.card .bar-column {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.card .bar-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.card .bar {\n flex: 1;\n max-height: 30px;\n margin-top: 3.5px;\n margin-bottom: 4px;\n background-color: #F0F0F0;\n border: 1px solid #DADCDB;\n border-radius: 2px;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);\n}\n\n.card.enabled .bar {\n border-color: #00B260;\n background-color: #F0FBF7;\n}\n\n.card.warning .bar {\n border-color: #FFAD6F;\n background-color: #FFFAF6;\n}\n\n.card.disabled .bar {\n border-color: #F73243;\n background-color: #FFF0F0;\n}\n\n.card .bar .bar-fill {\n background-color: #F0F0F0;\n border-radius: 2px;\n height: 100%;\n width: 0%;\n}\n\n.card.enabled .bar-fill {\n background-color: #00C46C;\n}\n\n.card.warning .bar-fill {\n background-color: #FFD099;\n}\n\n.card.disabled .bar-fill {\n background-color: #FF9494;\n}\n\n.card .bar-labels {\n height: 20px;\n font-size: 16px;\n color: #666;\n display: flex;\n flex-direction: row;\n}\n\n.card .mat-mdc-button-base {\n text-transform: uppercase;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.card .mdc-button__label {\n pointer-events: none;\n}\n\n.card .action-row {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n padding: 8px 0;\n}\n\n\n@media screen and (min-width: 960px) and (max-width: 1279px) {\n .card .title {\n font-size: 12px;\n }\n .card .state {\n font-size: 12px;\n }\n .card .unit {\n font-size: 8px;\n }\n .card .bar-labels {\n font-size: 6px;\n }\n .card .mat-mdc-button-base {\n font-size: 8px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1280px) and (max-width: 1599px) {\n .card .title {\n font-size: 14px;\n }\n .card .state {\n font-size: 14px;\n }\n .card .unit {\n font-size: 10px;\n }\n .card .bar-labels {\n font-size: 8px;\n }\n .card .mat-mdc-button-base {\n font-size: 10px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1600px) and (max-width: 1919px) {\n .card .title {\n font-size: 16px;\n }\n .card .state {\n font-size: 16px;\n }\n .card .unit {\n font-size: 12px;\n }\n .card .bar-labels {\n font-size: 12px;\n }\n .card .mat-mdc-button-base {\n font-size: 12px;\n }\n .card .action-row {\n padding: 0;\n }\n} \n\n" }, "title": "JavaScript functions", "dropShadow": true, @@ -159,13 +207,17 @@ "actions": { "elementClick": [ { - "name": "javascript_functions_details", + "name": "user_defined_functions_details", "icon": "insert_chart", + "useShowWidgetActionFunction": null, + "showWidgetActionFunction": "return true;", "type": "openDashboardState", - "targetDashboardStateId": "javascript_functions", + "targetDashboardStateId": "user_defined_functions", "setEntityId": false, "stateEntityParamName": null, "openRightLayout": false, + "openInSeparateDialog": false, + "openInPopover": false, "id": "d4961bea-84de-e1af-e50f-666b98d34cd5" } ] @@ -1284,6 +1336,20 @@ "funcBody": null, "usePostProcessing": null, "postFuncBody": null + }, + { + "name": "tbelExecutionCountHourly", + "type": "timeseries", + "label": "{i18n:api-usage.tbel-executions}", + "color": "#4CAF50", + "settings": {}, + "_hash": 0.9298950525272727, + "aggregationType": null, + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null } ] } @@ -1348,7 +1414,7 @@ "showTotal": true } }, - "title": "{i18n:api-usage.javascript-functions-hourly-activity}", + "title": "{i18n:api-usage.user-defined-functions-hourly-activity}", "dropShadow": true, "enableFullscreen": true, "titleStyle": { @@ -1362,11 +1428,15 @@ { "name": "{i18n:api-usage.view-details}", "icon": "insert_chart", + "useShowWidgetActionFunction": null, + "showWidgetActionFunction": "return true;", "type": "openDashboardState", - "targetDashboardStateId": "javascript_functions", + "targetDashboardStateId": "user_defined_functions", "setEntityId": false, "stateEntityParamName": null, "openRightLayout": false, + "openInSeparateDialog": false, + "openInPopover": false, "id": "4687d3f6-8800-a3b6-26e5-0d33f3b828a9" } ] @@ -4395,6 +4465,288 @@ "col": 0, "id": "aa875b7f-e7c8-7529-1ae7-f456211b59cc", "typeFullFqn": "system.charts.timeseries_bars_flot" + }, + "16d469c0-b3f5-d8a6-c62c-5c245c2cc865": { + "type": "timeseries", + "sizeX": 8, + "sizeY": 5, + "config": { + "datasources": [ + { + "type": "entity", + "name": null, + "entityAliasId": "40193437-33ac-3172-eefd-0b08eb849062", + "filterId": null, + "dataKeys": [ + { + "name": "tbelExecutionCountHourly", + "type": "timeseries", + "label": "{i18n:api-usage.tbel-executions}", + "color": "#4CAF50", + "settings": { + "excludeFromStacking": false, + "hideDataByDefault": false, + "disableDataHiding": false, + "removeFromLegend": false, + "showLines": false, + "fillLines": false, + "showPoints": false, + "showPointShape": "circle", + "pointShapeFormatter": "", + "showPointsLineWidth": 5, + "showPointsRadius": 3, + "showSeparateAxis": false, + "axisPosition": "left", + "thresholds": [ + { + "thresholdValueSource": "predefinedValue" + } + ], + "comparisonSettings": { + "showValuesForComparison": true + } + }, + "_hash": 0.0661644137210089, + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null, + "aggregationType": null + } + ], + "alarmFilterConfig": { + "statusList": [ + "ACTIVE" + ] + } + } + ], + "timewindow": { + "hideInterval": false, + "hideAggregation": false, + "hideAggInterval": false, + "selectedTab": 1, + "history": { + "historyType": 0, + "timewindowMs": 2592000000, + "interval": 86400000 + }, + "aggregation": { + "type": "SUM", + "limit": 1000 + } + }, + "showTitle": true, + "backgroundColor": "#fff", + "color": "rgba(0, 0, 0, 0.87)", + "padding": "8px", + "settings": { + "shadowSize": 4, + "fontColor": "#545454", + "fontSize": 10, + "xaxis": { + "showLabels": true, + "color": "#545454" + }, + "yaxis": { + "showLabels": true, + "color": "#545454", + "min": 0, + "tickDecimals": 0, + "ticksFormatter": "var rounder = Math.pow(10, 1);\nvar powers = [\n {key: 'Q', value: Math.pow(10, 15)},\n {key: 'T', value: Math.pow(10, 12)},\n {key: 'B', value: Math.pow(10, 9)},\n {key: 'M', value: Math.pow(10, 6)},\n {key: 'K', value: 1000}\n];\n\nvar key = '';\n\nfor (var i = 0; i < powers.length; i++) {\n var reduced = value / powers[i].value;\n reduced = Math.round(reduced * rounder) / rounder;\n if (reduced >= 1) {\n value = reduced;\n key = powers[i].key;\n break;\n }\n}\nreturn value + key;" + }, + "grid": { + "color": "#545454", + "tickColor": "#DDDDDD", + "verticalLines": true, + "horizontalLines": true, + "outlineWidth": 1 + }, + "stack": false, + "tooltipIndividual": false, + "defaultBarWidth": 1800000, + "barAlignment": "left", + "timeForComparison": "months", + "xaxisSecond": { + "axisPosition": "top", + "showLabels": true + }, + "showLegend": true, + "legendConfig": { + "direction": "column", + "position": "bottom", + "sortDataKeys": false, + "showMin": false, + "showMax": false, + "showAvg": false, + "showTotal": true + } + }, + "title": "{i18n:api-usage.tbel-functions-daily-activity}", + "dropShadow": true, + "enableFullscreen": true, + "titleStyle": { + "fontSize": "16px", + "fontWeight": 400 + }, + "widgetStyle": {}, + "useDashboardTimewindow": false, + "actions": {}, + "displayTimewindow": true, + "showTitleIcon": false, + "iconColor": "rgba(0, 0, 0, 0.87)", + "iconSize": "24px", + "titleTooltip": "", + "widgetCss": "", + "pageSize": 1024, + "noDataDisplayMessage": "" + }, + "row": 0, + "col": 0, + "id": "16d469c0-b3f5-d8a6-c62c-5c245c2cc865", + "typeFullFqn": "system.charts.timeseries_bars_flot" + }, + "70978475-c9d4-a54d-384a-851b4bba3917": { + "type": "timeseries", + "sizeX": 8, + "sizeY": 5, + "config": { + "datasources": [ + { + "type": "entity", + "name": null, + "entityAliasId": "40193437-33ac-3172-eefd-0b08eb849062", + "filterId": null, + "dataKeys": [ + { + "name": "tbelExecutionCount", + "type": "timeseries", + "label": "{i18n:api-usage.tbel-executions}", + "color": "#4CAF50", + "settings": { + "excludeFromStacking": false, + "hideDataByDefault": false, + "disableDataHiding": false, + "removeFromLegend": false, + "showLines": false, + "fillLines": false, + "showPoints": false, + "showPointShape": "circle", + "pointShapeFormatter": "", + "showPointsLineWidth": 5, + "showPointsRadius": 3, + "showSeparateAxis": false, + "axisPosition": "left", + "thresholds": [ + { + "thresholdValueSource": "predefinedValue" + } + ], + "comparisonSettings": { + "showValuesForComparison": true + } + }, + "_hash": 0.0661644137210089, + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null, + "aggregationType": null + } + ], + "alarmFilterConfig": { + "statusList": [ + "ACTIVE" + ] + } + } + ], + "timewindow": { + "hideInterval": false, + "hideAggregation": false, + "hideAggInterval": false, + "selectedTab": 1, + "history": { + "historyType": 0, + "timewindowMs": 31536000000, + "interval": 1000 + }, + "aggregation": { + "type": "NONE", + "limit": 1000 + } + }, + "showTitle": true, + "backgroundColor": "#fff", + "color": "rgba(0, 0, 0, 0.87)", + "padding": "8px", + "settings": { + "shadowSize": 4, + "fontColor": "#545454", + "fontSize": 10, + "xaxis": { + "showLabels": true, + "color": "#545454" + }, + "yaxis": { + "showLabels": true, + "color": "#545454", + "min": 0, + "tickDecimals": 0, + "ticksFormatter": "var rounder = Math.pow(10, 1);\nvar powers = [\n {key: 'Q', value: Math.pow(10, 15)},\n {key: 'T', value: Math.pow(10, 12)},\n {key: 'B', value: Math.pow(10, 9)},\n {key: 'M', value: Math.pow(10, 6)},\n {key: 'K', value: 1000}\n];\n\nvar key = '';\n\nfor (var i = 0; i < powers.length; i++) {\n var reduced = value / powers[i].value;\n reduced = Math.round(reduced * rounder) / rounder;\n if (reduced >= 1) {\n value = reduced;\n key = powers[i].key;\n break;\n }\n}\nreturn value + key;" + }, + "grid": { + "color": "#545454", + "tickColor": "#DDDDDD", + "verticalLines": true, + "horizontalLines": true, + "outlineWidth": 1 + }, + "stack": false, + "tooltipIndividual": false, + "defaultBarWidth": 900000000, + "barAlignment": "left", + "timeForComparison": "months", + "xaxisSecond": { + "axisPosition": "top", + "showLabels": true + }, + "showLegend": true, + "legendConfig": { + "direction": "column", + "position": "bottom", + "sortDataKeys": false, + "showMin": false, + "showMax": false, + "showAvg": false, + "showTotal": true + } + }, + "title": "{i18n:api-usage.tbel-functions-monthly-activity}", + "dropShadow": true, + "enableFullscreen": true, + "titleStyle": { + "fontSize": "16px", + "fontWeight": 400 + }, + "widgetStyle": {}, + "useDashboardTimewindow": false, + "actions": {}, + "displayTimewindow": true, + "showTitleIcon": false, + "iconColor": "rgba(0, 0, 0, 0.87)", + "iconSize": "24px", + "titleTooltip": "", + "widgetCss": "", + "pageSize": 1024, + "noDataDisplayMessage": "" + }, + "row": 0, + "col": 0, + "id": "70978475-c9d4-a54d-384a-851b4bba3917", + "typeFullFqn": "system.charts.timeseries_bars_flot" } }, "states": { @@ -4566,40 +4918,6 @@ } } }, - "javascript_functions": { - "name": "{i18n:api-usage.javascript-functions}", - "root": false, - "layouts": { - "main": { - "widgets": { - "5f5ca59c-e507-5301-5910-7ad8cd34df40": { - "sizeX": 24, - "sizeY": 6, - "row": 0, - "col": 0 - }, - "ada32ee9-44ed-48d1-c368-fd0c94b7607f": { - "sizeX": 24, - "sizeY": 6, - "row": 6, - "col": 0 - } - }, - "gridSettings": { - "backgroundColor": "#eeeeee", - "color": "rgba(0,0,0,0.870588)", - "columns": 24, - "margin": 10, - "backgroundSizeMode": "100%", - "autoFillHeight": true, - "backgroundImageUrl": null, - "mobileAutoFillHeight": false, - "mobileRowHeight": 70, - "outerMargin": true - } - } - } - }, "telemetry_persistence": { "name": "{i18n:api-usage.telemetry-persistence}", "root": false, @@ -4755,6 +5073,52 @@ } } } + }, + "user_defined_functions": { + "name": "{i18n:api-usage.user-defined-functions}", + "root": false, + "layouts": { + "main": { + "widgets": { + "5f5ca59c-e507-5301-5910-7ad8cd34df40": { + "sizeX": 12, + "sizeY": 6, + "row": 0, + "col": 0 + }, + "ada32ee9-44ed-48d1-c368-fd0c94b7607f": { + "sizeX": 12, + "sizeY": 6, + "row": 6, + "col": 0 + }, + "16d469c0-b3f5-d8a6-c62c-5c245c2cc865": { + "sizeX": 12, + "sizeY": 6, + "row": 0, + "col": 12 + }, + "70978475-c9d4-a54d-384a-851b4bba3917": { + "sizeX": 12, + "sizeY": 6, + "row": 6, + "col": 12 + } + }, + "gridSettings": { + "backgroundColor": "#eeeeee", + "color": "rgba(0,0,0,0.870588)", + "columns": 24, + "margin": 10, + "backgroundSizeMode": "100%", + "autoFillHeight": true, + "backgroundImageUrl": null, + "mobileAutoFillHeight": false, + "mobileRowHeight": 70, + "outerMargin": true + } + } + } } }, "entityAliases": { @@ -4809,4 +5173,4 @@ }, "externalId": null, "name": "Api Usage" -} \ No newline at end of file +} diff --git a/ui-ngx/src/assets/locale/locale.constant-ca_ES.json b/ui-ngx/src/assets/locale/locale.constant-ca_ES.json index 0b7b09d15b..a2e8cb4c42 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ca_ES.json +++ b/ui-ngx/src/assets/locale/locale.constant-ca_ES.json @@ -677,9 +677,7 @@ "executions": "Execucions", "javascript": "JavaScript", "javascript-executions": "Execucions JavaScript", - "javascript-functions": "Funcions JavaScript", "javascript-functions-daily-activity": "Activitat diària de funcions JavaScript", - "javascript-functions-hourly-activity": "Activitat horària de funcions JavaScript", "javascript-functions-monthly-activity": "Activitat mensual de funcions JavaScript", "latest-error": "Últim error", "messages": "Missatges", diff --git a/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json b/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json index c82ba68649..048b421a4e 100644 --- a/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json +++ b/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json @@ -488,9 +488,7 @@ "executions": "Zpracování", "javascript": "JavaScript", "javascript-executions": "JavaScript výjimky", - "javascript-functions": "JavaScript funkce", "javascript-functions-daily-activity": "Denní aktivita JavaScript funkcí", - "javascript-functions-hourly-activity": "Hodinová aktivita JavaScript funkcí", "javascript-functions-monthly-activity": "Měsíční aktivita JavaScript funkcí", "latest-error": "Poslední chyba", "messages": "Zprávy", diff --git a/ui-ngx/src/assets/locale/locale.constant-da_DK.json b/ui-ngx/src/assets/locale/locale.constant-da_DK.json index 834cc15619..c318726315 100644 --- a/ui-ngx/src/assets/locale/locale.constant-da_DK.json +++ b/ui-ngx/src/assets/locale/locale.constant-da_DK.json @@ -493,9 +493,7 @@ "executions": "Udførelser", "javascript": "JavaScript", "javascript-executions": "JavaScript-udførelser", - "javascript-functions": "JavaScript-funktioner", "javascript-functions-daily-activity": "JavaScript-funktioners daglige aktivitet", - "javascript-functions-hourly-activity": "JavaScript-funktioners timeaktivitet", "javascript-functions-monthly-activity": "JavaScript-funktioners månedlige aktivitet", "latest-error": "Seneste fejl", "messages": "Beskeder", diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 0867f21114..50676ea044 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -770,12 +770,17 @@ "email-messages-monthly-activity": "Email messages monthly activity", "exceptions": "Exceptions", "executions": "Executions", + "udf-executions": "UDF executions", + "user-defined-functions": "User-defined functions", + "user-defined-functions-hourly-activity": "User-defined functions hourly activity", "javascript": "JavaScript", "javascript-executions": "JavaScript executions", - "javascript-functions": "JavaScript functions", "javascript-functions-daily-activity": "JavaScript functions daily activity", - "javascript-functions-hourly-activity": "JavaScript functions hourly activity", "javascript-functions-monthly-activity": "JavaScript functions monthly activity", + "tbel": "TBEL", + "tbel-executions": "TBEL executions", + "tbel-functions-daily-activity": "TBEL functions daily activity", + "tbel-functions-monthly-activity": "TBEL functions monthly activity", "latest-error": "Latest Error", "messages": "Messages", "notifications": "Notifications", @@ -3991,6 +3996,9 @@ "max-j-s-executions": "JavaScript executions maximum number ", "max-j-s-executions-required": "JavaScript executions maximum number is required.", "max-j-s-executions-range": "JavaScript executions maximum number can't be negative", + "max-tbel-executions": "TBEL executions maximum number ", + "max-tbel-executions-required": "TBEL executions maximum number is required.", + "max-tbel-executions-range": "TBEL executions maximum number can't be negative", "max-d-p-storage-days": "Data points storage days maximum number", "max-d-p-storage-days-required": "Data points storage days maximum number is required.", "max-d-p-storage-days-range": "Data points storage days maximum number can't be negative", diff --git a/ui-ngx/src/assets/locale/locale.constant-es_ES.json b/ui-ngx/src/assets/locale/locale.constant-es_ES.json index 143bed648b..6bcd707bfc 100644 --- a/ui-ngx/src/assets/locale/locale.constant-es_ES.json +++ b/ui-ngx/src/assets/locale/locale.constant-es_ES.json @@ -715,9 +715,7 @@ "executions": "Ejecuciones", "javascript": "JavaScript", "javascript-executions": "Ejecuciones JavaScript", - "javascript-functions": "Funciones JavaScript", "javascript-functions-daily-activity": "Actividad diaria de funciones JavaScript", - "javascript-functions-hourly-activity": "Actividad horaria de funciones JavaScript", "javascript-functions-monthly-activity": "Actividad mensual de funciones JavaScript", "latest-error": "Último error", "messages": "Mensajes", diff --git a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json index 39d6646854..acf547354e 100644 --- a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json +++ b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json @@ -488,9 +488,7 @@ "email-messages-monthly-activity": "Activité menuselle de courriels", "executions": "Exécutions", "javascript-executions": "Exécutions JavaScript", - "javascript-functions": "Fonctions JavaScript", "javascript-functions-daily-activity": "Activité hebdomadaire de fonctions JavaScript", - "javascript-functions-hourly-activity": "Activité horaire de fonctions JavaScript", "javascript-functions-monthly-activity": "Activité mensuelle de fonctions JavaScript", "latest-error": "Dernière erreur", "notifications-email-sms": "Notifications (Coourriel/SMS)", diff --git a/ui-ngx/src/assets/locale/locale.constant-ko_KR.json b/ui-ngx/src/assets/locale/locale.constant-ko_KR.json index aad25e9c0e..387a553506 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ko_KR.json +++ b/ui-ngx/src/assets/locale/locale.constant-ko_KR.json @@ -447,9 +447,7 @@ "executions": "Executions", "javascript": "JavaScript", "javascript-executions": "JavaScript executions", - "javascript-functions": "JavaScript functions", "javascript-functions-daily-activity": "JavaScript functions daily activity", - "javascript-functions-hourly-activity": "JavaScript functions hourly activity", "javascript-functions-monthly-activity": "JavaScript functions monthly activity", "latest-error": "최근 오류", "messages": "메시지", diff --git a/ui-ngx/src/assets/locale/locale.constant-sl_SI.json b/ui-ngx/src/assets/locale/locale.constant-sl_SI.json index c6a20b9a36..33fa10fbb4 100644 --- a/ui-ngx/src/assets/locale/locale.constant-sl_SI.json +++ b/ui-ngx/src/assets/locale/locale.constant-sl_SI.json @@ -447,9 +447,7 @@ "executions": "Executions", "javascript": "JavaScript", "javascript-executions": "JavaScript executions", - "javascript-functions": "JavaScript functions", "javascript-functions-daily-activity": "JavaScript functions daily activity", - "javascript-functions-hourly-activity": "JavaScript functions hourly activity", "javascript-functions-monthly-activity": "JavaScript functions monthly activity", "latest-error": "Latest Error", "messages": "Messages", diff --git a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json index b377c9fd45..3819fb306f 100644 --- a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json +++ b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json @@ -488,9 +488,7 @@ "executions": "Çalıştırmalar", "javascript": "JavaScript", "javascript-executions": "JavaScript çalıştırmaları", - "javascript-functions": "JavaScript fonksiyonları", "javascript-functions-daily-activity": "Günlük JavaScript fonksiyonları", - "javascript-functions-hourly-activity": "Saatlik JavaScript fonksiyonları", "javascript-functions-monthly-activity": "Aylık JavaScript fonksiyonları", "latest-error": "Son Hata", "messages": "Mesajlar", diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json index 895499e067..7cc76818cf 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json @@ -715,9 +715,7 @@ "executions": "执行数", "javascript": "JavaScript", "javascript-executions": "JavaScript 执行数", - "javascript-functions": "JavaScript 函数", "javascript-functions-daily-activity": "每天执行的JavaScript函数", - "javascript-functions-hourly-activity": "每小时执行的JavaScript函数", "javascript-functions-monthly-activity": "每月执行的JavaScript函数", "latest-error": "最新错误", "messages": "消息", diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_TW.json b/ui-ngx/src/assets/locale/locale.constant-zh_TW.json index bb655f65e7..75086fb2cb 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_TW.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_TW.json @@ -563,9 +563,7 @@ "executions": "執行", "javascript": "JavaScript", "javascript-executions": "JavaScript執行", - "javascript-functions": "JavaScript功能", "javascript-functions-daily-activity": "JavaScript功能每日活動", - "javascript-functions-hourly-activity": "JavaScript功能每小時活動", "javascript-functions-monthly-activity": "JavaScript功能每月活動", "latest-error": "最新錯誤", "messages": "訊息", From bf5e9f0917f820aebfbbe3a89aa79ad09e512f31 Mon Sep 17 00:00:00 2001 From: kalytka Date: Wed, 27 Sep 2023 10:29:47 +0300 Subject: [PATCH 012/117] Updated rulenode examples png --- .../examples/customer-attributes-ft.png | Bin 88911 -> 29423 bytes .../examples/originator-attributes-ft.png | Bin 86148 -> 30258 bytes .../examples/originator-fields-ft.png | Bin 75513 -> 23958 bytes .../examples/originator-telemetry-ft-2.png | Bin 128981 -> 44951 bytes .../examples/originator-telemetry-ft.png | Bin 114627 -> 39394 bytes .../examples/related-device-attributes-ft.png | Bin 93697 -> 37267 bytes .../examples/related-entity-data-ft.png | Bin 113138 -> 38232 bytes .../examples/tenant-attributes-ft.png | Bin 87964 -> 29138 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ui-ngx/src/assets/help/images/rulenode/examples/customer-attributes-ft.png b/ui-ngx/src/assets/help/images/rulenode/examples/customer-attributes-ft.png index 43711a83701427ebaa0a02b514b922f01061b9a8..e9b35388124f25ac4fca652314389c0e29759649 100644 GIT binary patch literal 29423 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 z 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�!l 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 diff --git a/ui-ngx/src/assets/help/images/rulenode/examples/originator-attributes-ft.png b/ui-ngx/src/assets/help/images/rulenode/examples/originator-attributes-ft.png index d113c4dc83305535f2ad9df0a31d78d681dcf2ee..fceb295f4d0be89bcf804caf7da4561eac953ec9 100644 GIT binary patch literal 30258 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 Jr)VAZUjPrBieLZ$ literal 86148 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%0DXS-Kh`AX%tG(A1~Ey`y2%PyN# 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 z

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 E2c!m7Hvj+t diff --git a/ui-ngx/src/assets/help/images/rulenode/examples/originator-fields-ft.png b/ui-ngx/src/assets/help/images/rulenode/examples/originator-fields-ft.png index 59919a33b4511381332430ec4dc4ca846dacce78..750c7d900f215e4ea86ca4c86d30272885a79c58 100644 GIT binary patch literal 23958 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

Xpc@;CYw%vzPIPex^r4oF28XR#qY) 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 k3g7;Q9HCC&*Fsmgrro)kXgs@k3P|sS0HH_? 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

mb&-AsG3o*1#CJ5GI;~zJW$R;>{JEz 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%0D*9x)l_M@)ylLouN7_fbJPfsPoiw(@4Su^Mj zU;coUiA|4yrKQc!cPxuQh1w<~+14NjlLXn^eGY2w z_baK4d;7?%gUbhh9y6x*kTe~GMKFC9Mi z>sSkhG@CJQ;!&0;fs9j2<#m5y=DW2@!O&?-!yO{E(?JS$8=iCF@ZaD9Tj)|mL>_0o z#E9SNPre3b$~?LSsUuz44&K5Dh`+o%B)g`Td~)t{T;=_nDqnIe*TEr;p^<><5}A6( z%3}ut>_2wP$3n`1HJI<8AMYrD`htp_5iUyVrOMFahU-2hC9QO6Kv;llM~Kp+N3~6b z?3#p#H5bqt6@SnvB#f3>B5L~E!Z@*3G^l@^*%>`UX%S|@gWr*XwUtYLFzMoV_9-(l zVS>j~{MJ;qDlqcMZ7@+Y1!TJTOsh)K495h3F;*j7+SpgOv{ogQC=X4&OENRM%3J&B zt;N*czCz$?Rr;N*vrrmA1*ztg>6X{46FBd)c0#3_ieEJVRaB-Rx0FO4NPk`U+N=BK z)WQB%6Bge-eP3Y3%WEN~&ncFqI{fD3c~_pudN6iq0jAIz3j_1B{Xz2scDrVJj(^`vx8U5;f z-YUTHeSvfOEp(PlzmDjq<$Ohn64$w1Sx-kH_y&4TD zRKEr7;pOfIds*~AH@Jb>mGl&ruKgqXF8M9`fvMC zgTygQk`&ng0gY#I^K5$J$Lef9oq#19*ktH9HE1ZWNkIN7df?XNXIF$EW40A^#RgN@Q;Rr9NUA}#W`Wn8>q5LBMJ8hMcg2~A z@Yv}cy+*W2o!Bp|AVS6f46n`y7(moOyb^ZME>UK_X`fbtP%6mtgH0EaYe7}M3TH$v zFp-BmJtzf9x)3RO8G<`>aYsiBSL0-6@b9oE`?sa^a6v0x*auLxa2T3dO!aFjE(x#t z-1=q-pIA%FqjBivc(WNUUedEd%-Mx;2%EfI9Q4jQ{#Yh*U9c#r%CA^A)`d$Le6 zCP2@6+2=&HWd|!GTBYzVSuR5r)5n*r+Z6`JVM*bGBUPVMGd8z@$))G3Mm)M%VRoTD zt*CY`qff}mK6y=hD?|&QiJW3NRGEs=D7vtf(7O4rUT~}xBzY@6F0o|+c9W1DBnim} zBizZpd1~i})B7Q}Xg`UYtC1 zZ=}~iGkrs^E=@$j$1d*ErynVLH?Ci=P5i+83>sUW#NS|-tf%w@Qp0=(x&(tL&fZn4DH^t6BnDjZ zd_>Qm&8*jRMu#SOeu$+O7%rY{gloF<=4BL9@-ogXmkD&z@+%kX@A>^HEnE>)fXOt3 zCNNn-?=iDpSAD&vE^MQk+4m!34MxwOs~5ZVCj`TE3-Y|HCI~LH(X6gXh8Yd*z@&%Q zCbx6^_4ztw-?5)q!mO>;&%G^VBM3sL1@Lyb`5C zuuH}fUIQ;;dn(vebaXCblVBX^vWjf!_Sy0fYH!FX^*;f#urg9y@XwpG4p@L$5Uc>g zWWrJir^K=%G-Zy%a)KW~KfCV>y{}B7XThgN;7jO-fkKOi4HY{cf)sBORG*HflDTNb zO}lwC*g~F9v6pw2B^6qKYEJHlwp^iXohRk^*f56ozD>=)#;9{%(v98I(e5= zk`+I8oxpk4yNOY&@~QcgIZgSzxpORu?%)m+nocKE1s(){VrGJ})0p+y*-Ym&N!of} zaJseAp}}zTjq75y^pMAp3PCwj1JQ18yCMZWcU`u#d+P{IFsqKGTD& zlEW;|-s7FhQSk9ranwppyqVxF+R@R>&`h|->p8RudERKG$JblvWmmCHbT^VRv+bRb%f!m+<{QTrmJF6q11uIJ}@$i`Yv$y!%f<6fu%P!}-&#u6^7kJ)NSbgSt&w z%It-oI7?I1r{~dym0fL7#ktqF66)z^3R=Mez9|$#mZf?F`zryTE1A4c>^xxmUWd_J z&DYrq$X+dxOaYLAF7DWdg2y*0KF(SuUAfb4M#ANoYUT{2vZ7Dv^qtJ~3I3o+mC4jF z-z1n+H}P6V*49A%lrHoUlz*h4z&DY}mIqsZ>ZG@EnMc#m*QDJTed+M75Cs}rdguqt ztEC49|7PTB75FjO>f)K1Q*Q|2SE;9R(n9Pvcu4kaen*8=nm@-o>X_CfnhPGSLO4B( zJr9cluA@PifMe^M>yOsJyP!U~Nm9?*_Wq+^y$>ueGbcQG zjF8m(0kfc1buC)Yu)iFS2*CHY`zGY1sU9xJ_^`RZ1~fS$mIka4$n&aUp6kP2d>(w- zLS?zNB;D-mbc(;GCJQd~hj6aGX%$yNcVFiTN9GLf;&#u){0f5~+B-Bh0+}O^yFscf zSc=`-9Wy{?hRjIP_6M7B!<0Y}35AMl>3t#QQLI^(FvAU(=w&0Tu zL3;Y7#Hf_qW$E-XQ_LW;=gXWsb@L8PFfAd6mm9=DNmw5@0^v5!Uwkw4P~He}C`RACkwZeHp(sYb?n0N( z8urGndr4=1h{+TL5g#YMsl9ckBtd;^0LS2Q;mV}zBigmgD$#A2WJ+$fDREV#^XTuVnXVW zV6L|G9c6IMaz3HM|bSmdSc~oCbOHWT|kUg52EMaZi%H`}sBNZ$jkI*X^Xdb6G}v zF|0ht_lkb|n`RHu$H=X@R(gsj8h^iuqJksQ=TjB`v($cWSJN_LWUrw1ykE?l_U5Hy zImMPT@_GUT7vfvlJmlivtRWEf?x*tjUl$)nyz_bSv$v0@i?Qn2N+UYlFTn(UwP!3( zz{sD2jylkvv+$YWU6X8#Vy9?Y4Xv*v}GXe4? zyF0$Qv$L$=7Iz&rVwI9>vbUK}Cv#(Nxclc_g3TFioghhRJg@gw46W!-8M?_S z{Eg;SfiJxDYm&5->#H8Huon`O7>tPT5>ijd>-^|0Y%6wK$eLi*?QNKwa({BAlzFou zB&q)5I~Jl@x7&Ty2T%idr;)uU9qL<5>i_(Nw1P*JYBcY4GMCoH^x16JtF>zAId@S5 z@AUqvqV@*zJ@z)1px7p6IoeD3lmX|oc>&AfVQi2l$lZo;ZZaoF#SFh3%^XF zklv^VEz#PPZMs{)9c7(6(ny|=98NXZYnRt zuJ9a({d5ly5SH-_@?~T5urE4F$eq*ck=T6P?StmwvdLR*vcf@RWBhPG9qk+pvJtbF zU)$^phX(nVcx98Z|tVn%>^{q8~gZUs0*=XK5FGDQJ03bVzQnJeQ5ug z{{iqz#)SdDC>ExumWKruF(RA{!g2>d-+o1Drk_TnNWJHezwb1PxD zkA7Z2iUlhoAzNYE^0PtmakNs%jdwzKSNtr%Lf+u59x}Mh*D5N9yzD zv*wg53g@?!*q@w}(}q`S#2!zuH9WmbJEPli>)zt9jZ6pIh2_Tl-xV^{P@nhn(At5$ z9^bZ4OtbZ`3YML@GK+V$9)>avw)!Arviu-fU1eIwo3@iubarTM6Ne7P@I!wAgeQRd z2jXm}-R=JCrxEil+}d_U>fVQIMk;!7weO0X4jt0dDyT0|QaXsA|D$(k?jicCPe(pn z3n#7)P2W(xd8+@gAQxtz>5!J9?bGb`dxc>IZ$BKmSCvmL!SECcmA8MjyL#&s=YVg> ztI)TM&4D=f&@{3r;~$6SUjC1Orb^ixz>$Us+U9R9$HB+=y;rD;x`$f%?1UQ8w3R-~ zZY9t7^rn*w?_-1^Qo#Nx-JgatSX}_5_Bb%~zjfnAJ8%nu$Hz78QJmsFel!QFs}os& zEw6!#?HGsyoet>l>#GL(Q4DR74iLfe-?JUYfD0i_$?t9GGLRIHrJ*)pLnOOZGcuy* z3jz^WfZ=)-U}I}0fclsLv^u9MDJ%2Fa{~9C#8W&nBVbb6!MNJK3;{ zH^E1a0b*D9>eW_YOg|@A2&V=1BPx03`T?B_ICUQs=*O@$`^ow-hBrd9D*y?q7!9pH za6>pZm%nKVM9U&(1hlcuj~_o)sj86?0^pl_Ig_bW^`SQfN(AwI;+*&P0LWYeB*a93 z1#7K5VhEW<3^5=$9dV{mfegS*R7>3B!+Lspe;wULyq3o*a#`kq6%(7Ga*HY8zt>Lb zK$)*Q0k?6^0fC#l{ekj) zf8W`pa6hS7qj&PBRx;v0`)L(x#aZ5haOKlH0l&k{MuCRx8AIm_Vy+u@HN?QNPqP7P zuDub&G0TFEmBL{9g+0KTcT?1L$+OZX*8wL7fPteNp>`x)t=ub}nF?y?Q~)WuqJ8a@ zU@XOOekH{W_+gx&;b#V~2SQGfgM)(%*DeOMY~sAAEtD4|>yQg{>WuvE5BkK zvq7!~PrQL$zTU@t4%`h8HV9C5tbfh>2Dg++E1Yf8>w60iCx=tTiQ+;`v`1TI!_99 zGR;=E)oxyb1Z`*Y#ZV#C)Wvnc{m<<@MYlYTX<+UC#;pggGr-dI0(P=0=X z=}6rx*>MUU2Y~T3N|SYVxtX@Usc5@RpE_7&`YT@#w}2fgdRcOtZ_iY_zFzy+h5Hfu zBUUw6_@i=x=PYWw)^FRDF@VDT`aTHJAi!C{C#L;b+%bO3cE+yW%2^7xo7Xmg{C6WS zdmvLJhndZjGCp^McWpmEScl}slDS&Ge6CRC4V&K5LdMa4$3pk(e0-1_7j%%BLw8;b zT;a4=ovd8Q&6*Ml-PH6h(#O?%&xR{i`SEhZ+|>kHKqO!-P{Qbh6;;F+QD9Rqb(W2B zMxuZK$kNV#xTu^E!#&kXgFiJH%s=o$cbiSTdCX8Gm3R*ZaKxlU1&FeBi8icSgLvQKD&1)LeD2~KQEN9NQ@!Ue zO1b@_25iX^3XG%f!;pm-7NKT;MkZ@OfvnrF!r+Z74^H#kHTwH?XTYR6CQ8=Xa^lMB z4^QRK0DD5u!)aT*xM+37&!*X~Ap8=0sO+{+WPx=n?r9r1)h7|63Wu z|2f{0FX^jxWlxcP_xGOiq9Xeye#UVrNHen(+MWGj!NIGXI2{5Q*#|(jlx_2TTPB?G z73?a88}D#lJZt^w>>Fb~rO#$3sJonuPfDxVQl`}!%ot*%{v=D|@R|5UcRxq&Y8y)vR7CB%y`6aZVppx+i zQybM*WPL2K<3PJa-{5yJ-WG`TpQ`pK^asW&Ak`*P$4m#^BbbN`mYw>#kxzv4$gz1IySy`!fmwN%&2jdu1pN^rI#iKIsu%NK7&kd4^Eo{&-=T3It}Z0FF*BZSIsNJF_=Gs?_4&RkT%o@4Bd^--Zp=yAEg@MV zPlw$dToK$|qQ-uFFmn_58P@fK(qMwB>g!(h!ng*7b{PG**cZ$tft;6-gKLnws(Pv& zjD_#tnwXiH>0-z`rABL}dTNxyIEkv}0Oe=r?;U=lNCHm~v zpR>XRa%Z^DTY?g#JX?)pY#{w1B4`A?1&kTpTU5ijs_e=5UVN#ACAT=L2#E$^PfaW@ z#l*!Nwu%wp`Yx8JqpGLurm)-x1%hQ_jeR*>0y$ZoEw zdildjX??~{WAnnsMJluHsGr|0YM>AVxMJO=bP4)%27Z1XVId*F;9Eew=(u zT>L9g_ALZuS7t6rZ^!=F+ylm>HC1FhoZy&Sx2MxAHTU}Tgw1$dQ0vH&Eo$3pb|T<= zC``ythS&M@P3iI1$Pri}B%H+41n`)cNsTwD zG@fjmm26A2>FXVT$#UKm2*OLDRU z_qp@Hrx-5zI{}F}8GrOB^9 zE!4$EI2blf0_}=1x1?X~Dc<{|{!a5fUpB{bQ;*>@IV`G5C%tBSMa&0%Oaqpbz=WAi zF-5?cM`HOLaw`2b9dUT!!^KqWm8Yci*mD026^Wn)UUf+@VzCD>K z1ql&J{9D$`^GrP&2+a5|i?5^w`su98HTD4;w`V@2G*FV<`dk8&K^hep4IuPgy#M{& z@{Q3=2V;cPFOcas7_JDrva{>fKOQ4+d6dU<5;0FNzT)>gstsRYrA8*@miWu<>5_3+ z&cDmy1Ld^k^RS{&D;ulh=iIhyT}197Fzz8da(>?;E=kYG8B80Uft&%V+j0cfbF4LZ ziumc8fXHpVU-3~<3DlaAA@5mrDPml2A_XvqF5UTIi-VP!tJsXVr;rq86KFEly&C8> zYNskE@WRH7dC^zqO2n1P%y-Bo7Vto4KcO@C>&L_5!d1RZ(K2;zDNH|?#}?`z!;3G^ggGok@KitVyjpWQ!DxH5>=wbQ_Fm)O zJU4lyEE-pU=%9iesm9fV zJ|Y$ZcLDXlORY0`J1>J2JYvH`!cShe22&A|v{?asp7wdp zxJ-S|J)uZ{!q?O4Nm-WYz=b4#)(Ra^n4}q=(DPRy@z*#JtV*?mYi7xm3Bm3Z|w^Peg!(Z#9iV=vR)oup~E} z^~kMpr)#gsLFkEw`kqUVZ9qxCHnOxm#LmykMPM;BJgi1`wSL&cvR4xz0EzXF5s54b z68bIPSQO7n5J)2J&I>k-KF4lQwRlra-e<(2o27WfN}tYS*ZsVVUHo&O+IhC@tV?Ap zmIugB25BYuk?-%{e>C&fOQ7>!`Yblgs1QTLtRq}=(iCQ8Y0FXIF@yPbv-$h?9@q0M z-e_yA=W01XMTli-=HC)2cowYkfV9p`6;(xg>UQhmjRLhkt3G*KQ1E-7yHW+)J+i8 z!V5_WvYy3>FPC3vsO3&=@_;Yk=0Cy(bLR9-^d`>0Yz&B=94uX<`1tsVFJB!wf{?&@ z=vYD|(xWEJ3OEG9JM>EP#*Cq~WkL;vrLih9_i0(n!*_<^%MwMl74wp_>-|U2=7oeJ z)L~U+pMA@tNJ2ij{Zd~7Et@h`)9>*E=Q&c4n7lnp_TGSh%27`o=XPrRF?l#4{p9C3 zk&{Q|#`VEChy5zSjMy#OXwD<+S?2G%i7AVgK;G(EA- zYil)G^7lB|bZH{qxBJNM8&q-Q@nr6Q#)B)Eu2drOI@cC|>#45L3%s;IIb9OAh3r>`M*ongoSKCSFSLikorq7w>Tx4zKp z7QOJ#Wx1<1Ni&hTUod&?29f<${vH>3#k}4l+y|8$<$)hDOLt#i`N{JoF5;}l8VUj1 zR`FOuogdUD!dLzUKns~HuUIXX{=k=*1=gJQIg_>v#9om|_Kg>=pa3I|0iXOM=g%(r zXa9C7E2fv{(SNfWsF&8(dPy0@z+F4S!3~hVhN&o^8I?4jT-D*`;i1S0y>Bd}cnK5Y zqPG@O0vmmCJwO9Ujv%zff2j5fm+HO9ztYHgIUXzI;Pt4ue`a=OW$m{?txIQxO@H~f zZ!{DzD$ z9$zH75|=t*CxIMsC%Jpt6Xz!jmpz*N7l469^Q%1+4tM@YiKM_u4>MAYO(csU`|YK@ zvIGAefq3v&KEB^AZ!?yFat=;iOv$3`MVH9Spkr4W!fMbo`u_Y`#us>SgXe3cuV&6< zHy0<}a*No2^(2C*p&!;Hoc-5CDF;_{qTSg2!7Up*5(sA~08R|;%OhwcnSibWE8ZyZ zoO|?<(TeLSROWF6ao`RHi@v4?i1p%&jgi`)&f;^O0?9y&NXC!{pJG$}H}f6F>&F_5 z-3F#X9xKt7zuqA^Bf(@TOw@WD??5b4+}l}&rrR|zsI-C?36GcUt7SzZIUlz z|E^pB+SZF6zuWM@@?m9tDRr#pi}*v0N6N}?p<65BsQtQYMQZU8_$DVOdRv2h1!%oH zgz3#kwyT!$v#Gp;91gEG7S(hMyuaZ{l$&T3VIAdX#JsIrgcnD}Gmrc5bjmk&S zHu!k6(T^5iDH&mpiSyyyly>goDp2tzx7M8k`!KC{u5VCKewjOv_6mo z=S|h*r z!-D&s^Rx?@abdk2QVs*^VxipjLb-$1_3HAM9NPWdC7R{G-k-p(7h_!^AAp6+TOh+8 ziYqZ(g)6ONX1WSp{fDyMIJXYK;=+^)B1QL~vR{f-yZ%Q-Lv^GcNdBJGi7!q;o^yV@m(4OC z$+GEEI`r`ea_jZU46V1}D&um_d$PDgKA$kXxJjgz9yxw`d^Rv}rS=gZk_1_~S!brl9cqnSd;**rbdTLazk4dB+w zZ}-+i_+9;rPsZe^)4$17Qq4)&t($|ar!LC$01V8bq;V${ZCEEpn6mCk`Z0-1Ky54v z#OE?LssVN1qkVe+{sf&uy+fo$UW8Jem(YufJp$U?Qu{D&5I%1AS^2`mZ zoprOzLchtD&kA4_P4{=Cuyb+Tl=8AnO1)cu1xSIZ{qmk>igP=5s`|aN#$U9Q|1tm? z+}bZfDdpWA3yFCE6QdKFQmO%A(9e4L{)>L-K~nFIYYrgMdM3R+%RQDyf4@N~Q&s%w zl&zH{w_{^PqD_^+Q=z5WVeDDc?%ducxHUT*F8|&AYQc`XvG$Nsmsw?GT)%xC|BN#; z0>SvQV@yn*>gCT*cE0!Bea``7y!-#yyvKjg+gNAT$1N$_)WF?@zXL0|FR@h2>#urD zM+<_d|AMD4%O4ZW{x8_m|IzuFAD1FBtgNk!m968ftgPrzFm(+;cWpyMSlEfv6~Ate zAJsexW)g?Q#e|{Px(T+7C2;z*-NaDS_xHEMK3tg)6lmRjkjEGM7p_-u5s3Jn_1HS( zY#zr0l0W0jzx2wm2mcGY^LNXtpZ5iwVPnP2jI_Oz3c{kh3`%K2mb*L(d6Ie4r9tq7h5yhvgWI{cz6 z{+Z>o(Acz%5C72ZHskTd4?A>D>n-?65COcWDxsyW`n2-(J61TT+|dA!6Om_-*J>)# zGhqrIz}!tADmOW21;FYqC={ZirdCz5;AeG;TjDxnP)Z^AA>c#-pZfx=E4J5^BN)>u z9T22!wNs5vsxMv+43vvpgkm004}hZHVec&s_&o84eJHX!d-f~?WR5=_@N20uAD`nO ziyWyf6FmZ}`sPHc#wAENSX)?Fpzcca>KB>Vy4<;gFYu%EVx%p7qjwb8dV|O=V@Kex~v% zS5*z|O{Q1TR&d=Oo_HUz^710fcdU+Mmjeu!H}ie`JP1%Y+h@@5+k|jSj!ydf3g5p! z0k5>T1xRIY>?CNTYRyH&#fKTsV>GeS<#6(xd!7FHhNq|*yvmURzg~42NhqoUtHRj4 zI=4e#k~9i$WK(wt?p=CEdJJt0kR`)m>t2(O!p1fBE-jgI!>$)Eeu>knDVA`UoIp`V zEsU!jUAzfdF3~3FN#@(vT!*Rw=m5r0+~`>}&Tk$x)2ean{+*%Cl`)%=Cb>=k7&|mK zSNQu*GRm_yB|y`TAl$m~Xw;m8 zqymNZ-yM9X4`98p$Vkr?Q^i-yeaTn~0J;GW@XX|+L6vH8K;6uLYXR7?I|)eA8k`z) zTHYOjV!z$Jv6O1`=uwu(3DwBCqxHZDpk}1%J>-L_iPM9<5Jc4Q9!&fZ@Ok`#Cgi&LsdJ9?9it|GA zXm>~K3qNtjqtO7|Nl(yz%t33_OseirB{qmHI zSum#QNY6+93qwxo9s~&f;tAjOBZm`6{WTLlSYu`3Lecs^LCJ#^xe|F(&3o#$7a8De z>iJ6?*Tn>fMCzV@KnmaY`}w|Mqt#8)a%TZG2Q#QUBqS))#UTo}XBYx3f#j+xgx8=F z2m8e@$Z*vT2CZ>X5m7{Cwl@&t5a>E^9mh5q6`k)TWA6s821; zYukItD*kxT{K5W$t(vMvb?T(cJNi@fQY3W8AW?jwP$5lFolB~^yFJ|VRSrD#fc7(b zv$I3jp%rJqIZC^C=gy!T5I1@77*wr^iauB}8V4jU-bOZv-Wt0K!c9r0oSKPpCZ(L>X-TH;= zGAH*5z_b=R)+fuLSU*_d-aP*FX%KatuWc{j&#!;gR8_0-4sdL7!#LsXDK0~}T`1W{ z$OWJRN}j#TuwoC`;aRkN9nND=_^r{p- z3aTec)F_|gu8lL+-kMqd?NS|h&}d=|*w<>MpO?%W9!A>%UJOMRebV*mtEAtb6J!!L z@)Wn^1nW;DMyu#t08~i-2z=MM0)`Mj%}N#&=h~eL4-XN(t@ut?$E3yxVh)jZUi@g4 zWiwh|w{8*-@3#E{b^Y^^=f2m?U+Ac(Y+2NiJW~>oRZZA`wUeNbaw8k)tJrFPqNH)9 zbGn4R*3>d*RAbZtD%SJI**Z-^fdvdPEt>yW=avNRz4{k1KEk)BUAp0qV}~(YrC;Ag zj`mzkHMZ7|BdhxLNxx=RFJb!CNo{gcQQ-!PAl6mb19+g^*C4kA7%W@*mVq4E*Unq` z>4QC=YC!Et5nUC<6;cCsE*7hm<4IsrXzJ-BM&}X3!GsfIyLfS~J+XMI^hYiJX}FNO ze8MUw2;5TlCm?*mRn@@@l|33s_wHnI4A02;+$H&cMM75al)Iop-m(YIh>j~c?XP{J zIb-=8#3e;0S8Lb%m^wV)z6%CYoaLY*mDCZL9gwRx+8=-_k$5qBdy4uZgP%ft6LKD{ z+YzxUt{znBxQB@@_k7HH8P(B`RO*l1U!8NY=w=j4xq=DLx;|pa)eciFfV$x(Kyis^ z1Cjx!u*q|vdphA>(W^=FIqA4Ee_Ad67<~Tj(op)t1Ec^>%;mR>yoOfHzNJ>az7oWG znaRW?9{}NATHRmj43-=x>%G(1H4p3di~Ee%0PJXJgi^U0?D(St|J||!aaUa`q=^aI zyfs6MyL{d8vw@3*TzkxFtdBxX-ygUzCR2qp@-wMF-De1nEX{A=lI~l!qxpsNJ5|Vu zpUOPro~5;ayZ~hzo|v~7`rCkGJY2T~dGX#a`^2>$&j|(kQvbH-m%uHsC<^nfOao$G z+b@#mB&vx_O7P(cH)U~~ds9dnCuv-wIME$j?Qjs^=yS@xt!s|sBD)pP;#9S(a~adPaHO6N9$6366zSvV zMN{?YWdE6#>Kmy(fVm~Pz?&S=jA7+s?2jB*+gL^qzYB0GG5t)RQw%f$9e5xvEG<3A z03?B<43dEGZIEypy!!D%xYLKQ5?(KZ+&TB{OTd34oYyViVdC@iDgUi-kHwKO$oo%c zKfSWrP>lnoWMizCMi;DG!G&Ie@caFO!TlL4N8fET5XH2K$jFQXDZ~uZ-6|%hi5Pn@ zHC4{)jbSq=G5X4N_k}qSCknbI|2M*_Ut&aQkF`5t0|@RdnTwI8!I^W6vt+ooo&;l&R#*8E_W+Z^3gX|BcTa(w6R%>S?Of2=@0kW?B$9}1M z8IlH@4qO+msa1&t?mf@$+$r0PHV&A={?`Q<<>AwmJKwveYHRPs zn>O&;%t#RKyk<}mf(?Qls)eU5r5QF}5<*!-dzDKX0s#hNUBEXBwmDXrkLvXxU==Q< zdvAU@fYX*GR-y(o-Jl=A-zv17<F9?#a+P?#}-j)PsS)(xc{(G_q6Y zK*s-@8tDH3Dp=Uuv`K**14wP7;8CHUzjlocu$YyfzP_7>uf00HS|d)U zRq+sO=n`Y#;C_9oZxK{1Xu9)7M|uf0Zi~r20-a_v|#Rev(b^2KJ4mA`}?4?@CDZLwzvHiZE*t>=!>||ru#{Fy_ZGt8=iY!&FyBAc)XLL6Off6PjN|B zZo4gvU*7*!%3b2!-@kh578dAZuq)+vRu@=AE?I#pVsj3V{e@wwA89Qpj0K=)KfUQW&h8+cf$Yv+ftlxdk``Mrvg6x2wi_cz|jk7H=$m5@L=D-aOuo|+Bt$2TVpM#cN(EDcOtVp&Y*a4IE? zW)Ql*!h!59i7`!G`INXo?Nk5)|Z{jJYD1)$@}UG?CP~^E6auaaDD5X-Xv-9U*4c3 zq{~Z6-uU&Uy;*Ma&-u-tx|+s%10Pzc4fF`5$B&8OQU})!lucabV1Npc1r;T;-{v^E z1P(-5B>(j5h061onK?wmZBAra{J!{T-U=TcZSL&&6~&Yg`Q4-g$4_QProAZ z#bvA%*`LfS*MXQ`E4 zZD25Q%5NO&c^TZXY`*hf4j6r#qv-vEq_%J0MuRyK_VNw05enw>Rpa>nB{7o=*=oWy zzMHFM{3(APH>wGe_|nTVm@kn>(8kusA6mLq$y?R^{mArxwP;@$>E3*K^rhV6=k$el zItZl`UbE^bs%XGPogiX0(k5`5Y#H~vLmtTaZ&h6c5}E}wugONbbz{T9kH^Iji5oZY z!dOdU^;H6Aa`anAgl2{3q;Hd+xO&MKZK1_UsIRI=LvTpw2X}Pye}AmShl0rGR#s!; z2ma%Hi@@#U+RY*U`>iP50z=QS524HNxs_XFsy0;;2@>14ug57Z~ zEnB+8Z?G07#VR4)>2ZWLhjM>&(QE>V=z(+(;_HpvjO%=?iVa$0-v0XKjGQWN;B$D2 zDhU%{Vg5h_bM2$n+S~ttuY39@IQS6I?E6md(S)MV1JXvqg=uFa9ewsLq z_o}-_Uy7pIpo`u(yHTa-m3v8uzNoe^U>8zS4i>Ou97O@IkKw6F`_+DJuD%BiTjj!~ zytx@Rp^o(5kGGs4!-LeO1>TNwkM2185~$x|8l89d#FuW7rq-zFXbR21tZ#F?UyeSa z{K2cU+JVURhlG3huCAblPa{jyEDhAd6td<4oRH{E~y&D^aud~Mio&FIWHQzGwDPZZy7xG%r36;Ys@20$nS z*FZXGeA>vwVG!{>?b1N9^r;P!-C+Z={B%4}vqHgf=EB+eEltNksbZ+DVn^Y^JiGMB zLqJY;JLkPkK!QG~jka8}b4*>b6XWPyMb?*KSb4)D_XB9_r45ZSt#w8HbS}H1Ut)QklS{c|X9x`0j3Jn8B#$ zp>0gtxLJ94!unBfBYD@}S_P2V@xe4`z$(rZu~Xyc-4JIw)E}+Xe$x{)kN45q3|uXy z#mRHjqQ)VVfh(aTF=T5Z2&`Qf%5W%H!B74RqaG7B(um=)#*#wIx?z`^SrUEZfL&Re zQbFHff{h;;K->Q!>1;&4b?sl5P^#!5c$G-nH4d0Nu8Mlt!qPPAR+(fHA{`9CP4Dkc zq-{F3Vib4jvh%kh*bGS*7;DZCyzg8A|@WxEk2@VfwH7*U!$ur8?%?G*S&)`;? z0-jfklRhzJb!$aRL7Sx@WfNe$9zXF#72{opT!6l?l((n8WJRK;9|kD`P9yPh^--~M zJYtX_S-^a+mVhc3SGAigirmqjFo3V3@EjP}!g#licet=I7K^X2G6hvrU!x2o{o ze+@hM+JO0ZtAFaXff!%ozbIOn|7=V{nfDzgcMHw@AJDY^<2Sst^_*OYOVC(Hb}^5b zx@Z1OFi%SU!Gq{?#YW5lRGH2B<4gOW{MP^ccmK~FLGXE-L2+-nmwbA%!=p#D!8Q=) zK-de(5#BX4-nO`R0}!^qtCATPuoPnfB=T`ADO-VgZn1M|I@z6{LvUjLz{d;(G+XO$V74S=qIkims{4GG_#; z{~%haC)4&8Kow~exTFyppv9k_hWF!0R<6dvrrx_FwVod$Phaozb{;z8+g1|G31UO) z5MWs+y-Q9{cais@l`{cX8O(!aihk9n>|~4AYjaDKid$7zy{TgA+$+4(a4>QUa$3>< z#sJ9YaQOf#{s5I!-j;H+YQB~gFQzNo0NO4!YsEmCs;#S80#?icI%3GV`JG^Va`FQJ zi}u_dMFTsR?%Mp2BUs+>R@G~j_2k7bYklSBp4zg(3dcNt|AHIGAwfTZ3JAj?Y77Q z?4_ZdZDn&nrJ3t|dtu%Y_l~lC^o-n$8aj05<6rx*womud8>vMDnmE`{rs^#qDRbcF z=eOvRW?t@(uc_%Ps{WcC>HuE;d2a8|Uk}lV&z8IywECmvuj>?k2!ak)a+=@IByNtF zpfbEGsU7{bff)gW^;u8?4WglsyZMX-Q;y4KyPgLs&&oTtpCUnlUKvc}FiG^~7ngKW z_H&mvH|tnZ9f6}`xE`Pa3sj#z_ule_WjV3|MR>C=qNh*1a`C)8#!-*C{ZC0_x|jB} zu!^BCXQH&?L_zt11)}G5ubh!z9G#GFg~5Xo#aR-oMZI+pzrw?V&buhy8i_| z{1**TmFd4>G7kUaH%K~1bys+jbOYuG91)x4`FO`sYm7}rdYb&A0#g=J;1HS2g_U7` z-C6!n*p;CwyKpPN27B>>BPV^+aZV${KrrR#8p#J{*S!kK2_-!2wG!|Qv{h=W`4sSFm_scdKGEa-h(^)7@k2+z$St1 z)5JN`D8#AC-(Qt^|8JsUY<#>!P(TKPv<)*WJWAX>tq}O_#EBCv?uVF1QTYVc)4Lsa zX}CL-VM?Q@uZ+|Xxgs*d#uzVS~_njv_1iHb_?Jyyg)b~9uuWr zb036vJt7^hZi%{dc?jtKoj`a(i4>ePDBbfO+H*+<@vHwR)*Cx`eAklsb$Jq!Ssu5Q z%Px9E3mk{s5_*{_Y;n^S&tvWT$)SC{k-k&j!Pkp%-Pck7(WQRk2*y0e;bq_@@WIF3 z8v0^*JxZ`Ej3;q*spt zVOIY4RTZnmw9$iqfnopco94?MCU-Moxmfcb*VW>uchBg+PCE#af0*6-Qt-bN3EtDw z^V`i{V%G!(uq0->8n`X027ovyEbx+>U`(**L+BTx6&`46YCh@M2E762<;iC6MqWow zcp9?+HUL~Q1%Rs7;GglirAkTg+zI<4#3m@bgPn1X^Khj*{{E-E%*7RKQ&Ess%njxP z9xw~ffq*bPaNK_aZlDZWkCBlP4P=9q0t(@m#%KXoY9F=?=m;u3UjBl!mU>R>GA0Ce zoq)>*#{@50W2b_FEY$gXqGWtxq7%q#646VUd3M$F=e+v=scd!wm z!imw!JH92O)dlL=bH-Rwz@*y8(;pop~X=J4S z>2c}$4V^4{*egpsOS7NiIulU~5UAhi@(WUL6^^XP2{bk|s6UANY?z#3e~$jC+xkeX zfY-LzKD67F*J!nj9+02qnRY5CCx?k7jr4_ozVadU0jLLGp)+P4hJgK?#>1qoOJMfB zK}V#||Ln^*Y62p%Nr2zW({8m-@{L~Y{+AXYKh6_4qs6cOtgr#N{Z?_1F2$rcRySv{ zRY9jr3(Sr$kvP>sWsXL!CbcUuoOw*N(Sk=ejI=ADKMx!}IY!Uv@9+1pfeIoEmESt0 zP%-C+O6m zRL@-lmxe{Z$ge&N*Q$;h!1WxiM_#^nIR=FivH+Gr`HlSSLUDfBKtJdSc;^YFhFVJj4zh18Wd08zE8=P z@&Dzt#xGW{q{m3GKdnJ&LGd4yy95?7N3gaa>&O(Zz8MrOo<8^tqZb}t{j{220}3xet-{*LMliB5Xfll-Jw+w z%H%bQyayj8d3U{u+?r`5=4!@RCe6Ih#lQ7AEkvo>0g;O3OiX}SIDw9Sw+*PP0|1W^ z@2Xu+kcFkpJWry#lkfIaU4?{QgADLED*JOj3VVZ%xRS5F|984MNV(FOe$8L@owi1$px8Z zRpVPC-!vQeVbo8t>DLBjHM^d;YC7$5T4JP5d^3>NO0jxB)q#m{wk?_fEA*i%E6*0c zQ!s&zCgq)RIwB6+jwS3sUu=ukuVh8(rG?xw*g(BTVo6kFVW0lh==Mlvijl<;8V7W( z=D8cFyl_?d)55alp3u37w~%FckSluAYo^nA`ps6Kbgzwblx-=N-M_|4*x zWp|#~Ol1}4^V_lVcPOm9&dbZ2GCzTSjF}Uo?(a?W8JP|43r0^FH5fHz2pga+sfqYw z(*lSK+ZOg8Qm&2!7a@;{|G$w|y^C1!-S)KxOx z(jT#;gbM`svkZqu73s4IPrH!>6AMiV^ef*finu_6>ZH{dT>Xq?7XKSLJ@_us&sus{ zjg}${WN1P2d@V zMYpx0me!h`RH_1cb)9m3UR(La3_KXB}ICUie11o@!rP%B1% z=5|4hKhQOLq{Xh}#N-hK(V^L67`7_$GYwgxfJx#oZjJ9D3$m2A?C zD_5tNhE#oZqQ736Q|+1oi#3m;>-Pd^D)ND8-fgTn`s2)P6q~w1{)7DLC#++zx7}n@ z@=HikKJnTqKu?Mp3Z`7cR=*~U&4i+>hsO0^boOgl1%_Je{gPEpVYQdrpsHm?yde4K z1ZlQTl3yOJI83}&$bW&b0<=2|1X^}b=EW(~q|Uk@NZVJv@KuM)|@#oBCCF5BPEJo z3=<_wTY()~ap9cu*)iBdoTkjzulcaf!CoHr?$MF1dWE;fyaK#Z*)9hBgm~=-e3>vA zCVLnuZr}&oN{Nz8Q!YOoU*A=i8Kgdy zb?ohE+fy)YGwsEkl)D+Tn;%w6@wUt*n= zeM*yY`S_>Md@r4&YlA4#BiUM#U+XE#%8G~u*^IbL{TWf{2U92ZtCDjeYY(DZw3>2T zZX-G3EKor<1(cDIt5d1T?jNghLeHYK=g_9?vBCv zPqlNmo1Pc$3O51#I-9n%Gw04~`ld7P2j$KaiUJGPwUTrwvl!53_Iq`8KPliKgrbjl zvq&LryB1gpD!!q5fg>HCd^97@Pd6A{P8s7CS@^qv`|S_?Fmo=@8#BqfGy3#0xhqV? zr-OJRH~zMY$Co%wJ#5aS}5VLp%vPd_NeOG zSBW>bDN=%(8AU;=w%XFiAqGUHaT*)pk$xU_@us*zTJ)2Ux*Xw)*WcxRfyObK#a@WS~g(8z%wKpNAwrLZPXBcU+fMQEtkn%RV? z*I#|U#zk?)6R(B$rv2g!zLBmKw;vh#Yo@)9a2d^Yheyonwv_h=nHrTGNmp5si{rZ1 z*&L1I;_{Ng^TKqsbRt#=!38np@Wp4 z(F8qMYF^Y8J`ib;Nut`$FVIYHp`b@U|I z|Il(tRBf>`bw$9mR?ingSG<;1RxRFgQHoO^2>;iq5g)PfO?m)}|6y8R-bR$0`> zZ{FqYwu0keC`>q16`&^0caiTQ@=qdu6ivVd;LMQ%>jivFwYi)>qfFs_BgrdR7sI@nOkr95}zL6TR(K#s{_n#8AGF;lL+ zt{XMnFUH~*w+PnzR~qvvmlD>JDBfuP%Ye34p{ZvOl~==wE6w%LM;U3SX<(zF?VsDZ z3q6dqaqVd%!6;T^)wqk>R_*D+tV)!0D+pglk)4WI*~mstX8I)x9XoP?V4KN(I8XCvDDOa57vmqbd)fxuVo~-PMz-`E{XdJWElIs8^7(tAtJ9(q z3$Ep-d(WS&IqFou7GEp#c_Xkj#~GQ{y%1VmNlh)vI`hdYMEhxrMpH!llTVz!H7k#y zxwx87)4x)s3E(tE$KDm_7;J|sr&)x~juMWWzw7WdftR;HtfFdDjAe^B#tU2@J%d3+ z|0Z60?}lc3u6uZc{e^ND$|9q2Y9=%{#w?gK5HfB8_h@%SP#$8n>Kuf7)wN^TQ2a5_ z-Q}FjJo(3bWgoPP#T(JD{WxL0I`*JGU5LT$jcmL)`;gzVnN3~HjIx8ikM1)doA-K5 zrK(CM>dv!PP#$2kGKJ?x5`2#L&85mVWpbLz*rQhUO)ubBAAOJh?A5NxuN8`a+Q<$I zc(hAeH#4rRIrLaGw5aQ*i9IUUX_OdwDQtVpT{iicI+tmYAqtVj{}+WqA;)(4oIXG? z&!S~6=9W0I82HE<3q!8Z8?(`Q>O;^^S1XsHv36G^{6fobKEW zV^?&x4#C(NDZ_ccB%QpR*aB%PcPT{G{IX8|$c(T)R3lup5)Dn18i;5yZ>sgbg$lpr zE^G|FY&`iZ9V!uKO@n9o3!+wS7$|&My8vYw4k2(=(ASsPiuSC1ROFcOd-2@bk%)INb`{)h4f@ot*HP}g!I!mYPjl*A zoK$qsZOVY=ucph5;DR^J87VwFUuti1PpybWmlCD)ruk_{2c^A~x@GT@>O%>w8p%;U zUWxwuH=567H_mYa&K(yeGx7O=Q=tuOf58BFo}B_rCFL0Q)l%)V+KS zi4m39-Xa>JV=%&s$!6z!5Bm^aP#z|%NLj0^T~^1b%zn;&vYjPNf{jC1RO9X=!@F4| zrmxT3;0=YA{F>RH=C!(;eEa;c$zQlFG+W;1XAb?u)4DoxT$Jf@O#up# zc%w>=*S?%{t3JZ6k<@ZRFJ>M3Rv+E5Oj);Xj z>=JKwtv^Z|dSyf(Kj@>pJc$gP4a~Q@T)!%UN{uK5PqU}5kC+9~ZpqH4kqI@$a~j;tbb~SZtrgRAy3^@g>S&{)(Yy`&_z!72L~G=p%I#vy#>Vn6OT2 z0%@2VDFtfz&~>kz^JeZv6K_wnFQu-44HhkYupVjMwKnvp8B7jf#!Lp6bc9r{h2Y+I!KQ5>+bR@LI%83lg)#KfSgx+ZrNR@gIIXe zdcUM8p4`cbC=|B#=N699$`tjDN%QUXFC1tfYMJ$?{1wc+Iy4+mKH7^l`}gR-g~Sfu ziV)Us^eVbb4n35AnVZ~f%5#}4X37(+CfpL*s0^EV3{CH4H?tBZ8luF@E_>W%M+WA5 zaKGffwC8bs7f`LLXG$snXy9{dU6D(mg7gu4b@FU)p83QvqL`(XR`_9F54DbitxGI> zHZVd};eQJ0mtVYk7chficH}^C*Z;h-;NNZr{9k`V-tgZq>xRdCFLV98=E>oNHPpo01h4Go>Fm|ZM4 zHKU0X0s}1wAO>hI2fO&{KjSG=vgFIhJPvTf{=e%G{^vc$fBOh0j7Dy1z@UWFdOBt0 zC}rCu@m|69tzk~1;0CF4|#a_5$+{Z zg;+_wsY~xLf^okw51BQFBbwN=iW;pt`o=!Low-6C!dmlJq*deoxJz5A!R$=@!-f2x z=&b(Rf3@0wySw|fSaunN$+00O`HLJGyIOI==EScsCYlPwZ)Qp%`U=c4+&jo2#ZVlz z9~3DKPhj*Zz{T`1BY63(Rmhh}@6B07t*Hqc|0Na>7#X%rD`~=l#&4Z)v_8m-wiAdt zZ6`gv4hMB=yRW0lAf<3;Df%)Nrd9)lqP53ELcrO{%smGA(h1B{@R2RfH8tZMKt+BO z!5!qN9WRRKciqGR2n%rU9zUs#crT#U2 zq`0hO-hRm#&54=(*}>>zlAMD!>22JQ)s@kmokZ{gNSGN95=xukQsZ`;PD2r<97OaH0ZbD(<2M-Z8CAm13Ec(VmUmST-F+Yz8o zExpKKwsa>#c2kfG!346~gbqtEiU4CqCxKYiM*-do9up7bGx`RA3HF3ZrQcebkMsQS zfcNh9(LsQ~K!6Zp@2z!7;KIyeKNI*eZScKLVf}_XsAPkfGY~4eASNZ%Kp_>mDt62x zK&7(1Ox@*E=mwA#knr$nUF`xBvj49c+Y)#84e_3+Gn^!{J_q8oBAD-vOdk5j&$cCU=I+4=#+y} zCRx1B*DaISJ48}As_2%%m>mTYRbfX&_*SC|M)ZSj3T(7JjXF}V756uM2#>Y$T~asc zpphDe62NJC{NpT&`^!AJdRQO>vXc9vzT%R5w@g3iV449~mNSDcfY|)?2yfqdiScDI zU^rKI+!qwq3)CZi-t+}(Y~Ptooiv38Yu|CdfUzgx1-3bNp7@vnMq}--ZnpWLYNR~* z2geTp35vV<^XZyZ#8OdV)uo{iOz`$d$O2Oh@G2n4%d4CT$cPdYX!FcxTFg6?cMI5R ztg5|zMiazreiHOXJ*WuVFrv>$a4XAomZIw&bB{DNHRhgnEldw#k$|%3vH=KBDXW_o zEo#=~dA#uY`4Z=lgr< zlP;{o9@K?lc)J|tLt1xf9Pq8*0KBH~?H>sV=9bQ>4YxJI16|2~`>n<$kpG52M|(Ci z;0Nde#Q>y9SUs(@bq1Kl-3#m4d~BGF^H&j>(AxkY?as9=hoqWM#OOuM1i){ag=LM@ zG6v&Jt+)<8m{8j41Wb`14i}F2+#weN-g~F*m%Y1%R+#u&DTBRvp&Jwzz7*XF6tM2|tG&SiaEO9wRj zA)gL8sxv?EX0Y^Cm=;;nzhBoI8gh*;Wz2_MCD9K${yqcepGcx@&8i)6K{s4d8GI|B z4v1eBngc1;1FIw}0dJ~9r9&H_hpfBzqDH69MNndb0j&Sh$H-0s5#p zh{dSCYCB54K$j+Wd|MRR+Uu)@6iK`0=TW$8>I;F}8Z_94;X!xlz=&#wql@>%upK)w z@493O0l44KEmohFzouMokBPSxYxpUa6r)2Ms2u_%`c~)N3fIvyYeA%Wt8>-S^ZjoJ zv@ln>`W#(a4nyH4*wRSV)_H^e-U-{@z4?+!d>Q#F+jH0TEC80&V#pg|g#wZQZG64a zi~9CJHzkB z6;I1Y)}Pd2eFgJ-lh;JsCv%dDisH@03f7bZuX>i|1DRpctjJMV7JCC@*G+k4EbF^t zjBZ-8{9HiPY3(CkaYPyO$m%pH5l>6Z4X6HZpqu~s<86(1fj0(%I*JOk42cCx*yiSD z^&L=u>hms0?^qT!oLAYihkJ&Z5kNv2kb{){Z!DBFf~7;{5m?9HeVzruu@7@bPR%yT z!d}~4Y-n`wh7-;1MRJI;C(ATjR>~(%e*n(-PMw(v++mZK9f8~97s9_l36(8LVy>)D z0rNq$o6oqNZ^du@+i{FFcB~jGiwRh)-&uj+m$EmyE?D;BjBWVJ2;OacDc9^vQ*LNV z@4s=UcbMSl-K6NYsPeWiN2Z2mly@?^JpUcBcH_QMYsi?&lJajEyLcmrux}Jcr%)8jk3B7)48Rsxv++(}tv18zAcnWRmrTuBGfUQnpN&5X+g5e?LjmQ2J%)Z_xDK=bDJRomJ+gPiY&3UAa^o@LFm3EGaM28;3q z_yfhyAfjS)d`B^4WcZ_eYO0ibADvcJJqp{t5j7ByaTj=D(*l|{S3P~?k0k7^qFd2y z4jet*vTADWC)LUq!jyBzvV_8pqtpTB^FWn2!C%~|SZ?*&Wj1J)zwuZFYktrBd+dy- z?eoOeNWm?)?*|6<77`GY<3g+^Z+q*44qyycE=pIsx-Ir?1_5)gd26ryA_LHIEdm3L zrH$rCf|T`gb6i?SgXN`3?~roXGQo=%2`)H`vc@m|Hv*O|a_(@+v>S9Bi))UlYo|kN zM+wNPeR$H|O%VD}Iq*VJSP$C+)IWRcd&;zxcYkrDT)Pq=ZCk{EyYVd0=Z{~12?zqe zoUv$^OOw$}1Fv~UpKTvZ*8g=d4N!6awtoB0V;Hxnl^{OQ)MiqcIbK z5b(UjBukQmcE7CQC4{^1V`C#WMK%D)koW$*8Fmmk$5UVPon^)C(tCpcjJ|xni5SyIL-oc^Rr}9e zWy*O2Cbe{de!`m^WgHCK2KF&n@3-K96|pCdpZ%wT7z+!fMVEA$8>9iIvQmwBTYf5* zd;Zex_Pz$N+cA$@|2t)C^)`^Hr^EgFbRulO1W%c8W208D!hdk_jkQt3x zFvfe{a>pH?AJfc`Pv!LQGaI{|>GCaPW95SQT@iieGA1i{iBrLR=4F)R|IOL)#|!fD z(6fKu5qs^wS+Y?%R7q`@7wS8I{%9||6D6QW$#%7ww?l_%=KeWY(aJSsPVkEjPM1ZMn3SH z!LaA?t^dM){jVy?{P&9!|GP?4|2xLv#FwAU8T|NL%eQYReL+4hF0QV%3xBT8bH?Ro zp>IN4a*9>s|I`_6S&uw?MqCui^|$A8xi9$VZGSDZqMr3_O>y02<1jn)dks0J)_xzo zFp@CEVaS`axw7y}aecS;BcE`=iQkvPSpmPWo|-xZu3CF3$FptJ*3Snqe~M%W&pBSz z0pj=$$D;Cz4`R6dQP;A4R~~WNoPm8+x7dx3oE!AiE&JqHQK1!As(e}s5&?tUQIFnY z{ta)!$NC^)MnQVo+GQa%(!?FP;B)FG2cxZf$!AXWjRF_2m5Q+wyNgv@zTrhBkemPv zCOI`s?^M`_YeoZpPn3OMyITLTx4pU5?*73VPO&gb(1)n!mKyQ?Je=>xV)AFTnLOtR zN2~S43gC_Yy!gBat@UTY+Uu*jy13-^3jG4&ZLKeM@Xy+%wg`m)VfB^w4-9$z#n4%Q zu7tA!pU6gE9v!;vWX*dm=>+o!ajIGWh0eSmwm4}TB^#pg&oPe~UbviEdhz#g|Cbp3 zTxT+$-#;)}nSYMBr|!?Jbo(6egQm%iB-+tOC42f49q?Nj^|;qZ&*0(JIMxk$g`N8eEW|Ar2Y;=s#&c z)0=FJn2HD~o|)0|ZqCpcbi`DcBqBfjURqI^b%|vy1Vx4J5wqgHcRk&6lV5!q-VCLH z`@_!sn_sKr)6?4v4W1Xyl0St(cn7D;S#k5f&wJ+HLELUJd8^wIyk(pa_rdVf*S}50zBDyY*8|9uwp#?{%YLB(0`XRCq0* zukZxC!&16)|EjaAyJXi*zi~PF_;*k_5y;*0-*bYivmh>otYzb2GGr+-TBNPbA2f8I z(YEp7K(Mr9!yWnU4%fkcLH>e(GJkIv7!~Y7pT(}moxyl3hG%UPd(rEPv;$H7_GF8p zCzG6vp>-Deum0I5yQURC;5!?2+d-fA4#jzWCrB08d*W$jSrS1m0{5&=`I5(TAM!8H zq|l3+BSbF=w+s^VZ8NajU7N}qb=dymoMD$r_@=kVsB%Vaw^Djp_jaIq-$JP1S4gRQ zv?Y9-P+kf;EAqaRD1MvaEWf9gMM0}SBWTGh1dB-Y5wT}h)^}TlfBPHm=FUr-Ap}?` z(wduS6G^QewM~mVX|%HXQKyd4RqX&8UVC^!$);F*ahFd3Gv83FTZrJd*?bzbl3{`P zd4ZIuZr^`lL5IC&epe|SQ5G@`Cn4eXtu~dd4vIl3wHs76Q7I{M`lj2RjbS$fUhhXm z-}U7j=voXAg+ba3bRn7aDU@j86GjHBW2Ev;dxD2OKN5zQ3UH@(veR}uG2XxWmz;~J zU1Jxkb4@k0wY4i+cja1=M^{7oW}~K^+v3T21lahWeG-?xp-Do=`c+4I(CmCGq6u}t z()500((p!)t$dz=*jmWY8hF0jEE|+!-x@A7ul-IsEpuX>{EP)oUK>p%kxy`3`(oO0 zq>U!QlksR8={yfLocdCQ8D6WFSO6W8qzgPne4RvL<5#7JTBT!K*?r6zKl@O+NQ=$w zn--Pu`qN734mJ{I@Dj-`@3sM2SuH)aJ&Bw#x&zC?4rZ9w#YoSU3*c#Obb_Zm-p&3d zd}BXD2qU!}eoF)Kvs*w5QOo-D_tsH`CH7bXFH6*=56^JR6f~we&N}((DEHiEv*^UM z>YIF)??+C>NO>Z(I;l4)ir)*2a|Q>j88htDyIV=Tym((nhl(FAA$&>HpbEjf{wKFI zuy=6l9=N}X=!9(tW>Tjr2P51BGF9yUz7exMJsSNnC?I8 z4J^=5stg-|7#ew6Wnzs@x}Jb2M`;;&t480P_t^~&Nmg86a+a^~3kulnJ7@C2Av;Ja zB$8hqYIv>t`ke2b=K*V@YqL&EaVsw*;+7MoX8tz0AU-HAcfoUbaktt#lfl|Y>y5FJ z9@&r&7ADDy{k{#L9=E%U0?{(Qt1h*^(dA5_34U*4xm)e_a#b|h4px)7`SVxaJcG^0 z8iq*jMJl`Y<3D_3Ar-jjlp%-a!V!!Dz3KQTqk8M!xYPHv@ShZiEY#v;;HDy7CNz2H zTOG5`wQ@M2HGWwCETRBP6!xB+ksQM9-o@`?lFS-((ed}cY$8iHa;{%~KS*FaM!NQV z9hAzq!@F52Ex_=y@Xr_{y+WhU@MFAxjNrnVm`xvCjBrzb69(UJ!NF7Mf-kiN%lU)v z((}{s&25ENXXm`{GmCa6W3p}+2b3}@-hX59u{GHfJVgzAvV=-*SX*{%99Vp7!$M%Q zL7K>~ZM!bq!`B{oH{8)=7&Wx-LS6C8hV{UDLaClZlJZ*DJ^87l5)T;!pRYVF`4ZIC z74MDB>eYD$ayr9>1~UQc=-XRZ&%e8i;+>hc>9xBVHu#QH%7L&pw6{w|U!CY7=$~Z* zWs8N;H^rXLp{JE`RGXChA$*E$C+xEKaV%R76W)?f^mhBN4$u&@A3PD?LYn%`FOzV_ z@*y4_wsEZ{Oppe|QdRb?b>j{jJoRZVij z`^GNv5C43~2y8P6aHq3McR^Ykkto*%sL2?7H>n-6VuSbt~!8I~Y+bQA?5OqRj_XvsRhalk&?p=jI(h`BoHh!efiKG% zFt-r$D52d1NUgRz$(_}!W5p=-;0yL*@tlhM~ zu%URODn(35X#^londz|P;uo)4QjfJVT>cEqo~`G9wygiQyx^GH;)>#NUY58k|EITB zXb%?smP6P4pDpactnyz|qMrY32rtN}%uatbI}b6)pYw=!3>LCy{`!NePg)oha_$jz z)2qHyL#WMv25y#rx-JKK1l z1#5ZWoddOx{np_bPaW^wdkq{H0KQp>0IGy?K(u3axY#h(_i=%t!eYPo`e55_LL3wS z$ZF1NwOIxHKVb6eE={RU8C7{qsmQR;FH^JrP#ic_-Asvq$_9%2+JD`{=Ch(dVT-uT z-9++R?qSiJhE=m7GR4o;{ya7xJSX$apZu6h-}8CzeJ(MFDcSZL8fL2m#&gOt|GLGW zaeu~rDy7Dag4|f$D;msw>TWG}Z|Eic7W!I#em<`jo;hTX7x#($g}Xl5`26qYW5M1Bl5L|-0!^46FcPB`I z9N+i?a1`XFH6ajW5CTE{hk^VA z$>h3x0wCF|E5l^|{rh)ubprwXe*gY`eSLj;dKw)QM?pbxaB%Sc{rmg-`;Q+#Qq$1T z($Ot0E`E!OI=lFDcXu~6HFbP;$;il;aS42BY01aOx2UKnI3#3aW23UNa_{hD zd2Ky6H@CaH+tbrCH8o8{`;&d$z`j!s-$T$J7CnV6XD?jQ2;@kc~P+S)msUi{hG+M1i2tEjH6uC5LZ3lkF) zgPMfS%*=#`M~sY&Z0_vMAm+uz#e4b&*4Ea3)Hg9OFvQ2l4-E~)#KzCfFI4}izrDNn z^zy#Fy%iD?DlM;CSX^FR-<+I6*xTFl@bEM=wdNNV>xCCX^a9*GzD}>~lz`;{0fGI4 zBYS&$Ny(`KE~!^HcP(u{&CJX-g9{pl<~qB3=jMNH?;UhZF8%E6mX($BD`=MZ`u*3^ z>TA0=h+&YTUryW4PS5Oy%*@P@#f?71s)y&-PoF;R9G%Bjc5NJ-rDtRjevH!7(;uIh z>hJGwYHG4eu8t_{5ET_IXd83R__4Zs4DXo8Y8*FXNqMXYV+-zVGqX+y0YNQ%ieQ z=a^q|A%s_xP16zwM`#KHN#RtGmV~)49?nVHbg2`|{{HE@b|BV=8=rKmn_UfwJSf1vk*ZEfXxEwgiajtkoic|!l}X5wi7#u}o}e!$EN zDR-j*Is&V2iji=8xFNW)%xg$+B=-Mb9(9*5ck=g+N7H3M3AUE^CQT{8hp70Z2s-Nz zGP#$gjL2`QF#UO}D9))QUIg=GN}tTW)`Kf+IyF_o8veFyiErcu^I6fW;0Vx$!K(K3 zoXrdQ<7fY*RKkjjH^|s?de}3H_hy;xr@wr%v?)mE2xdw9{8uBE?e2~*^2lab;ddQ_ zwxl-0-mcuP0K!SG(zW6`_o~f^KQXImazAeT~nQxaZ-^e#*$zr1x6G4gMhnQE3=#>`8+<_OBA;ZJ%JmK}XCYiW#Z0H+Qr%{RE_TOli2amS8 zHl;<2-gv=;+~xNo)$y(wW_vE*KXB!$O@oW)=r@>S{&`4!I(g*uotv+8#6N+?2;{ZN z=4RhMsG_ze0#)%_PKAvnsui$|wpL~vrIO1)paE5NlWq`Frl$PG%J+;XMc#>`wTkA% zX|6yR zhSpn0FuE9M#%iHt4|z~Tyb>%80pad3rR>oA@ETdNhFqKSFeX3^`+JkR%TCVgq$GDb zIn%L}c13XNyI+8`4%y7P*SC(nn@2K;m(^OqWojukA5dun{boJYnG$Z7QcIs_Sdxxu zcBd)@RH_k0fjl&IjeafE85FY83HXlT(Q7fY+L+%RJ~v9>6Uacng_S1Fc#h20LjB^SDaQ)co-cmc<#AUiXAmyVQJ*2`Z0L0zoOTnSR zU48F`4;?oj2SdZ{V_QJbU<`ex`^QqF5wg-tyEo3}0z#i}M}ysuGFh7mxvJuB4()Pb zv$bW+XQl4pUE3u#XRuU!wg6M6f_j8mKEtOCy*fSV0`TQ2!wN;I@J=B557&cHni>itd#Hu3HfUn)mhO{ z^<&M7%X4JP|Ep9XXuAO+(npsq!+P(|t4RNX)=iB0rzSA-_J5y@^B~KnCXXo-Gtlo) zO5vr5uwE`3FBJ~>aQgxjE*XHoGpZoAD)EHAjRHaV3yef?v{4v%AtUX&#X`LC6=Was z0fGd;AxtN3ocWpaZ#^YUHsWWy1X|+a(CFOLU=F#${Xb{VPRTLgAwEd0NPVM}(44!A z9PqIcCJKE&{`x=wW=~A8ko1apl@}~3!8iu@k!~r;HHUf5Ln4A!4{pjW3LRT-W@_TE zkb0hlLeYKPdZR4p+rXEc_MoECUZpVt7TsX5w#6Vf#1Xg4*fHGC*x~(1no?3^!&6}l z0Mam>WJASpSwyQ(&6YMWG_jo0X^<61zyCr57Gxez+tE6Xm4qY+Y11I%SibugP=I z5bZVsb|6zdaw-TWRtW8cDfvF za(`|q4BY;7&JCg460upI1=zxDWTagRAsUTsqMUI_E7!@&i|Q_zKQ2~xEW*(K zt(*St(WnIypa$)1dYX{>^pgC>QqUql2(>OSIG@b1ncW%|<+^YBTP1n`t)E=;0;5M{ zttXPW<1!lbMrMj{MQ#Im{Cas>zOl>I(maAuEa8xX1F8J5fr`farQQ*A%_#6K3))Er z6(>x=*7_af$e~Y^MH@rmxY{0Xna~k0}%B&_>SftFzG7ZQQ*&STtcQ&`Db2<*Dh6 zlcz5)+^h4|T!-I|jZtmTU`T5aKRm|Ime)XVl2C~mhV{D3KIDHMdB&g_v0LR zgpZ!#2sC@Z-BM|q$P@Ed5 zbZKfi$uhFeI!V))xfYflr))8NazE^Z;yjTBa2}Z~QsO=;?sTc|8Im(+Vo4P`zc2a1 zj-50XoIBOT2@@s@sW#{bao%Z=_uqaDHH^iwZi+^I<}Ya8RBMXH*rZhwU>+eKA}!48 zkEX~HOe#%DX=r$dzrdX=23Qvuyb2f2`sey`t^f8^tyzZ?lDD|#l@aEjcNbY=tO}fp z;B{zIIkuk$muPy+!YXs`&NzRDflM!@YQ1R7U}^*i7I-^ucTVn5+2QUpiB`EYx3_xy zWYV4^$$o;Yi4-TOOrW=PohTrnp)JK%gFa1Q8M`>ply>%Y4p8vB{dLj&Ql2KPZb21Y zrY@$$H8-6@P(;H;nF{_haE7ptkPW5FX)HchTFj73+0I$K@IlEX{E2Fa`)7?Ra$}ix zbetpw7yb+SSf9bcbU6*)o0)1pnY{^}!e(h$i+b?b!DR|)*%EF|>U+Fw^Vsni z^T2h?fmQSKA8f)ssbkC#X<0TKMi^cHP*|`Batb3>`?TFb(gNT z6V)b30Y#TH{i1Nupx<=S)3 zx2K|~6=$RqAE-;*>5uO*|Dl(0O5mSUvS8x}z3s+#4=^i{MRCCVEBtbB5swY{s z1Xg(fN1O3a+5M7LWFxv@6-u*-+?{t<-E*{KlT^xEFhu$LRbLZf#0iWW5uzfLcO22y z)0o;L{x*!c`mg2oRgc`s_;9;(w&9|7vjUa3VP563A`B@A2Z{(x=XO-f*Y?) zb`Nj>rzkAg&wE4aM*W6^BRes&&K9v-#D%a5aGFvD_fsfyaUajvmf!2_VQ%n$)r0>H z@+lYoVLXN-^Q6>A-M?xsCOrFP^MUffjR8FQIBP%fZUn}oji9#r<-&#_s^LP6C5^x` ztT@v=ywCA0&o8`I_u(OL;5?S_W_dnzQ@GBVJl36v8&rAjc55upsRUk;ZkII)?0&zj z@zvP#f$l~vd(OjOGpG9tYo4i<)jnG=5yd&?8r5cb;rAWlRxZvIDi<##kb$hI{O}ZJ zWXq7KT}g8T!=D@aiGY8(oK6JYG`Xi<@`&nRXg7pvE+;sr^b4KJLpus`|H@&aZG*S% zV|pM~F3N(`DpY*>UJX&R!{=+6C_Cd;Bw91rqRIeyTRtEW^g-L|J27_jxA+z;eY4Sw z*H?Ix%_KkREq`>?$SkXsS{RVcz_w&|oY@c{298HViF1^1vub{VYHxi+A}o~TdRIb1 zp-A{$Twmz>^tFVbrO4dtKFN2TTm{Vs_J#3xZ4NAeXP!-RHaVVcyuk`4GeUDYb%74> zMt<8Z(DAt?3*_kJ6nRV|lVg*Z%7cQi^n_|d2!2`VW~2wLZ3R%y}w=u3uE zcaV!Nrg2HDVx3MM)t12T(*4cByOJGZbcQY&_5S^7tB@IMR*2hsS2o$@6^@M$5F4^zP0*lB?Q#`=HO9D0FR8iol zehRp{D%l}7v-p$+rrD62;aCW%UG2GsWWL;m*H7R#{>luLP_LFSayOa~+MV^_|DkgqX(v6A-D0BaP|XN%abb0nY8zH4Xu)>@dK3Kz3@0!s zz|0+GUAH_@#fzB-2+g95`}Ol2ODk#RByq|5erA)eIKu97 z9M9Y`#r9V%kukI+M&h+Qcz6?DRb!m+7st_$xAF?MI?c-aSDr-lA#!uYy`IMm&t8&G z?raA3)e5;eD|Jfn`lApVLMR>O2aN3n@1Muf7eAB1_p$PI_|G+63`g%8AEV;$)OhND z{!_jd7V$GIq{y|MxX%ZGtK%kb~OPuz7TfU^nt<UkD$%U&M zw{eNyVxL9H1Xd|Bzq*~us(sykbO`yJ1SV|fD70xCU9lfABCuq%Au+oQ+!cUHQBlP6 zLQKEHf0jAXq>wL#g^T%pWrh2B_4UBj$bt$F z5_F?TwrwKQR{T~-WDPFJuRT9txWGonplJ1_v3hM~TS|x^K|Lb*QwCabC#o z?|_q!8j4HnL`=j+XE$)NH*oePXC-84O#1$fFzWucMQ|A;&nw3%R^3t8rj*{{S0P?& z1$t6p=z1v2s~4ic+kN2pYD|*k`fp0r!;dNDP}IK)B&7%+A;EJB!&-&#Gu(2SXA2Jc zkSWdHbO9y~F+=3Jy7w3NE8M*13JN6M8ok=0WknG$ck&3m|8VAw)lQV#k)wsL=4-j@ z>X)kg{Igf>`L}|XDqgdLv~_y}(PD?@~H z+28uv#XlQC%)t2rPm1uODfr58bOOKPqZNh@4{uQEbBZnmHqLLGkPt^cDXGTv-2VqO z2Y$u>68=8L*e0$AIcN}?Ab-=FJTj6JF``T7w6h62=>J9Kw|Yq$TjTv><_(SYr*wUZ zSp}W8)&3Q#S|;3}_mn%T^2_$LCpz+(PM@=)3_m0JC5wkuDGh$e)b9Ki)$IO zYjn67DX5(M@8x9nSpdE`zc#!Cwu!ydFZZT92h9?1D_J7%B+y?8efbANCsk)5wW)CT z$hc;BS#@NMI;owTQdgrL;~%2U%tl#)b+*~1C7gn~vRTJ!L)jq&e5|KEZ33*yX}{@n zT@Lctij@zwSW;DGj{EdT%D)t40=5`0-|?XlDfO|i;8vcPR*qCH<8<^+)vpGZv+E11 z!i`B2d80%4x)pNVmFOX2cVFjO5?;uKKUDh{a+>PC>@e7Pw}AG_<1z?PSw9)Wyhk#LZn} zP3_E;X9$m*$nAL*D4#1_m3*O$=}-`fluv9lL_g2I(^kVCEB@|KPP5M5H})W32^8FEqjvDx(& z)U1B6022u6^B8HESZ)@c%u3O8L&z8@%wYUVA7XAJL?5guggg-`aEn4)L-{qhO}jPd z-%U}DVuCvjG$@m_zDVHMgH{4&F6=u;7TAcBH=W}IB0@SjetzNRRdwOcH4U$c6z&gz%iQPoZ zn}No!n8%Wpi4u1;9d4Pv>U;+%{KcQsZm&?~?~4bNs5iimsBe=#`FKMK#dT+`0XK}A zt@}Hq*FJ~hQ{CXY!(~SN#Q|3A4LmZb7Ic-L`urbCUk-CLfP^YBEcw5s`#lIc8F`{6cL|bVb4KfKE2A4ISI+APmv& zqgyI|j_-oJ!bIn7aC-%R2i*J9^8Jo{dqGNF8VA3_$ap(KG>P%O_D;bM{D$&^n{q0m z{(9hc<#PE=iWV08MSZX>Zw5ZO5c12Hs9WRrw0URynp#2I6FyOvNVsPi*sX>J_*+D>&{b zlYIQ(Q7kB*M?Q0w&q{g7L{{DC=mELHseuEawf}M8$eyI z)93dT6N3$6ts?o{eib-r>1iLkqJQXNEkkS%AqD`Spwgj_B~cO>vn7=zhRoxFCy`WB z19B@9N`8_#RaIct-Wx{2w;kkFsePmTVBRro_V2#AEB{0bja*Z|WPe`#hPnBKbxP%b>#?lJiat@|`8R3{(a_jX%o_b?7kvj*^Up)uAL4s+_h% z8XPnh)Ay>r%*HW!{z1b52Kw|c{Oy70euZRB`m5K;k3;4D=FL~GdDTK$le8*9Sx#4S@Smbg2G4Kvq{TWdoKvvP{xn4hqYOWU`Y(m9o0xqtVA_ZSkrVi3v z&zyi%iW8&SyGi>#~@v+t&{m z%kJLmefAhNY3{)#{41e-wSU{*1yLqb2*V9eYu8(UOe$PG%v@FbB}>_1(T>L$M8wSD z0l|^qG^Oa`mh_WW7>LP(;p9O9d~*4y0a+fIIQV%@3ax#*duq=gPM0bED3!7)uqb2E z1;MX!RHX3hUtNoHw6SAXm*U&vrkELCr^-{&_UqqcI~Pq_;0o_UdNh*1&Q;A@3H>@R zOGgsl=8%^VlnLI-{YJMX0l(-MFpDj>dJQYdz;wfvtS?CqYmyaSTryaJ3P5e?2rMh3 zd?S>4oxX^If|rsaDg~?Y^2v!P0ctYG3{@zQ#8EUnZ$g z`N26S@90xs1Y%dxupI|2-wLl|5XRS{sAB&Usec8v#CZUgDWLc2 zX7k&F+`@E{lEitSV}(%!9#oKb%0L43Nc5leRU;-#vRNTOPlOXb6kSPoXiGom8~;lG z{B8C8H&r-h@kAGs7l7PF%d8PP6^-I*5yMk*lca)b!P{q%QPujXfe6xPwLWBdNug_8%&n@XYqGFYQcCjS} zZC88{S&Yuc@%xXmf`!a(UcL#N|Cm!=>DN5y+JyjM08c^wbpYh?YKh|Lc~4J1DF3<%NveM?W`{L;?K>YCIyY?#?^-RO3<($ba1}i#jq>Rr=^$ zM@-%lxhbMsXWmta4^+~J>Elbw31&eS{aJ3tSr^w}e9a|_u2HaHLO;-pDurVZ-37@1 zu{odj@q1}>9<6#2j^&Bq+p&)ovQiqTV}Sou5gENK6qH)Q2d=;+lUz)uR7WITBtgK; z0r?{;Th;S5Y@Nq4l*G5kHL9)h!u$?WL`71$*6z=MCfA9aCq3U?cjp~%atA5Zf0HR0 z(wNuYqLQbRiwF0)Llhqd*7${*!g5HS)`ciBDpdTG*(D|#&wmt-(3o_W^+m}7?`7ra z*WNq-bjS7*1E8}f2_6=if9O#ueP#0>LOU^;&iQu7k&2nqYj=wz|P> zuV(H5O0m=4q7qrv_fx|5M6Olj=~8RQ9y;1u@vf+3n}6hC|} zM}212K{)XaVMcShWx(k7Ion(+(AIYMplp(Y3ZQt3PZcP(N@B>FhW==le*n`WYJ`~``@q2&FUJM4vcKA_4Qe5v_!6CykOyVoC z)Lga$uW4?xEh^7J>mU_xm7L8G<-4}eq{`27z?yi+pts6^_TwRnIT|Ekd~$E$i?hi5 zlI_7gwM*aVkop#3+rWc|+I9ok$s=s$usn+g$eqaWFHfvO-(OpnzK3Mv~o?NTe z%=r5hjXkm%OOLXVt3XM!DiM#r4I_MQc+Lv*+yD?xnJ@(KFn@58l$6?=9L(oq`B@Gg zU}r$JKRc_=BY0H(Ze?&J;t+Ur$_wX(!fNW?M?M}A_EoI}hAyT7tA&p;sk?>QGzU3i|b^CovGRGi* zY*!z6JE?uI42(+pxZvdQ&f!wPwxTy~Y6MZ(rGA+It=1i>6&K&LcWSHsA&PEh&)(~Ofj5?(fKfWEw_nfiPW|6?;GMLKRYovv;BY9}J zo%l0y@jgSu7$NbweR_uHF+Gag*6(8fZ>^msI*6`2CgSZ)i)+Z@24RO$nNu43Y}L8t z>os^QA21@!|IJ}~33t0+C`E!Y?`$3XHf1Qn35)uR0c{uUBz=x>e4a=DE2dXJ>)+&c zfOwV?Lz%wrZgwm|yc7kMTKOE+x#bM~1a8gwEHth-UJ2r7{j4XkuXHHs8h+;CXF4C( zk}u&5ATwEMUSV=25r)ey8qfW?v=37E2wa2(HB0rc&=_s!M6>i^xEE^xcMbxoZ2s~) zF5Y}9?dtOcg-SF7%*e(7)pI+)0EXYZS?{+Bay@dEF-LX?-tFU0WD__u!5MjVDKx0k zUab*!u=$f~Y)vcC=-$pg%K=6lARiY>(_op+*e*y~iW&d0%6>qUFYLc6$|M5Ef)#Xa z=RMrgN?DAgEKQe6CUigLqjVb$sWHQ0P>h3JjP&&x^xpw*@-#S`_R(eQ9uVsVZ=#`+ z&P#sV%5VxpRz6-V2JpV+4~zO|k_Xw;5_3JIbA!=!2M#Eyqc&^uc}dLqS%OKnmtCv( zYd+I06~`()hu@3Zx`7`@hUgo0zdQfNYI%lBTNaF0axsDJ`-hx8721E?3rL6}DNemW ziX_C3%m2sr_|Myni83#Y{30%(;5J4`ZL=l+*@fwLD@} z=BTN`LQT6v^=w0zb<_9(b9B{rnnzpVZb;BEhJ~*Fuzo9gQdAEr(i>w|9nbOC{bd&A zO*{+T%b@rDJDiv1sE5Qq5m-rLJ1P%<(=H7jj!q1ppSizzA+}t?$YNT2Q_c@~hVoqH zI}}zf?6@^@ujfYn`TEiHza<(7-tm>*^^Q+%oZO|CFux48YhgV5^Iw)pJc`@UQ##kJ zzI|xb>nsNcSy)Hke?$z;*7jrijnz`RQtf@e8k=aRmpA1jDXl@Yz1&6yxEM31N&nKvRW`r_#1h2Z!c@5~k?v-m`N9 zmcwJ5LvaIUBI>&fW^#m)j{1iY`gV~(%vbpZwMS*75*weZ@x#6{cj_n@YeqtpFCE!zG z13wu_1!i;d%U?AH-~3UR6)QzCq(<1DH790$ZB1B2LFDbt}ZowB2HUhE};4(*BHW6BADJOkM5TUf2BJc%nNT)5xD z04(bX5uqr*E(C8e{319b&M;$@_bR&S{g9e{O#V=LhFktN4A!b^rgVF41F0rA-6n)2 zbzX0tV-|yhfDNcy^V%JCHxU$2D`nmx4Q<$beppcYwlPzSWPU+57j@JlryG?0#-gWM1jKtyi8ljZ(K11w`Z1-1D6kdkgN9Kk*U)M4X9 ztd^P=In>XW_)CYjea^^rOPJm1tBetT*Aof2S(+}$ROrtLia--;H9EXX&^9WW9NFEk zD5g~j@>y~`RtN?w_Iz`W=Rf1;=QV|D_)K$gj{CDqvJ9^k)z<62N*5l*6Ah0keoAH=<1qD zx+4rzSj4@k)!Y9krGLS2rL5$Md!E^x!pr#WULyQJZ7t9vWdl!VA3 zS)ctZdGdZ5$DnUh7X@3om>ECJe&VUCN!qb9<9|W@SLJrijDw;9k>x1638aaLbfv|V zjl>W7vdA?5yjtUjLT0G^NiEY&bYBp!f3O7i>y+Ws>D4NA;)_!01pu^f|fdEW`Al#u)6cxFy1 zuqv$p^Nl=-W-N074InQG#sx80wN^E&QPs1{z{pWPnTl~Jfkqp)S)azq-j}ne`+1p9Y<)sO_Gt@2Hzow;0dw)|;$HTjo7hFU6B@&a*Em0K%km!FT zBGu#;utiDIkaNBB55i9-*IZ={?<3FGFd^rhp^=?Sq+!~v82%WDKQZc4-sTqa3%8tq zeLvtumbB&Z59br1oh)=TMIK*52}IEIH{_s4_air}>gq4=#M@FtjFH&75`1xD{6Z8B za&<4KLba9o{F>%O5d>%dI1*bo%FXNLcu(D)zz_?*6tiZlRqj078wUe0I0gEt1?*vR z6ZB?!L(J?;&o1 zlq>2d?t=u{q=H>MlqmW@h7pm@IRt}#S~Dh2Pq6Bjm&XI7C!p%E^3(GK!z)OcCAnoTT)`+N~r>^L(-Vz1Dy;aThu~+#dj8!#*(1KQL?j(NY=lI z%c&&((=J!GF7`V*Z>dgf10|r&976)#rG9{|*&s(<=HqE@!uSzKsI{a1c~(xuR-z{* zYG2itUbL?MbB&E&`UcoF#@?;r<})<@4^@hjzScx|*YXeI&<*q&}|-`b8Q$m4(b5 z>0x>cQN2`S@8IXtn^l~|+#Du7%*I+`@Y6d+_~z{M9G^Y?OA-9b_8?RO2uu|5Q3X+$ z7gN4j_M@nO`C(l<`XkL4g5QRG_rleontlykd08msU|BktzFpZ*^5sm_9Tp_xW@C%} zE56`K_7_}5G-;)KPyeVAFz}B8jfXFXIBujlGPtBZ*@Ai5;auIP`vySvjvuvB^!i&- zYGGSg;;G8cTuPFegTdB{kiMIPOvAJlvO z$A^ac;e$jrC6{ht7zigi*o?2);g0Kd84(ozgTho&DzLIQSEivbYqb?PNSS^cqMi+T zT?xBFR=O7ifP~x$s^ddLJ4?8x7c^&(zyf-#k+fCvrdEIX!|jjiP7_rnLt`t9$gSk{ zw2lg}b@a<5-J){lXDx2ZS++wAhwRB+XDEa3`0gfl<*yc4cH6;u%!h=JT6%irc{sbz z)_EGe*&eB?&QeP*KJ)z9X7ei+iMwgRQJ?RHkIrkAIsc@!^oj4RgQycmNSJ4MX1b`OfCoE(pU6f5Zza|PnS9C!wt<-k3VSkK0f@M+~ zk1bm92!0M2pchi`sn-txwKV~_YpUbU7jB7iaF9|j&8_s;Hrj-#8~D|F1Is`Dj}hv~W57dkZNEQ}`;vL}Eg<{*FPn8!F?#9|Oo+R8X zAN4*nktb{kM?#HAPz1AO_Mt20a~(80eBjRXTwl4$Xi!&eFN=*8}(+-Zsx zWKEIbb$>vc8YOcvt|~bolNrl#rLA-x-$kzmdZR05(^}O;8Q(@DN^Oy~8P>_%3qvSV zl3JVk(3t3#A)u+)O>+Cwvx20`+Y=*hc*9$M45exOHy2s}n^WMLz1FNowKA`60ns3& z4rKT|15zy2;d}md*f%y_x3;{r_4!;JESt?B@gK9b?BEFZ;y*WraM}((tCx>rY=W1S z&3u$fkn6BK^Nid$u7I93m6b)=ip&(0mFXQj;Lpo2uOWYeHvVG-jz~1FM60AKrTN1_ z0*SDG62NySxwhumsj^zRNY_9?D`_m|7nYVFezQ5`Qi-30-*?g};IgYAS{)-~avA5_ z9s0EXugd&GA05#*2;#g5(9_xtPuNhlvkRsY-6b?J{zWdXb#=tVb%N@UID<6}V5=o- z_%*Np29!NA5)OC;AU>`r0-1v)AU`$V3WJ<8aYeunuT;>k$293K7VLLHVT4Fc6Tu_* zXEcAmA^Blj0@hH>F} z)(}(cZezGHxR0-u#CAmh=;^6s4T(hEC}7AJXhpo8w7e1 z&mRWJf_l{!i^_Xc*+ngps(}iv)ej37b3=C>f|SRW}${ z5O7%YClxBU{R#Y*QEl?LnG9{+sSlPnM{X388MB1GhbH#OEVa2NwZyzRes#)igqSD( zBsYV;cCdsD!RolfJWU-d1c1gXLUcHD8LA5rPZE;fYIEV<3k?YqKDH)R$<7IrIakAi zwX!(oHjHGdG3bE1na@9z09hLGkw&TUgyJht{-B3GpuiBv3V{b05Z4 zNY~!!OW^$rqJ#5lIUsNz>GiCpNQuj$hG%lteNL;m3c?DI|H4Q2KPoZ5STq{!gNVhd zS!No3CkKY#Bq{2UB)lJ-wt}+XQASfTnjT@OxT~3tQ)HcINzkGL0C}OLinfa8`*e_Z zJ6uHAg-Z4pcI;Cf=9gLKiDrMVdg`OSR=TivBW283>eFn8jl6VC;IGjRi%Q;vVm8LY z%8kRIV(FHrkt~RX4&sScZ4!jOgh;y8wTohEZW4X*tIy3~>HIHx+^?LfNMFYbGFoR1 zJ7WWr7{?PWVC!-5G4erwkNNuaLF5zkVu|(EXqsgy=3g9)1Su5^jX#vjoubEAUBJ1~ z=M6%^?~1zl!-P`+izsRKRfa6l4-A;TAqMbnS0M*b;&28pZtXp8v6x>h8PzvqE?drN zwr4K>hqK1%Qqmc+X_9w3s{qtYM^5XXP^h-a>1nOC7%Z<5}R$8J;hhF|wHxH!U)<%x50I z9QOf$FA5=;VS;iBmmV#APe~2~yfC$#Db2JxUdd%U^yuWu3s<1OnhXDj94wrP`nN}O zE2T|oKstX3GeELfWHYm7hVF{Y%M%stbqem^4H{VQ3{T&y%6|lM_u{X>mrgwda+FWE ze^uz{NdK7xNjz3Y&SG=ugXR;%OY(4pYn zfHW-gY^+&_#gT8V;U`=fJe2`YRW*Y#{=c1D-4#^#yf}UDDSZibv$mH-29j;MNqdFy z89%Id&DTUta`Bm(<0IFMNPigMeAVX|5GhK*@v`mn=|E?OZ;tJSY6sJEiu8$lv3`N0 zU(*8Ks|_S`0R_xGb&kRCPt&K4aVQHtdi~V;H+XWb{_O%~@4{}v#1Oae9kSxZ-|S<9 z%A+P?Kq%fTX)i;2ux(O;!V)3mG6Q1wqaL z6h3C{<9!a?Vi&=uWyn)>sfnv;BQj0*XIOiyi+CJK;6x0TIXF;u=;osHT3ZUciVB5t zq47g6+c&i`Y9Y+#h1*#pLHW$%9y#l`t{&QHFhr+u%5muxQczfUm?jmYk*3aRbFRmX zpkJ+;&1VFrW_hg|*;w&VqKUJfVhpe1Oca@fOlZPkFx=+6Kz;=kcYt7t=0L3JgC=U3 z>rm2GWmsIPii;d-*LMb7q6S^fKvc&_AH3(;cjPGF&{4g?Z%J=Ke8D@ zkllM7eio)fa)dj1r%bRLlkmGESUN={G_y%L8VWmB=t1XhSCZ9TCOj= zH~S%aW`dt>~;zKWbC z$r*_XI1oRx*JzAIeS3uO&?>#HO+Trb4KWS%xmtVUb^ zr;DOoIoRV0?5@F0NJtAXu{48G;avf+_mW^04WJv#%qsu?4DMNZ_{mGq??mYv{KDa6 zV|mm3c;daYLGyMxrxv5lN9~+AhTkx3Qf3NyUFltpTQlrD>W4b&yEoW(<>FP#qwrs2 zS2ATSUZOs+9*ua>7kfL-4I+K8a4&y2;VqID{W)rp;wF}I(g0a1a~uaJKx<+OO1D4l zkow;f+`ND@zX%%`hJ$SaQq@=U>P%hw;cqiQ=Dy~-2!rZFL=+&yHXLERJg4?j4M06! zo>Oi6=_d0}cNCqC1Wy^?g9AXMPuf_NmCoDz*n$yD8!G{NLggz7<&Pg$lpFJ@?>2zxLwlQ?;tmNoow2dIs|BUnO!JMk^PVqRmn}Jz&D}E z0-<#%yt{+XTKV*<)+Jw6YRbSKhGf0hY2gg|l;u|TPOl|43t>qM@TR7?Pj-BFF`D)j z9-tzh0>VPm9w`5=J(vJ@{b60vN1-(eZo|`!h+3Sp4NPAcU^D)DSHkTuvPa~02-8ZE zmA$0-BOs#Poj{$*NUXK`E%S)R&v+2KY>$q|#=_}(&6=Qt?m2qS=TKSQUjgOKTr6%1%5SRdru2Nb*GxLO$9b}Gqn<%nNKp7HVro_ zmv(N$$A)2UYHx1|B~)e6#10Z@OSg^5et=vYBS`) z4>Cq44SqW;4?lKwK3+7_;}+BuWDKZi@?@ylecmIfTD+n1>!ffAZaonLDrg}5HOdfX zM1|H)kpwEW#oqHVCXAh)vZ3+-C@%ZQuQU)RMh_(ycH{9XKhhpwDH{@s}=A4x;B#+{Lb^;#GFl35OQRnN<(S+D^ zJx#3HhJdB3%}!#BtA6%T6-+{bc@`>h1kDI5!S>ih&L((h8{4kX526XUvIl|pVSsE1 zuH9j3RnmL57nr3RL;H&1lBsSQf}X6<4~9%n%5Tp;rh#Ge@T+YPyPYUnU zig^nMIZeEtn5rPNB>TV}=ocHO&1)3war&={%zmi{xoH8luW1cMp|p63@QIOg7%<1O zW-i2uhWMQlQ&B`tuG@0P!eLiD2r+r4=ZcZyrzdzP{XwAWs#EoGr#h}{IdV9%peK@s zv(JS(lPIFI<@^lJQf zzy@h}2?MACx`^E|mNb%Pt=X}-eg zHk7B+fMUGJ?J(V}hZz*FMlPdUZkJgKXL$wQpmrwH;^{1D>+pmBfPPqsz^#pJ%XknR zR2Xu2Q$B9Mds}0aVh_6AvfO<6g{Je13)t05XmxZMg^YqUHfsH62|rb`q1dxhk^lij z*P&}}m0UX`f}Pq$Q%wqym5u`1N!M6W(;Pg)FZ|Z$e_i}~W4=1LW5t1)MR%XqX}0Xv zETIJ&qPJ+KU(;QC`^Hyz+0zY}ei4Ee`J_pA-a5YH=Rj?x-ULEzGXtXjBEB7> zJA5+H?7qF$QDNL=%(0L)*anX-Pk@5TehY@UF8Ad?K1O5aEwnk&5EAZSt?2nopq~HY z4G=;M#~p6p9u~j;a#tWo(aIx#TG};R{h(%YEwfb*DZZ-ashRY6Ckby~sSWgeTPFB~ zmsj$>Duv$E9I$6zfg=v_6*Z#NQ~WzQx)^S?&30%iI)st00~Dy!a7&p*~J< zv6^V9MCS_3_7BRMpU`3@GJzG?)!o<;tWqF~OP%G+640^lQKPq$@>$)xpAk=QLFLLA zj)%)}2#{!8yjzXDCGCy*_P(Ft%pTCHwr3!TMc0T{+xiJXfet>&W;zQ76t*%(vcbBv zq7uQ34ic>0U!=qz-}7Q}8fmeHx_(Q>i?z6%*BG z>-FAIb0*#glqoxH;s>ax)BYl_kkFjN?s@y2X?JHpcbwR+K^`~@Xg|5B_Rj8lH#qX8w+KpbWR%-O&kKU6h87_gq{ zn|%HLH2eVjwFF%3k^>9Dlq4rY(^sgP3gi-6Pwbs+xW8VT!r1{yQw^?z%VdYrU@I++ zf2&>n6c|}N&=2e##a`XAsOqnb=G^3MLlRwZq+@4LbiGFMnoBUnK46Gs##=GfZm2-` zX}KPvHQ>hmy>&L*QKX43Ng#>C*B@{y%WVjoOIX6J@%-n-_E^74K#33iGzjYZMt}SW zJ9y2?_E}jJD+0E%b}UcpAn;RN743C3{Fng6`SYBp2c$}%8W+?t5Rn<}4#T2O-gB99zF2F9*K7e~n9#@vSJil@C<9yXw{ zOh$yH>GnXE)j&0BsAbEWwi46ta^1dTs#h=|@^QE?+*;Tq@v`1Fxl*=#LY*C@9@FNZ ziNN{gHWyl&>kdI5OAs{+OFUwlQL+nsT8_u3&`G?qQ+8{iM<5;XGya0%g=Vo^x8BdK zI1su1r3H$dr)w&hVm(Jc83tepQsrwlHEq9|l?7YP>w>z}75P`+cGx0@3JV`qpb7dl zk;a1Ma5-9^k#6njk9_J-SHdP+{0n+LP07gI*Fz-B5WmaaOgpn7y;Y)OHeu@j7PELjU#Brk`@U6k2>o1oPq3qT>e zSkogwJ#__|J^WwrhdzJ8RbgxiyvuKZa_=0{ylWA*qT-MWqvDe` zdz<-T4KUI0@qttK`hhJk*I#%WhMjo<$CfxEl5lF1ZYF#Sz-WZE*$7ZkQbVOwTGW+H z%@3`HV6&jEXu+_Hpxus*GXgya+QmWk1FeJg-{ zBzVdrq3|~VyQgjn{cLmO%_d`$AI9e^@OM7`<=Mk+%;d!H=0aQr^xwcKU?%4bpM|{t53~yX*zj8gTBv zmxpU)WFOq}g<2f6mm1@leG1p=(bWt2WZEapVn=@=o&AN|hg*-#;{I7&A4D5n-;8(X zM9nN7f;STVNUbkPr2(aOPKNP+=rJn4{XWYN{d>J!sG56#t}jW>sReDOcQsvW;3L+( z0=-g0uLP$QEIk9|3-hA7r=d25!KV)N$>=kxYFmUREPC~TXDFe#pGmMIIkPgJI-=;8 zAu4hW`cU`GJ6SXJ2t=}n*;!=nicaaLDfpqrs(|!oxcO3y)kdP8soEuqsfikWn9+J8 z^?yWOU${@S!+{aO&r>4>WsvWEg3BTn@bgJ?^=xoWFp3sC{ZBCGf<<}Uq=5`hWZNTM zAH-=Jncn2{l-m6q92I8x#XslChRN4|f+yCheBahtqk53*K|@qEO4A7)li*XT!KnEt zI-UOdAgKYYm@zrvGub>Ek?sv>OHm`kpb+-A%j*)#b2@{rL%{AJpp6<2Cr>{wY&ii7 zpB0Igt5s=}0q$q6EML&F0v_-GG_DLlCfh=#JOqYYfp^1&-~yt*=1}VYJo^5pX8reu z>;L-j@(GKp}>c@S0G;*jb(^&?CPBZ z{rMjHv!EIm#~=#5N-iAA*b5|ELRIR(%&*8u{>#DIpTu^)3GLjl5W_;fxhyWl7Djw% z4hUR+?(W6Py4v#W@xU~{rJajh(BE9sk}!F(=wF~ z5pSfih&(11MHbpxc%Ht~9gu7KwQ=rhq&J{z=>7{s%-8)PHi_`$>k~(Ip1{X;$iB|y z&h33t^hU||iF;WVOnmhRmJgN2qXS;{f;lE!Th>-x3)Mpmv&)NmE!>#%bUN29tzzOuU}gH( zpa9XP)(`kHUsgVyFah$9JHg2~vb0eL!Bo6Lg|23kx!ko>VOk9`%O0F)f$W=NGyMz3 z=q7W=@5)TrdZZCfi~?7jJdNrOTG$D!iC14E4k*={&9CgxtC+-&?uX)A{>n5TYv)6i z-m#h)R4FADA5%_55$i_f3l=b<`8)+`aCIa|U9YB!k=xWHnS&SO zzfcX8UMpSzocxH~pF8_KJ`h0f37~`BlfXghEzD#(jp?Cs`3o(X`x`M-40Ixf0%U-! zMH@|;f{u-6TS}_5h-Eyi8a1EE4AHrEn;pRct=Wd^v4TofYD;xVg_E>3V9ex2p4*0U znK4{BexT9T%UZcDuAEN@U!)XIRR6DXuy- zV@^vV7~GYz3LLhBfDg7mm(p1vy_C7H|4K?B@Ij1hge)An8!pS}bo#Eu2n#WOU|O}0 ztC*Uj(;!-AKMx-&QWQ8j5E2ArZQILb1lj@7@n#B_-?U;5`YyuwK0phE{U8w;$r*1G zm~4tAbjYd#$bK|o0R!=%1{sJ&0TB2&-H%ITC?E}b7=mnCajd_t1a`v-pp_aOi4C0} z6*|$1wpFJjl6?- zEaN|7xrRod(cY(yZkSb`v}a~`p69YpbVt?gX6VrpNm83!SmdVnDX^(->NoL~dJ2~{7inF0PP$AiZ~P z*F`8$;0(&A#W2ZM#{2-sUT7y@k*LW=Hr34Zk*KfBsp19At7nyU-GDNA3c`y;M(f+XvZl$FPGo?qLG=M={pT`(9wPnVb|#zG$E@<$+;8n;O_5^daSVP= zW)`cCkUNU=v(G%@mhKL1ftl(M=dp}-a>!<=5EpS-dn$Qpdv7UP3hRgOlJ;;`JcNiL z*A&EQEDf1N+}d?3;{axy3}m3yDw6^UmYHDHyee{6K%j;ZvARMtmwte2oDI{J+T8AZ zW9azeoARY}Da65q7YNfclU3JwaB26?V99iR@q1tQlKzFry=BsfXV{Iwx4?F3)R@8@ z%?(eq+Vhftm0OHDwxGOE%^}oS^C53WXM!?=L`!N5AiyFC#QFO+o{UgN{f>T@!&qWB zCs`Q5w{nwISG2o^l}FbcwDm;DT}Jq?pSoR$t`0;7^?Cw}iBnFxxOfQ%)b)4cK`e6P zwe9^_#jT3DtQQv*yE+SD$RBh`_|lKY1CLCwXx-h6tppH&mBfN4ac-+eJ}3N7MqQx( zMqJ=*&nFcH;yxl=G#P-Sd5DvoB40U-v-*BhC`1%%J~dnUl1HW(l%P)q8ZDrj)RqK8 zT|I&C^Xb%AHQ^7;VF$4pd!ZVrU-hFX%nfiFQf-WNm5?v9qq~Ay$=Z|2&sQu)HR-2~ z%*6rtiD=Q*KX)?6)Y<-3PVD_0O*F?KDs`YV^xbp#U1d@!wm*bd`Qouw50P0iqV3dV zE5j25p0}9dnCne>&dTj;aGB_+1~mzXDZf$4WB`1t@pV!dI~#p-gt`oB%9bw5&^*BW z^iZ|g3uDB;YKQ~)%9hfoWB`9~mowc@m4r6dX$XtiYJ~7LNRP|T2)91u+DIdW&uA-S z#RW^Y`QQSs5kn zf|v;di*ZxCQ28{y#6UGcW)4JU1w=me|Mx$k3l-j^(QlFXNrZ%(GqJoLk0D?R?DRdO zm(zU>28neC(?)_D%h0vu3H8coG((J*m7Nz=eR0sAIsawh;eR863?XF-taw@|?Yq<&-XR)GnR= zDIb4s)EhqeK&^S7G*Rc%`kAs<+OGMWInvgCb^nev#4>xOz>`1Q$-K)030a8CO!Cc^ zeGw6FfJiS_V@~^+O;HWjP+?B}#_w4VXW+InRN)B`XtWmTp>WcWwn&?p5YQT_=m zFyQn2j~!>qjS=*@l(H+T*B4c$-!;H{{TUVpzkFsA3jk&tSwt;>Z$H@9#PMeUoN}WB z-He%fK46CH?Os+z68i`l*U9Byw=QSTaJG#7>W)5k;+? zo(gqpXe0+5-1PEy0g(NXqZW`IiS1_;I)NgNtd=}A`p)zd?5on$f3p3MbAg}lLc5xO zI^h^1CIKY}T4(^b9^x_E37%W*?E&?9u%m-E5+%S7BKhu<`xdp|F^Df;2BP6zr&^kRzIxL=k+~K)t`$ zylH}PlSHfAg@#lRWPgMCYvW5UPX@_G47CIv4r56^M=u}Yh+yWl2>Zj!97-VLQZwVa zyc|+IS8_8b3U!$6SLX)(3e0%wC8I@f`YPjk=2`_b5Z>*1I5xl8bvo6KLs_FRms`I~ zDVzPcALJHK;0>Yu(kg_3}{_ocg{i70B7b0Q7Kg8vVW@ewF*=|w|a4onweA8qw$QC&H zimSY1V3Q6Uod0OK#rJ=;La@Skkq^=k z(z%SWmjDJu0xW;CgryaAjY%?46LHs724W*Yi&28hVYvP!FqygtRu0sVRpT$Hwo;D% z>|@=HLr~YHc;)XgD9wJLVL?#5Dripl*B^L0-c!U5HuMk_NGw&54Acc^A(lW%ia>`V zc9T423;{eY`*z05dKsf`X#Z+V|2wxEY-4N+;L zl~4uz_ZI@UTy|kc>66COTJ|J)XzMx@yc|79FHVy1kcso#d@oB zs8cOh$duy{Rw4ofD&tqhji81ZJh1^5Y36kU zMF25wQXsc|Y4-@Hf;9-GQ!GAeWc@svu;QCa;MiAY{UIz0=cj3H6wc}N@OGN`9}Zn+ zMeS6mqu-mJsQci$m1_^+hT6P{7XbP?W zVY2W=eUY!I0@vRfz0oCKw$>t-&pW9y5SjdQaf6q}o7&Gbo(-;rC6+L`c>|gmK4uX~U z&LXyD*`#%JBSxK;xJ_J@Guf=uL!9U*@2BqSb$#Z80h(iPF6b@0rA&>Hm@_waCrPfL z$YM%druxT;^q9T0MT28s|C)cm82{5RTQ;KL7uCznlG71d3c&>ei{iAEBtFXw|Hz-_ zxR?RgdRot{lKmFUJgG2*E=qFw#dY*Dxt$&jd13{@!hzfD9T_cPON1n*U|t8MIOsooNytcL)cZG&+A zg6}o!Swdb^`6JZZ(s7CmV?v0B7}K`=eG;=g#niP=CDi&bSK8(5A7rSs!O? za#AUlDHdW5kzDwouhEdpa5UkToSMpNgbGO9HO+*m zsp9dN`fxj6l4wmI&xfp-PVECa(h_=XeYaEQ)VxW1^IiAsY^v3MuL=gSm?IrY} z@JFg-WDP%f0&#<6Ao^EyJYguWZ-}2`NTGTB-pGiB6ljY~T~781ZIz4h`=+^q;?jUA zI~syBj2}}x90tEA_b32jE_lDa5?bo= z4!+Lwv|4)WDdwIKJ4}jx#O+MgWFbahHLVg7^|i@AkOgq|A!&BGPqIpo z=W;fJ<;#$QpL0v5$fn-V1Ta4JUe38gWt_HfA+`7E2bwVAqT_Ng$(GTZYe@YN%b8dt zHj%qtVnZ^B2one%)LTSrYaBoFu7mv;M6t;$RvTe zv5A>iO9SJBy%LtT7l}Q3lz$Q#EUffuy=Buki{bxd$vFf0SMw4LK}Q{B1&m6F zXlW&lCySbW5mWO?vBi}`j}?Y9Y3i}8fnHTir+tumv+A62%|y-eJXpQLaUZz@mK?g8<(pdS@FOy#sG0$ZNbK~Y z(%ibt*DkG&ti_S%5;KenMd&OD0oFt=xElzX>WNLvC5t>n-A6+t2!WPo$5`4FEzmVB z^~jj!nW2o`^)}Z+xbm`3l~_j8l2bY(S=mPflf_Fx%&6*a5p<5Q$+*HA%k5F|ig((6 zFNsTW|G!>;IS~)@gc!7K{pJfzdFgT|(OG$Q6(~H|G@9<}qBh|3jQr9YKyBN#>#C`eciN{0Xt{)Bj4XAv zDu(1Bh4GdG;5~_2NK4@2YXC#r`AeCUu~`*t6fPDTI^PjW&KAy>wE4dAE+UyJ8=Feb zl9Y>(k#gBC-Zk77n_LJk2PVM65h9PjLB%)ZVsoU3ZK&5pSG<2W!Z?q;vE=3bZTo`o ziHk3*@b?N4!cT2G>b`6O-|G_F>K15Z5X+EwOBYxB&A6%h-}o|<^AIz>7B9{DW9oJ4 zJQ!_TUS$Sl#$RauYf%r&2u|*M6TWavIEp(EbfJCpMYQL`g}SmB33fjhw7X`UTbgMFO>#%tetf(GNDKa#$dr>I<9AqyU+ucC>Dc@ zyG}0p!ywmh+l%3H5wUUZ4uQ(Z<$6P*yv*z(xfCeq4Ql#~W>El!%=7feYfvzqIn?6E zFBC~31_VDy>v9YC^pqWe9fmKC!%!9lr&F8pDeCe7aTIeP;6HX)#w#dJ-d|RTVN~22 z0+Y;}_c>tjL*3?OwW$I4Xg1xr{NM&4GmZKLi4yw0*G5FY-}M)QA%aMpJ^_d`afPuS z-hAtWu)+8iIk@$sXnaDpd)u`UelJNkh$ZI=f!;!Zm5Wmm6qtlg^2NytaHX%pvfRHw zDwty|twIaUOEcQ8AVWJmoH?gr|x);Ao><7rPeJTk$ulkdwf1yq} zNByk>6>VL!4QF+)sBJQhEAH&e2U_>IvFHnvlf2)z&$Tenzhxn${lQio@}#bQ>GBT| zjfudfZKA>S%$B@Ia8rKGX#kY*Qx1~CYN-?afXXirXo>e;)<)UCC3V5(hyQ1Glg-$u z=qD80%9btm4>Xqj%D&!J2`1xeE8+2cpP{~A55%2Y)&n`*GF<0_NS6&v7l)nIUHWJ5 zpsibA+rO4}p>?OTXW+@%QZ>b_Ycv5)#0rzEK9JL3vTd3JJ%F}qC@f`yZ8Spd^1(K2 z9zeo_eIcPEQj#IUL~73^Y47#0K^bMCDmr8&kSO&3XL9JxpUz4G1<(6lunJ~6I#6j# zh8)2YEz|9Y$tP8en3>SO_J^}zTE`3EIdnG(&-b!;;h58I4hzO#4BG{?xnB zq2?R>iukiGm91YVuYI8wOUi6I%Dnm&9$zyHaM)DxWt$!@K1T1Z4~PXpI#$Pju~bs8 z(BEctX|c+oJ)#4op;#dI>=ZVL;tg+cZd;U1rIs;6b3@o`+h3lL_Z{jJAB6sRIM_cj zX)iZ?Md7S`4*V^v)FUz7RDf(#DJ(sQyf0ZCM!9E%tgWKldqP|bcNdz(_2rQq$@P2>b0^XziyFG{OPNUsK@E5w?)O|rmyRv5Q9$J zny>P}RK(oD8R_!sr@Q-Kr9mBh7NC-LSqAc+q+vB0!4Om`t*V>Gi0&GY%t# z;Qfey(#7u@C6ni@L;-y-bi4M%D-YV#2ZXzp^K}sTV_Q%EyrUfaN-gdUb6ax4e))aB z=DWp7q!fp{iMl6dM2$(y1r|LD@9Xe!@>L75&kkYk59NoqBv3Evcv#TR)+(lD76>OZ zeI*Xx=1t%&yip0tJ&Ulc+Wa8>DsbNAQcU!j1!vF+$x`36NBoL#ZCY79l|H23K=#{Z z4QE9xRf0*?5Gq8rh61s>U~P$owR5{i!8um$!lUC;n@;A3epz0oT;kBYxutgd|WA*)!b4OjF&+=p>I6-x(kl*7~r zV32k!*LN5NhH7OUBBm!)WJKf15@vS&(kVHgXTK*W2p|%w=^HtDp|fTQWfkQV8?Sb5 zY+F!(fJSw_%>$n6Ojs9Y^y5n!&9}aCe!P%1^>~3{SKj)Af$>Zoveoa2 zqhCjU_&Z4+&hBAaq)b<~h_>b?=wu+dN&U<+@yh5UuAk5EtE8VAN5p4?&t=SM7BE#`pTiNa6skGWKu%IMw3pHy+ipdmVNxI zTc1Une_(tbdJkjyWu4$8L)@7^H9L$$0&T#rs`wYD*v69Wz1u-q@q9<_+?Ch<8s=eU zwvu;rR{+nc=Td3GI>GOZ0jjMQ!`e2dNZ?dTV3SbjwB|{+NADM0aasp;H&C(K%CP|Z zF?w|1t+Xt3!T*Ry=zO^IGH|>-=!6dczB-R`46OjG&}ycC{0HwJRaS_TFJIj{NG+-D zYM@1Edt9}3AX$-ESh(@MjxR^kUxJ=3bI}-pRxSfZ$jwFVDAI%v9ogndD@d(aP5cQ0 zjEbsJq53o~QTvp_4MgWV{Jg3sB+xiZDdU%0ZxhrYSYcb#!Z`L(I?XIu;0~M-8S&xJ zTNA;F)#P|&GLMAFlb5n3YMDPtW?C!NUgN+%HqI_2>lBD3x6@EeRV!3t@*v3T3;|rz zCQ>guIYEyy<;szrU$-g_iobmikH0Wg44`0t1b2{8#Sz-x?LM@Ei*a>w%av69`%}>% zE+;D`U>G&uNp6Rblt$nAPv4R`KlPzfc zm$y>tIBbpYheY@0eou$7GKvnON4LxvccMRzC7e;~G7pb$oSb5vQU+d5BYTN-Rd(Y; z;joG>te;ab1JBTj|NTU_`BiKyDIl5vTkiQ)H$3$M!ZBx8krAo16hp6+(GaaWuxyl~ z=)FYnuNv^tb5ozmD9Kmyblq+RL8??JOC)cofUOdR45k=j*Kto|CCtfuoUS}bibotW zM~SAFn)@q99-F^6kz(o8h;5)sDAHIx*Int{AS08fSg)J@T!o4_;_e|;*K6&gV{3*! zQb0HdUwYaJfy_IEae|(%1qq)v2yptm`zvCotw}2W#eG7?)5|b|Nvp{x=qiU8kU{p! z8sB~E-?&Ldz?L4x>>c^yXMREFewPs*A2L&PSILLx5F3km(Zbo6;d}{SbfQ?$OrAD< zZlFe*GL@q|>XZ_xy+r4D{ubl64j*$-8#a#Q)|O-;(>t0aZ6hqCW2{_bM<>^oyL+t# zJBOVDs!#>mfWaq?!OX+(1>Fq7l0Of+AMM}OXMjiKjwkhKrpTeLwFUFM&!C8D3vJ$# zd*e_Jd)wN%)5c)sO9xD!*&ef(+=^~oofSafZ`mX7Rt0GtsGv}7Xjhy8G-%iSLb5|} z2?|9V26#gQGcSun>xo)zp(_;nCE>%~Y%qL7#NFW6yiw9dQfa;B+4;~rEhX5fw*7-n zm6(y)7q|G?TQ!ZcNT@m!4&{UT#;|v7AUAlJ5lF*E2hjU+y6sv%)>7?tUSrt*|5f3A{)WKEW*H~3$b{*cY~3VK@ImaBI#%+YEw<&IP^Q8GW4g`Ns$YtoIT3&Bp# zSF=w03k{opJ>kUx!oSE0%4$ifsrNCN%eC6ckBY-Xqo z+Y(sN>o-OSNmK^AU#}2(tCn0<3N$@q^<(KF$?t_Lz%MtQ1qd_KCV^yx?7SO(vzzA} zwdAY=x{UFBGhid_M{A&h#plg+ULsY6Kr1^iV!eZVW(JU@YrJlJCO^)d)ZuO)f&FME z3qvMnnF!qk*(ce((Ph15_saXxmc&j1&0}p}NG#qVk3!LHDP#oc^?lLt0c(N;l+6Ol z*xh0_ln`<2?3zh#zBZL@QM~Vz-Lb=FPTe8fAp4K7)`z&WH8`v!Z-o-(ChPYHZK3~} zWiqvI%>f!Q0Xa=iHB^%9kk0LkK0-mbgMX&_U>omp&IFZ#<(Dzy^Mq8+e114L07FpvrJusEuO!g2=gXd>Tb>`dt*6bz7MEtf3Q z4d4|zN(Cx{O2bw{4KP45P|#n)A}}a+UGyH45`=7y8|g3r6l~K;1r+qb z#UtdRdR7SEGOLi0l;Yy(MWMsxkWeGY{Z%CFNHX}}4nB1Nyq~O(efX|#h9=TVS0RSw zVbiUNc<3v55JI3Vr~FSP{h6-`rKso?N!kp~^c7)w@>RxoN>+iLB^kerhv-N(PwP#>alg_MhhL3f%LU zR}f~WM7!H)Iu|{Tw$x&@@TT<|0)=PiI!up8RZH<}ebASI-=A1$+sA!#mZb+=?{e~LtH%I}C6zpvL9LT}!>@-e7M^pcu^P@G6Nt*3MlBZ4Vr7HPM@Fi8a-2QKxbC|h@ z34VuWD_m&^w-eCeQ5|#4s5X5j^jI=Kq$hO%A~2F1dF9RQ>m3!WF2IE4ND;i}g=kr! ziFoxo?~jw+N`A6B(&#Dx6vmBIWq&xwQg%_`lXl0DnD?%7_q5C5vXcr#-yS0wUI<`P7+*)%t1H3MJSdxRa&IX@N{h1fL3w6^< z&iP&TZPa>G)sh^O6OP-04S^9-hhs`Wd(Bj!vnUp;%EF?J^p4I*hK*#Fj9+Xb`5qu+2E4dTK#F=og-7`*jAg|q=j~{A!yGst(V#%tW&sg>Hh76Rr+v%b? z9C2q4NG{0duzjz|BlQwpN&#l`Wx4DqYj@;NUqhJglw-wn9Y&)qpJLzh zcbq7;{#m#tuGqaC)?OFFh#e_lzlT##BTe$iULzR4vKE?{4Jt(udoYJM)|5%fcO52u zNjc#AzB>T}B2=)%J8Mnz^?|K97g^v>fAp4+0$-zj-s}WAHg0(@wY$r?OGQ*9`{$hy zzg^JcYEzIc;`LtUV%_$8cpQN!#fA1FWg(7L+u$g8q&(pMj7TIs{=NLi9}o>$vNVqdM>^R>=0OVO$u9daJvsAWN&yK7HwiX<*|Ad21W9Rc(*KjuKH zJyVTopdLO4NuO%E#S}u3Ne;{T*>9kKKKzODia^oJBy27ww78)jFDe2Hy+Qok+w8Z= zM-5JJLMR8{%BPr!DX!1FL--bAmAP*rm0`);jZW~sy7%gDvDYCD5PA!n^8`+R2HPbU zQy}ubkR2)~gj%Nd&-j3|fQ^LwfA&_7g&CvMBkCOvoP?5s10g)KcQ zGSo@?a!Xd|YXxLrCymn&mrg|VaMaqNhsmYtjxL91+<{?+$NQSf?k0crai2D{2G-qwhp47mW6yMGgg=v2- zOkG@NXxD<3XX-%-Gy_5HSux zS76VE6ymC1Pk%Xx*YjEWR=VgQi=&H&w5k0iB5p`)uU9kQ9OfUDc3?ej&)K7?dgN7; zt?J_}xt2U*W`HNiWdWId z6*3Q`yEqD!%ZM&^92L?FqPaHQD=%|kr3zyrJGXb4WP=9~Z1D#y(sA)3L=?iLd7ozzSVf)}3&bS)T*YQCL zDnN{>7{YfP>NfZB0%IdFu&c)Dj<)Ex64sc(@UXj67y8WV z*1=^%w~jj$R8n&rj%K`l%fp(X{S9I+-_dPr@y?5L@y|zxIwqA2gqqneR_Xs(fJ@gs*#$?})%O?SP zqA%%^%AN5tSHP#bCr4@3F&Rftm6;+MYuyouFi3b=dqNe(|2%F%GFq;O$)0``#prVu zo?aIW1i6K474&`5rIo76Ok6PK(LG4k79hcXd-Yq*8WnO?);oy}%hh-v^g7(fhkbbu^h!;^5OSa}q)K`Q2z8W}!&Kx_^ZL$G_0^`xn z4;&?kirK2Pl#y}Bv`vn{N6cRn`TVJc#<45f(C?IKe>VNd#J**~_*SBur#{dfMmyjs zotXpsmoN|3w?v<|!y%q8tb)1-ULH})NScB_K;N2!sfK$ic%JvR9oWG)K@0xxi63qn zs_Cm`J@Cga@pVQbW^opJ*+pvnzFAULmiDn`)b}?kF%Hsa$#_nLTY_-Cv3xtDiH^6U zA&-d)%%gKJf(^*}5S=-&pxTbz(`FT*53Mujpl`c$!0@#YQp(9Xw+G}T#Q)Du`JV}% zWX{#(O*-Uhzn=3o6zD1K-Kr zwgy^d>6dHwPO8$|4q%x|39J8ls{WLVqO844= zJQdr9y3JNlhy$)rh=~lO;KDioS+xo3M8!u?w=U57ZnXbrWGPr;R1p4K*JD~YoaNsy^F-?zr(5PuT%%JOC0yTfwYP!Xr zME0*USW4C~+e?E)%}Z2&W~et`IwUHqjUAC7775^bN4%l_@S)Z17?}0>A^&J;c=_!U zxN|}hE|v#ix?Y;wsL-3B)In)|?^%lmzOM^gM7=c;Z1@%5_Z)r}q5T0GHPprm<*eZW zNmU9kTnAAZJP=qaH8WJ|^;E~n%O*No7RxEwIag_ZL5J1{!)KH@2q-l^*QWfb*vuuJMEc=U zLa!{v^s*+pm8h@kgDN2BUx56g*;J4O658b7C;A@q4zh_h*8V)vCzF$y5X?Xpwaf^| z{VnlNng5`q6#iPN#{n^d&}B7h=D^jr&N}{9R^{)aMtT0r%isSzssC#Y-B$>okPH(D zlG64eSYHmzKcMMJ{38TCq&Rk|-Toif*4sAUlc3bGeSG-mg5ptl;(Yk{UR+UDIJR*s zGL{`tRGDFXrAB@P=y@TWxD8SS06S53WNOrNZARQmDgen1~;Q6ki+L6|GEmj5&7gm@e!O3yjUDHJX0E4c4=8^E+$^* zjMpn*%?adez6bwl$S8b@#_?X0s`l7i;ou@O4otGneW*vPF03vPwRZI}0N_P?b-A{G zigiap*T{p=5aY?6s(Tfh29p+?&ac9KzmN?Jm`k6sK4XO{;&PBld9y%!yk{%g)6!8b z<$=)%w#11$xc$+iWI3-TQqr*H5ngy>VKCsnWB_+uaAQFFA>lIDFTur zg*T*!Uo8e`57OVS2vUw?O9rq1AH4bRk#&p+E~C5KT1VWlak$o8_?NZXh(c17I^-!g zLq-$TS5!++AoR_?Dp@{m*Z{mc8>0&Kba<7vM1c}yMQI|bE=a9HEL5bO>KL`M;6T;B zyAw-C9N~%KCgeyqQbGMYJ05g^RKt--s8}RI3KA!UTZPOx8Qk>0 zj+l1=f_h-H+2A_UoRL!8M-?*Pw14uR4ZT^oXHJduyvYJ_xKu5@bYf65aFjJ7W}TE} zJYyWgf5sSQ+h@qP5KA)jm1t;8mbc$?!!F5G^4B-V4cEt>qw)>*wm3yO7sD zT@SN&SERu17`iufcPs~I2bjnaARU7i2sp52SBW`HXq@s^wJXT!{Ji~&< z_#*8z|1=;qSsdHO`0Gkk9>r2?Pw{zIWjD?SYlKTZ z@fd<|2SsBkZX!olvdCAho}QZVq0{&VQ#w=vX%dyHkzAOpP?Ja^+>C1+Q2c*u?7D-R zY`T3ylM(^J03uzAgeFx%suU@ankS(f1VlPgUXU6@Kq*qBC{mRGc>)3=EfncZIs_0w zsvt;J=^&T)-uunm``z!GxjScew#@9=v$K2tICJ**+iS9oFKw)(Bs!e$VutByg-5Lc zG@arRCU;bssYNcPrD{NHPBfC)!a5R*yhYDt${+NLlpPBGIQFmx{KVRw)HGZDq=36Y zx#cHqOg}lqPNKydCWIB%&mz^-Vv`#d``dAo42mR$$#iKMs}|Hw;RF4K3D>*mRz}Us ztUX;N0~KZ2 zhVk}D^6%{LBIM*6?VwiTc;1_=h@RJ%`E;yxhhMzRsp>$*U*vhR$39hLVHipnpRK+& zk5rW{;@nkqm0Pp8oU+Yzt+i9%n_QL0CQqta(k60Eua4q_v%fzFKlV7P!6p!je zohOIObT^6IEr(^h-uo!^C9mbPvpN-~G*y3(+N3T;#P))M=!fmAS>Jb7hVb#7voiXE zJI4AB(ruzyll`$`gUNaEwomDohGW~84#?^lpjayOt3hO5OG|>&=o01Qu3c&~hbpZf z2AV%T+niz6dta6tn&0Hb&+E7Jmp@Wjn`@8Q!k^I$*(w{*B=`Y(>c@%bs=LWDO}M_(QnjUS7GlvOt;cCIl38UfFq7XgB`)EI-UGJ410ZWbN zj@Y7S2asdkafsBZzJEjju38=6l)SC(%GJS@(WE0#j?v zbfbyc$KoN9%-YiU++4jaAH;;624sJ%JjB?Pb0Cf3cg?O!G0w;}NuIi(Qw^^3kY15DHgT|qfD`?VB*~GYwV5%^cM@#-pxiK+$iU+wT9Kw8{2kb-=*{?@| zk5#!wXWk#Q{d_SP36NiZJDNrK_SlFN1M*Z))FVhaj6xhvreuR;NcJtZ2tAP0wTz`K z(vAXEGXU*xJNg$R(E_b9FN;@AU0z1%k$K(d%Qp$6ZqFm;63t}<>gtV7)H)|1F^STG zyxmFz--k3`d?hiYYPERf^<$r8(Cv>AG4NXbw*Z`&_a~GiceOI)3+&aMJj9-FKrGwC zvdU94AgPY;fB=NZu9in^I6+Ztkc++m`wZpxCtHU7MgGdyfABNrHgsiwt+sm%M&Yb? z4Lt0Ip&Vo*T)Kid%?p$^DEc{E*Ja;(!b?XXoc9$dGCeKEbw*M93Ht_|)FAUy!@v!H z#ir1bvFL`cB{ddgTz>y|kcJbdQsX8Wq8YNE{SLfaRnGFf#R}~C$CJ%dj>B`~uJ38r zOA~sQD$6z(xpA?yGbUt3ai0=c;nW~wQ}MzJ!12{9ls4jx(oA?HxVE+^!dSI?3W7Pm zYYD*gd};llc}g|3K8X{r`Mxw(TxdW*%O=yKEfl77yKnNXfBCQZ+c3Jpu?&jn!{kWt zE$;TPdqUV5s2ASXz4$DQSd|aXk{`Nj4!2i+B0cTy*%n}fKKQIvstUf3>i3BjF!W8NAhcb&wF@m zBJzlc0+!{5YPzDbt%XZx$hRTi=$ztu(;kE-z-`e8jlaE0?RBEW9k-EQX<;NZ@vI;vTxD{Z_2xidOQ~Pu>5gTBVN_dL zkV77VVPc^=+;~t?1K6-n^`uXWSRzz{(#c$^?{r3vcp%-6Q&fZpyTPD!@k`Zmpq?|v zvNe%6!Vl|iLpr`6p#fNv1B9*;jo$Z*1<4X))&)KW$T8=&)cPO9O2no9@k!&Y@dL=w zx(sXl;`NGG0M4pX3`<lS31lryv$~}ZM zZD-Fk{Gf{aPvbjWx@f-}DG>Ehg0pr_BDQdAw{;(pTNcP>apGZ)dhX@@>w0L#Mp$p%ckWK_^(d^_2z_ zOx{Ua)!M1({XVL^>quriJz6J+cB}_((x2pWE?U~Kg$}+wit1*Z&$N;KuInG@$&$?9e?9(n z*>4G8!lwJ95(c1azX^;BkX=r4(_!TFR~Iixo!87s&H{xlW6zYNYlO__P}?i`?=*i zHFf;on}1mZTjsoUI$+^t%>oNf*nPo_-MhLH|Gfrxj(n z?oDNCju>KM2xHdco@S%k!$W4=gWS6%?_dy}!NkE2FH-M;k3wH*tHA`hRDg@yIxptK zF44%X`{FYZ(Z2Cd777B(bPRzJLz`6sX_R^iMPd9#G1oM;!O5<+PG{`*?8h4;^b@TX ze3Bh3ZWm&7{y4u_9foE8x>OZMjH2B{fjf^`f2S)SjxuC*1XH0szucRoHpU;62-O@0 z{b}W%qIJEuHEho4Vx#jzr@q%9$YA&bYvLauwUJAoobOYux6IO$@wj)OkdKpMUpR9| zFkjyGM6j;DD)R>UxqWGf*kq+rVU#Dmh@l@c`zAY->62X6%Osn5Kr1|_@n^9Dg~+QuAEW!CNomui%wG6q)WXMw-J>t|pAuadeJ%G$97rL*Ke^{PN*J zJj4c<5Z3qsS$kDX;V$?H{58R_FXs-?*~?)1coy&&*GTPeLV+Q;fyH}jWMk`}HAY#B z$#U!arbzjvc-$VL=W30k32kJZG2OH&`&#?bHia=kHL1H(?qJjw*R%mP-t3q5yht2iLO4S{u_pLB`mw(oGG<2fs|j2 zTc;{QPQI&Hl9lacq3a0oO129Ag?H;!dtN{@Gr~ZJ8%X|%1yJrA?n?=yMPm9 z6i96~B`i5dsZbx%7ol8JG;jIAhxgQMf!l{5cyis;5Qs9N+YVuZd~yf3+AxCaB;%X9 z+0!Wd)YX_yJ;~@IQ=82<#UJ)l(oqu|fSAV$7W6;23vQE;q%nd^q0q@)+#N4o3H8G| zl$C=%pA$M)kaSJFkg7}exfJ`vmE3(@1|9~+Mk|G~p}Y*JGA;OXLX1L2Z59&Zwc@VY zMxyf0+uv6pW2rd!*`KM#(Cjot;tN-#X3~HLgb5LAx3;m zOxZ!B%cWAZLzwwTs!YWFTPeRT^>j^ZWP8To%-SU^EUxFXVUf;C+Yt|<`a*#5H_~4V z5N=`fNzX7wzpW)fzwV`_##KsRaMD@tCNL^WIXhS3zE|o`XnCL#!+XM?aw56!j4u;u z-q5uBhIt6?4>Pqbs8htm<)C{^<+B4eCYEh@zWvND>sP|=R9&I>tDhl;hAkDQ&aV`V zTouki)AtJHnw_*aa*sloDWEWz(Q)=^CWN`{ye!Y5ct!mIaW#SKAK4sR_rb&~|1zWF zTCc4Lp+)Y<>a4!DXNsp+JMwd*fY4HD4C?NOehe#aLe4SW51ha{)utfMfUzfuEx}}4 z_!4m!WHtnuHU5p*sg#A!u>G^s<=XvWE+5WE-&zF2B(A%S-BaTA4%D+tm3cfXON%B@ zZa2KY@+hK#0kMp%ApgaC3j5~;{%yZL(yjxVrjTzUF76aC(XVzdvRxT5?P0|(`@!Qd z$=vRO$|#$3!PA#6WQ6YlzGFR9QnY{1>H(Z>(4ZkjE1dukZv83hsLUrtSwtS2xGxa$ zmE!w~&&I|y_56zN!+)A_`wM;cNI^IhPOcURei;=8bjh0^JCoPUTkYY=82Qyk!7m1I z)AMIH;ehZCPyd;S00IKhaN8$9Bs&(EI|xqQ{7gJ7KRiA?v^mk;NeH=Veus-b_gb)b zngx96;C)>JGs)14tZsdgC0T&YvRjztt+v>kBs9KMzC5bg0#?ONN>rS=6%wBF!j&cI zQ&c!z1*TJg>{;S6Cjfu~V`=%KU85&+05?PykGS`vd#g`7>)~lDaWY~vQXgm=ekp4C zdZ5(K4LL>0Tt<(SuA%ml6>TZFqdKaON*TfA6wR%+IF0+KdM!McG7L>ITs8gOTN+La$k=+Lhbk9xxp4(WRzBeMrnRHBk?ifweEcGvY$ZvI}dVg728%_x2Uc>c~(wU4$aE@zq6$2-{KQ!XYqAvAs Q{Ou?7v<(sDMKA*YS*jAnbI{w(#p)uU>Ke)6qNU4P6r7p$R061A zH*h{2jbb@0e+n?PILQT7LSL6KqQVqnnx1?NE?U(7`-3>_3}g3Yzm=~6n@uQ*|G2b( zK6BB(+0ppapRc~>D6z}>i?{xqKOcCbpC)g9=Fj|fB|n&PjEng3kyy?fU5&+)m=^@`JfPOO<#IR6|MjQ=NY@hxNEPjeRFCSP@!;T0~o zk4?KuQ-{=h){r%tYJ#kpdvU+_ecxXE+h}XWX-0RKRCS_lc{+1gxKsEP#h?KDDpMX1 zJk7icIvaB}`+45^&a6-)+ll718%kYvol3TQ8qJK#*(tA=qapyOGY_UW_GTIxW3fMK zeFEBvKg-X9H4}NYDBCN@v4n!K`PAbPXwxOZEg#@62BOG&M3l%5juC&5jS`@@vSnxd zpYe25ctuq5j;vBc-!BWrgI?_@>Jsza?H^x-Zne5OfQ7GO03~vo&7aT2C~$(BUV%{SYGGju#uVparrWpj z>m#=Jhe{6Xfx=$`74G#%qn4iJTowq@O5IsbQ3>CVYuZ~h{s0X$B1Csgw^p;Pk1TgP zBkwXW$eK2{@6BROHod)h%tHNpv;koUd{N3ljr`%kPM^6H4;FR9l&J;$B@kN_*qKay z86}=*qU@mQf#${8Fxp-zMARJp+9=q?h}krvD?{FP6V;gDigM$bqPg?RchI6VO}XkIVV@S_o@KGKQ;P#Gj}v-gkxU2mT=%f_YdFSdn1LTz`hw# zN6}xCI?bzOA8w&!d9r_YY(MUU&+W%fc}oMbnQGbk$}XiF z&II!zyE}I6i~YPC#wqffs!)_T7EA@jmzrH5h1~x=fRj5U{*$>YT4}UFbe{#1hL!KP zI$i7tG10(JRmSxn9sV-3cr|C&WV%%~ok3*@ftTOz$b-4RHrCeF9si=(J5C`uhsnj| z2nuAFUuWk(23ngI9@;9;<5W9{rVXe~;13(rAf(yboFwvMFQQqvD|7E`Ij#rFz6t8~ zznu}Se5AA52g~1jWF)94Ta&B~K$gKz(GuPyPeQvtw8hZ4yr>Z-DL|=}y`k_9gSFDA zPzrEWw-h=*rOyw}GP;O-Jk50#Dp^0_J~T+q_4(9ma?{(bI^L2I=KahsEIjnrCs;kC zJ=$l_baW?NaTY(mbOa6m5D*2p!+k9z1h{cQu}Z>xVE!}J$_@aIiCHOfxGjGZNsaa zk%nR>x;9|5n)&MKkilrfq9*&U&0mJ*oQV`|J-FuDzH6uVGb8>;=T{<}20Rh2v?*O+ z1LI6#7hoa@R)@zLuVRbgKZs@%qf+m}l=2w_B{rg?bHMNQiRZa5a%K>`mMzF*a=W`D zrKHS3L|VDrB&Q1A?4qJTg5{vLQ4AG+a60-|67bJsmA7v(ZWe6HFxtn zPoMDh;GMFys)BKs!uO6=!Yfo2Ib$}s-6MLctHL@3Xmggo#~(#h!g99@1!pa^ODxCD zq)6=F&&tFX`%jCBE-Cl!};k8yAc#ODaS;A5OMlRD>ilZ!IeYP!YW!LLNlj-T@&CP1G zh5>QzDPNFLGmpLCS*8~y3?edCzss%xJk+^> zxk+3AX)3+VAVtI1QRz*Gl%6PFFB(_u@I&r_RRDT(T9;@1bIPh@&vECCr3h`5oOWbG z5jB`pYXaU~$Zl2cWnggX5i{};W<>4=7aW)~YZ0d@b0cgrrMv!*i4Yj|!D5+Z;5p-~NH$M8ZTh*pA%v#u{#hRL|PK zgl|8MKWdXtEIyi~PRgsonO-eTu8)3y<3@Hje5xms)qkYMXQs`OV793U#mT3@!G6lD z?zY{w740I%Q#t@c3lPRDNZWmd7o?^JhTALje zqZ-K1sx8fuJChN=K%wuWEl?VgwcEtWQi#;^u1Fh}4tJ$|d8Iy7tNY>-HUB!<&7xGO zdiI0Vwjb|!XK*6YL(rw;Bh9k&_L^ z?oojeK>P_!a41Nry$J??uRFbxA6*sbrT-G1jS^A_eCh3OB9F$b`1m@ZuHh%3Db>{Q z&9M3R6ADurXi-L}!nuCoQ$X8%5R5tRTw zsk3JWuA>NT(xm##yDRoA&sg2fRBgI)s?OB|o!Z{55lzPw`HA0q<;w>2u<5k$T63L7 z_`elQdHYk_H&^$`$QdLy(ODb3ZXST~9uYH=z=u^8uHx>YG1$|`WWz~yUR+yKLg#Tt z11Yr7z}{ujWp~VLs5o4w9>Nn#r05~!yG}xvn-sca7#MiQVQJ8J!i~(|A{!T$OY^$X zW6sPRW*bw3BlU8Z3W8paQ^mk-k%oY)C;Kj(W;TFQqQhD2C=5=~w@6n|UO7@sc$3ih z!N($zw{52P=2HBe-12yRG$+Liq?>=-qu-$SyQkjU`-r%x#EVrTeYw-MtHY#LBryv| zDQhxGHcyC@^bz7_o@bj6?D3mZBwU0WX`!x4TE5XdQpJr@edwtM^C-Il;?=}Z*KTb& zU~o>y#rtJ39$2)qA>id#grcGfGi$T5ve}dgWgayUr+{%l6eo}G32O;`RYz?KLq6Ylg2 z7K?6pg=FiH?C(64%f7pBVEIcSg;V2kV9bt?jKBr-_Td$&_7bTlxeMMxVROMpNo{6# zOXgS+IIbqykid-I(UE(o89Aj2f`~HquItMWFI#yeqcG8#+vL&W6)flF917SAmYW9t zvbnXk56el-?)bb&So2DCT^(Tq7s*w~RFrPT1=q%yKsm|OusmtUm^X07%M$~5%c(UF z%i9`zJ}{rbNQdY0RSAdOQ$Y~kuyTNO_ zs_ITY%Ozczn&vS^2LaajnOV${N15XvwRsM?w?|XrkKjWkcDViQd|S+VHTs>Y{AJF7 zD(b#hY(qa+MoLjItuqE*e6*UrAuHd^!0_`^48#=ee_e`2^(YU+28~bM6C(d^L#eOc zYaT_}s?G3;21!VnJAZ+%8tt#JdSPB+H6mpEacS_=>~O&80x{n;w%4UsLjz-@@eT8A z>N0|9;~%r$Z>sjIR)HUOodjdWT{RmoaRl{liAu4<=LCo*UFnXJcq%Eqp=&xal zyr_t+RI@;XSVIrs_Ax;D(40fAY`wPwI`d-{BnGV|NI%=Taa%?|T(zYu>gD_5@KcjZ zh;gKBko)vD@ z%6*jfgOUa@7z=48-CJuRXvFNX$`v zKpxdNhbgT~$=4?)P{)%pAqQ(m>8KYIe9zUy72EbiTJ26W5F(oROQ7 z+}fHO(Pod?F^>~d>-`FQ(<<8x{7O5v0|LcD-E&CFrY5tW35SCD_(H*b|4C@GI!^NU zioWmb^QNB5j}aBAN*nV-(H`M1LOXWqNz+LIA($jrMjYQcC`-(vnKrprUyq?`cl~N~ z>l1pCKioOVcg6~<%e(J5F0!;PS-hr$~39oR{?p z`x)|1`6i7~uOAF;71?$HySFm21WdxIy)(tNO9wFNkS+dM@r9oFRzAN`+BKa+Su2y1 zpmnEkPZAC5T#HZKE(k+6`uu#19K=-zH$9nP~loO(y`V9Rc&GwwaD z6?<`UI7y$ZL-0|j-6wK|;jLw~J_$wtloJvBS$~mz4FT zUZTGVfTb+0{!VgqPSt?UI_;44Tb0fj^Usggyt&X@{&R<{zNGEWQnsv~HR-b9U6A~y zsl&Bx0`^m3Zicsfy_cJX3C{5RICCbAyy;)Z-n_VQRaoe$CBuTj|`6{?6edP{2s&~OgadhleU#H&>P{I z{JufH^FDEDe{i`~TcXBIdqnX{dM$QxDq6(Z)3(aE)6!Q3nKLL+w(PO>ebBD?Q&}DZ z<+XepPGsnCHN9Z|YTp*$jVcp-)P`Ak`lS=(*rEAv(sv_6bn;`Ex5#_ZEdOo~-C^k7 zyUcX%&~9N9Nv5M{n=!qAF#K(g6CrYS_Q+{79p(`a_VWa9xHtoY|H3nip@>J**Y6CZ zhsUrHXJ#js`reWB27bjF4}ZBRz~ktV_0x$6(JA{BOGIr9D@W;u8-!fY<^UN$!HS08 zlSqQjtDgNJVa|YhTP4lGt!Me*s}=5Ei15i?ZgOb;CH&=ZAs>YZ`b1lY79V&u)IgYUo+ z>a$UogcYNW_DZe|`Izlc;@%+5#eE=`$629HxquwkZw;_l0CFdv`BjyRr=oqt+)O+ekSF|$Hmt2(?q}Q3@7nt_YW1ad zi>0e(;H-DSuKBKGO>a1VGg7`$Qsm2X-7xU1df#^@9OjUGyMN0H0x38kv28&tQ z&&jLfZBXcOlhD%R!@%{=FepFF5MGhuRHs`2dbzV-(0?d>n~*8eXU^P5Ej~Hk3(J1L z4Z$i?bS#@C>}(hR(|qKIN@txY;O{c{!_BR8k!K0qmkN#XEm%T*qufBD=s7pMlKgpG zlHC@jLL2hw1bc%HtX?~bs*Uavv(4dfc~g*HzJti_#&Nkod?R>3$EIA@v5|9OKF1Dx z=P~AIf-`F@?|*v_!5Th~G0yJU=sm%n5gZ&ZDH`hE-KJ!fei49H47?G)>u9NL^X@?k zdT`rSXeeaIf3oz{hE&YPQ~;!D^?5*^;03LHMoVO@x0}UnQjo+54TOEvTPC4Brlc9v zpEZbQxg|uLS-z`QVK#?15h)aBFc&RL-bzmAU9L%dEP!tfMFf2Fp)_gpx~?p&Kn3H2 z{b>hU@E>=%{T0uPP5(Hit)1FPj|~T_MeX*sd~R!v8DLTBR1PV7QqG;{Y;4#wU~`7I zED4s^wdUL7yz^t>t~~48bV7sl3+0Z}ZOC+(rL%UaLP0cGFtxqQ=5KIXiF@<1^?Lf< z=6t(XoDn7~H#Ts^3806Glozd2E3b1M>-r~FNVR=DhYmGxT_rOwfP``AkT+V5oRAFul z|5v82M&mk_k79|hK&FvhmK{s&1Dy>wmiJ3$phWR@c?%QZEz??QPSI|=b~QVtS#uve zUUg=!Q?=XDh5BL*>ON4A?8zSJUR>rg3(uxuY%&V37U#J7_?vw|`v`g}EzJH1=&*D< zs#hf+#Z+S}x#Nhl-N2u#0Sk^MS+a-^O>i?a;kkAbL4}clJ;~-?Qok1%r1VHwfS8R^ zif+B!6q=W{t`8r#EZ6np4<)cED#H=fB|FlJ*U+l7t_N`nHb5eT-@{e6%Cq5o^sZ;+ zaQlqzJ08tA0twf4JLItl6>O>O1CMMyRCO*A11cD@@6T&-LjB-K7dbmWTbETJceC+x z2LvbkWci9ocH51$*P6QH5^E-wVqOad9mCFv?oSZK$6-}h|4Gz#XZ0LwvFvB|ej83{ z@+ROPL2@Ap(1K@_^a8t^N@YNeXQN3RF$4z26OiIonc$?0o_>Xd6$5tO}B zrf)1cvipAD3D0~T8{~zs&Np`0*aM?C#|v`J3;rTKCi_3owV=Fk6thPhP@E(Z7fN; zd#{07p{{4+NpO~)HWl>{)GpK*iF^|{xCJRPlbEdpDDuf8UdalrnENa5rS(}*J_F44 z<3xX>?=tg9J)&b?(|#X?*2`Sl7_$#U)jtodLUJlnd}wgJCGWZb07UsmZO7Pt|yDatwVdyq-uZU}U)$giqam^xDx7nyX zw(!6~f3KH2+-&%yQC(us+u2UoVfKDhheJ6{HcA~Yk{v+P%lm|PcudPWY$Z1@^UlGu zI$pY-jv0|Jk&YNpId^dA=2lM}+F9i8E+wO|mBz-1&3<_#wp@iX@YW4uRbEpQQvY3y zU|4Q-9<l#I1JzDqqCd{*#~1BQyR zzV$j^ukE_O4Tsf1pP%YaLQq7*(N`_(JtEQ`jhGR*u>$S;8pBq0Xf*)(m^^`h4XgY*~S#7rJ*UL>{ zkEz0-uXt5e2(|`Tl%yOEFpv@(4MVzndnrBBS&&~jD>E7XR(UCFtE8~)J{n{91B_uI$NG}{= zz?Z#xK7UILo;-6F=DQP$#D6ZA5;V!R3{7(JRQwtFV|xg;0#f9u1{*{oLTGbtTh=*d zFR0~1L|iTcyW2G{dP78J03A)~_HXTw!Z)2(|MnH=13()~whN0jIbVwqwY%g8=3$ zB(Kio+X~1LUqJW|EBqnmMwQ~fp2IMnm^Q_Sx)Q^d<>{%>VqWO>0hdB#Z`V68dG{>& zc*RF-I&3P=UTO|^%%20~Os$>w`10P=-OSzUZW+ZBBl2{1uNAwq~d5KX1i%Hwoex;onlI|oduCkBetuiahyW@2zXlwc} zsEz_9Vk|gsN^VybFkzjR`ZO$?~|IY)wGdl?_g6!kbryZL>H0v!}oJ zmD>8tGQrqHozCV8@BHSc-XwqSvy7d)CKFv36190};7NkN zj@8>EXsiJ%NRV6nU!Z@W0(4E`;9pJmU_zb%rf;OeMS;6diyTx7jN`Rw_QXxc`c z+G?^7_jK>;K5xFK8z>V{d*_k+>!_cWwn&Y2Sv1YDAnNDWGci7f^XjIiQ+Sg}eY=8^ zpsUCL(i&#>N%qlEo5z{P>dO^3I_Kn~Wh_a}{9{#8W?J$o%gT`enSQ(n94cbS3B z8ZRWRI z)NgLU1jy;VmnV_y_m;h>0Z#;w2H3Id8`#Ro=Nm+n_)n+)Es4d$jzzp3dE)mF?^s<^ z|3TOc&?}%)|2yzWxb@7F;Rbf&Zss!3S43J$Ve)t^zXo6@)pTrcb|dfZ!(03EmIRo*-nCEo!(u}{RHW$%R zPjL0loqGywmqN>EFaEfb1Mgz+U+yZY9u+%dDU?jntuoaMsw%i_?4^?L75}idMZuJH zq`+%!%BHB9^zU^}246ohocKIJ$Q{=?%lb`9bwVJ&2?Wd$D1J4b2w&*`db%&y3_x~3 zmL}At274C2T?<(QdFHp7iXiN(z_Jk^+T~nd2Fk=`BnE_tmHD+Q9VjrzC4TqOCEbNii-`}uk0y%m;(h;n6j$+3k2NtprSSdU*#H}H$)1YS)gNv6^)|;J(fL7>;;z&$H$FBxocOU8 zHUmhHfuEcgD3U<1AqFhR!-J5>rk40+aB;4KEa^mF!lVC`E+pLjD_QuTRVMs*>LU`Y z92^{OWdD_iEQq)n{eLad`0wn9|52^Uf8j-jMK}Dv3g??xN5)>dG}QWO?vGZ*e|d4S z`f;Ja&Tg?6W6RX+B@PY_t@|)$;t8 z%pQC1Yj3Z|%us=4vv(D}ftY)jdHBi!9%gHOi{0W4y>*m;UkjfvQ2q*#vN>YGTn@vx z!PvSoi1c;@pM^={n}>*b*P(If#*7WPsCjd`3_U~hd!hKp5udl;tZ=z0F0S82l{0lM z`DpEb^3h?*3$eBB*jxJbNr8Nbey^%(gC~xeqDU{!VC}8Y>Oe5BvIM+7=7TN|WFxEy zLp#5J_XUPw@Oxjs8}chhT1ZN6??|j5;aHEpNkkg8V^zG}xmzw%)JosJy!-OSi(<-M zU*Kk_lphX`fzO5o)HHfwZf_mnmW^%95oOlA^_w(BRM4JoOJpQ7OgouZWRp;|+olcj zwa78MX9sn>{=q*aWRiwQfnb(FYQ4gJlZg=*|1?fq;w;wly@cIUJxJ5|u^I{6;&(HX z=}zVRu6I7zkfBV+0 zUquBophkz=YU**K*NT%^QC75Rcy$2^?%2C0b2%?-)-I;-u(yBLR)n-ngA!D=cDnemnL_7*9Vg@gL{F=FSB==94c%FZ~V&zf2nOH;6 zz^?u4qzrJA$4;7X$;IGwXg}bwX-Y=xOWKntJ?BcHAJ7{xH1#+tAgGcO-m}G=Ey?( zvd*ZZJJPqFF?--3Yh0DP0hFf)8>zo_> zo!?)&^n;U!ySyVJSfs*5Ozl-c6MG5xTY_BhZpDuuLpZ~${G9ZmTZ2XH7c$F7X(O_b zHKvK~e?zCQ?2U?*=S*2-BEXn>lqc;mbQM2!(sM!7YravZo_1ivDQafA`sq>FtyD?H zd61-w0?eidbCaAA%umvMlWHD%@RVQH|1oNRD?t1bf3z8yh&68?`mQ4&V%q+ydTSJO z-oD7V47+x;#`MQM8N{v5Vy`|B%ch=Z9XqiN)e_B?s29tEQ4c9TaDLEm+!Lv$@rKZ9 z>(-rEyUAC$xu~NGlX5nK&Cn~*?RfCxKSI3c13b6w13p;1yV2(NiNR~WQ|BVAZI_qs zP0L1onDc7#YJ+c=5|Wc1`XqvbBNaMKp}Oa)?3%R~B_)T-(7RHf%k^!iGyeW9o_ocG zwT91^zH9QvRj~3+ls~O?9>}t6^2~K8aR?M&%%|bDQym-~H$Z?eXG=e;M(_uTE_~(N z`N*>3HdfAy{2#pXfUA&d{AG&=pRfkpf8OvXuL@a#nR_oI zXjfDKHM~KRT189|L>i;O$hxu%`16l*BAezNDl=D8=eM{sv|Kp`io=*vtY&U9th&=gQoY|20JpA~;ugb2=)~eYX zJ5(UQ;dwC^X4lmj8yh>`;^&wtVK>)$_64Uo3q6gYKU6j?TN0i!VM4NK@%_LhX6a;Q z96%31VB*M!m(z_Nu7rM|N@h(0;*=PiUi#4~-?Jc0W5`^4*wGrY%b$9KvbRy6njvfe zr$0`_tTHF6uqHv2|33<|{e-GvFB;#xc@y9@EsZWxK8ZE(qgU`+122AgO&YHwE-qe| zkdO$Ah!_|i-iqBPJl@^J&!l{&ZZyw}uSU1TK5*`L``Py{oQyR`?wP!cixAKHlUAg$ zYG?wM4D@us(XT*`t7B!;?P2x!>Lq}G_u!TwCudnr&3&t{-y@4S6vKDZy1KeZMhG*p zWL|*wK(++I;MBRezdF&MQXDscUel$yQm!j&aoqPTim8-+f?O$-o15De#ZjafA)_&1 z4hLxoM(w_fnvK}%m_~&lS!;?ScfOz7U`*ruk1jmC734uAViBBte0j+7iNM=3oG(Sq ztJl|$BCao)8Wbscp%x&UUkN5~&|Q4^TGh~P^;ChX@}g)<1A1iQmGN{#-8yslmg|pX z^_pOAahu1ac$H-%{E_||eFTDbe~q$un+81$SkbMXlw7hYirADjt+X)OYA5MK=5wjM z%F*prAkQ8<+W<5GBI&3OojF`BFB)(1vdR>{+Fc11MzHPXpqL zmK9V8t?ADcb&c_{jOk70E2j^B{=UWF+FUecBRH(S631OX96%T{)zo|=5cylh6lseO z4(r_Nq)R6ua|6fTlt!CMjMR+uj6Rh&_wAcEBZ(57Zq3e6VP0vs zv?fnnI>IBcwM6ZY2Dgt9R{l{kpp?rAZ7d~-V0xP}*^*{vieY`Ipr9~$E=yO`^Mpnv z9}?p?r5?!9%2&SNr`KacV!Q2x2?l_$H2)}%AV0D+nH|Ck-!y);thR^$S zgKV0yYV|LJn^i#&QIcZaQAfK*k&*2^NjxPt)Dqmjykcrf^e2Y7)$h>n*@wsDH=9@4 zsAD=3?!QJpG%X*+@p=1tubt4gPA>EEg3mN{@2+BkNNC{9@?7|um^^JCA2Qzv6w$4{ zW76J#pG1IM^Rg^P%RT`9Gbo#ok}~A0IOyRs--(ZN3b5^>Y|2MOy71lBe&2^}ZMD7# z3b-aCqf$>88tb%?U*56;7Gb`CuoMI7zO zJI}@wIBH8uL2Wh=9{ij)37hN563g3=DU9;A?%d>~hg9i7*Gp0%V3h}AZ-o9OWVff3 zk+-*N?f5xg=^=3*Se?t^-|;Wlc2L1;)j0 zZlxj3=Z5Tqe_SeCSm2=BTz@kvF*{>enF694+So$kmGM&ykJMKJG=1Cnj=iQE{F?5s zWUcPGw|$4Yv}LcjPW~7_^#FMF6xJx|d&5HrgV$*b7v1KkQYliRP-l!TA!BCPeF8Hh$z`c&&d}3l}I)F0of3@s<$ol?;<{iOKyH6U>j6a|496^4Q*F|Xhh0}m|Pe_&GYq9?Dk z=Mc~k4x#GXG4$)+1eNRaQ=)Kn&R)g9bGdaUW!juGH+(D?kuFI_=r8Y!VrrMp>xmW{ zm8%0Nq}X$bW0f_5tNyHl(HY>$N~k(3arFb^)+8;8lHV2LNmzBI4bvhAMpX6)w{^10 za6^l#@w*3(sTJ-^>Ttu>*tX!+Qi-kug#qs?y(t3NlGLQ8B~w0NB{E{O%UmP%>UXT9 zy1E*1qj}D7ElX^j#(qV?5Mfp|SYvIrbiez{FcCXx*GRGKP&buV+NJK#8HMU51>{Pm zDnnMok~9HqU)r}LNo4b2YJ#cAbinVgIlb$$T3h=(QtL-9Vf9J4Ez}mOxApzgc~9Yv zdLyGf3;7^7*I^$77g~DnkPx^N*i*OYGT(V{EJbdsjt7rdLW8|5om-V#$-_-vZPccj zjbQYAB5w0-TGDO0kr6hAarGNHR`r#wLoWE;$qHu@bT9wb*Pdx_;tGZDXurd)mp+de zd$1^S?OO4p;RGH+PLX1t?wfvA5)XE;1biCX&91y|jk(PEKv%MCe4@(A6|n@38EWX0 z%h{}Usf6(i6Q7;#s*Tw9CImq9widhNF`ferkGyAFMu%+Ho}I3TrCX)xUcbfBr?y%sh>o$tC*#4kVI z>?0vBVRmxrjA^xXSe131MVIbCyT@RFL}#&qQly>NbR#BavrXsX=qTg}V?e}|XLp`# zyOMuRW5t1chuoZ;7t7)WI_*qF%qARDm0=&tbmW>%(*C!ZjVfH_^kqr7+prW`b)06C zZ7da1!Sr;cK98v!x-cBa%IA4*cKlrYV19+my=vHR59kOzH%+8^?$1SR;YM5@=e*?E za*vk5U~-0&q0>lQ>Nu$c!T^5U0Lzb9t7@K3bIsDR(mkJqokTVv zzw>5b-u~SUxAGhT^y*Zp%viKv-V%WD1*8xhx;v^trfhZ1ILc7m6K+KvE@$&tCZG@R zi(y?N*cErv_)pqg(7aJQ--Y+4kXe54v)Fq%ex)nhgd!=gPehWzkG;MYM^snQOuzlKfBV0 zRm=$}Pev=VUm*IYq~iS}6}^0EBjEgl$6}TZf#QOEoMrDy)K@zxf`Ll=^z?Pi$0TNy zp4!q=)agr;Phn4+tCeU60i1itEYUgg9e7NPP7Ai#wgjoC`O=tEhwjQ>(5cOeERS0u8l}VEj)YHCqvm8#i4ZIK(6#8{OYpo>)cWLTs$%K$=jpr;0(~J~ zoIfQ`F+5KiJeh&Ir5qj`8#-$0nU9T|x=6fY(#GlOIi4=c<-oQ>!#4B_Cn}I`e7vx#Oatloa-KCeDI1LhueJU605vvGE;*K81g+sc;;Fp zJqcJD9fz4*7UU=?FAVMBF-{h@k%Osp96@LUm-#^T9FfG*=#wA_onz_dG0s%bU+6?_ zji!iMHFyvTrBxb3M?VfdTOR4q3E=~!PI><;%K~>4h?=F}Cxu@ghh${C+82!f^}CeW zCpwzuUKq1pt1(V)6M*NvOmOKr*y>C#Z*EpsKK6y&pDxuhVdYnNqI`VtQp^ooVYDQ@ zhL`qyl9DJ-J?OqgSpn>9Hu$6fSy5UXT_@sbi&Gr5@JhYa8xFBfPjr*uW_lveGcy7* zcmfJshjXi3^dNNYVEV~Tl=Ii$7gQQ`AKk68tQSWIxR#VGFKr?FIYo$%;F}V-yA_V~ z$u*Cxr7ZfPj#RdbN}wVD>!iotehfAOkX{rHujA?i8Wk~UGCk{TPOZ#=SzbMV;fn9v zM$qOgE|^K*t1s<3PnOh&iNI7n^jTE<)gt#=8Jl>FR8{`UyTV-I357bx9ul-@2HU_} z?z&2PZ5Y?Uoay~?to;q$!?HvYD$;7@{oV^nkR$!CJ<`%EAHNR z?i?!60P;%;HZHTo(ydM`J>{9Grc%~fnHZ%Q&1}~V*s`kR0|&RKSB{VO)};AXPH?sO zrXIQX5?12o5k~+1jlBL1#Sr95K%BdZ)VZJ?ISqH0K?1;}SeTqM#=?YvG9w+qxdTs~ zoJy6Be%+kum@vB1pA-Wi<y}o8*7sVVBbtfD<0buB_$rKW>zidd3o0D@x&C zmUmkHtyEax z-55K$!~A^NjD4p1l8-mmC+l(tRWo@wejV+te;670S5f-N9^f_wqR~2;mBO@}@el3| zQ!eu4UcNAJ_WfY+)7#v}Z3G%hda2nC0RCyyw)L(T)D|j95gg^e=`)P=;2!@Q5w2F{ z3*7^F&rWgC{07T%1$8~(tJ)q-G1tZ5LYjG5J)+l3dFf~h#sk>_Ez`*cj})skq1G7% zBcGv0A>yA}j{gOb`UZfjg5<(8@yju%PCg}a>hrSu-ouxUWS`+M6Aat+qfDV(Q?tZv zpv`lUdL0qu@qAoBy;$E*!jkK}wQ7n0dUro1?-Y%8dnZzcnOh%xTdA;{*klr&Q;Lt+ z|CP5rkJt~IlrI|gQd{1QjLK-c%UE;-)ELOC?GY-S3)-TFuO4!b9S>cY28OT(z>8Cu z=u3fyB0D8Jx&{xPV5%^>OLf5;(=19>(AN`mdXjX>Sg!>jR_j7t?5RhA!@GxTV3FRF4>*gU1gT_v!wWV)Ic1u}o2O zEg&l&xG3Pg64FlC>-OU8+3vyd3X@)2f~ijSPq#xVg>4#{Of1{DDq)Uf+ zZfb-|t6-C`(vGb1!Ru}@`ieo?-i@BPF|PX$I6d{I+DEvsqVJftp(5hd7Y0ip8mf$} zb)ua+#}DO;Dqh|NIj&sdKf#B%%UG9c8gnmHy!kCXoaZ~ye3INWGDOFs@`v;OB`=m2 z{UQTxhyBH|I_}@~jY4 z=Th$$?=Bf+Y)p;qE|~nV~VcbT7*muRrd6-n8+CmoUqvPJS7 zJh0lOba?GD*)nH>FbCYNC*=BaF^{a`E{7P2+hbSLfZSOy;yFrvHdz)S{J zTjRWkJ+ssPf{bBKUovtxf4=6n8)+<%hiyH7A@XCR?2xqLj)h>umzPh>lMg$gj#j*2%=Ra|YKlLmJ@%Rn=6SO`xx14hFAzol) zP&pdIACffA3fwipTha$-N3i_ZlZCpgXWmiuLX3<2a`Q?MidO~xCIM4y6h2m33 zYg=8rxL(0&Sx5OskMgBnRls5STanEzBygUx5Ig@Wel8LLrOD_y_9kN!I1%*!q^OOl z`raYFnNlN;0pMUu1lyg7$+YdFlbS>^#IwXRy$zuy9rj%r_|ECt9u!NDV!j^huSs$JpyfN>A zP>L^4jVlb5ogiW}R4tOC^HGfcOtArI^|J`#*5*PlJk25#CYs43u!RnTG`R z;cZy+0F&&>dgu}UsaIp%cA-W^k;ioZ2B=bf+D8vj+L@wjskt$$9s6^m^8qV&4(3h3 zpytB4D1xeMHptwhIx>uUIO*9z*_?q;_N}QjN+4YeW*RaVmMzdiusxThZ*>)XuyM1| zYepHeO$nSKX6GCvMa>0T9qyJ413m=t>Cv_|I<|*qL~Pn$d9TNmsHa9hG2O9`b&)zZ zyq_VomYAwMj>JH5X8j_|qQ4e31Tj(U3QlM0Rdef{0iQNp`R(Z<)1#|Ba^wCi?0K4c8lqLtCI{wu{F~dnA<_+Cg5) zg8y8B0~l0;G-NL#*yt?Y?`R)10G?_J=$; zcQ2?0jo2LFaCIB|6pg zUm&gjk9T@VAY}T>b{_4pa8Lc=fvsWc%DW7cTrHY^DQ#KY-xipwOxpc9`G2%Q#DDYq z2h0B87`iJiu0puPk(rb8>vY6lQAXI(%8F135XdR=^SVJQqP$>KY@1m-pw^EmAvrPR zf79T{%cgxMwyzbc6Y9giJ=qB$T>1}su-ZasD`z$U(Bcp)Lf7}u1&f)R;O~m&x`ui! z+MDD*)fo15OLOHVZ4q+FFNeemK1+_3heSV#fZkC27y3@ca| zF)WY^GNwlnL!kOFfB+_>Y|t5I?fU0T{xsS*Y^`I2 zDcsC7Vt>;#@^OA_ELevyE0M?GqFS1lr~mqu8wo0=U14XwENcG#(#{q@S2JjTcf58< zqcLhg2H-xXS*D%kG-UPXIfUh`(ATALzx#3`XR?^`M*aL`48MKr_1NFrn63-UINDtk zR_^+!{V@BQ1UoyQ1Cz~Dsj4BNit72AAs*1$SuA?e?9Y7`z)OU+sBeOjV({GiVlO)9 zw78Y&5(T9>`dWwmv}T`+oOjntUcD-H={-0Ir7vlz`7jXZ4mdSXw`8r({N z;KkkD9TF_?gk=Qc zVv1WNj2(}T zgFV*%ino60mQ(Q<;WydZ-YjrG#}xLt`A#yD>C!qt!m6$C`1p7*SCe!gP|B5r{1z5g zZ+&igtauXd^upnC=g)M535Bnp?>lh;-9@jXvDhM|HzXvVUz(&iOiyiRIBIt&+aIqs zsvXY!(bLv$LI!Rh@K5dDnF@QHB9!6 znFHb>opLXeddFG0FVxfvkS|#?6{ba#w*Tg4D~vijTD%X-_R{n@OllQ^f`S~Di?aq( zS@SmYZ0kJ+Ebm*K7rnnHL`BV18t362&aw$J!6L5>`43CAe*R zg_7h@HBu?R8*IMzH5|vr$4*c^ zH7gY<{+!r|0M*+cqNT7JDXLIRO;#f1ofIlH>f&1vO>$9qRO3rR?)4VOXek|)nH!r# z5UW`{5jl^&Gb2>7oQ#pFMD?8PZ_k+a($@7np+r&OH&!0W;gQS+%i*X z_~&AKuvB3k>Xpeuz(ei@npZX8$Y}hCiqzHjd2Mvs{X7>PGFoh=#dz$UTgQ;@`mfIx`bv@nNBjqymPfX=Qe6~uY>%OB$gsa7v%t>u>Mty4YazIdv- zKSfNXsFII%9_KA&0f#1vw8Nj?kCATB)2CsTvw1*l_i|tf%DUYQ6fXycfa%Vs^-O zq`(iV`n)c>MXyEYKTgDKy^oorYe?J|o<~0e^y2%VYQ4td7=1=At<#ll2fS=4vG8HO z(FI}0N{b@RUcZTVi$NvF&ijmEUMHjf8eSuj4M@1iyuhNfRp85)bUEkIg2Z_l{|b-C zb#q#RhFXZ;&00t@}AoW8Ki_8s!pgWqgU1#yBkS>DUj zGp3FjK9S+S@umKgq&qg|^fr!ExiR}<3uvZZ46)ot;?mr_Eq6KkY3fXYGyJGyZ;x~y z1>T@;$UW*zf^HeTCgWxozcT*LbO znA^Hl35WE2EAeReoT;Poo}X`6@T*C=DB2A_cWb#&e2IP3+t=2QCw_(Bx}PIBXYdW$~pl+CgAx{2J$1vzVzlnI{lpnKiLmH4-3P%M&5t zY9_LA)*Xg^_2_?6<5mOgIscHtL-1>8+j*LQ24dp1!r0b%4PShsf(DUZT^l@o%;BI2 zm_bATDL#5XV4+goi`@XJJmGBJ%@+C7+B!O83~4ChwU4)JV9xfNIBC1*G^+I|b8cF1 z@q#*gyqW; zmqm#+!60VRrEzKE$3T;q$5WWskaOc4b?dQ(BbVXONyi~48?jQuouQ*4lSRX0B*i@H zzSCvaB(UDIWHR;OpjMtHs9)D05O>k(QpFLgUbC4}W+T6Tw*GbblEqWgx}j3BWy4*D zL+j(j zY}?ok=P-(Szr!jDRVCB0RonZc`c~&gq!)ayAYsmP)|gaAFt3~P7XO>@L4TMp2C4pY zLl|^DOCP1`(I|O)BxUwJJ`*C`dw=X}pM8p?%BhL9AsnE6Bb3(v+y8x1jP;qa-!l$N z_LP76?CDq%bzJUMf$$n_Ui;l_@5(qFjyhS;Ol=@Sg!bsGiVbf=x2lLfXHLEQsK}yR zD(*Zi)8$JPm2a|hP47D#T;|(PJ;r_@rxb=cn1kvXH&3wrfiF@=n3=gXW@!5~JVb;{2V$m`9 ze8_BWQcc3jh{Mz=iZUqNx#b+Tt|Kz8ZqZSMGhbp@k<4yyvuF`Tb(APiQGkTm4Q_A=xE|7F*>b)=_O6lEHR5RdjlRB^^=ZM+vC?LU#Kr2cvM#=8 z@>8ALyqr7nVgQJPU6*qaRWUISzT2d!C@ERQ`>@5m7>E#a%5BuM==?tyB{j@rnNs>Y zt-IRWO+2J@V~oD7l#{vuA4|!DJvgC{Iq_f0pidJ!edGLhy%T9eA6OoEXT(1A`6 zsf#lkZpHhCD!5SgqT=EO=l{$|zhjS^aXgV$l&DPG=jmXzvSlIYDQeZo>?y>#dD`;u zV82$=V7=}CU#Q-jJ2v4AuLxf3|I;oWGxfbH{2{W4ORWEUU9*ulX7)e53&*F5_VNwp2AzyNT^{TI=El!2_^wX;zo9Y4H55w!Hws<&9?O+qhJY65&p+zJMtSNG z%`!V(R)c2a3_agBb)SX_W5NyS2_8q@{zz3Q;vhL4<1be1#ftc`4f3ti>|))nO&PSg zem?>tA?qo%u(qaxr_>us-i}`f=y5f3^~8$HLNOC#f*zG%V7`y8JfZ=3~>G=9%yQ zae{XsnNhPWKCtA&srV?dqAu$W%sE%HtPn1t)MI(R3;F56YhR|FAram}VEM0pe^AuE zS(>4F8}5YjW88RV@YZ;mmcVi+cL=8SY3QwH>d8s13_US8eOtCjv%y&0cHU`*wfCEY z>F@`j)w%ZIMEaK@kC1UwmaU5KLk8kG0HkCzS&?Rq46n_AGK_bhQ;CVFL6k%2DBD=v zvDx_FU_?M)>>e@MihPc$w-IYrgAYC3xUkyZ;lS{{sA6fuvlsk=!j|(#rKqFNx*2!) zJyvB}hVK0QyASrAzDZ_}Y_kit4G*Tof{Azz*J=_rZ4M3_Pdxl)NS&}E+HB+_yE`48 zEE~RFa!fBHXlVl6uE~~_fsVpd3z@mwYG3j|1{4!R4DyN z_gSkH4dCF_b5TH8n$HI$svtW&JkI>uCCsFLnMy$hQEVoZiVfG#e$cDN(|&z8OdrZB zj0thWZ}du%*0j<7>q0Q61e^d8{eZwA-2k zSo0M!zxP0vL><$lj0e~rYNRTkVA~c zR~tMgs<3Wrf*4UB{H*c%q`;Zi+$%tJv`z16r%mrEPHKGExV2vDQ_q9Cia%=4@frasA}8jmT?-#q7D zlk#Gj<2XJm<&6XHxa$HF6|!8K^hXl#qM`{R1>?TvCw)Ko{X8*V=lO)c^NGfe zL|%7gDpmwxuT1%Tm@2T=Gx1Ex@>;NmuY~~&)zn6DN{om3$cwtToc)dz zGwS`8;${G9viOHA_;zrQhd&l-9)}-!psllC%qR;Uk}PkvW00J=*;X~>`2NJ7`mlNT=J4y z)RD8Dk2ZqK9!bY-m;V}eG8`kvVp)KkPUf9A8=zyf;imszKCDSD>%BF7Ld z{H9(@jW9VXZZa*?2mcuZ+j*L&8+jwoX&q-2C=T$P*!w$jU0zYEsPB3+o)GjV$kZy1 zpFK;p5i)Tkby7RTS=ZGiX;f`4$?e4aG8A#MnXtI}^oTfHLS=Va7NK)xL5xa8t>oN4 ztOR&@t+y>V>5|5Gp{PjF@u#U@*)eK>hLe`VNH5WI;lYiQ*3$;m^nDGeB-$7{_Yqgy znUsGQwy8OaF%4MR?b#Y*vZn#Rv&{)?KwkXpgrw*i4$K(2w4d{o@r)|6LsUp8J5c4# zs0KwbFVtzF?Hu3UPZVPgwWC7C|L(nTN7u5GOq7Cy_VS{j^`c1+W2uMx!Ffn4*CN7H z<)TAFudc9+&1dOL3TFxiNt>M8D!wLe1B`htrwxl=Mv0cX4v9hYF9D+F5)bQuV~MBR z1n1`MRQS)%2ga-CcThA6C;S7g&0yy?XARw8h~Z8G=N>;R`6} zgW`_p^6!FU71hqO1NTslh^)t z9pJ||A-_+Fmc z_bpI}kN=F<_54Tzxv#c<+uhx5@hw5>E{&E<-|TMU=Ry}c4JA{5jOF5Qv=_4$c074z zC^CQaoc6mJ6X^wFP_JV`VBR{(H76bTip-ej6?e#K=hNdZ?v926Uzmg(H_@{vsH54v z;UY?Bq=Lw<{-e&#+40ZWxX5*_ZxFlSeznD!-V z|Dzi2eeQRcw|?s@x|OpGy)rsj=xpy>)gmrRmd750?A~m(6 zX&ZwKYR=CHZkNjv`1a(_H4Q=yQcNb zsCrnCSEU8j{6gA#5}71pzrYSYbu*jdR#eb zUpfwq2)PBB(n+a-jr7=*&99(Y1+JlNMkz*LDlH< z{Y-|NDgAQtHLlOcU(GQMhPgpK`Fl&!YD?fV%&G+GNRjy9I0Dm<`)=s>)dPU!+UVq$(y@tRZ- zte3_UvJTM9i3@<{%YvY+IXZEqIHWi@Otxr3U}L7|J>wqh-r3%0(y!=ekE^@!x_}lT zxc4S*&1Y?fD?mgnuRi@%`jzR!1}XY!t$)PAbNjb0I9C|juZZQWroxVW=~Xa@+Za$z zRszb(nH}#J7ZIaQ;)4bFuogm#Z}$?PxIFruuFS0n)cLd>(ZJC#mrs}IFpZRJwp<}B zvmS|wm9Ujgvv#LXxsai?7^`_EWyGxJ)1W4_{l@?4e$@q)Q(J11e-^5+^(-eZK+njz zULC*}=TBlk+uDc=%QXe`1#BIiXxlYcKAXcExQEE9&9{QTB}&$(o;1dw&)sLAmpa1iiFPlco0m zu>eDzD1Gc|vbG30PZXD+P>+Q4q82|cuwYkUe)HoWs)a@zgRiHo(HACs;MdYmEtqP5 z-%;AIo9!PD(thk!FH!b^TVrSIs*rl($Rs|%8#{52Pf;5vz_~lZwp^yY%BLE0{IjxL z^pDZgz*GOcO7XK$z#M@*CBcG7V93`vxMI32=`wj}Tar9UNJWe63l=UC{w8J{S&FdKs(DS5ZD^#luzMvfYd8M?z}cB`1SrEg&^W$kKV&RBubJ=Z($^ih~> zjvI&U0bgE}A^{UNiOMvPFxhk@6qn6dZ{{aIWczHybe%z2vW{Bz&r%G)0)rEJD~ru{ z|Jv~tfEFk^(~TP+ALi3okpIgqzY=)HLxNuy@K4Vzld6X~RtJYLI|A5iXPv)`h<>fR zD7YGM87b?)U$TC+QX|GZK#o47U199-Z}OOk{5k@C?T<^K<5~Vh19v2kAwJdC>#Aok za=F*gH=&BR{*W%^O(|lA*oN4yLH9EM1@aZ5@H&5~_GJ|tV95BXB#3i~6@!aFnSTPQuHr;u_Tk#IkHm6lN%W{snfBvBpW3>T2O<%KJ4LC{Idhu?*0b^W$XsY&OxO&lQQ z&mbsMZPUaviuAav(qH+{S?a5>|IA!YeIqQ8BqWzxC3P<@4_~yvC(MWbwbZH6WP2O- zJf|y1GCD<36a;(>;fd;ts1`+I3>qEe%9GJE{wmA;og0V`R(9Qrdmhg<5vHL(+Ch9F zNuHj|mPk zAreqD)bB;qZe@!`IiA1L2ztOPARV6_7T4k`_fqMYl7I<=UPNmyppX7#+3;_h1ad~} zA$Z?QmuXk33R^h`u)-FCZ5A9IB>iC+vQy?56DRo8kjBeV35h9YxraFrOlgz)aNsV4 zq68AWfOV~KUtCFGfO?9t0sN|VUxKSq>0`A=>ceq%&_eo6U8{#A@W;RsB2tC_UF&XE zCtZdQbv83t?vCDba*s}knkgm`>}sL>7lY{!m?D}A&UGnk*1ah$WHB`{g9-=2AWOcx zSzRG?9FRjhvn$siFllz!xYWD`wNFVCGcwkHqaJD`J^xiAoM;o*^OKk_8Dz*6v+5%` z74C6xClZdGpIoi+>P6tMuW@547ZI+|J!iO%5^%5VD`5O8u2pkq>Tsu*-X(kUT%#Cdi3m^3?* z*{)R!wi+qI`6gox`eV7B=WTK@nH;q}HHgw3(Wba_l2^3CCL;Lp zGN*erz!4MKO?o7X^W(~uYeGsS4|lRMfG4tZe789sEp|7nFZ3GSOhD?>7WOO%R>isCS4Bvn{c(u3aXSVv|v^+ z*1?S1EU}9@AcPP0?jmY7t(QB2mo6b-T+U$XT-d^tc_RAE?vBuk#>!fROC8*Ta92j%hpjo=K4GY+-DcY7yq8)uHL`|p)y@t*Oxg@qFae=dxl9sm#eu_pD4`>WWvm?BSmLCJwN1kq{LuKgSZB%H^U%&_Cyy$KXuye zua9QGc7N}Xxi5)7*S3W4zSC+1mIEaolqvi!Ggm3wZkKY-{J}U(E(^lP;NH0Zvg7a{ zKijMy%vnhXiH7F7@taApC1hmBs<=xHZq`ER+F+u9m(3(gqwP3XDtHf4u49p(*r-j~ z?tQ-R%|;XTJoha`T{(BL;~T!5TV?#cE6g5t`>wF-)W$YOu;dmlT{oX`@B4^mSatUs*=ei)hI}YqT25N1P@oFN%i++gpzJo{ zzV_VK7d_IzofRyTXJH%6uEC~*`_3{Y6ko7cAZ|3vEooKMw6j_REVC_AnoZ z!Bvfl#WZ&%?&n9L1~0&Q$?vX5e4zTHmjus&drq=>X4FA9>ylS0yUSN%Pr!}BoX0TN z4Zb7$&y<0)tt-Ufzy*gtUk6{)xZ_(iK=^i^?Qp@apKf!WFgK~CB3|n}+JK8Y69GG# zgP|S$P*Ut)5aNq}-)Qn$k^$RYbA!|#FrAK)9QC$r`XMzOo<2d0> zvpc41A+5`BkdDlU?con{d&N49-_Gto%l;-3*ZHkqL|NzKhKdyQo0^P&gSnh$KrRJz zNQlZ{VgpoPWp&5fr_?^GLj_7|4s6Bu-dY71+;1^UkUhpn_rc9qijOA+fPI-=VjU2E zsmpg-;Vc3K&gu77N;UPN!nvok-`mB;g63dQC^hH_JamOAuGYzr5#RR96^aRu_iigF ziY_m6tx?Qbe>{;bYM(S^sroE?pidMXhdq6ez`A#|bZqX+N8-lGXd@+ToZN_uXeDP?>T zDKGuP&DUS6hW9d-*Z}WjjT48y$zCBAUmcx4=~X`I>zY_nl29lTzx)bY_ii5q zaXk4X0$nRWy3^ty!)yOWKTQ1Wc+*4c`|*_=BK*kg~Hvqb#&hCVvwQugk%WhHVmfZtJ!-YcdC&E zR&3j!W+2T5{y7cU6$xvyd}fvMbDAFqmq`{dVs+L#Xa2)l{c`j^yvKaFu=j7@tNVt= zb`G2gQ-2PYpLIzKPV?4@fQ`~ZCX=MFCV}nH7AKQFOL|+BZ!@CA9!ZfVk-TKxSDxZW?;jHY2pgqJD# z%6!byT1ypY(0DW#Oz>|sNRtPZGKnS!Q!_D$56Q&N{XK(LXWoFz&X7JngaJi!05N-c z7NGBDP{kE5oh8JQeVxa#Z(S%3vafqYw?K_e58Sf9VJA+#K zXzyK`G}s{w3(r9u0VLAXuYt!DVK2i%y|(-Zn*c-~wqfBTqd;+p|B2F~I~OSoV?T>E zdAI=6hdL7HI7T2YR64Vu^E}|uhAzr)bN=c%{p$}QuNmUrkD(FZZG}NLWNCvjoL*%_ zDc1E%-7{v9VDdK}_x&@!?vK?KiOzb23NDJ}tx564u_iZW9+Uq))Gg}HO z@P|YJr!PQGL8au#6#qoCyE0k$qyWf2ecmdfBrQ0UR|gGLFQx<9+M48>(g`kLWZ98U?LDomgiAkbkyuwdZ}viL}Zrc41j zxMpXiJ=vo%-d&M9010nB4pU9>1sBAZh)ng1nGNd%#B-a$+$U7UMcFe&Wz6cnrERUf zUtsaw1a*V~bB{IpmXdffBRC{phBPQ<-%>ouHHzHi6Ci)WN7GKRpXpwUPmDJG^k1?& zy&?cyGCCVeQ^?sRkzDl8NgB|K&Xudk5c*1ecQ+f1yBhPpNxx0I{k5uA-#?8J)WUV$ z6QGj8@^a@HN#4PAhuS=6pP{FY&rF9}8TpM!<_&c)&7whcF^3k6eU2xd7si_{c<=XN zNApDOz91f1fuG%tycOAGlbHN`E8<>DLnud+8#jsG6yJ=U`K=fKj`SELFzho7Rca-< zWRmg&DgkLeq1#Ayo)Hz=kN$xSjA`zS8faVMF(e#V_hhW*I3$uzGUResoY$_sv-k#c z-35)A;3OvmKWs|=I^+8GFHTZo>lFh{L1GsLfPqMCm2aKb*MgKz z?0aSdT{oNP&Hd+|mUi2o!$cn8f5&E`fK7xEiEFc+Hxw@BMm2h_w|cX6a!>b;;$nPn zt7|v?8AgqC_`1&LZ);|&F7rn{AB9??!g)VZ-cajwmEj8 zmF%T@L*g7KOEUO#)Y5fQqS&bPyg}Ni4`c0d3j2Ed9?yRCis3E`gkRZr7@^*4x9(28 z5~ZPPmbYrPSDT-}+<#9NNZd6Ln13(1OmXPDg`i&9^Z#a_2|T%Sx!7X{8Ce_C<94LI zxn4OJ+jwn-bIKoxQgJHAJOd%NC`7IKzc0>8%FCwol7>6Oz zQ9+(9TgS~HzR%%{28T}77f-xr2Lz*po3A{Td(dyYwEpQU=g@j&-G+>Pb?K)56o!vn zLze({*oH1RA%-!^ z1C0E@TZjP}b(By|NZ9dF3lH5W2ixMUJwjyfK%E&;K?=>Z-dS+u)}uP-nw$GM;^E6B2WR-&3GdjiR6dcQ$`*XX9)bjM0&Ukn-=WwzA}9llrwR z@D2|im-9#R-s&jhKs3xR_qgVxq>z@`oPM&HbM$?k{#K$W_!uI45CUJTy3Y@)c5FgF zPU(Fm@g98dbJN=C@Mrmko@?Lo#47$=>^C^QupmY3_lha2n@tSfM=4KUX!J@p^`LpL zdDo)~8X`^@slqMxukpz-hAn97|wDA~A4AGWI1HHyaxdJd% zLg|`IGQ}oFKBy-4yONrJIXyApJrs12t19;9*Qyo99p;D%P3arBFmr`Tn-s-bVqfzLL!B4=sf0|Kt#zb2eLwDCRX?$Dw$ zV3c%r>=ao|jxf|jV1&o4=Zkaw+ZtF)IcSX|c;|Dak71=jR>f}W#Z6G4G$HB>|?bmV<7F~8i_(5S$1)*B_EZO_3vV+2r!Mdsm zf`bDnbal2rmQqd-2KP!#R3~`^5 zs=sE(*rxE>?TG#E;eko*>6?%miDp;35y^#|npp=EID^{DfQvx~TxdYF^eAPkaQx5m zi*L7*8kCLBgp1hsq%nv|eA8}_o`OK4AP26_%fR^YhNJZ}49W%Z7vPR4;6?SS-$A_a zj(8!cfjW?b;I>F?j0w41JsB}!RL}8MjU;{VY0CfV%7yf1%Qk;D$@WZ;)ag%~_}}|C zhz)-@*@mR08L^!3D4j_V?x^K>_#JdnQRqj)zUe$475I5j3lE~lbqlnrRSYycy3ap3 zllc}^E8u=%4=iwucuZwmrxgo#Zob1Rkjs{&$(3NJjv+jgjw*FupgX2Wlr~9{fchFd zK=F6{?_Nc+*!-iXvFHv+Ev0}fOnwGB+M`2)!PcSyQ`0iz`}XoU6HzSEC!ZD(?E@X7 zwYnX9eI1Aqz_*KD;$TnU_2)_U1>e=Pm*@oZ;WM>S8TU==r$(yAZE}-+t7J4tlcgfG zLzWDZ)!-qZGF3GOEMVU~6WbNWHkg`YUvl-FBz2#8xND?Cc#z@k*|%l|8}_qf_N^qi z)%2vvpSyz$xzz#(tA$BcY7K5=%6f)Z&KIZYmP>`iPdUc*Y<5Es_Z>9RAtJMwp506_ z<(RvjM~E27X0)j#PDYddCc6E&p1$$hmZ;mP2$~~-yJrZCaT@pnH-M26K#E3I{-FGDeYBZt%px)|`b@?5 z+#qO|nfJmHsih{y5B&CM_{|H`0PsgT&3p{vM|faOpCSxzu$bm%#G&h9-R{lP^m$D| zj7BUW)+oHM+^2u<@=xI$Su%xrJfRln>B20LbZSS<^Z4-ht;93v;fUT$I{5q#jqSBc zDHc-C)e6#eie3E;qXB#81lL!Kl{^DMO0#4TDK+REI0L7Brur3V7v|h zbJui^V*g=zGwJ=o4ui{Ctg7&<#Xvj39K=QRKqlyh`okS{V2Hqa)yK>)=RNmC_Pb_x zM9xjw3It{lx>GO+oC%?tkiWNOr&YwP;&)EDwQG5}UH6&7W`2GtoB7s7mzeFu#8Zvw zTE69-7U|H))pOFa@Oxfe-V!<~B>u;feRnQPVxFFcXAK%YBKCF!MZ5x)KMy~2rL;0Z zkre-C3U5q<7x1lUpsRhpTv{}j??@$V$eynrN%d%}uYM8HfG1yDHza{RA5o*?2}DoP$q-oZaZB*m+Ik+<&fPfL zZwO!LvCF^JW)4lc^3gFC_y*zz<0GmD>Cyklwl98oxYa=5TmGOhHIA4+yu_sx!pCT@Zy}|xy_FxMzBa=5+ zxsAJ{w$J>-av<{AGelvc92g5neek6;4o`gIF8%8QO1javp&D|2{eqp$*72j7)InHp z*HeM@Bs@;S1Q($i|9ZaZx#lZ)K0Kq;l|!n3|Ewyi%%r80pvl3;_&N2L-?YE5T{+}A zv^l*A^ST$qii-bgAZcI@BPb2Z%1Df-v| zN%6;kImu**Vl$qgn@5Qb+ffo!i8Iw>jG9~j17qf>#nkwzJq%`A)HMN~=F`&NbPnpp$`-)D;eiwdhWmEDwdoE2>4+1DW)ORI= z0>}Gx^yd<(3oemRBtaGZnmFY}kEwKz zgO~+p5II+QPk0><*|{&k+e(7#+gt<=(M#AkDT-_{&pj7@fkS{dvR3y1$_vM*Q_lD< zdqFKGR+r@y2yv+P7fS3jObYF6L9>`~N;9HQ!2@yESMd)O{z$FU@3trk5{o3wcE(ep zms$9I3MoRm+u>xB0ivz~9XmR0YyDrq`11^Z<;R_mK5~l&17AEkgy>)M3tsU6Y_CgS zEie-aI)hL=Mb^w<&Z&Vk?YZ(JqZvf{Lehu%_~%t(l;OtD`|+8Wk83Gp(O7p}*|Za3 z=9}Tx!tUvR6Ist{we@hYlHwLy%(^%H+^w*ADjYpi>W`BbZ(LonGFjh<{h zE;PdXpBgD#0T<>16*@zc4)yy4^mZ68oD6sSK%yTBB|=J}!z-#HHAS}fVUCHqd1$jQlwVau(_ z86SQ^&v+K=>^w177NV$UUjeI&@zv)o`Qilkkicxvy2+_joK7#{G01joM;~a}VPQ(A zM#(B8Vq?6!;0NQod+VIm(VrcR$L!`pzWK^Vii*#y<}3o={K3{Zj}rgnAjNEJv-DP)Y&Z0;FKcJJw6VQKe+tD3)y>0Q zVwxB=zk+(LCjGPnaT4@M*)juFCS?@3+}~TVR83i~X9Y=7S$ny=)V0x8Pe z4}J=$iOs*ctdh^F)_IoMHPnA86MWnGbl+M1G5WX%MSp?Y1Jv$-5(QO>mR~mfB+x^B zd&JTna3xjzYObrRZnA}7#iurwAKx0sbOAS?7j)xB%blH(1v8hc zU4(>oIlL`j^GW{@lQ__s9>_1wa_2822CkdOHzJ)V>;%FRrEKgwvd zH@^ilooPAU{uE0p4DD9Oe>KC@ZNr3#zK+9A36QQT`0V65U#B}LxLPIpDlNqZKIEGP$}CzmS=k`D*NY&wJ`UoIl1&Y zZXqsjhx*R#Fg!e}AW^^i=ugG21FQao7s#LPq6gmUZy3FaHZ)h2&#exgTPL8T+}{gDVG(L`ip_SNVy3RWM#T;9wDOm+=8E@B&pK zUZZveVCR6s@sBDw4-cvAnq5Y1Hc%v^)~EZ6+u4Or63t5urfm&@rz!V~8})jBI5Cv7 zg?gOFExjhxxN7SjJ=)uMLa2_WexBHu<3iwrxdW&kf%lJjLXiP?THnER(T2eTqFIyx z91BD7XL5Qnx9K{fqUzyA)s{!)hjHRjDIVZY!N=h`2#IqX_&3Ya8%grX_8(Tl`OFLF z6?+6vBWv4TtZ!G|N%+3^lUOa;u6h$KyK-xn7?%B6vC!{UlPkQi=I4)Ua#73UrI#XF zU@`*}+?aP6G{>F9RoR}ZIVZr7(-1O6Gx>ckS z{TOQTr?Q|Ej$$>sv}QqUNn?sYPmKcZs#9dY@xJio-BXkj2v*tnbWqtJ{yaQdRBJE&DFJ#yz6Ub6D%31`wW-9Ijajj0Ot z4)@y&et3>fXa{Ltg7b5W7(w|Wn?6$-+_Pu5?}-ft{>eD+(m+>09o!eS)R9lJ~w|8>oVeu&1z3u9C)kBSZqoCoeR=P@G7BX zoxmZeXo^{^O(9(VcAbr=%Ay*!XT={cMi^}v^o7x5y1o7g*IJDxFOk}B-(Or7d9C0> z?ir>RkE}WB%NRa8(r)p;mzuL;cuVwY2%SsrvczEmPiPphkM`XSiI1xV*_MP$pme92_3*dAP@|r5fK^IdI_F- zq|FD6*$RfCViP{e836(?)=f@qo~y7jdK z;kyY26DQ+0R`n}wue7YzK6^!RSf9ht?ns{sz9LQ}P72zg`T_RKeqP#bt-UbdmaN_z zcYcPY!?7?e_Vw~=bcL#a%dXX~mi$l4j@wI6FawqOckPtpE((DQNBosF_zl7N_|TPS z%?Br2Z707D4DOBHqMsG@xMbv{g?l(0?6o9w{R(GFt*#cJh=dg7*Lds^J*yYxMg}%{ z1|I@vvgGY+n}MFwA6k(?>%VmMZS0DI*#&my=0wawj6oO^+mA(uIH&>jOmowKi>2`VKZZGv|23d?Txg-Kjc5)C@3pK zT+h$A<9Clf-R=YXFy<}+rs)uFjnQj-o{`qK5)+Z+ks2aY#VOhq?5JEM3)Guf_X{br zlvofw)yrHZ6w_+Fh`BsJ*BtO}fM2puOQ+l1DYDyUIASh0LW`YQdq3OxP4zfi^UQv) zsKAFM=>8f0MXjqg`H#_#e1I}kII=|g_HAXW4a-v+iCAdpory zd^e6P?Dy!UcsoNn@aJKDizR6v7<#7rOSsV@h62lz#=X$p2da);HO)%5dv%nJT4~1y z4=)K#Esx!j4tJ^z7a8Yr59IC&*)P2Eyu39dPM;DL7&LawjH(X%zQQ)+sL-wyV^?$K(tVi5eeAN+@pj8ucTY@5YL+13cZ)U=RDN$hKU9}j=U zK*bDhs@^Mpl*??lOSZC-BZ|c&vJ~g5rmrmCTJa*GBmyhEBv?wM7?)6)>`8wyKP$?? z3e0w9;dh(O?#3CtrA++D61IN#atS+!sjA2C2vL5P-yvhLrpXmyhkZ-eXADJ7_P;}> zQUK>JuP^Bc5?*}D@kVG~Wzrl?eL2G}p3fC37#FV+GrDgt&nFL0;gg;oidLElxbrW| zUn!-)AMfaGB~+g7@dF2gk2A>zDf}j}7CqG)H`GgO+{vqBXKZiXRtWAZ+|!&3gpNAL zUfD|S{mz8Dg$e#V*o`?Dc|G2#nnZ#0GSeP7#siz`Y_GDv>B5!>8Y8lERlI-vY#%p@@ zYgNqMUHLq{tL~|7>h?KTKQ=myM}-9kOYnt~6s+;0(_SUKhb2it&&fTC){ltT zqQ3a+w{JSdf}Ew{c+}76K2Ar>j@vDmuQVxDYX)EM=KY%juI7z`B=jD#X zr+Rd(r_31f^`kN6>gD}i8}pQ1*{|^?VK9dRh1#4|y!@}9WxoEOw!(L0RK*iL!1lrh zY%eV{`#Yin_N~w!ENzhIuRczVMZ7}iunk5H@-G!C47xnLwpx99Np5;9gJajZKT69? zhnTDfOxxZmn>Vn=%DK(osf=~VugtV+yfKGvdmGB(m1cVO!7dDGX>@qx z^v`-WKbv}_>SpLa7YRj5Gk@`gFh2pC}awO;uVZ_C@$rv#v6#p0w2}YEd@~&FP}vY*Oj$QjLyt z{0GOcwT_)k0$m~>hPvD~X=_o+z1APk&2D|0>*3L{u!Rwi3Q$atj%oEetCv6lSw5PippnOWw` zYVfF3C?on`HgM;&r^y^?VKeWwyX~v2_2BjOU_{WZ{c)xy9YFyh)R&6cA!Di@r&@dY^|US5kS9^et5(4}9+DXP*EM(9z;l*tL26lnCR^=8w? z%ED^@UY_+;#w-T`^LhkNazCg(y1Lg$o_UnR2>6~BOTu8WagNVqh30Xx!fV!r1^iAs zmfUNie;SjC`&uI<*ECqHO{$VcYrv9~Q2RwSG14)JVUx9$%dT8ww!!_TcF%xLCK2kRqU=8aRlf=nuFwvA7{At;H{*1ml&p;^8!_maD&l@L0z>3dFhGp^# zujudZ6+(h+G0~<5Hl&N=`gbO@MhUH@E`t*7SS=7vRUm?$U}XjH|F;@X+(F?nMje;2x# zHgj9_+?oNz2OQwuO9*>FWw*vhSfpsjXp|wbzs9)jiTBNM&p~nJ&@*q5f4E-{Xm`1Q z)+vn4a)7p&z@lq9W#rckt>|M~5x#NEOkdw>X%TLGAoo2`wiJ10I<<_z=Ob9VxRCH= zP4XI3YG4w1NtR0eorh2G3e|Cobjp7?^`(4~@mi0O-Urxa&jV;*rl}VUM0EW4Eln4T z?pePafUysln$!kj3r_SI3;Me#l*BSxV?U29 zN2ho+@r{P+oZS`<3nPjR0N&n%D9bFsYOlpcSAvoD{zBEU@t~&Wd{Pf}m>EK=9}kWP2tn~eSL?A<8cA>nKu&!1MRpI+^%kb6 z@d4O?a}QLyG39)=%wh_YpGtWhr;g3%lhM*AN}w8mL{iAEHxuv_w z3YqE=6g)y^0_a$$)xT>x3U~@~v_ZGsDQEfA2{=E)Djo`uXq*zySK-KP9{%8U8cOu` zkhf}0p8$U&FC5WO3NPzvjH^_*PY)ndRQrKE6Gt>eM>3oG4-N#4CuqL)?!0tau^HgZ zwVQ~|Cq`=o!2!Ix~j&L-5AXOgVaY#wm;fzeVv_W)=Y z{puf>iv%52)jlh2YnVkRS33#SkkFCs2^?TYpQ;$z6__sqAIQ*^Qafu~gsgf6e0Bbt$lae;Sd_khOb~-kzW7bqko%i0 zhb8bO=F(a?Ehccyzyp9!Df;3bSQu3_-`=(RUN$ZvA8%200lGS(N9okx`Cg(qy-8D$ zpfc1AnsLb}oJSg_nTk#T^rR;jkH5JG#d_d+gjq_!yNHZljP-*w0#Np%2qHEt zG04`6B5iYaXjQCsQ%W53)Nx~}?|G417lAgAYdi3odAk&dNC>Q^@|zx;04$>Ct#+E( zPZl-)bHH|wP{4W_di0)kNK_q3<}*=M_+GP^R0+VFoN+=uIB`FrlDnuJ;ozNoK@&TB z^&HnWO#VWA()$xMv}LuvEA~rX)Dh^=|6ONFKX;g@VD{$`Y8Tf*?y2X)(mD;=_}E(j zQZF3zl% z9f%0&B!r4ob|S~(hYrkt_}6K3N&E&$4efjV?N7wwKT+TOSW<0;K3kW|vH$*W;1Egm zfRF3LY!<0D#1RN<0`PE@ZR+7fF-xol4P0Rq7vHHrpnKBZB!H8(Ff*V;!o!SB^Z3KX z7>b8&oVc1nFeNwTrxbql6GWwqi%Lz&K~2=Z>v-D}o3pF2?mn)Beud?Ub3&K4jj=4?&LPS0Qg8htoE-iAcigW5ic>G&f(~nl6F__6!qQQdz zdu6KW8(`#9CQWcWz^NN#9cuL-RTdyq-2O?o2mxVqlC9$VZ)AQ6Oi%(i_OCj>@$WL| zS;T9C@Idq9%{hRkm+Vmji2DVJYR{>`OQjc@fLRwqMvaFkZb+Cy5NW6=Rf()XKn=y? zLDzYF+`c<)iMJxoKk#r`J$@Tl!WUB$Lh@8P-sfT z!JQ+vHCOZ)_N_hN)X48XW^-mDK652|OhZMb`{Pk~<%dJ-o zec^)3is$aVC&90TuD7!~G8BABD47v{?yMGE^EQG zLTFBcv1sp3xQ{`7Uv4Xc2=Pt(?Tm2(JlGiVPdbK!FxFfp_r2x>OS+s(t9KO|~Ibs#xp(TvRvH<6l&^yv6Jn z5Z=G3LW5LHloU7POrO4PkB1-IQs**WYEk*cJvNQ!*m}=$nJp!h6Xy?5Km^4SyfXDk z=d|@J?gMX=(C` zE9-u*&jzy*iLWnk0NGRC9fgX^ybZt`rlL^2>-H8y$Ji9grMw;q-T&(3V}>?tLCJ*r zoa!2QAnm(=e;YP6{2^|l$Dk>c8J9Oa`Tl`88ivLw_3o1p9Q*vXFwFF1lbV2y+7wW} zx&y?w8kaC3;tVHpNq~0SEWmO+e03(X)FXVs4zRsjtem{YQv$4!$HGuy!Az@I*evv~ zPC0==41Lr^HfRWoRTk!JvP2z497p*H-cTH0Kfu`a=diGgygP6U<8qdq3z71DK7Jmt z$ivO(%h_?+^h~q-I}NlnOyk|s1S?;XkoH!eujHt;p+F4A61;Jrec8f|nm4CEq`o^M zy}lbO=uCibNOa;RN4z}+C(lEMKi+R|-8$WowCv6p^@0DqT$Jx*e?m4I^1<=2EWP}) z^1E^$lG9ron+e4BW#-E|qSbF4DFv5#Ln!5Hy$#x+8IGNS6XnQ%p31hzwby3r0z=g9 zi!!sfF+)1+0<)iFaw(sht9#7i=>4?R<5Voy!SSHL+rRt--!xaa(QAgANj}BrS0H9v zRBbBMB4`<0UTMc4pBdmshhzvI6A!z3_%WGm9+SMY_%{Ho2hxNWo%phQy)JXhLHM>? zoGrBpw;6zkQ%fpv;I|cd?U(n2yq(|fZOasT)xhZyq`v#*ZzA)q;#(e7LYQ7fQ4y;l zto}2G=0)_w>CqN@J>=fPxnFsHS@z|^pO+h`aZsm~1r6Q&mA*0s_5|o-1Y@EwLIVe1 ztST0-bV0Xnq+#3umPq|Ke^yN)Fo`PU>4v>}IXOPHbhfBKMTdm#np-;Jp50VJBCQuSl z(s6h4!}&KI3)`Z}0MYlF_n}-9>db6*B^Z|fe6?O%)Vegb6Ib~DZW-mgWrM~ zT2)9p#u)rKBIMP4End{zFS(+fqt|~YjV+M!zIs_QF~w=Tu+YqJEIWa0IANaKk8-X3 zo&H~yO#YGFe!4LFX|rjoUYA--t3+Ks2sZo`0rfLO4f)p&qD!A?)kz|{U{Zet!}0+l zp=Ed%OT5yo+)nU{K~dHW74zn6o#5cIBON9iun-2zpuemw{@(|}6%=GkCX=I!IDp_8UnP*dZ_j+Pu=g{S41GJus}mR2wW<}~6F|7ZWu$a6m_1GyMXzc5Bkj86aU>C!Zt@tUf^76;VS07I-L z3cs6U#!^1Se&xZu^Ki9k`Mb3p8={BQVn04bZASgyAy+OIJ$Xe^x^E ze7gZD98+&tk)cJse#s{BRPSx{@u!;2IVH-JE@Do;JJ;E1rp_-RK!I)*5XY%~$gs*E zvY89uckL}V8*FpS%gfFjN57D;0ijX@ODFK2o&!u%J9Tv6A?a;1)-g=e6XXFf3-@y; z;E>QzK<5RK3~jmIeMqeMiASN)GOzc6)CAhKcC12F{fij98cx4Y4)+Kp2cM0yZdsL_ z0K&1;Kxb$G0mOxl%r>T?Vvf?&xsr=Hma3}FJh9F{m`m!~ zheYmg-gcJ&c@(Raxv}vtLKYpB(*^=4rBY}&aKPxa02*?*Qqs}~K=@X3P`CE2t?@iu z*@qfU;&~fGnDq1SNrVNb$V~!Psjdm}{Ts$OrtfQ!IuE7D9L#}^xeqq3lurYhbNe}< zv}C`#;~@h&f6C@`)DjbVd%3jq;ALE(vFpj0nI^HN27gDJyJd8LtsQ3m?(PrZ>kh3+ zhK&{GQBHRFY!_8`Z(hAUd`2ZfKTc7kFNl2+b_a~jGb%k`qx*gUB>iqcXc6hX_oEZY zu|z^Oo!iBEXUy@vyO<44fLyUVJ2?FKEf<$LDuqY7tGjzBTgyG5VTAa(hqjk&t0%3nD z<8EZM^rw=MvZVfcwe%y%rT>=QhmVj1Y6exq4s;U`)%1Iia-`c#=g5`iB4pc<$J{X*H z5_?fVKYIYgQFwD6YhQcd;XTneDpEmOYD;Gw zKn<_M_aqh)^r`KS;K^?qhuQ_Vl!`RV%zFix?+P$^rHRQHY5`@jnTt6m5rO5;NZs%` z+j~!-(w3&~u5IX<0|piw_LXh+y@FKpnnq*akK^+#k$cZ=5ucE|Hn7i6+U)zE&O_)J zQWK9equkoTRFL7&8tEjO3LB9LRhO3~dBWBa63Qd@J0knaRxf=A?F>164VrKL?>sh> ztp3r8O5=_xI22!4>CI&w_iHA9TNASg_*OPq-YUYdp`TgZ)Q* zXWvgS5Bng-A$MGHsHdb3u@D;pUjrJ~jU&Ns*CnD>z)N}-kcK(_iB=QIA^^VzZjP-@pdzGA38 z8EyttL4=5#iJQW>BSlY4V6v$V=}Pp0=)_scvZ-$c#zYZRlnOOVS3~Xr8G(-j(y1wf z=)FOufDoJU@{z)Gtdek2+F$0^K%G^19U_P%_1Gb{Mnf5F^21c2;RlV;{nfBv+IY7N z8|2u|dQRj|8@AZ2ESYDH4+ERBbetmZ!UWH>abR>F8+b>4h5saAMSL#3WX34;V?_B0 zP@tll;Jl5v8At6U8g|DGPz_)Y%8<~@+TRX+=^|;UtFvO59dU9wtY}VmJ*;t%Sf(rS zY~uppOmk(EtVL9;Al%L%b-6qMy5;_}6=w^^$SYtuq z3lVxknDOiMX2!!+miKZ2s4NAl%C=hFJbCUt%jCD!Qss~)I#*IFOpJs(K7slqrbdQD zVlPX}?-e9co_O6O8&|vPGTgb%%!=}32z`D7pg48G5^;AFAVtR==KTD2=i2s#Z?5v#VF7j#g`jkOrAj~8wp#Ql`o`WVbczN%um@h{ zuD)KA$R$gmCvyi6Z5hUKo6(;lVX*l6b#e}y;|6h+p|#cZQe(A>=c^~gQJsb)4ol># zkG)@bdly60ZBM99tZjJNFcn;%#F16%J?#PI(dlGae^ZLZ@Q8Ukvxn7L zsXkwkzWpw}n^Ge_Ym@bLGG245J;kwsF%p?2?k$S3*>UMsYZ_nmA{!bKZ3*h z5`MI)Vqq5mj)mm2Xd-&5=#TIxSz$t1j?=HOi1&}MmSruzn^s5nhRgbJ5NojS6I&lY zG2Lg+m%e;slKoc4%w8c#HV_?|=E+LXN}EJK{KrjF@ed6!8wmw(Cz?0w6vz&0++-ZY zZt^y!412u8{Avmr?{e!GBZ}wPz%#C*d1C4z;Iy53E6eHm(TOg0UOp`Ft$1zdjTxGXn}=R;16!20oDbkE+NNQ8U!< zcecL#jF$Y(?GjQj%jUTfO||>kTith^Om(K@4j-Ib+vtTbU>ZssV5)MwSGFp^nf z>L_7x5RT2;m>wm|Td6%H+;{AN_uSnt6UPBc zwEAAGjv`k`s{0~eq*a=5q;q$M*JY9t3|qH2GfKrbj<5YGt|)jpCj#%FDAxbSD}ytn zqGvDz;4OoXuuV0lk`(mr9f|taL7v_^d9wE}s6JbB4q%7X0~&yWEcp@{cR2ej^U>Nt zsnTUCmS~yQh~(#Kl78s}zp-y2{42gU-{3azvsSM;CDz8A$t8bD(I5_sU+|sr>^9|J z(sdO&VnWfvyFVmz83rffr_jx)AQ^0GgkcJK|4g&KcDAcaPY5!1rmJ+kElkM(iLg3K+e~H$!N!i?_ck3%*wPF$!)zUx)Bp(k3>Qfykj|zjV5O zw3&r#TNe_XgdgemVIc`VJO5hl?>^q~ZFfdJ!X!+^VvIJG_|Q>evar-LJ(5A>x%_T> z23E4r3%Xh1rh5hb=(hA%eyVg{+16X5M=X&lEl0n&k`t1)MJ6yP&;%)i@?zcyuXU^C zok4bfIQ}e5^y(uvOG75W9<8#SJFUn$l*ORH3&Op{H6vu-TIQxPhcs6aFY4oe{hSX3 z2T}9%a#cn=W0W!iRJ9(dM`)7bR(ti>-P~e$$DugsOEhPo;PS_!lmrluE*#t&R@;2# z8e_uXk2uN{uF|BqY!5nXJ*C#tWItspZ$C28eQOM3@3e7g%D~of#bxoj-{ux3RJ7l! z?#>EdBfU%_E@+1zp@C8z@)8!*_TX9spCpKI*!|0LB6nygo()evl5ndcS7hn8+_N$QH?XM5$(LgkFVmqz>=Qv@ThUT*ByPvo4q-P$!;rw4YV2X_>*TP#;4(ewwdKgL@({_)*sIv#q5GCM2f)u!ws`2|C!*LeR z7*sp(;Ar5VXwTZY(Z|=k2pv9iNM&=N80%Nw}JK>eI`N|m9gf3LW(rq z5x3WjeVZDFbXjt}rI(S4ibBPZk53qnqc-3l2OTfrc^6}OZPu(Xg~D&5P?&cxQK7e6 zZudi8=e_wG$;eOS7$>7H3iD|kB%GSsD6cRjjHFrn8c4B59$ z$1)VHA{1;)_RZe!Yl`2V_Dax~hD(%HvAN8-A;xO7(4F)GO0nj^HT%ooUz0bjk_{-a z97yzEnCKFr$*GU_c%oV%rk*4R4=&@Sf3a^h2(O_OD6fbu_`c!m#yusMzTa8SG5%q? zx6GjV4WDv4CYl+&`Qc}7&ou`1X3W#?3yv|IBM8@5M$4=YTYu`XJY%ubUYKl<#U=~JwJgD(>%yV zb@7h=)K0*m5rPFt`l=G)rS9O4`Pd2^c_l5Ly5&Jx3V(* znPXA7Vyh;Bd@j$;TXWiL_N3UAwoapnx>Q@1(Cgs5W@E;C?Y_2TQEe`OM|vH z6Y^{)fE~ZZfrpBJeryjyKU^OHePxNBMx;~Iq)=cG+}^}p+*LbNL@2ton~QcSy=fMX zeRjOnli*O==w6|-xVFC<@wE&zIYC2koAwNO4!gz(8aZ(h7|#ug$mg|%3PH~8DhX9F zvT7)5oSI{`1#oL3B6-jf5A5{Z?KUdmPVmMi>e5h5eT|cIhAZLHzO6PCrwV-EJ@{TK zi?%tRn@_oaYH!h7Fk!6xdp@slK$~H{G-RGu~}Og8|ZmCBNCLsh6PqI*Jx> zW$$}EB>$d^(gW>B8R9!mw9~x_@q4qHl88^$_+)nMl^l9|Ki~ichUfR^)VDMK{nu}& z(ZxTA&^3BFX`?wz@CnFP$3C)~VJ_kW?o<+=aaO#2opIjS^ST>QJG3i@a_xude^2Vq)M0iPg`ZFZ{t4e%1&1<@(BJKolYA$al5uC08O5vnnKXB5*D-)#u& zEMx+1#VM<8SnoF+TCpg~_PO621dWh!<{wW#dlJZ2G2L5~IxuI|rNpssK8ON8%FTYK##0vpO=&i~xGHZG-+$(J z^oycLT~b&ir`hj7q8HR*|Lm!EWVOqjLt7i0282?tB)&<{PbQ_Ld+~HbXh@D5%Aa1W zR{Oj&8`;n8>zE?SGW*Nnv>4L_2Si2`-p$a?@qo~;Y6ptS zW{5(jrH?g&aB8Do#+kwsa>qd98DtDSUU=P$`F7oy;kB5u;ctq37Clce_%H6t;j=0( zZRqhQivk;|wQ=sPV7BSo3yN|ZkNwP+RQzf7c46@g(CnTuoW>jMz)#f3VA6wyQM~9b zr)k8DI4u8czo5Tg=>$(%j$k0*%hg(Mgv}AT6_;OrINF+*ny=BaEc*2bhqU_34`{<| znHn>kDLwVWOk3UhXAZaJS~hn9cpp2Ocq%EYOZV8cyiVZv5>+` z^lq}rKVDD^Y7E^}7QQl%XWOT+b5rf#+y*cEqv}tid^l6N*88f{n|pp=#_aD#TUupf zy)V~d0In+Pw}{7G`#s~|cU?OjZ((PFj#Z#VXhXka=trKOTb8i*J&-6~BL>cBN8WgQ zF^3d;s%@opXhqvIX*4ePjP*5W##mF%G%7CMd^Wr_o@Ev}z*wu$j)>iVt?SLUPIa(B zam8h!!MpM=D0aQYSX8jW$YR(e6H76ipNin!wY4hLfB#F)d3l*|HEn+(4(TN2=G7L& zJx5eanAj(HT3Ai%(0pUrVvrW?XMVBIG|0fU%t+4yh4hrBG^#fK*3)8}$2yi*sJEQ! z(`tdBIsRUQoL9{qWisPW*$_^3tfKOg+#Df?)d`5%keN1sb^{@cGG_mmA)Nn*)y zI^!5)iXkt3IU3q(^}(H6DGXLB{KNS-cmXgBj6!i=5qj`0d@1=<^XCV(OUnZIZK;gz zRgU9za4M+K#3eh;!(ubT{lZr9pQeA~2(S%P_)!beR=5U%TE)LaM)Pw`-LMD3iX^j0 z%fT61d!x14^+oYK7fQ69T`$MC49gu7F$#F~KUN$H=j>5kx?BH9-_Dm|^;o65yhr5u z6!lULh~(~}0gd?i8?BJ)s539ZWon#Kt{2m_NAk9sS3tW|!61L}{<328_L%hCCSK>D zww$h4J7zA~4gGj`w8R8XS0B|II-mt8&uF7kMLV5 zky>GBir*6l7n%;Et zWZ|qe$;;x}l#$oSc1mMO-@D0i%AuTDBcARK;5WzN{(>!NATY<@s;9bj6 z=P%q|jF?}egtWZBR7#?Em}7=1k5EdTjXFu4xn3T~EtN{~3euiCxf_!al{nWfaWy3l z*-VLL_4v^_EYMWjXOr-z=7=7oG$Po@1q|*}&Y+GjIaSzv8Wd(zs9f!G&TFx>i>{9? z9Q#{abTa3bl35RwV!xAacSWG=Ui*_HUAD42eU)nE6Q8Y;FT~Fy3w0fJrcu`P@YpV` zjeA}Y?i%Ib$pH+^2kID7RvP`tC1K`eX5tXDaPIyeufCO+LlubW8_&uPRY_Hc4;f@{d^-so{{+E3-2S>1BE%GUActX zf#H&u)Ufc;{6t|bCC9WO3PiYufZCqZyN-qXv#khMI47m-Ala@_?ejzs*Mt+~UWaYa zQ1vE!6FNFPOScQtla|3;J-g{F<+?V4?->!L71KNN>&-Ul1yVv>eqT4g^=me)`xNHb z?DCn*sTw45>zgEi2v;WDy`W!oe|+A?E}mVdvv73je%`ifGprAz0^^eYF2EKo@^DH?ow7kpPHCbFd(-ZB zX?MXSc-U@t?A$*XazFHvk>05Pki5VMGOBK*@7^#`UvKDf|9WYZC@XQX?pT45M%t_ur25a$NV(eXL8g8l2AB^}E=6lOOd)AMe^zCiHo>pD=I0sC z;Y5}Jd48A)yYTtm{RU)o6OQ6Cvh?Of=Lp_n(UfyW>N_yW|MK zEY1EfYG@2I&t;602wQESz#tnwX%}2QpP-_lk=;l)6qh`ueXTqUV+%PSnG|>vm)Y*J zcouvZ)oReH&crfigyJ^#HP3BqUTDz*Q%%CIfk}-2Rop zaElpJ$zQ8B+A&pk#Yc%SE$>#mRoW7Kr#epA(q3KcXjm`FRG2g5esdX3Kc5 zxCGVUJv4rII-s;*@XrXK9G5qkS@SNO&rsVO(-F1!x+^XHS~{~?(4k~m$Y=Hy+57cg zwBGaZVz}bd7dDn+t>vkpK#L*SYCi^>LmQfPIl2Bp)l6SBw>H}P%N#CP2WO&9?_~4t zbhcr6m(xNb?ZLpivKu=H!`(b;?QQ!ZGBJmOvn#%9SfItc#m3THHc71(SC*m`cX zRQsM~$Ia_VV(U{>Y&|$ie_#mM#g!W#m`uT#WaMKP&2yLeM03;Pb-qJ7&Z)a~e}`$n z>kz}^YR^bO*g)7m?B^bA3oF#zm)+}>VjMn9N->|gs5E0B~&WJ8mRzg zpVMPWNk#KFK3yS{b#S8Cma!$Hv9owS9>1_435r;+cdzk_z3 z<@IWVN!MW!_$@K7LOyg}x^ybYNo#L-2|DU0{732D6I_#ayHnq=Q6--Dqk!c)`@y36 zPEu&9@}}%Y4o-!fFSNyt8-~tE5eT#w8g$_lC!DXB*EJjt{l3;oDS) zEv4%V!Tbcw*IOxQUfNIAPE2y{K~W$c@VK!Ygn^=g$;{5nNpAc!B23Ccg7+(+oZ z1F1Nf-IKx`nGQE%zOG$6TZ^4-6iysgGFm0P>5Fze1UA*Q?ATV_0(lBQ=~}}HWmjsN zbL|ljGUz{8fD}ljYvvbU&mI4IE!13@%2w@Z$l?U0S1qivNZp_nHWOu-6+6c*U@qCO zw>fLDbKM`Lt0t#TFc0=`=d3)x5pZ_dN-uHzHo~dLGjY~M2D_grXh_!-zrD+XW3kkw zzkQ9c{4KIH)!gB|9sAWg$7xcgITo7{!EItNLa|bw7PHMf3 z2VM!eEI#V$lBmB@z<0CSg|!)QIqzZF_@ya1Ep)P)^)KGac`a)ifaOq|KW*&9gOt57 zTM@VMwiJ}oG7kZX&*yZ~Cv0DZ6$6uLcQ} zsBBY7YgW56wVN`kxVEs`=9ZS-P?dOakLR^&WrNpw#K!f(cTC5p^IP!xvWaL=j71ID zq#-W8bhwmqvwgXC3R@lGZKO7QucW@>^k%A)IV9g(E3M_$tG>nHMONsW?b4;ld$C!< zhum4pV?s!c8h<{5?U~YR6gAI&ZD%$30zdo}{*4fb zi}<-6UUx}t$A=p=Li*}5)YTW?KKxNtN~H@uPj-QL(0iTqt5Ka4A2Kq*;!T{F>)Dzp zfs_BkSgUZy-90R?M?SQXi4T$1qh&H&>sEl-lu&B1ZtO?e)>S$95AyP`5^-CYG>*AtgZex(mD zQsiW07-}ZHFZMqot^n46fXU^+0TN62D!pb5za;w&Q+Qc0s`=ItRjs=S21t z#zg$?L;7s36Xlpii9w^*c&?&4@IT61gAvNf_LKhmUV3p)xoyF!7Vm zd7{zXNmAnFpXupVK0dw&G|g<4O&0KN%FFYIqr&z{0F#_+Hr2T`69dD$O=uDskNwC* zf%?LO8Tx_)rQc0CkK_C{2r?`H7sMpx+MYgqh>p`ksPic-CWlAmjBD*@R@*h_Y8<$I z{v5q8+L^C+J_jt!*vjxqn@+wUE&=Bp6*)P%WjAJwnhpEKCf%#6s}jn6o4nLqpc@Gd zkG(GsVR4M=Ri=PtWN-M0K$#Q+0XoCd(V3fAm>`RjxNe5N{;Y!3~E z_}$glILzh#`QzcbH>qg#^J9pqsp)g@}fD}=SAY^qx9Mlqdr=46V z9-RUu!76N#1rvr%7nT7EpZMMr& z2fep*-4^``1)isy{*RIq6Y~HonW5^iSqJfu=c+y5$PKK)C%yFY;Gyrku%fLR0U;p+ zV5D99t6Xhhh4GEVKxZGl;<8p1l4E&2%g{DC=5{&=MBYq&LNV2!TW(JJOJHLGY1I_7 z%5H8o7}}HVMDzUC7CBC>w>4yO+usBZKRoW$VNOS8vAe2zOG-{o?h%R1jZyjFX|!BZ zZr0QAs?Kqtfo9jp&Z3s5qCD7Wyw=I+f%pZgvW|IEzm8X%3cf!3c&V7o)fJD_at^{XmakKsBti{5t1k7!7Ni)Whi7`sw^F1dE)sZUOWWdJemW zqyZ?>(1nZkcClu_C+o1fY|^BW*f^?rBS8 zyV{a(z6G3{Txo0gb;j&6hT5ZuI$g?wCfXCK*W;g?<&=N6m@~^5$0+FT({dQ0VYXPP zch1AGr|=eL?!vT$h7xK(*Ux2ieq&-q5RMc}j<)AjbD=D0Clv0J*~zjx%n(W~`Q3ww zln$IC9rBL*5?tRtMNO2Q^X`!IZ%)|zQk4&yslJ`A;v&>y{W0g=hSF|3Rbo)yx=>{^ zj(cGB&~8+#pJmRL0{6AfBlwbEpA{1Fu%v@pW$kj#a&ghCD{}MDvA!Fs=+=MAN%6{k zjR7Gn?DwwJean$EIOx^Km{$k+&LWsF?^fD%E+g+JKbIF16B7?|)4WjBEzJp5#VDL4 zbr6L;$*(?~{Vc6jNH%aiI4fAEC1sy8PM9Dx2?C`huBV;i6H>ikb1GgoH#@i zXj)J}>e4JRtJ@npgJHR}wMh+bx_nSsd9>|##!Kku-Gbj|T#LqHlcg0b7gEeom%Nix zmAPoJmeIBdq{-o__ALObxGYx2+G-wAv2XzpiR!Vh029MqvAlR%J-)K|Q!R~NwvaI~ zCg4^$ObHIf+^``7_x)+rjP8=;^zNsccEObi6ItYH%zbtiK1Xe+NLecsy`NZAU@tOe zc`2Cht9_ezf+MSoXT8(ct$*`?%BnLBKXwu9&Qw}0UkG_$O#HZg2Bh@K{X-vF;XfHf ztGgo~nL!JDlM&;4oVK?_;^jY~dbJdvAd0%D50-NuTgS~N<2R!bq%UNc@4J1vY+2C5Zz1w1mbm@EW> zv!y-EGu5y5$~lbf!Zp#Z46DFB8UWJNVCQ&(T$Vr*+l5KeLI29Y8z;c%((YTOq4-T04d-8%rWDNpa4VuvXbiZ0{c?-&~J z+?mr{l`V{km!o9R#`d(R@EIbPn&oGSPI>zQnUm72F^_f;W;T~a--}B@!aIkBrU)`E zv4;}JFG{pR=@`XU)2wsQ`wCBf)<|xLSq;Eu`hd!$Ppm*u)NFi^#h{@|N2Cwf6?Sq{ z96z-=E;e~O27xgAd4#@H*ImOTi43xN7d<+@?(2O@8|~Xq`BK&+At6zhpox(|s~b@` z2)2ceEarFA7&(mOpySik-6Noy6u`~jslu2FsT_I;g@52ZoQdxh-7?qHNXMlCMJ^y{ z;{5NghyB0DEn+H|8JU@xq?N1>ZTrw9QMOe?_bx8s!W#;zesYO=kM;2RJHY^3T2Il5 zyTRe%Dd4cLcHUAtSZLG+&evxc80rfRuCOW_^-Fxcb4U9e{`!A)#VT00_8sr4UISKX)ez)|hC327S1}0qog>C%}jc8z5#$=CF{ z6u>1kA$Vt5%q2oYvsR{T1#w1@VN?MprG|#a3pN~JQhgMwY%}qo;$~%41e_dw zdf#Nr#_DgMCtxmb&sJI~*Hdx-h<~c*>8HzD`Y>=nv6eNE=(WS=Y_^s^Vi2DbS(yaH zP9CJ;WXbpTy8cAWP7|uoUntZK^4g~t7QPE&QN01UiCI95s15Ac%|H;j8OYr}YOIMi z*@^&Q)Gz?TsGDO|79p0Dloap#6MW%*Fq=cCn5=^G9O&fB4=8TLZWRpxV_ExzOb%Gb zlMSwWg%g>!Z8InV3%=2twtDntOQ33Z-xJs`$Y*b zAZZpqd1F`EO(_8(ZONHgEf5+3xV%2(_T=9nDeTLue52Nu@87@Azn9A?@0r^I?)<2S zLbUot8??ZAYY3_qF|eY;xC*dopA4(R@Qn3DFyeB8<^Jfcb$>+y$43FnD9G+S;@h{9 zGc~~DKJ&pP=kSSyqB#jq)0yeG7HZJyO)PcQF zcvUpM820-~MEsL1FApF(60b=6O3M8yONG*D^4c11CKBJfxxW7L!ne`bTqM+N35lmp z?O?V#YETY{s(xiiRtGI>DKUo&f{+TQPoVavGJ2XqTA9|Y#XTLJ;rOmVoKz$kLCC)m zr+x{}1BcJD%`R ztg0$Ps9j%Q|J8K3nY zuh;YSd_G^W7*=5mvz1XOcQc^t#;a*+8iJU0e6?xjOBK&p9xGtPO63q3 zKL{emt43XyYaF?K_tx5+uA~C3b91rt+tZw&n1rd>k7#m?Ft3vzp6yE7I_Pm4yFR*W z?z50nvbpziSspes3|de^CsExX-o`iqHb*W4GuLvQ2jHaE=EusB_dtB+Laze>7Be4Z zqSPw*fQj#QwFQ6BFRy=PyzU6-WwkT6B2q;UW#(RizJqt<9?+1TzK?w_-ZPvXE4NWM zswxR?A_HM}e{aTvBdbXu^b@*+vFDBPWsbYR#kJDm-&v=vKj8{S$r+!cINet^*h0f% znSvhcrW^WM^wHhWS}aVt9)#rwOYvX>!ixqti+HdJ7aY*p-LQz|hs1Ba!)4YUfGoU7 z!O|NT7Y>5@8bK)Qw&S1dLR8~uND3Gji=an=^`t-JrFe7C1cAOP+QQE663U!c2E=KH zF($9jO5V$>g5O8#t3b$$QP}&_{FOK?dV6rhfes|VP>_XT9cYbzzA-ZYW9i(m701{Z zskmQFkaTFOAXUy)mcF3Q0@7$P;6cl?-D7SGswXjXRCeMQK=AJw==J^GSs`)5xNu$C z_w!oS@IO#z!E{rsKBw>avcEOzE$IkKd4e2xETE9Lbc+tkSOuUTaDY&0{N@40-+*Cw z2~KdlIwG`k^zAc5070R2F7o|*7tDx*9oyMuZ%6st$Wc0d3l$JD?Pn78)fD4o?zQ%< z;OyzQ{gww6fyjQMsPUf)1z*+Z5C%l5cC0#AB=_pKd^Vrk+R*v(D5&5KlR_Nm z{Q2hVxylqq$28z;F-jHy}Vky4r0P*Yq5sl zn9?J&bQ`nJ`dyBXk5A|!L6RMzV9Lfw!cxaq$KX}Yj*~@LAa5wSSzY9xkG}>JtN}&| z22Z)c7K_I3gIb;^!RQiMjy!6-gvK~kjaTh~tmn}YhEpd_T?3hA-ZSa~kW&X!5sY;% zE-ovQh+;=S$1A0QM~*Y>lMjga^^&dR1QHu#BWryZumv!4SONkIFG>L8rYF|?)gKG$ zfs+9o+hDZ(`+L;0YzuHR7sJz`3=ZKHLlh(l+NSa%)-$r|nXj~z{#0DQN(Tq9`g zt%Or)LL2se_G1h_l7L=8gXpHW!>$Nd`n)qEb~RBWNs^^*T+OfnE^fGJx_&n-wtn&H zB{vhLE#Ua@@=z~hzRbnleW38uU+^H|i%qX&vkUyfHGRDP*1EVGuj^Qh#GhMfu&C;R zf4$|Pboz9GC*m>w8T@7+nXA-3rs(o$RSQA5D!G3bH!4HW*Up&Sif2;3>-)z6Ea9)M zgVUiO*1t{7_hl7Unk@wz=_1tvJW5%%jVoBu2a5cy^JrbDgEGfm*X$*|#jJ^#Xi#$U{w z!^CyrWCmA`)PoGnVC%i&k$=fQ9e zsahp>Al??ISO+tY1G;`m@(}cH@g}}QvpA=_BUhlg!?ifXeXcuYrmBEE-*;Vm-{B?> zf6gSWe#d@ez?7Q+=Z$&O&!h(e?NyEWAa#ins-6tuhhyP+ zAxV3Cdtc!e*!HZuyM;{Op0gMW|M4Km<24*d9F$-;=X;w=* zuG3TH#*7&F$5>{ z+?xqykgY-QTqix>w>zc#yr~0Xs31$BgpU8g|>?OqMKgrtNNx6KV6RimrZV54LBi`$e(AqvgwY9l5&8 zp^R|z+rFb0_#_3xw-70k@I--|g5e?ZN#yTp5)Dy)0-g6`;e{Gv)=DEmn;`le(+!$) zW|H8z)1h*sY7Rql&LWMz){)$fB28so<>PBNe^sg!>G=Ga0IrJlVG?_rg%@K{l@R`! z)4-1Lrz!%!=$9`{Vb6~|7}>8_a1I(-g3mNca)yVPP{T}?3edj^h%TWEudIn-jh{lQdoJ=o5RlRZV@JUB@WHKd7mer#1}fikYc>;a1pT=Pj1YYRhN znUYIU?4XJd`m3SqS8jnV^jGT)*jTlTQ??1CRFhtq@pf4oG#!2KS+Q#s?fk7LFMqAS zbR0BYVzck8B2}=eaC~W-wH9m#sdQRF=qc02W4cM6t@lw(49^9DQq9Zq5yLFs$79zW zn5sV6(GVngtDHf}u1KjwSEP5=Nz+f29~tn@`p1K_!+{JrE3($!!x3v5V7cT5O*l8L zlciEK6Td9rSRBLZ3%?>nP(Z9s0R6#=-+`$}jjLovtoQa!f&LKGVz~|KRrGUEv*5uc-J%?q;ZiH16Q(CBue`i*bwIPo zo_6=nnNM3=l}*V-Tdch83T={GF|?zYQfO!4F=!p~o4Yvp&7S)Sh`lh@f8Et@qX1kp z>V{n(4gG*-HMvwMNPh&?7aW5+=p$8`OGdjJ9484CObPk;3VrAu|a-%3i7^;$VAjIr%WE%EJ-GmZTOTYB!dyWDmdhV1Yw6iY(6fjp@s zZ1W%ywn@F`UH?%BJl#LsK`_4hKXzAp)!YQPhd0^ryQ0n$_58v^yMEAi=gv4m^Io}r zR)foT0``3mY;2q$JW28A!8h-1sc_?(|EL`ywe41thRd3niYh!wP^n3El(`L#b_9fns3*nE0G(Ce@0O2fkex}Tgf{4OJUfK8AIKHT z9(`AdPaA~l{*!<39c@XF9=@`|-OmjlCSU^sJm!0q2pDItBZ4Ck1rrmKgN$;fo)rea zV8NJ=4}xI{a8F`X#2?0kFH3MLp)WVl3>sJs8IvV1eh$G)!bht=!SqIq-zNOm zMNOouPFxVT2+)V>9-s>8jz@7P*T3bki8tJX>6sfpcK(wb)|At5vzhO2Sq^d0;Ge5dI zjhrk3QA1}T+AgdNBp!ZIGo7e5`kfyx3=kMAmeaOC;Mu;_FpHBW7bN{f`6^{^YAmSz z;7uXL%eDn#L5o(#msla`voaIJjmx&+GgFAh#S;Z@l`OA9kRuTkirm2gN48T@GC>E( z8|16eU;GpTvAl}>SJ5dX9l&N_l(PJ1AGjG5KQ+vE`}SZh+95V2ItwIk`UH}3>7=Z( zigKa)T(^R8(t3{5c)`z~PtXp;iPgfB5Y^|TM2XSF+J>LXHzb@3@a^rRaftz>?rR7CnvPm zYKhu0Tv+nuVzb(Za2a>)hV3^~jhq8{8V2LFTLqW(H`doHVI(N7&{C`G9LL+|DYIQv zmB+=Vh4xwBAFPr)ikbr*25T>3nB45D~R`p*rDwXWAn?{OGG1lT^ys)0Xe^s0yG;{vXpJ#%> zNmB6sxMI_>L(=))pA#jVS58lW`p~Zb7OX{CRX|ME)Fk23;#fnTp`c}fkH=EJO`&1n z`4}Kusv*{Sl4keQQe$(N91I1nUso3qiGoEX7cqD&8g9R7#oG`{QbxW2ne{b>F-JmSbwMI^j3w|MN$CKhWtS1qoi&RE*O&l2tGocPnT2 ztsg}CoZ)Vrgh$~nnKT#o+Yc-0j5kZdI2u}62}-~}BePir&6GdTiv5H!k6^!`H-jUO zBgFdAR$c5iHZ%NJuWGiFWMjNVdW9~Q?D(T=DJv}7N#;~?d)=!K|HcKVZSz_jZRX^0 z9Cze|VjSk2F#O3XOdK^+aUuFt1&p<|rc$6xm9yoni>RWa7FA4ab2jNb+M`XgrSM?or1jILDbz#b}uRLeheN^9L{!`|y$B)&B(YbsBxeJLRMz#JA7cMP~ zVjNJ60aP-{5b6Vc8Uk|BVl74b!}m;!b)Tdp1kK~a>W5=l<}R=ub ze)ZqneZHs)ChA97R?={-0k?0ZiMgz2Ux_(ku-?ES$7vL~kmg&|sTyvW1n{M)s+Hjq zFQV^*OP4McSYiVu0eYrMl7&qpL2tYvs6nTxbA-{`ZoUFegQ4*%c&DL8!fw=O0^wMf z%&z|otU=Mc9E#D@jlT7`qobpL8pjQrKE{UBN^1;s62E(QL|MTr7XM}&T&W?KEKg+2=Yg^G2icsoE$VbG_^#CQ?^z&N6G?W;5O?!rFpc7 z{>l8Y1*oZMa)}Sq!cSLa`~T@XF5@t4!YVak=q`xA!g<;XhkaD{S6qcK(*8Hp;^RclV}pv#=a7W!rdRb+Re1HYdl{)}iHd z3%kN^Gf;ONKeo!8_r!%q*g`v2VCMtw-G;D!yk-i3h`4hurTJ&3Hta6M=xLrFbLx?| zZoR#=JTib54Om}uN3V{BVB{e&*KR2&T~|q7g6fF5xk>ELlqJe~RdH?89u#n}%|S&2 z=zktStJV=WG4@l9dDuPQ-13SFkD+l&Enbu3&L7}Zr$^y3ANTS$n3-J}0)G~t=Hqkv zM>vwR5Ws0jJq*`}6N#l?8ws57DIJVs2z&n%ztYxBH-24If}v;L#s>ei;j_-^SSwD9k9=yIn)tkJeIgl z9ZclK{3AHDtrXm>&akszG&U|azi3R3)cHujTH`~- z%ZmVfcimV=JMOqjXuwKh$RrPfAcntDDOi*{{>=F-LV!=Cq?2*sUAIQho6iYVPJNBz zEonn!gZ?Hz11`p{Eq0vIs)CFm>C@}G|8NLRw?3eVv$amN+)*xChHq@MfMEbzw;9Ppv`)+Jfw zTje+T=~u8nSt<%g?Gx-fy1G1Uin(N6cz?8e(S6iXZy2ZHrmIL2bi%5cWtZR*zJUIk z8>&_u=J31P$lM;T>&l@VqWXhX$JjXiL+Sa1K%SJ_EEg6V9uA+bJkypbLzmqdK4Ww~yA zZ(Rg1ov`N`D`e90C=T``WTf<^1gu}5LSG!pVUQ9a@Q0^}SHh!bp2zFkb~?E4XNRaUhBgTncdq$Y_8FMzZ2yS4#Z-SXf4UUy8-1#TRnP z`|#&DNabYz9C-83l*H4o5F`FN$A$Y+x~uOPg`}5NOaijH`BJuK;w|Shqp~h=i0@jZ zHTsPwXFF?rncVdng{bD|=fen+Go_uI58uA!yM66`v|@76;9xOqxHQVpAN!N3-)eyC z%e&GOEp0;sMsAJnMzx5|g&aJbQ0uP&JRutmi%s*2Ii&1nIwYL#F)5Xo@gAw{I6IYR2&t0QJqvGB?OW#GOx{WHr_@mFQ_#PE%F(+rSG9%W5N4iR0 zalc(F=96|CQ||L4YUYx=x>AW#E0umWD*`=8ohm#wZ);y-v8+zF|yeFxH z=e_?>4US_inNNkWnJ&MY;bP-hjj;B_(uR@CQs!O_g{?c=6_MjHFUWpohI}s@wvW>0 z<4pB2PV!v|@}?srRF55`PQiJ$x!TJ4$#hND7wRP_POsB)tAW<`Po69@x8>+Y9E_)8 zLmj64__0d+Xz1lr_cK11DbBreItQ7&_zvZ_r*e2s`UphA5*aC`dY!U;R>M#Om9ru)i5px=Q)igs9jY7gTs*@2t7U zjKLfIwDe6jaKL-vxEwtmwtJmG02RO(aOH32h3xBKEPSI+|5qM{T&5| zN}sxLW4hIYw|1tm#eeF!A&`uXzRd*y_GF~`{^qt30zk0vI8kmrPqBRNP_njKsKNb$ z0Ff{KB8JAsNU(48y;(!SzL`4nEAq^}89m@BPQE&M`rvTj0M=>#`ys7n{`uE3vpjZk zvMOOSYJT!w-T$BuSaPqY-oIW9h}q||e$TYDwAPk7`1@w(=C)$0Hi(?Gkfh^~uhH@G zZH=Hf{UO~aY-_$x&&b>_hkY;~aUU)PN%txJ0~lgGOUq(C+8^CqY&d-aO1?;Zo(eKZ1?oU7V znHz6k{PfxNp=@Uy3mZ!gm;jGF*u_tcIhk8^UvjCU(mn{F4Db6U=lcH%bfT?kKr5HI zXypCluc9E6NB?SYx|5viXYMaXI?>*9?KD3qFer?xqjeOP;QySRo1Z|e^dq7bPmEcx zi0J4fO49VunnDwaGM;0FYFg?8z!)R1DOk$`Gwx04ac{b7yRg8spJ58BY7+Lt@7PX4 zG|wC`JYnf?x%_|7^jkZv)4YOd;~tdpmTz{Tr0=m~leM+GJ%qOFyFV13Q_wAAyM6U4 zZuVT==&kkd75g!Jld*li=OsjZhWD+rakmP#@iT&Wcyi@GiN=LN#Jemywvk`Mk zlh@PK$tiHQo2qhTcS{&OT~zK6LR?xMLLjY$Un zXJK(1l~(J%JP(Er59iM$PZDi64@y(lERk$sH5iA0BmWb%*Ba}oLk6I_{n%3st2EFf#y0Fd*Cn4c; z|LuD3>FE3d!zQiKV(IS(+LtwZWQMsr<5ZYH2F%fZ6u`ne2B4 zZFWVMpxvzn)1m-a9iU)hD{OtwR(IuAd;2e|$Bt&OK51**%mi*~5f5gcca33&XdGNz z-5)`ga%T5nw$JtJ#M^aj^7)W0wd~tL0PWhrr=~HU|Ihihe2e=*`{W*;kKqiy;M|rX z0dK+IkB-{x^4f^~GHmSjqHB;+Xk_5?c7NrU;zEaj%0ie`p8a%77OvXmNEcvl=qV&- z4uqy;q{<`Kt{wXN&l^@SwkC}WXT-D=^Au@oJsrapMge|%A{sj{KMQermnkIfu3gPq zm4xG;MBfTPo^9?KvK`1>EM7z9Yp8wLr{D>(6B)M23i{Ev8c@;4Pvd2swFaZL6mwE! zJ?Ep|(vk5N{;}X7(oKW>1&*rc(f|`A8ic-Q`(rzY)0*cFL15L}qixRM28uznH$rx$ z-NaoZx%)Ctg7xM90%`iU<@P^?qW;G}0Klv)#~wOG(cfGGa_`-k$DCFqp=A1Cn;@>q zb?e)rKY$nPTd3n`JSa!o$;IsHZ1mK0qZf>LpLlYp!I@fJR%ol4!uq*GOtiE)x*Ts zs66gUD)4YEugb}V5ygv%z<5K-7RRnZ^HUUg*orX)67P7WYQ6V2JeAe@R8aU&eze2 zJozRYvn!J+X=$icBb1?;d!=YaMQm(BM)x=ZhFi}mFv6rlt6(hBN+$KMqNoiHLryF7 z1rw9e(idn^(eexD&*!tYx0mFUi}Hwj29-K(@#o~(RNEMvlz7DwR!pnx0_y}l25#BB zcp;#mUA=S5b0yo;__5*U{c?^el_PiFmXEA7mh4v{*PIR%z48+92iqnH^t< z+CRdePnTi<>e>H}J*Iw-P&Pa{R&U}4pC~s82|*85KF<6Mt<+w`7q2*zF7{r_4{?Y+ zrNFh^^=K$m!XYL$w(!jx>6@5U?d3YT;RyLU^eh#(I8kRb>Fh}&EO8O@9hd=*TJ2Hc zQEL5WJQeW9{|$9?xQhO-K^-&yL)7u9%>OXz81f&Yj;!uP?}7l6W7UM2HB66y`pmJ!&Tr z1SAV08ZB#}t6Hf=_~Pin?8l#h=tbOn>n*!?)3L>YJm+){4Nc7|#sV8oo~6N(VmH;W zUZ6nO9Iakc>(LwvA2LUMZw+U;)V{zB+2$k;DxBfsDpq=+WfTvz0}fLhsD=WN9k}ou z#s~Z;xgiX#1nD9B^1jM(Q(eXF`6DS3%eR?0WxkI~x_sl2%|Lc_=6qWE+3VdN#mI!38g}}+aaW40Df8a`Rb2Q-H^BsK!1h%^)18LT zgi05-NBHOff8yrSf z+waao(XKVQT4^PPC5?#~W{CcgqXyjXG?2xtpyMpd`;&z^G9HT#Z4rabCBup6rPz41 zWw9yxrPY8j>@m1M5P1-rG`6tEHk9aX(Y40{yv5NXZ}Qv`_8ZDnI=;Y zhdv}>6xCr@1fkMI^LA(LyudoetCD#1Ny1Y#F4;pmI#EJ0bYBeVffje}^3O0BW%tNy z?uW|CHP&z5pJvpf?S{uBCokVGI34;e`<6ybY$MUn(suT_1K9q+nuHPE7YPCZeeV10b6^xYkn3)As6&pZue1;sRK zYHEDeV&jis2=9Z@`V5qr+uom_`WZ$Os)qKQv3f}{5u@c!#k>IaV*xlRcF;foXv0mkxd0|^)ZSaca zh*i6_(JN!)$!+aRhB&cj+b`MDNkMbKYT0u6w;<#z_Cx{h6Jv$dFW6vq{t6w3Qg3($ zw=vBriw>=Vf0kHTLXGjh2l^|Q<{gAW%5Irxg`4{Ze5h8Ts4Cf`(8v(RV`40~y0>w} zrs1YRc9)nWzi!RQ$V}?|(c=RJsb>yB_}c?HT(F*Us6lw_y>cx*w+{KNOmqu3{BU-oMwl zz(#3Kc1uXG{}6G)NRaac)}Bg+^`wroOgt7j+voJ>;|{UgWnPUQ7NSTwAdt6Wu-iB1%2doBEQTnL%}480f4)^&vZr$q??+p-_8tMt=%+l3q!d7aGtYe1E|0@NLU3eN)(`2)L8{2 zBn$u*`?6;OR~=OT={-dnB}bW^@_S=(u%=G50^T?fBI7rF$tgYi!^Pe_6syp7ckES+ z#zOX>MiL-X$lx@Q=FOIH2$Jh}R+hwMcC`3fF=ou&>HrV)Rx2hh0%K{ec>;Tp$;Jyc zWPCax$(ou|Hw{K3#-XLpGk#A+EY~$uPTc@lNtW`~MSv{yGKroA=wFlUHGb&U@2L;5 zt14}+{F3Ci!JcONF)Eh+AyuoR`5LAe2B*6HP!5m&uX<+bNg_*(67W7<+Z5R`jenjB zW|oz$eF*y?n@RpIKqxV^BkOZdm{gbk}q1+JA3!zKN` z#>PkLSXh+2=-#{Uv54#YWc9#c?u6D0$mBySV%`A=NUGxoAmH%Sd%0J)`!!YpJ1aK$Y~eMA%vTFs6!w>`rE*39kl1mdmW&G?!wg@?R0j{|9pwpiuqGVYxM0 z>feAbA!z3dIz*4D0p`Fg?Pc=WzaA}vkLW!Uey>#xX6W4X`&aJGH}GG3cY+^@O#gW7 zLTMI~cd@|1(#Xuqd&i`|jKIir`f!=i| zI^oGlsRYWB_xhPzVqV=qwdK}BNp)p;=`>N*W#K?hfUb{<|8Ja!#H`nuFx&=o?8!ebt^brvh*h(!YOH6Qw|jBuRXS@Fjpy>QoH>(OtEy!J((-?9@0? zU?2delHqY_Y0d@(`oDf0IT7--RP7VH#nFNp$35FL!cH&)6wNN-*!#5tzS5&e`0mV; zbD$>bX#1ms8YzCTTB@?O*tXYrHcO>Nqpc<040fdZ?$F{;Ns2DCLbQ8_0_S&7|plzj1QJqRSiF#!8*zRGgp)QTEyPBUw^R zbdh;o1L-wQb~tv(%tmbP=lg_pW`&*MZZ7u-^lERnjEAE$8=ZVVN!o>y(d&%ei0EXb zQK!#G*4@qZCx&8WzA?cgs(ffNbvvklieTntM`{(ZO{n%|DQ$Bg(#5S*+WRnM;WZdw zuhn?P#0I)Ay-M{{oH?E(I`eki^X0HW^X=(7Lc3F@+#7QwkkcF0i3bi;v#_8=tPuHfs9db+F6e+BN0s8Tl#`u|E>+9b-g-3Fi9XaH81($G3c9h}=``fm% z#l-jI0A@uyfU2V8Ysg7D^yH4CnYLn3|QO2 zM=R6JAOw`NB4TBS4QRwHlcd2i-?$~8pEgeGp_c*34%Z;*ykb^2vx+gMJYcSfa&Cls zzy@EU==-A%q|JTWawr&9T=EE&{$FS~0UwH8%f)s7bVqG2xYcvIzhnaw_DzcHeDV*f zg%8=DYQL)`G)}MHT8$dA0|nuNd)`hNlyEMI zjx9rhucu@jCKKXJ3h_<^LCsXiz1no3HUxuNN~-Oc7r31nc3uu)zg_6rcWjOj0#=tcvdqNkg^6*QRV^ym(1|ZL<=CMEREN}NuQ(Ez!u+I`O?*V|&};Ym03y40GyC;pP5F%{b-+}9c_!Y% zJ#cZmr;V^4E3k}`qT#mWX5mD`5?Nvc^%uEiy9YGYMT5?lioO$?!TAUQ-O1I;#G}T9+(F3l4m7{2eA!NynG+No9r-PJ{I| zR4>5B<|7f~IAzV4JqB32qW7PaA54lj8Q6nK;VO(-KYLWT!~KeR(**% zy1+P1{gxKwO3E1k$ZNMV$vBr1ny4#uOar}17Qa+I1y2K1M87;YH#gEkUTUR?wSS5h zw86&%^J5^*xxT%mc9A_v(z>>b_o8cIP5SX=VtZqX=!pE{%_!iQP~-KJ@zim0CI2do zGR~2ZOwl z)e&=DA|=PSf|S^nqc{!EkiTv8j4(-=*>=VW32tHpIi#us#6(4}q0D{TbDWfaBUbj( z?)RL>O}TIW>;rxSDi*R!VPa!gI%Ph9QNBv0hX<&yu*0^N{%1$XcWqPP24bSiP1Jn@ zB*xX8tb*9ipc?~0-?%kG*Mod_u6ANPFZESsFRMz#tFEo-xEtVhncw+41vHy_L)grp zQ}(GAQk1ptdYYrwvT~bgbcf&`S;Fq70$zTu(xgI#3_39kAGcO4wMJ0hZ-#X!V;hDQ zXzuk)2>UNxiFXHflV1h_gk*ezb0f6aqOO&}@}<>u19aT$2RD71OUJF_F>Sf}yk_aL zMiTscp>Wc-dc?}U(R2eRnb5ORKc$KJp--QRM1xwy`1-o%h$$+vD&!;E$W){}DfCI+ zV*N*HYt{IAsTdMk@r;bh;aZ>3E_9 zW%xAZ?!GjFO7bdJ?Xi%Y4UZ!Kpv%J?3{h2e``#FN`fv3RA7+-PinN~}$yhJql+WYU zfO#c^_4EnZB2{MU%VlZV-|wz7!l`jd^cT#Eo0d|06>!KsoN&y-$CU?uYhBs-b3{f`7}h^aPc{*##Y}o<xhM&B;LigMVDnKk+Y1!Hk2o1H4YK90r9W5F8>8rU-c5 z5BVD`0=@px|M8!|Nnc)*-`Lc%(qMiH z?sgf75XYII274kzsksgJs@dJA{vL#|2< zdohsB3k=ljUnycBfV`X4o0RBK;-bjX$0%H{ottk_<(NRF01u#wMn7ukwYPgBMZ608 z+t%^@KnWP1D}ZR048+ATCeV)vrDbMBM zK5!Lt5j~Sl!Nove7%OHC(f0vQ_;aRJ)`9bB_VJeEii?-@KJo94GvoB99?`kwecZDt zPZ~6K&D`%SA2GiR#2wZQsf)+f4|M|>pS5%STBt+vZYxGBGPI2^90-0(mfrVz3A}Cu zJ}1kdBNqm-Qp58(4s@?*rgQ>t7n{=h^W5LFzYk_$DhD$3QJQ75 z(v}G+secrybNz3h?ZrZrr~TGWEH7tAUc9CMUDs2YSe_pNc`Td03vRobGaq|wbCkW^ zK;NNSfQB1A^Mz)7!a|@+c6HnR zHltP0S9L3_&}_##r=ColinO}J9n{vA*0w+P=*BMXeRu4`IcSlu&TGY|Utec;046|Z z3|U=DNdHz$1Ze;06}7=H!&&BZ?P0uQl6Tx~0DcHJSHe$9ejV)H1sdo@cBiIFq)5(c4RxiCQKEVavoMfX_f?Y%xB`p^ z@pFqWZ1gcH_(iU(Q!hD|9;1jE_IT(le33_ZPRnLtc}7}&KWV9hkv-lx?z2=JLe^R6 z?E&3{&3Mn8UI_+8MGs&B5Y@9Nc5-@8#h9jFhxl^nHcIuLr`k`pc zlR|r*m0k0bKLc8iKUa8UT>aAO=RE@@>(csd@xnej=&e~tI!ndAX0EgWOc9 zTyk2$zysU44m3$0J2UV*?8S*V%bAg%31W;X(Ytkv(XX2P%7dhO>gU~ZkZu}tFaET? zn{$5HQg}Xihg%LCOwf_p^a_Z+BEz{aTW@T0M`tGrsLO_Eh48il_4Duthuljwdp+IV z_>j_D43O*~kTjiR7kTyu@sXW7k%Cl-W7k-W)wz<(bwr>#sRUbib$+fXf9@eFUnjdY zj$H)idn|tqNtusm{Fx->jJc8Tf`pqWl}6hk)2eddyOsHYNMaUNl}VFmosL~lJygeT z39ANn7n1#F1{Ag_^QuhuXc{O1#h6kXfj-uIUQwa0z$%X{xxvKfM( zgWKW1Q?JeZAp*5pvq7ET80AK2wP~-eZA8VQ5@p$bF3qQR=xLu{j^dAaW%E5x%X_91 zWRcYKDdguzHs9?Y5LgqdZwT5%ZvJB zvf)bs{E?*X-Nb;BcgTTb}>!#TA~H;ut)_9q*l zUEAtDN~Y&S0=@C{CYXvb6#wsUk99-~Gg=ghR{QR(|8P0AlEkblc!yhlqUH*XbhlsToAd@0BkmQCd0ckd)r4ZQGvC{=gnAeOPU$QG$jKIG+veVk`76Ccy#XrS_W z$ZiFjkHyzZ5kENrN49AR?rCIOYd{aMo*Kvc54(O^4ey=X^e0XgF+4LgjH4zon+-nw zxNBcTssBxf8ru+7<;QdwDJ@U#pVe4Lw=+Ew+9DV3s?|lgi+8Stgv*oied>rv) zGsQ;>4Cw2q9qY?Km-;WD!jNUCO}^6g2L`cK!26-jS2xo9@p?p!H zRue#le*aK)N2uNAJ-Lp79!2^XO`?{qE1ttLG?=QNNF`CUW@L>ewWNO?HDW6=t0^De zF}e`2&xb8ax5aZGIIzSoQZ9Iu+>jX>)LZWKE$!C6@`7&~OFs>NkhVr3DNKMVg4@#X^^L|2 zWPH<67D6*S!2j&rV^#jhEjM*oZEjecN#M1-AjkhHLC(8;X=I&=0vdt| zt!R(f`72ZenF)T%>QQEn);bPyfBxu(C+;N|a*#=kRvGE~Qs-JDIG1#@{RX-?w#c_+ zmy<+Kq+bKDp!N-k-966zSA}h@P;KRgr!cwvGUUYJV~+j`hMBF;n%NPn|jcjtl@-e9$g)s`Wwk0(kYkArt~Rl)&Z zjcr-V*VJc_IBs@fnwmN~|Erz_JppuhAohJU4>YSD&78Ezyw*oArBU2!c{Rr1=A4}h z2ujlluD;RZ8fJm6ys@V(n>(81qTjAbH~^m4?IN^P4JCyU`=7uY%?xx$#``MV3wK%I2qd@b@339_)aL z>%=(}x5d&zvLRRe4Z3`+I@Z;-e&Xl6sNFFE$2Nhs{YwS@sZRAAw(mRAJ3?j`3W}(F zOno+Y5`3=v7PqXSB{`86cBFyfg)N^3Rw&-tU-Pto!9(30S_C^`y!?E{--`$od zT&tVtHX4)rbQhi0Xf;E*zU?LOC2uiUo5nFdiKBm{`VM9G|B4JG1_+#pP|G@m^wSR( z-5%c;;k9BmtXy5ph!nDIy7~#=1p<}MGLrs%@tNCqL;M?4e8SwrG8GHy$2-w!Sr?s^ z9hq)Y+H~mrX%d!t#EguYrehtxJ}ehmys%j z=6apA3z$>82JdNiX7snOem^IF`|hrY1jyU|^~GB2Vg@W%%UQFgyIfm71ybl6&1Ke1 zvf*5bA2xNyMCYC39xD3eNpGg~=}Fyg;bVe);t&1n9eVFrl#mPa|I9=$R_#2}FkiQ2 zePiRnrvnF72(RAQkn zdKfhx%EWP-ho=o_sI7tYQZ32J<=|&yqrXXPW%EBWaE5_UxBvGeqk?+|!0zZ7ux{}< zB+yWJ@F9Ltk4C?48`l0San&wcd&Pe6{(ntM`(KdWsY#qxT?aH!PAZ7r zKlsu?(p3ZuArZI3K?sh56RNtLur#uKT&TOG_xf`Vd7nz!6gRyTiiYJNJP)pv@2a+j z5-_bO28w(U#V@dz<#v77K%|t)2~73y!05nrJnb{PqJKROXyZV^<(()s;=^Y}T%nN{ z-LSAV|KP!7f55w+1kr#!r;Ix<4lZO|`c+|f{<;IOl?Y+fZwu$J1^JKQz&(kdI~A|i zo|&Ryv78{Vjf;xoTR11pF2_JqC3QbJSwxQ#HYFre|K!R<7yj?EHAtEjA>m z4;XoU1BSeUK!%t=C}gvE)#SgwV@p6g#FK!20^u$#4Zft^cLo_(cGqpTI-?Be z2E~DRK-K3MxCy2RU>SP-{Y6Q~FH}mux-dF|Q&z=dsMH87oVdZ z|3wz08Vpq69_t9quME*J0|GEBTL#NK8jQMI=w@&lWz33uy-YRZjed1YBBZ{ox165C zR#6j8phIM*r1QkGza?;G1YR2f6#$+X25oMaED%%SQjQ=9@N7E9HVjfM`vdUeyp~*F z4k2%Cqes!p{y>?4Ls=5H)VSP!ibP!^|k;vEtWyifUS!!jPcJw3yFOI2x37`ylEEtiko*xdpp z&{jH}iCbap*oXg(x%U8S>igdYu^s45b3BC=}o%y-cfoW6oDY22`UOmQJQq5 zC!s?EgeG4F1f&yM2vNGBNeQ8|C*R-y-Q9U-XJ_}Fedk?g90n8bJ@?*o&-r|w&+~a6 zkZ1TP=E8{}FQQwTK%;Oa=0iXW_c#3a7ALI=n@LGd5tw+ZYbO2nMVwN!AKu+~@t&bX zbkazX+C6Rcb=I|#r%9Li5mec48^L$(Igtp6f^ z8R7LkQ7m^1bo0ZX(thro?E^^o%6bP^ZR#Uu?5**M5fIH;bGi^;f2#qalF#B~w?6~Q z&nWFa{ax}d$j-m7SUNcsvLpHTjt_P>36&;UffHrnOEyjL`o{HuFEjyNiM&F^#uL3j zWl6&S-=>ZA{yYoSkuvKglXE7Q0@|2O>uA)ON}2#-QpU3m^vwKaQG5D&v!?`Ub+h0* z!;cWJ768r=y|qjR(JpNQ(6(!4uwm{Gpzn>9*-)pt7T+%C?Kl2a=k@!aH=AzEcBrCt zYDOGZwzYyEU7aQc?795uoysyL-S;crIehqBY)_e2MStrXuo&*VhweYTjV=7Shvx z(v&p8MVs0By9fwKl&R^4rNG(1dd;z$-dwJmE%z2v^2#ub1T^)ogcNP)1jQ9FmpGvm z^kkFTtOvwRXi&ea_SO?k_iPv+uoM`EL2k2c?1QwYfm4?&-=g)oD!nQ$uast#E{%jgfVe}w!ZK!|cCT%l) zB6GflVq9&6uo@l0$m(8rtPalX#vPBJezXT-d<%UNF)!leE%u4rBH zQ$$vKUU>5R(721Qx?YD50&%h_M%|H1)`D;HIgM#6s38d=U!^HgSN;%SQu-a*{!znA zs9$2{a@oxN`#ExHeaf_d=v`ia3%ok;*M<>l5{EcxT%bG0KXTioRa1F4>8Fen7)Z{2 zNFZ`k*>GieAmORAsiU6jNn^4eAI-V$O+M!0AD}bb#^o#&iH}_M7I3rpx(Jk^FaYWr zqJ3rYUSrb`m-pD=N4(OvRKqX3>7-PuSRDiH%QX2k&7)$qM~@R9voO+`cvkDII?%Fy zFo zOI^5$V672G1Qc}|{4G{1aq+%25Uyr1Zlah2XJS@wU#b_lz}SjA$0F<7+83vtZ2Qa% zwR0~mp(LRJND_K*MP1!-3%d)o3@BB}%zbxA1;XbP*LA${-OR?++phkmKmtcU9}pD| zk}0_60?^YVcum}te`ge?7eD_FiLzzbJpGzqc48e0m?Hn-0ywEeAG^Gr{1w&0UGUX+ z`g^3f)6Z+QUIy{HmRmE>twT*+Zx^$Y)iboLEQ5MyWbdhpK9NX0(9c0}>e6m#`p2If zr0PJE-@xe~qE{Agjk8VPXoBi8*dgf5QO6Kso+$?q(xK^kJ)QYU=$fVe-gEoOa zZA+a=cDtaa;Yb&#V*%yy&w)2$Sk4Y+vePEQ3yZUC*@6m-bsONKXto!CXTF@Dprg6N z(ZLy5vVTEVNj0o+J`Td(>YR5kK|XgOi8NkJl}ilt{Vp)rHoT*@D&xXm`V8qg#{SiZvR?DG$J$`m$CA zb4HnRR4yvxWDID7;mOYN;gwW8u4DKKUD`lR#Q@M%U5a4he`%CgOVd2oDmB&z~{`BBZ4)OTqN+=+a-03}xpK^M6PW6hU{%{h=4s2lw5O z(_8l%2!ihhchG-&xlCtJz&RgE zhm4h9i9NOamMGiPY5WRFf&2=azd?-@?gySms`IC@22w#@<52QbKz9?be{cl9;0Dyz z8OWdcigCHdK*`k?^y-&W_3stN?PLEfB^h1%sZR|YY3wfkhiydjzo^Lc-$&%saC&?U zh%L?+=Vns$)h|Kh_O^PODHi;P3$De~L8qOHpn9 zA_&=XSd&qy1rBLi?g6A?SN#)ZPvQ)6!W)6O9xK%qJ&l#nj%QzVhgs0+vG{_%5?_dljxVN1NH_CZ9u-o|j zwRDSL7Qc{Q(5pd}9E+!Ht6K4(%ovs1zC?R5^y^6t1xJiqigaIa1@iHUf_Dn&Yoc69 zl0cCv=l;K6&5sPXGhUFbRQhvUPy18oX+|(M{mBfYaHE^S%M;|K0MGUz1jv0B40z&E`3w12wf+jPEAb(idF-Yw`PFoU z^#|nr2PbiNFM-GS>It~nr1C!V({SIK1AU2cR*KcN&Zy)1lDNPX;glQc+vA3=xF0)c z&YL0knQ?rra*2{AyQMN9&UOZ=Lu9=?fRt)ZoH|oSBsYUl6c40KZTR+^LGEQ53q=0o zLsBoi83PH19nccS08vfs!mlJc((5j_*`h~1u-Sq@@%*>@^ z`!2kc-msGWJNuQhEXx#s1#w4D+YaP*z68^UVvymAQx|2tYBP~0E63RvAQd3#PM(Mr zwrL!bwT+J8r2$9(^Ub`w=OHp59R1x-2-6a z1@`gnvF0c1@jmBf=e(V3sye&6s(|NS`Hv>4?XlcsO4dsYR>Q>_7VCP&-G}pi`kIqNx$WA(TwQfy_$OvH@1Q6bT)#D&TnWQz~i7DucfidJP!Ecmp@r;3U6~8rllw;U;(O_@Zlfs#O5YyLfk}6 zUfDr*Eap1+9Sd8bmOgzp31CXY05 znYjkip%+7RqCpgp`_;+?@0kIOOvFVy3}5K;q~v5MN3YI#mV+XVs& zVgAm^$;Y%HaP=#H@x}LdG$X*6vNA1pi=FR|Y?co1JQdBLe728`6xDPDrV$<&sw3!~ z9S*RAd2CtqE)wozc3?%W0UZJ=bxAGpd>G^; zQ$?3r6T5x;hjD02ujE38`piR4a^h)3D{ps-a4onkbwu0@l8Ywkb;NEKC^)~}E&yee zGJnyRL(zLTdn*4vx2P*H<*7|i(f$1AD0p?q9HieJV{>YL80jqb@(6pZ^X28^QM&J! zxs`LGY79{(f>as>5DpZRiFP|ar1<*`QuWGft;KXeRJW$oR7S%mM=sXMmLmZEouehj zJ+kBs*A1*zaQwV4<1Mq&$uwN`)P8NHUwUn-cIxp`S=pG~RhE*9ya}|3bWP^C|K^Zv ziXAQa#J>-pk#^2QeJmFlS=`2n9-%cv9g5;Cr$U>>#aYj2MI~AByO$BSyDC z(b`8Al@@4Gq{HEFueE9N8r)Q?%%|1MgrcOJjk+3tXOu-jlo-;md&9QgyY>)1|5*rj zJ&dm;NA7-|&`rP7NboM?-Y1z4RLua}7B6{gtS=Sb7z2{YYZ3cmo>LhIr}!TC$l@lq zK}}ccVWVkoHu@>Jwlv%wz0%pEm&4_#!(Q72Xnnxjz&?uS)Yo3=k|yh9V}iSz2iBR{ zhzkHF*T92ItFDXwBJ29Dr8DpeM^1Ix$`o|Npc(VBAftbQV%|#=zQCVqe zd`$mea3%P94$BF3li<=uDNMy{OEC=SF1OsjrJFX#&8~$A$);DBbWy$aI zNm!^0U6Y%C<=e+MT)OTStZ+mB`Bw2gg%is97PTHLoGK4|=AWiZ`62m*;j>SG?APR} zqb5L;YdBNF*38B>28hEO%x6FH8Wt`mUn2)Wew3L|aCr!(e3I4ZvDkStA3Z-CH~9N0 zFpZ}6U=Y{j4x=xc2ncgSuCsHkb4$7?&pfA`)H96ii}`_(79Y#%cE3T{jzLSCqjK^I z?rkd=#4&Xjx02jrXWv~Hr37iyxE8BMWa1YT0$jJT<%t+dq@3&N2Bi_ua? z>h>)VeTFX{R)uV!?qZka6Y0SgR=kw;4+tc$1pLbX_LGFWm;K7uuzb6GAyhFQxpRVB z`NBPoxSPMs!Sa3cqi$$u`09%UT?K5h1$lI{+3r^Jue|PfDagQG{Y7eOj75963t#-B zTS1@y8fi?}E!&)0oa8ee&S}f>2#TON1vX0^Nf+U8e28N1XDgbBniz zZ&8FDSAMCVWL6}wIR)&(R=w%!7V`Jh`psIsh#RXKgsa|tSqeE8 zO7upxo}_FWA9$7L!pu>28b}pTALU-S7i`^So$n<9{E!bt|3QWGG#Y zlti3HGXKnyvFlQzMQxQ)qw%El@FCfHtS9y~5~ma&L9hGP$odHE&t9z%z=dC#F1ruD zq{mAQBYRYg<1LbKjoq|i5MF~XI0Ew_ptlTdY;4??C;2(P6anA7`~I$LBR z_D|u4YHZ47W+!@4@DU9Y*Wn2D=l^Ol*MA>p|6fqbEP9*wNc;^XB#J)x4`4{TZ!Hc` z-H7m|wNn;O=h9>XHav(N_l_x{$Id{~Sm`701klZ=dI@bW$RA7o4%FgH-CA}9ZX>0^ z0O;i{ng+{nHPv5fDwtwTxe6@jJ!>alM9UuS%si0a@8T~X1C*X?yP>|jd=PxWt>wA; z{Eosp(2=)FisO)m)#;L~^p5~(KzRO`k_c!SeIR(NRU3+rs+hG6xZelI}_kRXpx1oe1tAN7FT!c*% zR?8a%ZeJ4nQXh2yOw$?InV~`6RZwHPj)@r@1z|Z5`p(9I{+LN0fNWNRt+AGyJT((1 zKPBbAYBlf5r|CV&ZsKTORAAAUjNT~e$PU?absMYrLhv2Zh5;iT9&#!z14~`{b^5Jt z3%&(?$NLnO$linv8O{Q3lRz)sk(IAmCNXy^7D}z^2aTVAm|2@rqVCcb#SF$Hfd}17 z%2|U^c{-U=t4cOtX;pF^;W(n=l2kOA7);6J@SpTdKM~KoP(IpM~)od-g7=Yg@18Q-)R~X}l{W3%E;+fp}`AakG~Ss=v7jy4ejE z^gqW1I~H3$N7HFFc*GUdECuG&Tq<6D#%3W36mnC}5_YARN~$L_tIen-18Nlj3g~WS z(|bLhA@=|7bOP8{R0|<0i>r>a;sS?MUBe4%LA4=aV#KYyX+EMF)I0isu)gErJ|)iG zP+5B_Xj9uiMVECA1igKr#m0(Sm!LxG+n^4ErN{#6&uW8MqT1GBo@z`L*hkDjiE5JL z4**!rfvgyTXw2Jue6;Vuo~!z?Su0FiU@twwE^-k0TZxTr2+aQ5l!jta@N)#%KX_C- z^;Cg1PH~^Lt9On+!>K8br7js@)1q|vf0zVYwj{}V-yI&dy z<(6Jf0#^i&(5Nm`#*2i;fNFddN#yVb2=_hS6F|LYzAGm-a~rh9`W|rv%zlIclv~Xp zuc}bS4ZU8-^>#4;6ks==FiWHdivx# zm)VXxaWd0`g;>>5eQU$U>EUQLC&bLXiNe9W&E6~SY73d$Dv7mJc56y(IjP2B@v+R_Vjc{H$!Z(_`aUf^ zFrM16FE|YO1+3Sv)6Z+@cYI4hQ0rO+mUHXj3_|yPWpe+FHGyK1P&u1~$MQ)v=#Z`D zr+S^m8-w*&di`+a7V#!y*^)A~(~_FTe-R?8Xy=T`|TEB=k5Bu@yFgM&leE+4jz zbn;7-gnGc2=wss1wuI?9{yx7}z9=CjsaX2kRKpjc5$qT#w?L8|``0DpozOLtOEsul z`O&-CM_WApm7^*OyCse1IT@@c%bNEfDK>KmArYI0yPPYpPF<(~=}LWj#7P5P#s_n$ zM`gd1Hqpt#wl*c3+*25P{a0lXZWd$l9Grk@UfB{26 z>_!3Q2yBg!H{`XZ$IR##iiCba-UmqCZHt^_%OoupE@1@sI@G+)E0mu%cGt4fF5xL>|VluCH3HcgVO;c3)ky+?# z3kZ_H3a~U-TNy-bs&!~8>c*2U%++of|1oAeKBBZVJS^xt{(UjjOG2!suk!AMGwnC} zBQmzP510$K19m0p$Yc_(Kc~4+%Y2#zt8=$Hvs<`j5=Y2Aa|{fdRzh^QEewa{?xKpZ z0yg!!n5py0D2HAx+Pj*4YatZrhRt4S!alhP(tTHX|BK9~&p*sR_*;Vi@*;hhciP#m zu&=$`f%1wBtsCQ2TSCFY;cZypV<;ia^a^#}%~C4P*r~~(>}u|_Ci*esRc0f)IG?H& zMaFK^ex!|Q5-;sfdaU7PYa*&~(J4N*y6a=thhAq6;!WBvY#HjX5SB6Wr9YOtIhm>hca!% zF8LNovlxHIE)_*7GqM{0Lprwy%rpoMev0~Ss1=v=y|QRvP-&fSq|aA+R8}u^e}a|2 zcqduNnk1Bn{4w0G?^v|5_jL(`1Tgrbg^bEDkmZ^MQcMGZXD%6LkinCLP0&aO~uiVk?Tc7 zzh}6>;YGt!#(y>$PplLP?O_#2;Xv1>V2ZjWNj~PMdF`2vhLli_Il5 z7*0=5a*&ot&lZb~ymJ1o=IgGKW;Iu%>pF?$6S_@(qt9BUNm%Lfhs8nBqn2OJ#D#{y*Ik|E-@M*Lqs2Uapz{`70<*z92 z7PU8(amgKTSu|$FnUPCagR_v{<(n$4sMyM0F0okh5p0I5>oVFSbUn7tD@wcN3i-Xlo^!>~mUu3&C zT}N3l``M7j`1FQjuEelC1|?vt>qc=Q4{OT8y3#zh%v#@HK?nMV>_8XqVYzrO2~MqF zqIJNwBU4Nr^%qRR~`LCdZna~ zd?yLa#@vV~> zwy4W6T8pWTau31UHUz7I(zYNEh8Lqar%N=e>I}v``L7)n($|BP?&GMh{<%W)T=r4y zOVU3EiHm1)HU#QE#|z2r>6asz&o>OJ@I3xGN_TTFUFc|nb;Z!D*k(&bK)-o^Cha|3 z!`IZKSG){NG@?&KVr9-%{wxUO$lF@B?Zwr0HqFaGxw8@TIWz*Qz|@!>kt>*os% zThYv?r2#0ifZ0uZiP=24V1@QSdgD1@fvd$SDP+&@*#zydB!)TvD7&b z<>9hqW#HKi7YSBa^89>PSus1DE9RzQFzS{1+!IAqSqgY=?$KJiOak3f;!?HK`sT5m zVV5!EmxQc zz93#Ex#okuZh9r=G&WXjUXgSImZ9MHHQ;u;X8o;A_s!^ACD!*h#k}kXoQK~JWVYlO zoosi(&XheX84!J=OP)F>$9-%)*0ole?0e`}&5e!q-OIR8K5t*;I;U zRSEPB7{P*f1$)=|btG}yNu!XnNbf@FF*aOI!vGty@arA;l%Dzh?jZ8+6*svoPhXT` zez56l-LMZEeMBbp`OSi)*q7P7E7+o%T2%TCECMlboh_m`;)}MGcW_IuR$0d$dh%7PI@X6{0Zl;T+@*M8{YhA4A?R zzucN6T)0WvD6(V5Dqt>Y^(9}tF`b4+qKRzG))U~USX_y0c*iF6CCXgcNA$9dvI}!D zWGsU33FEDEHUgrQTT@C>$VKKYQZJ%>%lE-LGpbpw1w|PWp2}^ANRuy+PG1+g#73Wc z=A#_D)e|+>byoQ%HUAm0#_#;Ae~mO8TMj8p(?tz$kAf#6<}((Ez9<+g!*f|r!`Itb37I1sXN`i_lq)1|>hG!> zWf^|iD1f?thI%opGD>dxhf`;LvSCa{f1``_qS$OdJ^Y972O~Mnzz~Rlvw{w?ct+6It%3$G>Cr|#yc|BYyDP}}Fpyvy&zIZ8a z-Vb@VX*qOdTJXG?1zB|Ps*e%>S#q(4*z=fnh5H(!gk z7+sy65wyvnS7xAyzc#%1pQno-@76MUKTdAN(TF97vuyKQa8IGK_fn12i!QHy} z#CarQ0P*Y%TZGMIpIUU%)U*c=&OS{Y>1Uxo{HVa~{kDYEv8IxvvZIo$2vW^YnW~)( z8;$w&QzEYD@&0m>YLknGM@P9u`CgZN!=tC8X=ZcHcgarr3k4^yCRuU_XKDe)RDNL7 zW987&o5ZASIU1vi^4)#psl%vmDl6qG9C1dAK}K<9EU5-Ze=KqiHp09fjz$jV$DX7O z2DJk34lVKMxbPdL3PsW7CQpo%wNMtMRjiN; zo8~m{qW;_RC=>tNX!USgzLvUA<7;NF!yOU!uM%#%x-FwMv~9M2)9P&wSIgX~kmBAUg51>5=vmya6G%O?~+9D8+SFz2Y)5*mNx>B1?^k)}7xRcwQip zw37egX~IX%OcN%?azkZX#*ti3W@9UCYGINl$d29{i~Cv|Omr!EZ;$iGzz04}#`bCn zVvDc}-!{aCAN-%6J4>Qrd>(Ge*yHeMPi^+DR-UTpu*8@l!tLY9jKzSof#=|nyGTn# zbltIjo#<>~Ch(YiJ9X)a>wvh}c?)u4uk_sO*wm9Ix)S2XarZwDGuomFMypo{PljR` z1h>clo2z@c%JuCk;Wg6Ed{ZZh3mcF#!+zryt6a?+a+i{%}J#@>uDfZjg?t&?*)+^rxe<9Zq35m5%46j zM$J8SVqbMd{M&VIkY_@c;z$kPzMjajR3sK=jYHKL9{08X8ZyB$Ne4QhMMxSNiP5-`e4WxuM zq2NU{0V2tX8%Fz;A%}2wxu7~K*ArBJ=Ld^r1|R&(Ef3l%PJTqI`Y#JJ!=rIs)s28f zYiCNK$0GG!QK(QY=oXz1H>0(ndXq9>8UZ5Mps)&Z<7m*PJ$^xUOON#@ZHp)1g#sGz zySDQNP1heeje(VP^(6LA?Bjoc)8PZwi~wC(aw2r9aohud3=II|wPwo-+UQimzt@T8 z-mRbOPO$_vU~4Y~1^6rzk3b%b2UqS%wMadrCc~|H8@KCpsg`~WByv5_!hbSI^@0tg z(q7qOrAYTF4I4r@8RjN62@VhJpL-2^BosJZfcW$8?`2JYfI0JuK2`ypL4_(|%atA2 zn;Noy07;5GEz@b>Nv!jpu>w5B!|4MZm9nCAAk|pN?rY-KC zZr1Wq*-h`>3`wCKfv7=L)-do)#{SZk%>qVp?}L<@azG%A*ykjlUOJ3s5v-b=oUC)z z*!H0}NHQfMjN%cE6M<_@)_*~jG!R$-O)kig%}}gnCtfDp(_RKXt~FpfjsZZ%9_aQ| z0?4-^l(}ZfpIp>zRwcP<00|Q3nioG2Y6pECAvqXD7IXy5B9} zQTsF@TI(}A^%NE;imm|whjRy1b)Rp~a5Kd;W+!a*4Gyht%Xu=%z?Mcz`x}D)vTJE< zY}L)g`m`eECm^4N6B|+-+&V4jY76)_<3}lUOb#$mhpjcPVw$1 zwuq(BElI{c!KjFC$oeftf^iP=cV*;h(^_LG79lGa&+k>L4!o5x&hA4YE&X{~dc!nw*?*un9f%8-0YNO~U&Axw2amF$cjtD|IMI3PZ~y zW)UZ;uEA5Zb;o<7Emk3r$D1mw)=U9$^S_W3EZ}hSu2F6O;&qU-bRB*scBJe4kje~^ zp~k1=#odMCWHH%V<2Zu>dmGWGnEUWp(py%W#jM|eR7GRghy3BK>)oH1rYic~7)1sx zuO^k+OjLpz&DX52H*li43x$x+r7RDru;QRBmEcD6hUq_YVL9RIDRu8S|0ilc{68oc zQm^9w69tMS$c@i+ zVen%EG+mlEucd0Y63k`4Jw#pgD2NhiIZM*uR{wV=v5L9_dwBbi<7uQyzt_LP!p*Gv zw%|8Aoqty=qszMavH$5e`hOvm0fu=Y=U{ej&RoZ)*|;2HQp#2Yd>&{nF$m7Rr~%C@ z`vFHmmMu=1`-5O(vj7`c$(&7~`OF^U;9b^#=2F_Cq2JmWVP8*VcFTBKHHBmbZ{ki{ zR=OiNUMzkY0RlgPqQYHpBDzJ3MW_bE1@%>cU_f&>S^<4yZn>*g<7#u&ZZs=i4p4Ze z(99@P%S;QgQX+4WdC}o^HJ>r^Ze~tfG>iFmq5INgJwuqnmE?nsXlh%^6clfvsv5EX zb+(g;U#_n%vFMiStNYE6@rQw-%Vt!~ zvw~(Q7>AL^X=I>6%AqvA{&lanZHdjuK%PylL`S1XPZ<_#CW|5lJ?ad}Ii^Rvx+>2iK)9KpVQ>hZv!nTCnmei0Ch`IRq#GK3|NBGmLtm#hycz&1@b zT8qyVah1Z!PnTZUu~O3DN)$+KoOZTU8*I+BG8n&dHQ+dnacN~?yc#-?YwJGK4zve7 ztWo++SZMdS>rhC>^GAip4oebFmOX4@rTW!{tDaS`nKSzV+X9wAej1po3vJZrmRME( zGygLc+5+yWqvtpTy);ry3d>Py@~&R!MelC1jDfmu3B;+eCsk~SB;j!-fCv=G+($nA z!Fc@^PHqZFFh(T*9<*)wIAw?n?f^BB5;z(n9^CHRU9A6&c*66M(&{|2E>lXCyxR5UEj1dG%H3G!xys*9d6|ZbaRqDade{Biar3;@EWJQ8i@zpxy`C8s1hWFzni2(Z4>h zKi`|~yt&X@%gmo_PKMx0K^PP0Kx7rNvLosowBOTBeLlW4G9etzLhVE>Q7+Os*L@3Y zXO0QxO}_hQx^J(Zy8|~;&e7>f!}K+CEEn+-&9i6Xe9jG4OpV&GKLdR$CM_ZM)X*F4 zUZ0Zb-K!uW^O6wZj;{)Cm|GchrAh+<56Nl^^yEVOhX4Z5tz{QSw`sAO1KDEeuYiTN zl~PdG(%2s8;IbT2jVUoHl@bqKKPkP{uUzVx9a2`St(-^?s~mLWn46ebTQ(oCvVK3>p4M_-=(VzJc$UYIj9LD{`=i{db`8Ym zuY0nj@fRLfpm1F~V!r~9duj=8fwdm??BXTWf?Uwr%|6+_ZP(G>V5f=Y@$K=VnNr80 zdm|X@K+F1|R3MzK25ZgPED3&h0SM8RHOk;CV3|NUcxJHK!yYrY(p8;VFS*_N&VJ>? z31{;>IGF&BO>oasW2}u139J-@j{Ok#?8OY&x0?+`FqZf&VT9yE(jqI+co!68KG2Z$DTKyCBU)|HtF3_*9W5dh3(e;H8sp5 zdlFN+TyUDTA5KijZUAP(w*9HprYX0d!s{hF^WhP+C6 z#>c$vOWjh0MyibY(|3pBFkYQk_7BmcR0TroUwgx$T>mwQ_VJpq$?PyStE8WvX_e z_LjuKIE3{>-+9K-H~$2v8V;a&Sp<8Ry&wfF^arGz&AC^ zNjTS1+H=z{zw=vr)&Y9wDWmWiwlN?;A6tg;xt-XH%^H@*OagF2brL)owJhR7pa$e;U zx9YFInT-#cDmS$WOZVvu==B-d3>>Kp;n})FRnby-d$}0?FcPp9g+pHNv zHjO{FSGqC5#2TXRyYq7&Y}46Z}WZG&Z()ALLx?gQ<9P_N&dILDX(Cc zLY*wdJu!gpF(p{*OyunD?(!oh4QpFk{gSln*Em}9TN)=6_I@TEmClKK>QujZb2_vl z7rMRb)2N+kAfv~~5WPi*_*5_aZKO=Ql0lf{mOdOa{Bxovws!JoFvfNB9&53XRmIns zB`C}2&qM1l+jkc-p`9DtN92saUdb}F*FbK72Nw`G@=#IP^)SJAeSQ>(;TUZy67v|G z4AxRy0}aS4y9>58iGE8ZYNKVVn=t5v*>bCi9<81B%yTGZl|yaTfj;sqT1XbVcTBw3 zT)=QfeDOumB~3M^IOi(mw_>?OL$7T zg=4n%LI3m&-Xi_`X@-lkmkOCI#);|cZ7Jf;+Y%!MhNf=7KJ{(H5!1wd=y-tSNPfV~ zL(A_>pB)^X>dQLkcqLKZHcrVP1{ix2c{Msl!}w-$g3rym@ut8O?z^?M6%|#^;v*rt zM-I8%_b~pYVYhyNIodL9$8boOSQptxX^RX?@pjTP_z3dbd#1Y4pF4+cY>Yz3a|)rq zy0rxDWB7xM+Sf6vHU_d@)1i)VlSgF~+&5Bk4rNR8}C9u6CRPNH_FCn@ESPMGiR zVt~!W(qLt^)(4CG%=sW;{wc&E-^;u$mf9a)FMnFQ1iRjQ{HzS^a@jM*);slhQ^Sxa zX_upE2~>-nCx8na{s+)ga!yNJMD?|J9mB#L)s?%u1B28(?*?k*!;hLy}G-)Do)}(f5UEuGA%AJvzX^q#M8HI6iZQLMMNA6 zsnN0#OV17TQ^l}$e-e)S6x{`{$bo$m9|n5RpuU)G(Ss?#PkjhBG1@Yu*b&`p>Gkq| zLR?H_!Tibu?uKzEhXpfrvtkBhjl8Sn&}0Z5rda$e)McN-dRkkTG80>yD29TrwaOS; z%mZjZrM=xe2#=Xt)pZngzxG`J@@34O!=m8vWDI(6>CYhf8ommOa&)-yBXFg~##;0@ z!Cz3i(^NzvT-Y}#NNG; ze~66!f(F2y*}FB@$&(!EiR+sGx!Zm(^dORv6BZ#B8HxTrdqEt!!4%3rR+ZFk^(!~k zQ)?*Sl|f?OtDW_cJ0;6H87p6L0Mkg!6oovLX*+_O})$?D0J z?<*a>fWdO&tKapck&~LXi76#+eKr{9eVz1{mtkU_H-bpZb;T~y&wgomY~({NYb}<< zp;iiw!GUSkAw6go=BZ(w#i7ypzI12LmTjcp@?g)Pfy8(eGfJ?~`$MQKTpn?csjIse zeF$glk18mWhIp*%wwecRzLa=W=JW%%(`l0CSN8@CXd;R`dU<8krkb;3yJ`!Hx9VR0 zp`WK|edP5dLhMC?x^}8u+e4qKNq$=vK^vn#Vz9-@wzQD_n5NA=H<(p<^XlW?qmWoe z4tSv$J>&XpGZjW@{mY5F8T&oZXtdPE4K-R`ZHzJ<2aOpccZGUYvjej-`^&RiqVrF- z2mzA_#cyXYzJG3a_w?3OtA41MFSRgtc#_C{kMpw*0`yj4WP^)J&0E^x)T?5AG?$toZ5{c-ExN!Y>w`qCJRk{l`i$CsD2zp+{oRsNb=e!5o`tM=0iHOyuV&rT6jo0CLd`1Ws!)@gG09@$LGF%;%0!3cQJzt z9O>nf9%;%_*^0`7ojV6$)fbk{FWz!zadEQ8-yf>ncmN%@_D+bQVK%yBSur_U&UU zfs`daqn>CP;(^HwoT`USN1i&cc9AIZz?A%SUz*x9V~~IOGg-iVdbO2v(Hh1s%h2{R4v$gL$T>KtFnEv=au;biTb+C+-<$3B`b?&KC7tE&_Uf32 zXUkz>x?e3+DZIdAa&d}XYJSp3kR-x$YofuYq3LK3HM0I$Xr$4c!Ll0u7CKos5OTE1 ze$D^@7q6t=v*2#J=pRNpab#_eGg(%`->O8s8;?At>zyF)im~PDsgZW=#HAbqj9%z=A`9NEm3~f#1IVzNuHr zW}{1ek!b!ho%|OidR6pa3ZXLpr4agyw=s)~yD4N=-{Ni?DJAM52&8_w&QG5bB(KX* zCBdnm<-PK;g@GojJvZhFba%V0YCP$d@8Q273lDj5q=z%ar236_}h}KB`7N z`QCrd>1Scy%BP6*zg#?0(K%FT9u(vw?L2G_3@^<{?Jb8ejOBc*{9)yVh11|%dOn(G zfad&^YL120{K4NQAdQY9zaUa?*u*aepo8BOr+{XW-RYon$B&efVaL=@(h6ykZsPXO z8o6n_o4t@+>0eHu{90R@JEC5@f;ss2&Vm_XblB@N<8*7y_K%!H%zravrfBj z?-;>i{A9@|NO-@ee64DjYInJvwI8z3juoubD!G8_rf1w;5g*-ZqR|;ACWEjUG8w!UOMpSuJ~#cO2Cl}Y54ok<}#|>iKDF^ zbX|gRT%97Ya@hkoldB;KDvyLcvu+j36tD=Hy&6`=lTdn(4quTN899mk|j@|bbY;RO~fT7S7d(;$){|?EuU6Z&ScJV= zMggZ^S8hG~xjbSCXlIu4hI|`-^WV4tjyD9T7iA=YJ%WD){znr53%0+oWF$~u%+FW8 zf);kpW@ctK4^mP>oHOYzS|&79Yf9HZJ1$W6$r3igKB<$-0=n~5*zgthEsJs7&deHD z4e*Q%{2LYs-H+W;zQR0ozuk|bO>C?mK3(LApAYG17cU*W(DsDW#Sv8fE`kyuN5N5s zG-)|cz!ba$G&f?-8p-Br<1w(cV}jcsY1o+U@zy(VAWqKbJX=ei@&cbd@vzm$vuo8( z!M{Ve@YR7yu*J_Fbj=b=`106)CaEurUdp9n_>Ux0Yv|$L78>WKm0hz4tW&GQC$0AT zT8^!keYA77=JB59$IXW&rsXrJ8s(yk*C9{~G^Qi_e%Z=~;D@OG-~_F9L#k7m^2q31<>wXW<8hFamJQL}h`TbtXGF2AtQ z;`!HodDOS&5-S}A>PN;bSDE!oQ~mEwa|-`AhZ5fZK<6~N|0Ul1^1nK5z8e0Qcyrc& zi8ue>EY1Jphu}{9rjKFG3hhN{P#>!oQ{5rP^6^t+g&eliJk&LvW>^OMuK*d%|FIMN zkDu;;-%S4hb%=9wUWw&7UM+L1Ocu|6hm`+&`N((FtJhDo}16315f%6(!X8xQ)U>>tG3E&-Zj$(Z1Ge$s`gnC2a& zXeeNppX=fks3~vGaP9Dw#!Q^TmAC8-R#jIc#qyHvxyq`MoyX~S@M*QfLpXm#^Z*EAkeS^T$f>gioD1U;40NPtF%?~2=Z ziLy&V5;I{Fyh3JLL`+Xs@b7^12aZuOa%+uJO~=Gwi4K!eYe(R$Q}NfUx}rja-RH<9 z<)V#<-(b-Q!cBr5R~W-{${79KbE<0m(*(D#GDL>=Ia~qKkb3*Y+koxaFt3S=`DVjo(inutY=aN$bY(qZstPNF0W%88&&f2& zWvs4+f^ztjS1RcK5Jj?i)RiO=|LK!kMWnS*y|r3|(bEgRC_i(+maTFsM%JquEo2&> zbY>+9WwT|A{fr!>cO`tnqP8bm(1QfI8nfm=3Z>f(HPCkaBxSVEZuN?Fv6uT2{ zR##UWcK38u0;5p$Udlj!7SGj5-{*{sC4LFQuH)A=SWyAt5s@Ca?0dl`TdYDiZD@tF zQ-0{1H>RjloW(Z7wrxYnH3~RMw=pYvdU|xRgBX6GBAan()hYoGvcBq@$(y+W9onUM z=e^R@8n1bFY`s(~dv0+pU{3qMlUt&*pI2UKkF0@VjcU{4g-lIVo@6mr;v{RG-CL}& zIoGhUF;8}P$t5-swrJiP<6dAqCQG_K_euEt;ZgCZ-*Pyp`ER*ky;my-29CL=|45b) z*~&3AUT5hx9#63Bsovg(*4Xtsv7S5U#Fs8P#=$2;8x~AptETJfTH`X=(AjrU0zP)1 z<=ZucM){lBD>d44TI3xMs2u1GVR4#l2n9TVrrD4p&`l4PMXXDI zUn9ESPlvj9-m`IIlWK0o%E4jB0q{Ct^e|Q~*5}zW*9CEM{-L&R=I`Io*4}O!u^@C_ zC?V+#Z3zN8mI{!Fs4-pNs=^^&-d)<%PG6HOnLi$Oj`vX*aOg8Jx31kEDKxlwv-l(D zFhZ?@xLQl8@gP}r_jFc#outF2rMd3z`WT%)>#Dea3-jE=V?P)kQVwVaGtwHg#G#wD z#vNyxe6V{`!}-(FX1Prfy2f^tA>udhS7D@Q144hV*L+Iz^RFhxCma&t)gV4>;vpYX z<(bwu_3}m^_7*^nnOqt}AJDXZQWG*E|f9aIv_?_;T_G`}JmG z4d5o)Qjf5ii}um)gJ-D(RR-_dNLN1k8|(2SMM{rBI^mZI1Yaw)kS>>|O!_{{GdVpX zu-kHc-Nf85hqB66i)7VDEKn8;`6$zapZh^NQ!9nMm+a==U2Iv~mquOJK!Z#;r(w}4 zik8Dgg*|_~|1Ig88jqgVr3M{@meSwmk;7U9EYl~;z}`S*15;otV^d$VuR0Glgi5~n zRVW;wkx*JrBOso>*f7vozTn%wTw`s9ESUgNf-)p|Hu1%ImU!g+Qk^}A$3|Nz5Fdu6 z2X3Cwz{NOvQ}-vpWdnYp2Q1M<+@L6o`2i$kf?3aCUkyyqfaCq`l>YBqw@ z=AZ_{HKrZHP!|lkMEGrIS1)3z-~mQxl<(%v%E`+RQ%RQ}A%^c9M!w5>;$4B(==tGf z&M`mXW$;)?%Rz9Dk ziji!_CJ;B!%b!oVUdrD=Y2jaV_fCS46Ln|L9H&8O)suQBC}CjZ0*aWIT%z@Sd>Qh= z2S-%&#=Ttx+^l8bE=WN_j_%mlnLU0S98~}It$ol3fp-MCM<~e>ApzNTilxwu))Q-I zfPuH6r>h+pBc$tedO4)rKRK4*%KPZ2Y&tt9?RdhXs}CqTFLb>5J z>nMB9WsP8STib;z91x5F;!XSg`w58|jleJuTTEA8x!U!;JS4@RywGhTY1enDHa4WI zxX}+_HaggnuDi;6+Et$~fOgHwlzkP9qwLJLa|8nLr)a@8)O!e3zyzHxT6*olRj`n$ z(AO-AP>$CUBYpKji#E0L2G z*97HIJvLvNYkDj^dLb;1w@ZpACyxXh-CYWvDF8^tYAR{Ewtj07Rgr9$4vP=k%u32} zx!)!Ml#k7gJsYXBOzdOJ`Kc?&%T7c2iDG}`fqG(diSn`f^*gw7H`VsK-JsNJ_+hJch#=3dAcuN3hDkP9_4=SyhBd`r!&OR zD$hLzBv60Cx4)WbN%WI)9kT*T%wM%XZdl1~ygs}`SY0%|i0gK7v(1ABF54)h+$E!;Du#9BTJNO%Ds_T5aZL{y z37a_s|3;!nwlVf3w`9+h4_Syr&H4G18t7>d;18{4y3*8?dqKiJuP2NIuVh0b$;kxD}~&@cSHx{OZXFhw}zP$CZL{ zCywYm|HN0w@f-lmlh^dIwfW=o7<0fnH2HXtf6YbXrp*wpE=9&d-nbl;=h{z89e;l_ zvxcW1L+{-k`_Q6Vto0GLDBldV_w80jIwfuP z7&M%56YcNoznF^4oX&BK$s6OXm|v^2*cbvn3@h+RSX{M{$H?Jb~Dk@TZS+r*!^&LZhxyoaGQ@r8D=}R2v zT+SRPnL(|>n7EvK!IXr?Sk}Kps-muO1dWa!P|)}Q!!sETW*~hOrm0>jw^mp3s44xn ze*wYYBUva-5u?rFKa*Oc*t~I{ywpf?K4|bk*IV16=G&8jy>0)#gRqcd_SdU71q60J zP#Bn)1Zz?@rFezg^ZHXyu)@8A0Bczv{f~mrY?d#ke*8$9Sh~H)QuG0QR0((H9Hem_rFhmonr$#ETmT!> z)XOUT$X?N3v15;@*z$xY`@1GM@K9J}XRNLb*^5xa9rSw&30t$xKgHEk*QKtHnTf%r z(Q2pxq7?t%!c_W_C#8hl^l#G9f2UZ+4AZ{4z(X=8XADW?5I~r5PVkxNKNsbDb^I^b zS>SR0*;;pB4aOpK0L0DDG@_6yzuAd%zwoscN<`#A^VF&vC&vTxq1^&3vEzDp3`R&{68{@QlWOKAY?KnWJUYqI$QBh>)--)e+ zP`31n-0t{M(#;bB*RH+3OaliBvH_Ho1BAz3t&z2LM?uaSIqaIVj%}X8=C5fG(RtW) za>1lEY+O*J`3ae{uK0AEh)0ie)=oR}rM?J($>hC?lyR#L_;v7FKcN@IfCe4RJq9tB z%JCm!t&Z%G5M*xuFJ7zT0pBb44mir19kTn_*M>5x_m@S2yc`(CH^6Lh!JHDflbDaY zU?8OEKc?%q6K3?-k;n&B1Ey z$5Xwijm=vk$*IOx2~b&d6M2C{&gq+pq;Jm!U>g#rK=~H5ith(ZwGJQH=Eer?TH;{& zje8SCUMtIXW1O{Idi&Pw*1W+JUg#o zPcokXfZ4gIc7uPw4Uk>|@&`@lr#TYuBC5899NNzA3~*DQFtQ3&8(Rc*-#^K*aHku! zB_+95S+P?aB>!Zt!_svFG{E;$NfSjhWE~VoYF;aae5ig`)SR%K_qW8IZ_V5Y4%dc3 zQwg`(J3)9v0!iDcY#@G(YI+ zrJ)^C*lK#Tyz{4gErcFVpFsTD&!12Iwq7v{$;wYsf|drvR_iP}Cd}3wAvf*)iEWF} z4{+G=V?*oBq+sx!#5mapEVun*^JvcZ-|M`R z=(GG=ka9Si|FgDpvOV6oM7UclI^2I&NVJ zc&WtqCL22@g9mj8&MXAyiv1YpAe3})p1;JTVsg{td2xBhmo)z$ifv~b9Pq)Ux21s4 zq>hhiw2y=O_p!0LS0OZzC?N?vt&4T22LRtRCe39hzFF)`x1*4E1X;%(K6><7D@nAM z8WgFOs$ds|a70g9_-yQ|ifSER?P3u;wJU!sgZM5yygF6R`#056S9b;}PFfuto*wd( z2FO&TaVp9_lejdAFs(TO&N5>U;KlFTv*6e@cLm?wb2R}ZF0h<=5)G1ySDmT(6mq(i zWxzqM!d8#L&X7m{MDxMM+qU+$@!SOH~0s8@!Q(*R9Ge#>s<`pOSyjwv)kdAfVi8)X=2{AK5<<5hXo9 zB(6%^yM#f7t;EuXh2C-6h{pU9N9p2XayC)afY1Dh0p-bwQD*I+As=nD`CKSwvo;abt!y*Dt}&jGbB?sJu7UZlN34dfVs`$gaN0Dsw!ZenrfcT zGmwy4S(eRpPue<^ZP2b>R}4(iSH(p7*BTeScX~0FSQuu?3fRm1;w!fCZ%7sM zeIFoYSJOyA%YnfHsJ%u5ahGmZQV@L}mAtOuwU}Bvv7nV4E|l!^tFa)s?88OxZznUYs9YXkvDLZfKBG=XPSc8L-xxU!Qhc zc5sjkm=MQSO7sfXy(q?!!j3aP9I>SSwlfnA3dZ?jwIqG^p2{7JS-XJljGZ;|x`_&2 z5`9^|r+M{A&|Xm_xA#XTPSLUU6h-upx#aN%pDpL1pARKpeAgv4>85K4qlTuazmA}& zBofUE$*s|s(@79?p`2K6bONMZjg#ANhx?O)r43ym4;{P&L>99q=R_t>$sW;4kJV2n zxF79B5hM>PyNgm1=Su6krUDjS{8lZg<-3dvSoaPh&@=?>jwZ04Tc`DV=18)rb-39&XLCchYty`>(P9I3Ea#I&NO@|a6d3ARdneo zc_}-Zfbpgb0lzaiMX6A3O9$&e?cy=;<n?o6?C@qzm=lXFe{44aIw?%1t7yDL*cD!ZEYqs>2j3JdzFmNfm|?xw zD^Y#fxo;_sPHJnLC?2mO z;6-dr0Vg$i!RXIfL@Tin<86%&RwBv>g^Ov3M1%aXB&Hka8#l%q%XSu<>qY^x_Twk* zSjWTGhOeyN|LF*5ZMiTCfBfg)hyHDen%B>zyJ#V?J`%Jl=1>$}?X(wTSRundhOcJ+ zG=IEIQp3NUimgRqg;L5xdwaIdRt#&^|Meye2I`Pky7u>sYg-Ph9_%{_* z`*ZS_KtlZYZjthaeHESjGqn35Rp73nIQ#etE7$!x2;}vya>4buKigI%n;TL58EUq1 zX9|vGt~Jqao|3#?6}Y8VntvWI{AyZ(>|asB|Jq$OeZ|1Q;5^=xNRcyODbl|GdBKPr zVA=at>u5v5d6czDIR!pCAxAF$NSmkt#nVFxT11!Z?3k^a?kxx%*i>#YIIm4|3xTP> zD(fn?IjA|;MduI5PodQ$ha6S;>(_*662_+o^7wI78Kda1H=!CKhyg%1r%QKxB>;lt*%IhKLO+L8}R$=JV)R<2~A|jXxUf%I3oZsqjY^UUt zv47;2bI##T^;*^qc&$%9?j*>KrS)i%+z>Hq<5j~uwyQ8}J(hpcWqx~_v2weK$Wv1! z90rH_?vTwjoH2c0zkXdIXVOkYSK}YU=(G80l4HJL)jo@TVd{~**LfE;ACEm%{hpO& z9Ejwd#F|rf?Q-q@qZZ&XA7E%yR3kvN7Ze516i}j9OaN(tA$~G9g6cL-PcLb+d5uHV z|25-Nn%o6Ck*ONc|3?&oc-xe!_O9mP!-LnneAnvG{k%eEbyO+P=4o211%^CbcVF40 zbBoNl37|8WfusLxCh3j45mAv|Rp)5)r;#4B^%pViVSBx zG~kf&f9(|NGLn@W$u1M)`ls4;WD$b@@@6rb`Qzw)D5C~QCC<4@&I}xj?{@+hbm-8F zOJJE+HZ_FXIY1H3aQkyXU;xxAJl7WFL)EG1~40Y zs@<87A6?DvYyjG(KKuT7ti$k4o7VgINx~x@O&Y&CbB`%pK#m-xmP;eupFBbEx>_0u z^9h0fdMOa`F1!HUBS%9WZr}gIY0vx{lkQH+6FZ(L5T)&`L~R0{5oR3X&t6hy`-3W> z7ya;13vgP8lpbdOe9)^7n9M#7SbVPYq?NUB!*}83vBCJ_M~|ZwcSHa^5w7*yGp6m{ zz0v%ew9VYhCji76a0thq4D|9;s>MJIa^B{1kuleC|B zsX9okeG?#tXLL#!D1G!nfJZHj5ZIqARok~n`?^0uRVK0{x;EFfyrAGame592>5aS2b5_b`7Hz~G@~5e(*0u?*o7d90aK4YG1A*)2ecJyhodAH%^;DE+g$veeY$7t50F12= z1qBZ{0$MJR56Ch^QAOHuUw~zNeB0f-V=oW$O^Eg1aSH`fypgK@5j>4II&=sOD9|b% zsDVv$MTzckRStSRe2C72IDu`UGH2hP3*_exc4QK`d9!*hn&3Jog8cO%a>Z>Kk_C}R8xWdY>X=0+y&{>6~MNjpVkU@`}S>go>nq@Z&{L| zq2W^yky1%>VAR*wF9r~LTaAUTuGKj{?P}0a-^r_$^t8yh%xh5x9EuPzNZa1_B+rWk zIe-$Z9MI6a2^P(PjiBrmqqV)D{4~I~q{`k`dj$ygb|6TTq4{hRmxnu`QfeW6gCIE# z3ut%4LXUhT1k>1*1FRUZpb;wYyG&H&=(nxho4&RUz@~HubPQk@(}P?=GMK^>Y!Wce zZv6F?QO%Ph4A0j5J5oFAAo5NVkegZQv`w?cE#GVUqy01>P2= zxs%&bw2@Fckhdj$fkoX@UR!?STdO)53?!&>0L{#Jf1|?;&(g9DUuU`O)UJYj9&Uyjr{fWL5xEDHIUkg#ZKI{G!w8iK=cb=AV~Mi|ku@LM=b+IGgjl(W!}GI+Pc zT#=aAM*;0e#>&H>QP4M)Z8Z03MvjwaoMo_L6TY+ouUk?X#v>{Uo}17Z@kgAIrm2A* z1gr*hFiV3L4drF`4$eiLFTj7m{1=?{C=9lx*By(@r7TD_R{)#XdYw@gAbReH;RHu< zdO~;D%%25=95vKex$QlC8Sp8=(i}jZQH`}eyYd3-{PH+KV`OqV(y5^Q066qcfTRPc z);O>?aRDtR+huCNEzwNcafBZQjF>^VL%`Y=Ku%gHAZd;C!KLWFiE`!6=wewAr3il& zo}{g3%n4i6)X?xaoW^xY_07o}9zk3I+jREe2?uWGih~vF6tH1|HcbePP-C=U87M@$r-m4 zpuz*`Q0~hO2EooC1hF*24kl#4f;(8(47wrZ0q^(R`1V zLKoDcz8JA4gf!}wV=hi1cY?f5sFXA};vWaI>!?eGDhrWPQ_rYIdk6&_$Lb7hdkwXY zo*^O!nIT7E_GM+HB|9dXFlr5}}8E4o2{-Vcs zG4sZUo?L~D^=rx#r3cVKyX;ao1*d@S8`KeUSBSIXqp1aeDPFnYm$NqQJZkkl#Wz~C}?!894m{T1@eA0VLC;|W3uY*^q`nJ)E?N4VP39z`=*i8V6sh3 z7Pn-n+vW{m3Z^U~3&s&+e01AZmwyRT=8plM(E zD;qi-4`i?iUkpZ|tKyOMD>ekTa*y)L`~GZ`v8xM392u_aES%@E>EgKP z*tg)vLm2uP9-RtfxBx6$^8}X!z6|y1<1wvwgEP23)7-HpkJO9%eurn|QC@(#vHK+J zv6B~O82az{-m=%sShp=Y-srj}Aick=6Z9N!nEB(G*%jD1^bs;hP4sB_?3zW3rVDj? zz;eOC{~cG?iUnNdH8Odn#f)9y5=$LD>vt)aiJuHt1xAe8fdvfil>xIR3*ENaVl>yO zpx>?B=3H>49|jg&@Y6nn_t@%RD&YrPA2GAB=)zI$QXl$)1asd&$T?xzkU3FErn^6N ze^C)91^H!EZpscpFQpKni~>hjlF;=o$NL?iattp#OAE;f3`w%b!c;>;zD!+U5I?_P z7}9czbvsrVA!>HLG`Dh%PvHHMsZmqGkUCY^#r!>;B1MZnrl=Izwbn?oAk`1$DVgqO zR(x66ES<~77nGNmkEG~EG;CUU-t?!Uec)fC8PbpkhHv!`>+U)#uPMsjhx_ZcXk#M! z{BT&qF-CFg_LFSI%d*1?$}JWqhDt_dha=w^nToGz#T`@EF^OGdcXo1!v|x0YkuD29_jjrQZWUx;c_8NAV9V(p#NE_2-3JfVhwCH+@W`1>BjSxP$e-U{NizIZ=%jPFI6CAMp61k>kT1JK^X*49Z8s40=ws93;7>;t^lUhx)4}s6a*g9IA=6^RWJO?6$Kk6U z=8YZdMy$r6J9-X7jU!z${ar|I_|4PBXJH@=XJ?vvfT3TKm4ciobve3_&6#4R+>Zq2 z-vg zG;&eU$3QrO!DA)9fG)gg5nuX3+VCH=7L?g+bO+9>B@~0~bdp0J?gW9c>bUUuL2s6f z!qI|aQ%x4DSff$L2uB@Q_7)!ZkT>AYEPA=WDCj+AKN%U}A1bDj*TJ_S_-9V8&F zl|dQlZTf*6Z7OwM7alrJQh>@i(*NVxD}kx|S~XN)6m3P~D6tH^TVhahjp1f&2Ygj9 zg29vFtLI4=bs(_dNkIepjTOn4Gl*pyawbdMUJ=n}b^bj3tLF4zfbnAZrt0n^qj_Z? zA4?0YFzRv6bsxM@zCyPFnEZNetSWX%dduVem?ueoL#rJD2 z0?ho46P5uwn8>sndzw`A?vhz_TC?K`Lwu5eFU(Ru^i9+&fk^-Ef?Ok(hd?Xslec|r z>Q&L4jBwJVu5$i*2ZqdZ!9|UvZQ15gzExaIe(YnoQR1QZ$zkQiGW(Fb@dxe)4g(TJ z{>7yyW(*%^`(>aDT?CncDoK6TiVVy%kLsF$TA1F~ewQ~Y-J4eiUTJz0jTuemTSFWJx!su~Iy#Ub?*P9&W2^1$puPy1CFr%@u0X%N%69 zOiXn^DkFT^NLgj^`AmJr@dgHLa7V9{Pdr^MypOk#E`x!Q;qA8BxuAkC8LpE8x&;y{ zSmM0Sz5Z7`?ur$!pf@2iC*_U(gR2jWKC+5((??CLf7vo5>swd|G(+r9<*-J_(3SB) zt-Ew^V(N_7AP&F)Dk5a3)!6;Cv#mbj0=y{AG}y2rhc2CgJWmgAiHc;1W?-k=s%=oI zD2r1Mu8AHhZ7_UhU>ay7zFy?Z6{qR(FJsB3pNFF5lNZhe^CJ%KW-cZyxe3f1Pg7<1 zO1D)97pSBRElm!%GZmj7^-xhbMz>t`Wgl~ADe;14XJtrfLX3j@cA|it(9Et`Wyj|= z)h2aG7X#Az7pZ?@8zkXiT&z^Gj};YO?SCKBZAkPLjwpSI)9_b~^EWiozZZ(M!3SCn zZX3k|StQ9(&zL@9(*!s|YA!y2t&8ZMISNO7!JN%uG)LIM-$A~>!^#;rd@qk4XV8SS z!s)UZnBX|lV6U!JPdZrI)-rR$3PM_2XBq8BN^*bRENw~-^6^wPip-|dLZ}x=n&J3C z1-bB?`@_op0%4<-3COu%!+Tr0LR

EMHkJk`anDm80uugTPEZEkBfmxn5@34hRBe zQk1wt-KdQ&Viy^8#H`Y@DQ?tJKXF4pH^4Yl4k|XGgScC`V^(rgz^Z`p+05@@9(N(g zeVF$9Y*^v5WsZ(DgL4>zhmHzlO!L9K>05ERB06J)?@^Al45$0n!lRqntSXTGB{fnG z+(M`86a4)7(W_adW4XB%#e@;hspDX;c0(jx5GB&&QCIDA*)eOrpr$tH+H&9mireU? zg&t?WyPWiPuBezm!omadext6f*=K2NEV=%p6it>BaC1Eq@n=oP zOX9(HV|d?#{28Sd1l|KMFif&C)H?F*xC1YQnYyDTA*ZFg@|H;$K`l%tYtTIc^s zG4{UD#bB_XH#H5|ZEu-B~gzb{roY(oEMH1y27S zT67B5wF%ZSfr=d2Z7+oLg}5clzJW{Y;WOR*;gAhe0WAol1_&NyXU|^Az8#@%XJf}` z?3638={Xs&n91;9zR?mcviP}i>HZ~O z;m!uWM^KyzmwtdJwXvd)!&F68r7oQkFRkc7ZkWVyCdhc;EnVLY^k;so_5Nq_d^OVW8Z&}>#W5$zH*!~Rw((~U6F^)1 zIKAo31a1{xhKFU_RuKzJZ9LygL=Zn_c^I>3F`PeQCMBL-%uw2-l1aybfEV$Fmg(Pb zhBf}S-84Kf{wY6D_k=~jkbfug-Y6o+I{%PN`7hHrr$TY{{HFY^>yIwy;5F%mroTxr zz#*ptmU9y(yD-D=N=dzfIBF&4gXj z&Q!-VFg!QS-_cMmYyWx-AD4j+iloQ5qlsl3sJ+!^7Rp&OTA`0%1fyG}6!hmUE6>sb zrD79L7_&jzN)zjtufG1h&8DjYzFfPpUI90z#g}zV=0>`^7vZZBzJp5^S#!nfD`{D? z%uVllM|jjRRp>%Il$@`wL~qzM)11}c4tJhb?=*u(Ag7o72kJ9RE0AiA&M&l@=^m1< z^;#5FFYOtaimR4yewD&ExE;_F^*0qdh{E$`34V?1 zHnL-Bt2GyY4}WrhqcMSV^l8Rabr=8!(Da0DS6s~{IaF(4XGdasN!@n%%AM}&VBqbJE@$MYn z3qweasOiDgHn1igw{rC>Azulgs3DVYjB;SfTzYJR62kttxm(0KgXTpfGbIfOZI>ub-^(^dSh*X5IIT0)Wxer2O z9=61+H)VR59M+h@ix!7t^c}W2BP-C(g-II~#T%Uyii9eLcDTFo-iU-nC|6^62g#S6 zGe2DW){i-SDSXSw`gvSFgV&L==AkvkF1ARu5mIceX|(O|$sJ_T=5OBaL1GDA?Ix7O z#&R>@(_(B6VcAV~%CTi&OuvMu{7G)*`J*?2Acr$e-a>9?W@sN)GU-1bpe9CvmzRxC z!Zc%#!I%|O8p_^=r>Wh^g<2vlS0-*aQM>*OnuF3VPGW(cZW+v8g=hMwN0&jWHN#Pa zHssri^b$zOX$3_}8$VH1^XNNp8p0ay# z7CL853t*S-l+@lSzyu4FL*BvHZ@39oHqS$++0(L=YMY3c?~Y3F!+G4$Mg*;LU>aDa z|Ez=q$spy+Kf9Eb6vWc7&1JQQfn!1W4`gFT%gnI7&qh z@tXy_^ZTnbo#EHB{K2&c|3hm0FSHE)>s|f-C7S<#p!-xk^@Je@hzGlO?;h6!n)vIG zp<eSN!oq0K`*D35DR^j9XCvxI+FnNAQMeuu#=A}5F@?~saYQEEESVni4MTo zP1q_IMx*+^3~ENYG3buQuyb-k-J)z#8UN~p)ujH%h6n!!x90!A-Tfbb#cMR8RZq8W zdJ|ails{`euK$OR3*)<%lNlQN=8^paii4fAE}$cR274Mt(8%L%k>VqMe;!C%Xjtf@ z7mre%oNhu=PjrsPsM8{y4`r0}y<%>TeaHdi4G2 zw3TL1{>$<5ABBL^1T9Rb|33046`HRX&{zDwI3RY`>%9LyXB&`ruRXl0Z0J1S#j@A` z+k1bC`P3;RLrouvQcKH5Kg&E*HmK+Qba$%d8pPS0MPX-YsmlGt;^cN>)iyC9eYri^ z)hJogrN6VISz=AA#AGW1_}pED++>?8IN1fU_x1U+F<;U)>R(e}VP*Y+OaF8(XN0FvHZ4^sp*uGt<8sq++N~8i zZFppWKQr-|#o%<=>;w!iz7`n-a*KEcu4E>5#bye+`}$f=sB+4A>yMY0i>=h>YOp#1 z-Nwo!qUfuqKta;L-nUQI=Pzl}j9I_zhRVR(Vh5@Vf!kpz;N5hg2DJ@_f1esT5w&RV@#l)x??!$GIs+t8007AbZ`Z!K%NNtkk%E-Ep-$R zm=SK%daZAm1vgcDb$flbSnb#LWn|0U%2L^|c{Wba!1x_iZdu)H_iJq7% zHm}$3h|Z_=jIv8V`@k;l{CUy)EYP|#EBb>hx>|lYIn~i3W8?fj+-SW=hri%+keoam z>tGNU`?;WUUa$aAa11Aeeovky@i}ynrh!d)q^$c@1Mr|f3gfZ;Zw{0`e~@xn(CkfD z)ai)2CRl1J0Yw*iXExV+QG9zp%bH+o-He|-`wYC-GX#$@=@aV&0twnF(wQLi(P1h? zM)q^;Q!+}g@y&|2O%SA1_jbQK#$~b~(SXm1X8-Qpi`ZTXNSwa)>y=sz@wat0L7~jN z1P+MI?Dr$*8-EW8?gaGvTZsAZ|A;UnQ?&cj0?wZ^(_>`o8P23U48O^itsz{0*La(- z&N+qOE%kYSfIqU6AJp_K{A%kY)rn2~_{8@7`+5(=(^)#deb7TEr&FUt?S>%qZJKM^ zc7*=SH@t2Nx0Y6c@IkjC$& z(rp0K`ociU3nt`>0H?MBFwe|$SRFGa);321ByO}pZLHF#$|5MBSiu!2M_JBr79yHU z2fyj?+Al_Nvisr?f$25&gJ(gvwqN+$x8(#?6_skM7CM_;&Tdk1&uw5%ZNu>bTSKs_ z6~q)*w&uGvTN^4pCeB6Qsc9*G0s?(jMzkCpZtVS>i)OflmJK>k@jIx1z|)-5^MK>~ z*yV$PCAIS$22)tCAAISKz+w+>T$Y9;uIBzca=hAeSp_&Znlm2|^qLiAi%k(j!j(2( zq2!%Z=X4>DzyGe>6pSPqKbrbO} zqxoe~T(Vg<-K5FlB4Gwm6CWHWl1AMX76-+zD4)CY z!qOwJe`pkQvW7fVRY_?031SBDWzlz5p*CZN$aKG*i&}dtVhGo1ZN0~tQy#aKcMih1 zI}O@|H0#4Fd}qp-eTo)2WvelGYM>V2WGe&onw5`8IFCGF;&|9xY~lK9eV6IAKx;PFi(i@YB%TlJXTjaqJ^MME{iPNjy@GdZ zswfk=LmfJH?3@=MVm*h;XAc`o9gzr{GWY8_FlO3hWK{4aRbxksjOhJ~0a3a~@s6B8 z5O#hYyqXFCk+H*rs>fZPZM-&2J^AR>F{n+DGZ#Zx{=DOE| zwfQ5Z+iwh8U%PB|gn}XON3yZ888108)kMJ|VH`kqO>mq(7~!UuEH%rnuFhVW!s|Dy z&3<-TA1;c{5;PoXX?z#BI8^QM)gjc7r^!gD`O4HngRl8Y6Sc^Q^4zqe%cZZuq~@#B z8ws+7n?DZe_0J|4-p=&$wMtDI;8rO;%*bMY3G9?75=72!n^wPw@je?FxIhS4d;cedpK49#`b}orzbtF-5e!y+o2hU zcGH#0=${O%{ObE``VK|fCVbj2?9}yfm!X3km9XeF9RAMz)IH*ny`EIFpen2uhve8n zPw(sA*!L&Rg2g>Vd-pY~p0ABzEcEb_2?dXb?@Joi+7Av<>-=`cTzVZLTbHVU`SVVk z*~5}Lvnp*)l$QF0!K(G=mHNUL$ubC*tnPWAX7^9FI~5wh??9jMDc$(P{=Z!7<$_}w zZq&n5nUS^^@Sp9{j5dQQ*DW4O=!=Q2+I_xEoU655#Pafp72Q=7g=5%Ju$G|xSnWyM>DkMRvO7VtLxZyV&{!DyHDEbvh`mi zO%g8-b!Jx9PWqx!z2&?QoaM?!3yiAb_el6f=+gJ^^6`51mZ@5UXFl#MUA%a)?I3o0 zu7eQp{>IFHcY=3+rdGG6;v$B&+`l+&sPpMW{*kge70||`=#`e8IA#LLHx>$5UnQa*H5v&C znM-4YC*}mVf6kdy4pWLO^1@mE0mG_TALU1K<DCCrY%|TeDcz)1A!xHU5+C7=@)_pU zO1!N~KE+i|by-NOal%;etY5OB`Yp%MPt~xcnoB$NH|5B8j90s7r*^E$Xg|av9X=^M z8HGzk1UxO<<&g4X>(I%MM&C?7;Un-q8jA${;Ikv-X6}F_kdvLt@ z$Ty?NDy#&Db2U+j-)t8C|9vD|I;n|%2J6nu(wg{*}C(d8AJT?}H7zB80VxTyT z)Qe<18R(8C7f0qtRAiah`S?XEQ=m6UN}G?@1H~3S2D9jW`rw5DH#Oda4MU*<-(sup z=TSSwlwTjCxD_pyMys7L?XLMc$txK2CAZc$4Uel0@=tk@=P{OoqjrxfmO*yszA}hI z-dL0K{QaScyu#Riu&t{TSRg3IWSY0`&UpK#(zEYCW?vil+Pk@!0LrjOY5MIib7eFz2p=}kB(<8 z)_ zj6Yc5kPcfD5_`Lg*C!giqt7NuU^cdIl8gI#tP58r5N7WzA_^;UFIsPrFO9NMcZ&o1 z91J~U1EHw*RhPro&oHv)F}*h zZmK*w=5|N)JE5{~sd6s55&;fInL_VRXanb(f&JYoB2YLMn9Lm|UxI9D4i5}`msiGA zuS@+>r)=YDeSLdAISyAMR9aOLt`t*0ts~T1V_3BOie1aT56A$D-&q~cL^5%V*B98@ zSZ%4j)9`~XcoQ(tpc2lr`>UUHuxd4*J)}tO#VPXJ$j1U~7k%1EKYwp{Qt-?9tMKo( zbrs8IRkD>b804K%muz4E2Byz$jk|e2M8Yu;%*h?I+tO0!eqi=1zxp*2Ii&QuX0vx> z;I?mx>24P+o-iuW-m^AkT_N5r=H0*}$CrC6$|m61KJVY@)vMgY1yNt^0j)616E=78mPY8D2*PZLk63(IFos zkg8gv7JJfcikcV1fW#{o>&m?xz*}6~tcJ^89?r8Lue3>$aDiX#ZYxlJgkg3kxPhF9?L2)WY;A3ZOWN-KDZ*c#Re2zE@o$07f4E*%z{4;i`tNVr@i%|y zx-|OZ@2Pyb$j_f6x?lS{#9TN5@2}uvS?G}1Cqv7vIV7!-mHk!ZcWG`G4S)dNW&e{W z`>$V3tSDO-;R3Y}xZnQ~{Ys-i*IX%MQ`jr;>)nU{il$$-{S6fR_W>;YdjL27|2fdc z-@mW%p#KI-n~V=#@1B1i2j^m9U=SFbJM#w#n-PzzxojGnwKwPa>gM0~lkO+S_kW6l zZ(kW5HV!^!^!G(Nf2H}Qy1me&z~F69I>EmOGJKT#oKym0BvrsGt3wbon%pLzgd)XR$nK5S!~!l?Te*hW9;8)rT%A{_ex>j zl3pI`Pi6KU0~~?fKHYqz}2h?>z0?U9_tMmI~plZ~lJf-mhb$J(rO1I#G`X zWyHVWiTtngv)CVeQJIyeJh=B~{tWN*zH?of*yFSJ;qT}2uQZ=#`A(6eg0%9 z=gI;C*2%8ll>bLT$LhKJ*Jd?eYfnZl<6c%@DNafL4Xt1CoNmJGzXefMRe9h374|L- zy{H~_=)eKD6Y{UN9#zyHPjl7PEz-OcY1kL-$e4?9)qw?9dAGq39ie4ml$CqotInI{ zSy>uQdzuS^>83SWtZVfcF)~uP_N{r~fu~tT>fUni)^N68E_+Or96Xpku>4+#Y*BP1CE-W)vXvG@TYhuDNpp#6?uIM_`kixraH4IR&Tk(4&BZ0Xrxz2H^$O{c^JbNRv z#|1~AyG} z{qK~tNaMx1?*vAux~PdfgD)Aopb2lI!6T`*EIqjWQEL07qEz_03))h*^zb7y`2vOA zM9P*)Cu-XwWrdrDmf9H+3kCzO5>O0da zd9wvZ#Axd1oe?&57vYDFOMI@UK1Qkg_t-{@tVsJ{mQ@}W7@bi4D@a5 zReztpM%Px!cb{2DU!zMnS6pT}8U1Hdt@JoHXOW2YXp=>7%u~5m8kT(SQhKf_N0?z* zrV5$Z?sFrvx0e+^Kn-ZShOskw-^uZ<6)Qxc+)ASPJO~V9`{xPfbeS6eVesw>^Os#7 zuOcg|P2F3eqw#^RoR7`Qp2H)nkoW*EC%-PM)7lVXDZ*K|-HKo*%k$o%G zct$lLFd^<8E7_|^AV^?|)=f!%H{?>MIX856cqI&*OqHe<2=U8{Z}bY(Tq9~R^zLV>J%ei?@pusG zWmdH??bi6^j~8mE{&{Yca}E ziQC^3z^Sw~5x% zlWv3}JOr^6O~s)ybW@=*8eCibXtx>lb#`0#ZWIJ%vn+@dcSLEUD>N>R2=u6g!nvzjX zTeY%&%Ir?Fxiix0QsK~UjEl`cPt?V8PHU6_P8v{c#V&u)Gv-Z*7GBrs5Jtw#@Ms@V z925~eNxoUETlSW2+O;{?pi90yqfEwUrCjS@(QvV|FmjN)XT7yB?m;M;2nzyQ9|8)E zb*mi(H7Q5S3Q9 zBpiYs?&16{+B!#3u`!2Fw88Dp6uLx8cput?(Tu2^@8YxZ@$r$LNmf{2dGC|mJcb|% zh#rDvA9c?x&)d~SSZ za+w{qmZRx24|O(ac~Nx1vfGtPV~2U@Lp_P#0!Z39o@jO-Y^-=-`Z~@dfpY51ck4!SuX?eNx+mZp=M>Ac(FzbPB5S@p3!1h0SKSwzdKqC`FXPFZw=rjFJ}KBa}cO zS3t%E@L5rU?pTZT{|81@QUQZcE~QlFOMe2Y|IjV)EeiIdVxfWJ8bch3ca+M0P`Bgj zV{E7^W?5U%mq-6xFIS26UWF;K))`?F*U1k40IZruEsEN#e*(lUIlhw1#e}Qq->*v_ znXNs{@oW>Td1S;_MlVM<(65qh(sQ)CFBOUYi@Y43h9=E#)Dr`OWvsfUb`y$g2pN7G zJewb^d|p}vzb({Ty*(zL=m*e8HP{-btG|~2gq?FN{7nc8O;_j)EdT(M6Ty-Mza-W+-c?R#tixRY&b#?e_7Ojr!-lE|hJ|Oak=0 z{E3h5-E(qq*uIhu>b3$3zlOr5G0*gWW|@^nEl?(aqWKlXXT$Y}Ei5<+=;7($Aig3g z$5PL^=#M3TX@_a$t^vW;HJgOkxNixLo&WOP=?K$O-6Y;d)h?8}pn$U6pIkXE^zu9k zxW?M)8-71@p9JN2Lr}QO-Ko8!1OM#e+7E7lR{rAnAT8PfyHD(lct`&PltiL|O{ih< z;3^{+X&6!T(9Tn!|7*uTluPyk+Bwdjf&A(uV9X6r>TNkm9)AOtx*xy0)#F}d7XUia zF7<$)?z^Sc^u@Z*40qb)XMo?HI(U4yGc0l%_3(WRltg eymhl3Q@+97q~g}Lbib0-=60tXPL^By#{C;BQsR^V diff --git a/ui-ngx/src/assets/help/images/rulenode/examples/related-device-attributes-ft.png b/ui-ngx/src/assets/help/images/rulenode/examples/related-device-attributes-ft.png index 484520a4fbf3aa81f1396da5064145aa012dfe4d..83aca746a3abc1ef1e88bf449609bda2c4342354 100644 GIT binary patch literal 37267 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 JR~|nT_cs8oc?SRh literal 93697 zcmd42=UPo=7jDqarB16GHF3Nw3LPL`tX$y{eP| z0Rn^`Lf*Ka^ZWzn%X>a0xtZTRbIn{c*IH{9(RwT1dcWMtQ?$jELY z@7y9id9+0Jg^cVunY!{Tqkx>9rJKHn;Ai~@x48xTmP*^Zy1Ev`9fChlayG=rU&9H# z(V}}6A>{C}_o-m-QqQI*_%mzh7|z2(Z9a{Yrv2Yj9~~W(Xh%oJ(bW|_+lv=^MiF_o zx0g@U*`MiJr}14oy-Dhk?EU7(Gp-DyffNf~2X%fd*p)_UW%S0BQ>f|wnvj z1-xD6&sKtA=EPNM;!UY;U-_JotN!!%FZ;^1GGXd}tfdKFT5fw3e;>VPtdaHBehbVu z`umG)=aJEvhSn{e|C-N6I!$IWQ2u@XKKG%~wZC6l74`lb$t?LRn!mr_@ZB)}`}w~1 z|Ahu;o|1nDBkO_eOJqwY2y1jYL~|G;Z+K%)tfhj_qjuy1Z8DhT`p@@2J^C*mSqU4S zTvh2wUd~dSQ}V3**G2b}Xq>6Ta;Kbdz)#>D`1}@EKlMW;i?AnWlFQ<+yJx+9m37r0 z0us)9)-Vb~KSdyH-Q88@28ciPotgNq`?(qaUCx7?cDcHLn%&KL=v z2X;I=GkZ(@QLa_K%1vX<|C13exbz=}>$0@X&sjYU6ns#6SE8unw$|5ee7ws2!aZUQ z>QWs-b#3n$$JK>7;}Ew|n&+up8FIGZWQ_ev`tnq4XLmp#+&^J;LDY7m{0)eVY^-RM zgWxdj%-BO-sewau)m9JXEZ1ro+R4f%)^2$;#ngRkc0K=iIJ%b30DS%rd8rmFVCD|_ zjnBHa86FUKdkGcAwkXFDg`)3LB5JEeQjW7j*1Ef`pN_N0!~1s0pXZc+#NGj1r#rie32vP{Knq{&=6bwCt4V`M6WQ^_~-cO!1^MF64QPzE%T zfPcXH*hqp=*3qW=L%=F*RljjL`5XE=*_%oTUr)$VZQ(-F1uD+?aN1VWI_v1ZWrrc} zuniyeMRWQ+o>1#NTXxl;^QK@n*Zp151?!D+-210myQ7sY*lEHV3tJzP5k%24Tg{>-8L#>s_S_ayFxhyHy&eoa-Y5 z$Y-q#3R90EOKm44 z1V32wAlmO_tIhhJGDoZEV$a07-as9wA?AmYFRxgku96e0vPA#Dn zT+$0_bWN?}TxYg^h7ZjiN+`32{}oVzq%UtIrUYR9GiP}eEssK`Mlb@(!DbvpMB z0AXk>T%K|_bRnDI7)`yPsj#qdHD`|qG0mS$qL@cM!lW@-Lixd>%f zP_-d%;v^|NDStxiYP|*PiDi9;6Z7$t# z04x1rabpq}Z^qWv)$;Kak=-^!bR(=Ov48MrN!2=IwVQY(DZwb+yZE3!X|SKG?5Ngw zF$BA&maq7yFW!xOB*R_mxhQ%4x)Li=`+&fDpQC4 zRUoFrh&9InYu?tM$DUU*uf*X{e>f-0TA=X^7N*J10#cVXyeGcX+DtY=2I#{u-I=HKBh>LA~DY zE2sOF6bZy7=GGbq#VVvAKf$(!$8dTt*_yU~Fedl&(kv zIYcwS8z@|UA19YBdE8;Ja6cz0J~&ZxyCk~AWN>lgfC-B=;Sjmd(GIP$hBJQ&plP<#>O!lNr)Mb!H<-|+AG~due~Mz z34q*kbl4wmNr>&76?!|+ZZpEjVjS^(QS8bazh_-(APNawl<*3no9Svv3v+H~=nO&} z$R|rN*$0byeVW9Xx({6*UpeKQ0`d^uIuUC#fT=VSg%RKGGM|w@De{iv!d()AXnj3D zlNZ6#bhe!JcRSz0&^hp%*GuWqw2?_ zzuOgjmY5Q!<+QtJh0AS&c{b3}8U;_Xdd#{$iE=}9=kGrS;2z|8pLg9~+}{PoTWvUN zZe_m&LWTueG}bas!=N0t0?XSI(iH&u^yJe8Q!tMi(h(F+*E0pkHQf%AvZ=fA$-V5c zvGgPl%Xw3oAHTpj0`M=uwhrTBT$IwU^9I&m^<;!cK!ITGv?ue(4Z~!hEYA${dONr% z?=}*M(Spa)oAN(D9@v4pHXVML63FgQHr|jW z6v#?#u7uEN4?V@G4zNE(w}dV_VZ8&f~mDWvywZJ+ttN%}3kI{$6*{%(kL zcp0`rs!*^Fh*slTr??fb9EcgUuAK5{E_PB^LX|MZYel!p$k9WfzpiRO8M#o%+KC0{b`p^&S;R##ioh)7K3=_SsQd`eNtcCM|q> z1kas-9`(Tbh$$QkSc8aW8$x} zz79@6DosRJCZJ#=om_qSt|r66SK?W37M&Z@t^j(xBJ$CL92?^6-o}LSk`{9dT+yp) ztt)3Pd(%2PD$X8#5|bX~dm9DPkv;5rP9M zK^H1jbnc`$vRyo;X2a(1i5{k$$#z^%4_o)X;o znwWwF!B0geWLvM`hTfYy9MFb$*`k8kV~_pSJq2)+#$9Xk+NZ?KTqU3~`L=KP*6HVI zWzdL2ZA##9CupS*8!Vd9(G!J`dmt}i7ri&8O8n`_$Z|Zer6~*?mG1DDc?o7#xy4cV{33LEy|Ols^4XG{UH^)Q*>sPV6``O(T^TqIMmUD9bnxwyyX%HNgJYuM&BrjL7t(ofSY)83dGJVqC33$g`Tclzj> zV5N83U9|Ie>{2ls=}dL~`%n-Ai}6Zhw{vm*y9Y5n zTi9#x3HAFU&7xOdbN;}&EBvcgYFZ9gwlt|ES`*`}u;#VqYN-(SQ~)Oc;)Vvqdh8TD ztZiBFXsK}6!@Le!7$c@teiQTWysvrDoU9S)lUX*-sEJO`H<1g9q0WuvGyQ4A`3d8I zq`@b8iHc29N#}+efEdN@Oz|aYlL#D_<(REl+bs#E=|h*=Gv;h-B~xXkFyF_A%D&J? zb1NWSE79IzP`uglu&WlF8q+jC3n)JCFUfc(^-F)G_`d9Tk%pZQaj3=8V5{d*LTI|n zC6)QbZwdohFsBIb8+=M2L;vL}X)`Ep&!j>+wfc^YW63$SKrBC=Q4Xo$lYPEhCu&4C zW|`art__PJ!>6VDS2D1&e_UE^;J)(IMlE{1(p)NA3VH&%6ptaeA4gmYzAEI>1nOz| zZI&?(=XtR6FI(c!exK#~@CaEnW_2kbq#DeW5_FwQ@+7o1TGMgF)Ow_&B6L~i$!V&s zT+Nn0SEmBApQhY9-le_j=messg<3nijU`Isb-B2U5o_C-!p+hhvVDF;=Jy#)EsEH( zds|y{W1z~8iEyqlL`IXTq5==qO=b)FgLa*P z?m=oPV0PVNy8zVSEQ^94o$WKC`b|~zvp*V^O;x}*!+dKzz>8`63GE2hcc|UFalg6aTu6Ac|En@X;U2_D52@^w{7yi1as0;vU`#1 z5RNO?BmDMf2%1e3^#NjG@8s^DQ!$*0uEo+uk}rQ57G~>&JJ(ZO)J>p@!#saSSD75y zHLaLqtl){?kwx$1`vXtLwygzk%FJMwA^A>qewQ|)s?s>avC!&UCit%~h0qoR^7gP5 z-!*W=XeE#-hiiLRoo_g>NCKTy^@KTOmP^)N154xywnwJaB0V;wrNUMdcwThxIf?#I zJ$Ikyh5Yl+F6*1z*tZ&RpMaL`FEImXrH|PbmVf%Z38!n(Tc) zz|r7zB&@gSX7-2zzV}nh(cM2olk#p_kX+Tlrz)toUC4%u-ewx7T?UrpKVp_qM$yys zQ%^r23#`KW>%%`+2<5^8;UTo1V`(ZbMD|@k39Z7D73BklQ(YTh1-)pQL8?BmY|wn{ z%$$DE%BKgXs^0^IVIEzob&kkS2TbQ+k3LWGkAtZ≫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�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 HeDQw(lBJ`W diff --git a/ui-ngx/src/assets/help/images/rulenode/examples/related-entity-data-ft.png b/ui-ngx/src/assets/help/images/rulenode/examples/related-entity-data-ft.png index 1f8df2034c183591921120fa5ebac38dfe349f00..bbfcb112f99ebd100e1d096eae9cb3f8978414e5 100644 GIT binary patch literal 38232 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 g93?Vb{cB>E1E`prBD#du~8M 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 z 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 BWugE8 diff --git a/ui-ngx/src/assets/help/images/rulenode/examples/tenant-attributes-ft.png b/ui-ngx/src/assets/help/images/rulenode/examples/tenant-attributes-ft.png index fe32e45e572a3749d51846d4a924e122bf48ca2d..f2c96e82974b66e759c27a6f450887dbe408f9ea 100644 GIT binary patch literal 29138 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 Date: Wed, 27 Sep 2023 15:12:34 +0300 Subject: [PATCH 013/117] tbe: fix_bug Integer from Json to Long --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6eba036d51..02d610fd9f 100755 --- a/pom.xml +++ b/pom.xml @@ -78,7 +78,7 @@ 3.8.1 3.21.9 1.42.1 - 1.1.1 + 1.1.2 1.18.18 1.2.4 1.2.5 From 2755a21f950776a9ea3c4c2f2211321e1df7b592 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Thu, 28 Sep 2023 11:09:44 +0300 Subject: [PATCH 014/117] UI: Fixed translation on change lang --- ui-ngx/src/app/core/auth/auth.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/core/auth/auth.service.ts b/ui-ngx/src/app/core/auth/auth.service.ts index 1253184714..f4777aae29 100644 --- a/ui-ngx/src/app/core/auth/auth.service.ts +++ b/ui-ngx/src/app/core/auth/auth.service.ts @@ -424,8 +424,8 @@ export class AuthService { } else { userLang = null; } - this.notifyUserLang(userLang); loadUserSubject.next(authPayload); + this.notifyUserLang(userLang); loadUserSubject.complete(); }, (err) => { From 77745b58a12075c5af13aacc28dc2cf0194ce773 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Thu, 28 Sep 2023 12:37:23 +0300 Subject: [PATCH 015/117] UI: Refactoring dashboard detail button --- .../dashboard/dashboard-form.component.html | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ui-ngx/src/app/modules/home/pages/dashboard/dashboard-form.component.html b/ui-ngx/src/app/modules/home/pages/dashboard/dashboard-form.component.html index 3514b0d919..0cb6adc7be 100644 --- a/ui-ngx/src/app/modules/home/pages/dashboard/dashboard-form.component.html +++ b/ui-ngx/src/app/modules/home/pages/dashboard/dashboard-form.component.html @@ -65,16 +65,16 @@ [fxShow]="!hideDelete() && !isEdit"> {{'dashboard.delete' | translate }} - -

Date: Thu, 28 Sep 2023 18:16:20 +0300 Subject: [PATCH 016/117] Implement widget types / bundles pagination and full text search. Add widget types tags. UI: Implement scroll grid component. --- .../main/data/upgrade/3.6.0/schema_update.sql | 18 + .../controller/WidgetTypeController.java | 54 ++- .../controller/WidgetsBundleController.java | 9 +- .../install/ThingsboardInstallService.java | 3 + .../constructor/WidgetTypeMsgConstructor.java | 5 + .../SystemWidgetTypesEdgeEventFetcher.java | 3 +- .../SystemWidgetsBundlesEdgeEventFetcher.java | 2 +- .../TenantWidgetTypesEdgeEventFetcher.java | 3 +- .../DefaultSystemDataLoaderService.java | 16 +- .../install/SqlDatabaseUpgradeService.java | 13 + .../server/dao/widget/WidgetTypeService.java | 9 +- .../dao/widget/WidgetsBundleService.java | 4 +- .../common/data/widget/DeprecatedFilter.java | 22 ++ .../common/data/widget/WidgetTypeDetails.java | 4 + .../common/data/widget/WidgetTypeInfo.java | 7 +- common/edge-api/src/main/proto/edge.proto | 1 + .../server/dao/model/ModelConstants.java | 5 + .../model/sql/WidgetTypeDetailsEntity.java | 8 + .../dao/model/sql/WidgetTypeInfoEntity.java | 34 +- .../dao/sql/widget/JpaWidgetTypeDao.java | 55 ++- .../dao/sql/widget/JpaWidgetsBundleDao.java | 49 ++- .../sql/widget/WidgetTypeInfoRepository.java | 134 +++++++ .../dao/sql/widget/WidgetTypeRepository.java | 31 -- .../sql/widget/WidgetsBundleRepository.java | 49 ++- .../dao/util/mapping/AbstractArrayType.java | 45 +++ .../mapping/AbstractArrayTypeDescriptor.java | 119 +++++++ .../util/mapping/ArraySqlTypeDescriptor.java | 86 +++++ .../server/dao/util/mapping/ArrayUtil.java | 335 ++++++++++++++++++ .../mapping/ParameterizedParameterType.java | 64 ++++ .../dao/util/mapping/StringArrayType.java | 41 +++ .../mapping/StringArrayTypeDescriptor.java | 31 ++ .../server/dao/widget/WidgetTypeDao.java | 16 +- .../dao/widget/WidgetTypeServiceImpl.java | 32 +- .../server/dao/widget/WidgetsBundleDao.java | 4 +- .../dao/widget/WidgetsBundleServiceImpl.java | 16 +- .../main/resources/sql/schema-entities.sql | 1 + .../sql/schema-views-and-functions.sql | 6 + .../dao/service/WidgetsBundleServiceTest.java | 8 +- .../dao/sql/widget/JpaWidgetTypeDaoTest.java | 67 +++- .../sql/widget/JpaWidgetsBundleDaoTest.java | 137 ++++++- ui-ngx/src/app/core/http/entity.service.ts | 2 +- ui-ngx/src/app/core/http/widget.service.ts | 61 ++-- .../dashboard-page.component.html | 43 ++- .../dashboard-page.component.ts | 13 +- .../dashboard-widget-select.component.html | 128 ++++--- .../dashboard-widget-select.component.scss | 126 +++---- .../dashboard-widget-select.component.ts | 307 ++++++++-------- .../grid/scroll-grid.component.html | 53 +++ .../grid/scroll-grid.component.scss | 32 ++ .../components/grid/scroll-grid.component.ts | 103 ++++++ .../home/components/home-components.module.ts | 7 +- .../datasource/scroll-grid-datasource.ts | 250 +++++++++++++ .../home/models/widget-component.models.ts | 3 + .../pages/widget/widget-editor.component.html | 5 + .../widget/widget-library-routing.module.ts | 2 +- .../pages/widget/widget-type.component.html | 4 + .../pages/widget/widget-type.component.ts | 2 + .../widgets-bundle-widgets.component.ts | 2 +- ui-ngx/src/app/shared/models/widget.models.ts | 8 + .../assets/locale/locale.constant-en_US.json | 1 + 60 files changed, 2222 insertions(+), 476 deletions(-) create mode 100644 application/src/main/data/upgrade/3.6.0/schema_update.sql create mode 100644 common/data/src/main/java/org/thingsboard/server/common/data/widget/DeprecatedFilter.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayType.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java create mode 100644 ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html create mode 100644 ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts create mode 100644 ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts diff --git a/application/src/main/data/upgrade/3.6.0/schema_update.sql b/application/src/main/data/upgrade/3.6.0/schema_update.sql new file mode 100644 index 0000000000..dd07a47dac --- /dev/null +++ b/application/src/main/data/upgrade/3.6.0/schema_update.sql @@ -0,0 +1,18 @@ +-- +-- Copyright © 2016-2023 The Thingsboard Authors +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +-- + +ALTER TABLE widget_type + ADD COLUMN IF NOT EXISTS tags text[]; \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java b/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java index 4aeaeb2210..f90a196edf 100644 --- a/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java +++ b/application/src/main/java/org/thingsboard/server/controller/WidgetTypeController.java @@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; +import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.exception.ThingsboardErrorCode; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TenantId; @@ -36,6 +37,7 @@ import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.security.Authority; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; @@ -46,6 +48,8 @@ import org.thingsboard.server.service.entitiy.widgets.type.TbWidgetTypeService; import org.thingsboard.server.service.security.permission.Operation; import org.thingsboard.server.service.security.permission.Resource; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import static org.thingsboard.server.controller.ControllerConstants.AVAILABLE_FOR_ANY_AUTHORIZED_USER; @@ -75,7 +79,11 @@ public class WidgetTypeController extends AutoCommitController { private static final String WIDGET_TYPE_INFO_DESCRIPTION = "Widget Type Info is a lightweight object that represents Widget Type but does not contain the heavyweight widget descriptor JSON"; private static final String TENANT_ONLY_PARAM_DESCRIPTION = "Optional boolean parameter indicating whether only tenant widget types should be returned"; private static final String FULL_SEARCH_PARAM_DESCRIPTION = "Optional boolean parameter indicating whether search widgets by description not only by name"; + private static final String DEPRECATED_FILTER_ALLOWABLE_VALUES = "ALL, ACTUAL, DEPRECATED"; + private static final String DEPRECATED_FILTER_PARAM_DESCRIPTION = "Optional string parameter indicating whether to include deprecated widgets"; private static final String UPDATE_EXISTING_BY_FQN_PARAM_DESCRIPTION = "Optional boolean parameter indicating whether to update existing widget type by FQN if present instead of creating new one"; + private static final String WIDGET_TYPE_ARRAY_DESCRIPTION = "A list of string values separated by comma ',' representing one of the widget type value"; + private static final String WIDGET_TYPE_ALLOWABLE_VALUES = "timeseries, latest, control, alarm, static"; @ApiOperation(value = "Get Widget Type Details (getWidgetTypeById)", notes = "Get the Widget Type Details based on the provided Widget Type Id. " + WIDGET_TYPE_DETAILS_DESCRIPTION + SYSTEM_OR_TENANT_AUTHORITY_PARAGRAPH) @@ -166,15 +174,22 @@ public class WidgetTypeController extends AutoCommitController { @ApiParam(value = TENANT_ONLY_PARAM_DESCRIPTION) @RequestParam(required = false) Boolean tenantOnly, @ApiParam(value = FULL_SEARCH_PARAM_DESCRIPTION) - @RequestParam(required = false) Boolean fullSearch) throws ThingsboardException { + @RequestParam(required = false) Boolean fullSearch, + @ApiParam(value = DEPRECATED_FILTER_PARAM_DESCRIPTION, allowableValues = DEPRECATED_FILTER_ALLOWABLE_VALUES) + @RequestParam(required = false) String deprecatedFilter, + @ApiParam(value = WIDGET_TYPE_ARRAY_DESCRIPTION, allowableValues = WIDGET_TYPE_ALLOWABLE_VALUES) + @RequestParam(required = false) String[] widgetTypeList) throws ThingsboardException { PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); + List widgetTypes = widgetTypeList != null ? Arrays.asList(widgetTypeList) : Collections.emptyList(); + boolean fullSearchBool = fullSearch != null && fullSearch; + DeprecatedFilter widgetTypeDeprecatedFilter = StringUtils.isNotEmpty(deprecatedFilter) ? DeprecatedFilter.valueOf(deprecatedFilter) : DeprecatedFilter.ALL; if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) { - return checkNotNull(widgetTypeService.findSystemWidgetTypesByPageLink(getTenantId(), fullSearch != null && fullSearch, pageLink)); + return checkNotNull(widgetTypeService.findSystemWidgetTypesByPageLink(getTenantId(), fullSearchBool, widgetTypeDeprecatedFilter, widgetTypes, pageLink)); } else { if (tenantOnly != null && tenantOnly) { - return checkNotNull(widgetTypeService.findTenantWidgetTypesByTenantIdAndPageLink(getTenantId(), fullSearch != null && fullSearch, pageLink)); + return checkNotNull(widgetTypeService.findTenantWidgetTypesByTenantIdAndPageLink(getTenantId(), fullSearchBool, widgetTypeDeprecatedFilter, widgetTypes, pageLink)); } else { - return checkNotNull(widgetTypeService.findAllTenantWidgetTypesByTenantIdAndPageLink(getTenantId(), fullSearch != null && fullSearch, pageLink)); + return checkNotNull(widgetTypeService.findAllTenantWidgetTypesByTenantIdAndPageLink(getTenantId(), fullSearchBool, widgetTypeDeprecatedFilter, widgetTypes, pageLink)); } } } @@ -272,19 +287,40 @@ public class WidgetTypeController extends AutoCommitController { tenantId = getCurrentUser().getTenantId(); } WidgetsBundle widgetsBundle = checkNotNull(widgetsBundleService.findWidgetsBundleByTenantIdAndAlias(tenantId, bundleAlias)); - return checkNotNull(widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(getTenantId(), widgetsBundle.getId())); + return checkNotNull(widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(getTenantId(), widgetsBundle.getId(), false, DeprecatedFilter.ALL, + null, new PageLink(1024))).getData(); } @ApiOperation(value = "Get Widget Type Info objects (getBundleWidgetTypesInfos)", notes = "Get the Widget Type Info objects based on the provided parameters. " + WIDGET_TYPE_INFO_DESCRIPTION + AVAILABLE_FOR_ANY_AUTHORIZED_USER) @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN', 'CUSTOMER_USER')") - @RequestMapping(value = "/widgetTypesInfos", params = {"widgetsBundleId"}, method = RequestMethod.GET) + @RequestMapping(value = "/widgetTypesInfos", params = {"widgetsBundleId", "pageSize", "page"}, method = RequestMethod.GET) @ResponseBody - public List getBundleWidgetTypesInfos( + public PageData getBundleWidgetTypesInfos( @ApiParam(value = "Widget Bundle Id", required = true) - @RequestParam("widgetsBundleId") String strWidgetsBundleId) throws ThingsboardException { + @RequestParam("widgetsBundleId") String strWidgetsBundleId, + @ApiParam(value = PAGE_SIZE_DESCRIPTION, required = true) + @RequestParam int pageSize, + @ApiParam(value = PAGE_NUMBER_DESCRIPTION, required = true) + @RequestParam int page, + @ApiParam(value = WIDGET_TYPE_TEXT_SEARCH_DESCRIPTION) + @RequestParam(required = false) String textSearch, + @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = WIDGET_TYPE_SORT_PROPERTY_ALLOWABLE_VALUES) + @RequestParam(required = false) String sortProperty, + @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) + @RequestParam(required = false) String sortOrder, + @ApiParam(value = FULL_SEARCH_PARAM_DESCRIPTION) + @RequestParam(required = false) Boolean fullSearch, + @ApiParam(value = DEPRECATED_FILTER_PARAM_DESCRIPTION, allowableValues = DEPRECATED_FILTER_ALLOWABLE_VALUES) + @RequestParam(required = false) String deprecatedFilter, + @ApiParam(value = WIDGET_TYPE_ARRAY_DESCRIPTION, allowableValues = WIDGET_TYPE_ALLOWABLE_VALUES) + @RequestParam(required = false) String[] widgetTypeList) throws ThingsboardException { WidgetsBundleId widgetsBundleId = new WidgetsBundleId(toUUID(strWidgetsBundleId)); - return checkNotNull(widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(getTenantId(), widgetsBundleId)); + PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); + List widgetTypes = widgetTypeList != null ? Arrays.asList(widgetTypeList) : Collections.emptyList(); + DeprecatedFilter widgetTypeDeprecatedFilter = StringUtils.isNotEmpty(deprecatedFilter) ? DeprecatedFilter.valueOf(deprecatedFilter) : DeprecatedFilter.ALL; + return checkNotNull(widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(getTenantId(), widgetsBundleId, fullSearch != null && fullSearch, + widgetTypeDeprecatedFilter, widgetTypes, pageLink)); } @ApiOperation(value = "Get Widget Type (getWidgetTypeByBundleAliasAndTypeAlias) (Deprecated)", diff --git a/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java b/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java index 382546dc96..b07467b94b 100644 --- a/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java +++ b/application/src/main/java/org/thingsboard/server/controller/WidgetsBundleController.java @@ -68,6 +68,7 @@ public class WidgetsBundleController extends BaseController { private final TbWidgetsBundleService tbWidgetsBundleService; private static final String WIDGET_BUNDLE_DESCRIPTION = "Widget Bundle represents a group(bundle) of widgets. Widgets are grouped into bundle by type or use case. "; + private static final String FULL_SEARCH_PARAM_DESCRIPTION = "Optional boolean parameter indicating extended search of widget bundles by description and by name / description of related widget types"; @ApiOperation(value = "Get Widget Bundle (getWidgetsBundleById)", notes = "Get the Widget Bundle based on the provided Widget Bundle Id. " + WIDGET_BUNDLE_DESCRIPTION + AVAILABLE_FOR_ANY_AUTHORIZED_USER) @@ -183,13 +184,15 @@ public class WidgetsBundleController extends BaseController { @ApiParam(value = SORT_PROPERTY_DESCRIPTION, allowableValues = WIDGET_BUNDLE_SORT_PROPERTY_ALLOWABLE_VALUES) @RequestParam(required = false) String sortProperty, @ApiParam(value = SORT_ORDER_DESCRIPTION, allowableValues = SORT_ORDER_ALLOWABLE_VALUES) - @RequestParam(required = false) String sortOrder) throws ThingsboardException { + @RequestParam(required = false) String sortOrder, + @ApiParam(value = FULL_SEARCH_PARAM_DESCRIPTION) + @RequestParam(required = false) Boolean fullSearch) throws ThingsboardException { PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder); if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) { - return checkNotNull(widgetsBundleService.findSystemWidgetsBundlesByPageLink(getTenantId(), pageLink)); + return checkNotNull(widgetsBundleService.findSystemWidgetsBundlesByPageLink(getTenantId(), fullSearch != null && fullSearch, pageLink)); } else { TenantId tenantId = getCurrentUser().getTenantId(); - return checkNotNull(widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, pageLink)); + return checkNotNull(widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, fullSearch != null && fullSearch, pageLink)); } } diff --git a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java index 208da7d36c..3829b3cf45 100644 --- a/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java +++ b/application/src/main/java/org/thingsboard/server/install/ThingsboardInstallService.java @@ -262,6 +262,9 @@ public class ThingsboardInstallService { databaseEntitiesUpgradeService.upgradeDatabase("3.5.1"); dataUpdateService.updateData("3.5.1"); systemDataLoaderService.updateDefaultNotificationConfigs(); + case "3.6.0": + log.info("Upgrading ThingsBoard from version 3.6.0 to 3.6.1 ..."); + databaseEntitiesUpgradeService.upgradeDatabase("3.6.0"); //TODO DON'T FORGET to update switch statement in the CacheCleanupService if you need to clear the cache break; default: diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java index af574b4b75..e6f04261fb 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/constructor/WidgetTypeMsgConstructor.java @@ -24,6 +24,8 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType; import org.thingsboard.server.gen.edge.v1.WidgetTypeUpdateMsg; import org.thingsboard.server.queue.util.TbCoreComponent; +import java.util.Arrays; + @Component @TbCoreComponent public class WidgetTypeMsgConstructor { @@ -59,6 +61,9 @@ public class WidgetTypeMsgConstructor { builder.setDescription(widgetTypeDetails.getDescription()); } builder.setDeprecated(widgetTypeDetails.isDeprecated()); + if (widgetTypeDetails.getTags() != null) { + builder.addAllTags(Arrays.asList(widgetTypeDetails.getTags())); + } return builder.build(); } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetTypesEdgeEventFetcher.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetTypesEdgeEventFetcher.java index de4218fc53..4bb4d1fb06 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetTypesEdgeEventFetcher.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetTypesEdgeEventFetcher.java @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.dao.widget.WidgetTypeService; @@ -31,6 +32,6 @@ public class SystemWidgetTypesEdgeEventFetcher extends BaseWidgetTypesEdgeEventF @Override protected PageData findWidgetTypes(TenantId tenantId, PageLink pageLink) { - return widgetTypeService.findSystemWidgetTypesByPageLink(tenantId, false, pageLink); + return widgetTypeService.findSystemWidgetTypesByPageLink(tenantId, false, DeprecatedFilter.ALL, null, pageLink); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetsBundlesEdgeEventFetcher.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetsBundlesEdgeEventFetcher.java index 87cffcee9f..d1ee0723dd 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetsBundlesEdgeEventFetcher.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/SystemWidgetsBundlesEdgeEventFetcher.java @@ -31,6 +31,6 @@ public class SystemWidgetsBundlesEdgeEventFetcher extends BaseWidgetsBundlesEdge @Override protected PageData findWidgetsBundles(TenantId tenantId, PageLink pageLink) { - return widgetsBundleService.findSystemWidgetsBundlesByPageLink(tenantId, pageLink); + return widgetsBundleService.findSystemWidgetsBundlesByPageLink(tenantId, false, pageLink); } } diff --git a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/TenantWidgetTypesEdgeEventFetcher.java b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/TenantWidgetTypesEdgeEventFetcher.java index 24f0527c20..85e23427d3 100644 --- a/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/TenantWidgetTypesEdgeEventFetcher.java +++ b/application/src/main/java/org/thingsboard/server/service/edge/rpc/fetch/TenantWidgetTypesEdgeEventFetcher.java @@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.dao.widget.WidgetTypeService; @@ -30,6 +31,6 @@ public class TenantWidgetTypesEdgeEventFetcher extends BaseWidgetTypesEdgeEventF } @Override protected PageData findWidgetTypes(TenantId tenantId, PageLink pageLink) { - return widgetTypeService.findTenantWidgetTypesByTenantIdAndPageLink(tenantId, false, pageLink); + return widgetTypeService.findTenantWidgetTypesByTenantIdAndPageLink(tenantId, false, DeprecatedFilter.ALL, null, pageLink); } } diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 4bb3645f20..29dcd601a1 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -63,6 +63,7 @@ import org.thingsboard.server.common.data.kv.BasicTsKvEntry; import org.thingsboard.server.common.data.kv.BooleanDataEntry; import org.thingsboard.server.common.data.kv.DoubleDataEntry; import org.thingsboard.server.common.data.kv.LongDataEntry; +import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageDataIterable; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.query.BooleanFilterPredicate; @@ -83,6 +84,8 @@ import org.thingsboard.server.common.data.security.UserCredentials; import org.thingsboard.server.common.data.tenant.profile.DefaultTenantProfileConfiguration; import org.thingsboard.server.common.data.tenant.profile.TenantProfileData; import org.thingsboard.server.common.data.tenant.profile.TenantProfileQueueConfiguration; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; +import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.attributes.AttributesService; import org.thingsboard.server.dao.customer.CustomerService; @@ -489,10 +492,15 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { public void deleteSystemWidgetBundle(String bundleAlias) throws Exception { WidgetsBundle widgetsBundle = widgetsBundleService.findWidgetsBundleByTenantIdAndAlias(TenantId.SYS_TENANT_ID, bundleAlias); if (widgetsBundle != null) { - var widgetTypes = widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID, widgetsBundle.getId()); - for (var widgetType : widgetTypes) { - widgetTypeService.deleteWidgetType(TenantId.SYS_TENANT_ID, widgetType.getId()); - } + PageData widgetTypes; + var pageLink = new PageLink(1024); + do { + widgetTypes = widgetTypeService.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID, widgetsBundle.getId(), false, DeprecatedFilter.ALL, null, pageLink); + for (var widgetType : widgetTypes.getData()) { + widgetTypeService.deleteWidgetType(TenantId.SYS_TENANT_ID, widgetType.getId()); + } + pageLink.nextPageLink(); + } while (widgetTypes.hasNext()); widgetsBundleService.deleteWidgetsBundle(TenantId.SYS_TENANT_ID, widgetsBundle.getId()); } } diff --git a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java index 307e2e5f3a..908fc75ec6 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/SqlDatabaseUpgradeService.java @@ -777,6 +777,19 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService log.error("Failed updating schema!!!", e); } break; + case "3.6.0": + try (Connection conn = DriverManager.getConnection(dbUrl, dbUserName, dbPassword)) { + log.info("Updating schema ..."); + if (isOldSchema(conn, 3006000)) { + schemaUpdateFile = Paths.get(installScripts.getDataDir(), "upgrade", "3.6.0", SCHEMA_UPDATE_SQL); + loadSql(schemaUpdateFile, conn); + conn.createStatement().execute("UPDATE tb_schema_settings SET schema_version = 3006001;"); + } + log.info("Schema updated."); + } catch (Exception e) { + log.error("Failed updating schema!!!", e); + } + break; default: throw new RuntimeException("Unable to upgrade SQL database, unsupported fromVersion: " + fromVersion); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java index edc6bb21da..d8df5d61a3 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeService.java @@ -20,6 +20,7 @@ import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; @@ -39,17 +40,17 @@ public interface WidgetTypeService extends EntityDaoService { void deleteWidgetType(TenantId tenantId, WidgetTypeId widgetTypeId); - PageData findSystemWidgetTypesByPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); + PageData findSystemWidgetTypesByPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); - PageData findAllTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); + PageData findAllTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); - PageData findTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); + PageData findTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); List findWidgetTypesByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId); List findWidgetTypesDetailsByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId); - List findWidgetTypesInfosByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId); + PageData findWidgetTypesInfosByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); List findWidgetFqnsByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java index e350846881..15fd4838dd 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleService.java @@ -34,13 +34,13 @@ public interface WidgetsBundleService extends EntityDaoService { WidgetsBundle findWidgetsBundleByTenantIdAndAlias(TenantId tenantId, String alias); - PageData findSystemWidgetsBundlesByPageLink(TenantId tenantId, PageLink pageLink); + PageData findSystemWidgetsBundlesByPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); List findSystemWidgetsBundles(TenantId tenantId); PageData findTenantWidgetsBundlesByTenantId(TenantId tenantId, PageLink pageLink); - PageData findAllTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, PageLink pageLink); + PageData findAllTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink); List findAllTenantWidgetsBundlesByTenantId(TenantId tenantId); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/widget/DeprecatedFilter.java b/common/data/src/main/java/org/thingsboard/server/common/data/widget/DeprecatedFilter.java new file mode 100644 index 0000000000..8ceb0d48a9 --- /dev/null +++ b/common/data/src/main/java/org/thingsboard/server/common/data/widget/DeprecatedFilter.java @@ -0,0 +1,22 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.common.data.widget; + +public enum DeprecatedFilter { + ALL, + ACTUAL, + DEPRECATED +} diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeDetails.java b/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeDetails.java index cd6f13c6d0..424e0bc6bc 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeDetails.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeDetails.java @@ -38,6 +38,9 @@ public class WidgetTypeDetails extends WidgetType implements HasName, HasTenantI @Length(fieldName = "description", max = 1024) @ApiModelProperty(position = 10, value = "Description of the widget") private String description; + @NoXss + @ApiModelProperty(position = 11, value = "Tags of the widget type") + private String[] tags; @Getter @Setter @@ -59,6 +62,7 @@ public class WidgetTypeDetails extends WidgetType implements HasName, HasTenantI super(widgetTypeDetails); this.image = widgetTypeDetails.getImage(); this.description = widgetTypeDetails.getDescription(); + this.tags = widgetTypeDetails.getTags(); this.externalId = widgetTypeDetails.getExternalId(); } } diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeInfo.java b/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeInfo.java index 0e8bce0a19..3387fb13b6 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeInfo.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/widget/WidgetTypeInfo.java @@ -29,7 +29,10 @@ public class WidgetTypeInfo extends BaseWidgetType { @ApiModelProperty(position = 9, value = "Description of the widget type", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String description; @NoXss - @ApiModelProperty(position = 10, value = "Type of the widget (timeseries, latest, control, alarm or static)", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + @ApiModelProperty(position = 10, value = "Tags of the widget type", accessMode = ApiModelProperty.AccessMode.READ_ONLY) + private String[] tags; + @NoXss + @ApiModelProperty(position = 11, value = "Type of the widget (timeseries, latest, control, alarm or static)", accessMode = ApiModelProperty.AccessMode.READ_ONLY) private String widgetType; public WidgetTypeInfo() { @@ -48,6 +51,7 @@ public class WidgetTypeInfo extends BaseWidgetType { super(widgetTypeInfo); this.image = widgetTypeInfo.getImage(); this.description = widgetTypeInfo.getDescription(); + this.tags = widgetTypeInfo.getTags(); this.widgetType = widgetTypeInfo.getWidgetType(); } @@ -55,6 +59,7 @@ public class WidgetTypeInfo extends BaseWidgetType { super(widgetTypeDetails); this.image = widgetTypeDetails.getImage(); this.description = widgetTypeDetails.getDescription(); + this.tags = widgetTypeDetails.getTags(); if (widgetTypeDetails.getDescriptor() != null && widgetTypeDetails.getDescriptor().has("type")) { this.widgetType = widgetTypeDetails.getDescriptor().get("type").asText(); } else { diff --git a/common/edge-api/src/main/proto/edge.proto b/common/edge-api/src/main/proto/edge.proto index b316d5b3c4..bc0170b24b 100644 --- a/common/edge-api/src/main/proto/edge.proto +++ b/common/edge-api/src/main/proto/edge.proto @@ -377,6 +377,7 @@ message WidgetTypeUpdateMsg { optional string description = 10; optional string fqn = 11; bool deprecated = 12; + repeated string tags = 13; } message AdminSettingsUpdateMsg { diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java index 0e8ea2db15..d27a5365ef 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/ModelConstants.java @@ -313,10 +313,15 @@ public class ModelConstants { public static final String WIDGET_TYPE_NAME_PROPERTY = "name"; public static final String WIDGET_TYPE_IMAGE_PROPERTY = "image"; public static final String WIDGET_TYPE_DESCRIPTION_PROPERTY = "description"; + public static final String WIDGET_TYPE_TAGS_PROPERTY = "tags"; public static final String WIDGET_TYPE_DESCRIPTOR_PROPERTY = "descriptor"; public static final String WIDGET_TYPE_DEPRECATED_PROPERTY = "deprecated"; + public static final String WIDGET_TYPE_WIDGET_TYPE_PROPERTY = "widget_type"; + + public static final String WIDGET_TYPE_INFO_VIEW_TABLE_NAME = "widget_type_info_view"; + /** * Widgets bundle widget constants. */ diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java index be934e9c8f..99555393c6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java @@ -26,6 +26,7 @@ import org.thingsboard.server.common.data.widget.BaseWidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.util.mapping.JsonStringType; +import org.thingsboard.server.dao.util.mapping.StringArrayType; import javax.persistence.Column; import javax.persistence.Entity; @@ -36,6 +37,7 @@ import java.util.UUID; @EqualsAndHashCode(callSuper = true) @Entity @TypeDef(name = "json", typeClass = JsonStringType.class) +@TypeDef(name = "string-array", typeClass = StringArrayType.class) @Table(name = ModelConstants.WIDGET_TYPE_TABLE_NAME) public class WidgetTypeDetailsEntity extends AbstractWidgetTypeEntity { @@ -45,6 +47,10 @@ public class WidgetTypeDetailsEntity extends AbstractWidgetTypeEntity { + @Column(name = ModelConstants.WIDGET_TYPE_IMAGE_PROPERTY) private String image; + + @Column(name = ModelConstants.WIDGET_TYPE_DESCRIPTION_PROPERTY) private String description; + + @Type(type="string-array") + @Column(name = ModelConstants.WIDGET_TYPE_TAGS_PROPERTY, columnDefinition = "text[]") + private String[] tags; + + @Column(name = ModelConstants.WIDGET_TYPE_WIDGET_TYPE_PROPERTY) private String widgetType; public WidgetTypeInfoEntity() { super(); } - public WidgetTypeInfoEntity(WidgetTypeDetailsEntity widgetTypeDetailsEntity) { - super(widgetTypeDetailsEntity); - this.image = widgetTypeDetailsEntity.getImage(); - this.description = widgetTypeDetailsEntity.getDescription(); - if (widgetTypeDetailsEntity.getDescriptor() != null && widgetTypeDetailsEntity.getDescriptor().has("type")) { - this.widgetType = widgetTypeDetailsEntity.getDescriptor().get("type").asText(); - } else { - this.widgetType = ""; - } - } - @Override public WidgetTypeInfo toData() { BaseWidgetType baseWidgetType = super.toBaseWidgetType(); WidgetTypeInfo widgetTypeInfo = new WidgetTypeInfo(baseWidgetType); widgetTypeInfo.setImage(image); widgetTypeInfo.setDescription(description); + widgetTypeInfo.setTags(tags); widgetTypeInfo.setWidgetType(widgetType); return widgetTypeInfo; } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java index 0548ad814d..1d446be1b3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDao.java @@ -23,6 +23,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; @@ -35,6 +36,7 @@ import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.util.SqlDao; import org.thingsboard.server.dao.widget.WidgetTypeDao; +import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -54,6 +56,9 @@ public class JpaWidgetTypeDao extends JpaAbstractDao findSystemWidgetTypes(TenantId tenantId, boolean fullSearch, PageLink pageLink) { + public PageData findSystemWidgetTypes(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + boolean deprecatedFilterEnabled = !DeprecatedFilter.ALL.equals(deprecatedFilter); + boolean deprecatedFilterBool = DeprecatedFilter.DEPRECATED.equals(deprecatedFilter); + boolean widgetTypesEmpty = widgetTypes == null || widgetTypes.isEmpty(); return DaoUtil.toPageData( - widgetTypeRepository + widgetTypeInfoRepository .findSystemWidgetTypes( NULL_UUID, Objects.toString(pageLink.getTextSearch(), ""), fullSearch, + deprecatedFilterEnabled, + deprecatedFilterBool, + widgetTypesEmpty, + widgetTypes == null ? Collections.emptyList() : widgetTypes, DaoUtil.toPageable(pageLink))); } @Override - public PageData findAllTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink) { + public PageData findAllTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + boolean deprecatedFilterEnabled = !DeprecatedFilter.ALL.equals(deprecatedFilter); + boolean deprecatedFilterBool = DeprecatedFilter.DEPRECATED.equals(deprecatedFilter); + boolean widgetTypesEmpty = widgetTypes == null || widgetTypes.isEmpty(); return DaoUtil.toPageData( - widgetTypeRepository + widgetTypeInfoRepository .findAllTenantWidgetTypesByTenantId( tenantId, NULL_UUID, Objects.toString(pageLink.getTextSearch(), ""), fullSearch, + deprecatedFilterEnabled, + deprecatedFilterBool, + widgetTypesEmpty, + widgetTypes == null ? Collections.emptyList() : widgetTypes, DaoUtil.toPageable(pageLink))); } @Override - public PageData findTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink) { + public PageData findTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + boolean deprecatedFilterEnabled = !DeprecatedFilter.ALL.equals(deprecatedFilter); + boolean deprecatedFilterBool = DeprecatedFilter.DEPRECATED.equals(deprecatedFilter); + boolean widgetTypesEmpty = widgetTypes == null || widgetTypes.isEmpty(); return DaoUtil.toPageData( - widgetTypeRepository + widgetTypeInfoRepository .findTenantWidgetTypesByTenantId( tenantId, Objects.toString(pageLink.getTextSearch(), ""), fullSearch, + deprecatedFilterEnabled, + deprecatedFilterBool, + widgetTypesEmpty, + widgetTypes == null ? Collections.emptyList() : widgetTypes, DaoUtil.toPageable(pageLink))); } @@ -122,8 +148,21 @@ public class JpaWidgetTypeDao extends JpaAbstractDao findWidgetTypesInfosByWidgetsBundleId(UUID tenantId, UUID widgetsBundleId) { - return DaoUtil.convertDataList(widgetTypeRepository.findWidgetTypesInfosByWidgetsBundleId(widgetsBundleId)); + public PageData findWidgetTypesInfosByWidgetsBundleId(UUID tenantId, UUID widgetsBundleId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + boolean deprecatedFilterEnabled = !DeprecatedFilter.ALL.equals(deprecatedFilter); + boolean deprecatedFilterBool = DeprecatedFilter.DEPRECATED.equals(deprecatedFilter); + boolean widgetTypesEmpty = widgetTypes == null || widgetTypes.isEmpty(); + return DaoUtil.toPageData( + widgetTypeInfoRepository + .findWidgetTypesInfosByWidgetsBundleId( + widgetsBundleId, + Objects.toString(pageLink.getTextSearch(), ""), + fullSearch, + deprecatedFilterEnabled, + deprecatedFilterBool, + widgetTypesEmpty, + widgetTypes == null ? Collections.emptyList() : widgetTypes, + DaoUtil.toPageable(pageLink))); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java index f3a476d8eb..e9c972c7a3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java @@ -62,13 +62,22 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findSystemWidgetsBundles(TenantId tenantId, PageLink pageLink) { - return DaoUtil.toPageData( - widgetsBundleRepository - .findSystemWidgetsBundles( - NULL_UUID, - Objects.toString(pageLink.getTextSearch(), ""), - DaoUtil.toPageable(pageLink))); + public PageData findSystemWidgetsBundles(TenantId tenantId, boolean fullSearch, PageLink pageLink) { + if (fullSearch) { + return DaoUtil.toPageData( + widgetsBundleRepository + .findSystemWidgetsBundlesFullSearch( + NULL_UUID, + Objects.toString(pageLink.getTextSearch(), ""), + DaoUtil.toPageable(pageLink))); + } else { + return DaoUtil.toPageData( + widgetsBundleRepository + .findSystemWidgetsBundles( + NULL_UUID, + Objects.toString(pageLink.getTextSearch(), ""), + DaoUtil.toPageable(pageLink))); + } } @Override @@ -82,14 +91,24 @@ public class JpaWidgetsBundleDao extends JpaAbstractDao findAllTenantWidgetsBundlesByTenantId(UUID tenantId, PageLink pageLink) { - return DaoUtil.toPageData( - widgetsBundleRepository - .findAllTenantWidgetsBundlesByTenantId( - tenantId, - NULL_UUID, - Objects.toString(pageLink.getTextSearch(), ""), - DaoUtil.toPageable(pageLink))); + public PageData findAllTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink) { + if (fullSearch) { + return DaoUtil.toPageData( + widgetsBundleRepository + .findAllTenantWidgetsBundlesByTenantIdFullSearch( + tenantId, + NULL_UUID, + Objects.toString(pageLink.getTextSearch(), ""), + DaoUtil.toPageable(pageLink))); + } else { + return DaoUtil.toPageData( + widgetsBundleRepository + .findAllTenantWidgetsBundlesByTenantId( + tenantId, + NULL_UUID, + Objects.toString(pageLink.getTextSearch(), ""), + DaoUtil.toPageable(pageLink))); + } } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java new file mode 100644 index 0000000000..27f4ef918f --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java @@ -0,0 +1,134 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.sql.widget; + +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity; + +import java.util.List; +import java.util.UUID; + +public interface WidgetTypeInfoRepository extends JpaRepository { + + @Query(nativeQuery = true, + value = "SELECT * FROM widget_type_info_view wti WHERE wti.tenant_id = :systemTenantId " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))", + // "OR to_tsvector(lower(array_to_string(wti.tags, ' '))) @@ to_tsquery(lower(:searchText)))))", + countQuery = "SELECT count(*) FROM widget_type_info_view wti WHERE wti.tenant_id = :systemTenantId " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))" + ) + Page findSystemWidgetTypes(@Param("systemTenantId") UUID systemTenantId, + @Param("searchText") String searchText, + @Param("fullSearch") boolean fullSearch, + @Param("deprecatedFilterEnabled") boolean deprecatedFilterEnabled, + @Param("deprecatedFilter") boolean deprecatedFilter, + @Param("widgetTypesEmpty") boolean widgetTypesEmpty, + @Param("widgetTypes") List widgetTypes, + Pageable pageable); + + @Query(nativeQuery = true, + value = "SELECT * FROM widget_type_info_view wti WHERE wti.tenant_id IN (:tenantId, :nullTenantId) " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))", + countQuery = "SELECT count(*) FROM widget_type_info_view wti WHERE wti.tenant_id IN (:tenantId, :nullTenantId) " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))" + ) + Page findAllTenantWidgetTypesByTenantId(@Param("tenantId") UUID tenantId, + @Param("nullTenantId") UUID nullTenantId, + @Param("searchText") String searchText, + @Param("fullSearch") boolean fullSearch, + @Param("deprecatedFilterEnabled") boolean deprecatedFilterEnabled, + @Param("deprecatedFilter") boolean deprecatedFilter, + @Param("widgetTypesEmpty") boolean widgetTypesEmpty, + @Param("widgetTypes") List widgetTypes, + Pageable pageable); + + @Query(nativeQuery = true, + value = "SELECT * FROM widget_type_info_view wti WHERE wti.tenant_id = :tenantId " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))", + countQuery = "SELECT count(*) FROM widget_type_info_view wti WHERE wti.tenant_id = :tenantId " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))" + ) + Page findTenantWidgetTypesByTenantId(@Param("tenantId") UUID tenantId, + @Param("searchText") String searchText, + @Param("fullSearch") boolean fullSearch, + @Param("deprecatedFilterEnabled") boolean deprecatedFilterEnabled, + @Param("deprecatedFilter") boolean deprecatedFilter, + @Param("widgetTypesEmpty") boolean widgetTypesEmpty, + @Param("widgetTypes") List widgetTypes, + Pageable pageable); + + @Query("SELECT wti FROM WidgetTypeInfoEntity wti, WidgetsBundleWidgetEntity wbw " + + "WHERE wbw.widgetsBundleId = :widgetsBundleId " + + "AND wbw.widgetTypeId = wti.id ORDER BY wbw.widgetTypeOrder") + List findWidgetTypesInfosByWidgetsBundleId(@Param("widgetsBundleId") UUID widgetsBundleId); + + @Query(nativeQuery = true, + value = "SELECT * FROM widget_type_info_view wti, widgets_bundle_widget wbw " + + "WHERE wbw.widgets_bundle_id = :widgetsBundleId " + + "AND wbw.widget_type_id = wti.id " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' ')))) " + + "ORDER BY wbw.widget_type_order", + countQuery = "SELECT count(*) FROM widget_type_info_view wti, widgets_bundle_widget wbw " + + "WHERE wbw.widgets_bundle_id = :widgetsBundleId " + + "AND wbw.widget_type_id = wti.id " + + "AND ((:deprecatedFilterEnabled) IS FALSE OR wti.deprecated = :deprecatedFilter) " + + "AND ((:widgetTypesEmpty) IS TRUE OR wti.widget_type IN (:widgetTypes)) " + + "AND (wti.name ILIKE CONCAT('%', :searchText, '%') " + + "OR ((:fullSearch) IS TRUE AND (wti.description ILIKE CONCAT('%', :searchText, '%') " + + "OR lower(wti.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:searchText), ' '))))" + ) + Page findWidgetTypesInfosByWidgetsBundleId(@Param("widgetsBundleId") UUID widgetsBundleId, + @Param("searchText") String searchText, + @Param("fullSearch") boolean fullSearch, + @Param("deprecatedFilterEnabled") boolean deprecatedFilterEnabled, + @Param("deprecatedFilter") boolean deprecatedFilter, + @Param("widgetTypesEmpty") boolean widgetTypesEmpty, + @Param("widgetTypes") List widgetTypes, + Pageable pageable); + +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java index 41fa293dd5..3c95cdb1f4 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeRepository.java @@ -24,8 +24,6 @@ import org.thingsboard.server.dao.ExportableEntityRepository; import org.thingsboard.server.dao.model.sql.WidgetTypeDetailsEntity; import org.thingsboard.server.dao.model.sql.WidgetTypeEntity; import org.thingsboard.server.dao.model.sql.WidgetTypeIdFqnEntity; -import org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity; -import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; import java.util.List; import java.util.UUID; @@ -37,31 +35,6 @@ public interface WidgetTypeRepository extends JpaRepository findSystemWidgetTypes(@Param("systemTenantId") UUID systemTenantId, - @Param("searchText") String searchText, - @Param("fullSearch") boolean fullSearch, - Pageable pageable); - - @Query("SELECT new org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity(wtd) FROM WidgetTypeDetailsEntity wtd WHERE wtd.tenantId IN (:tenantId, :nullTenantId) " + - "AND (LOWER(wtd.name) LIKE LOWER(CONCAT('%', :searchText, '%')) " + - "OR ((:fullSearch) IS TRUE AND LOWER(wtd.description) LIKE LOWER(CONCAT('%', :searchText, '%'))))") - Page findAllTenantWidgetTypesByTenantId(@Param("tenantId") UUID tenantId, - @Param("nullTenantId") UUID nullTenantId, - @Param("searchText") String searchText, - @Param("fullSearch") boolean fullSearch, - Pageable pageable); - - @Query("SELECT new org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity(wtd) FROM WidgetTypeDetailsEntity wtd WHERE wtd.tenantId = :tenantId " + - "AND (LOWER(wtd.name) LIKE LOWER(CONCAT('%', :searchText, '%')) " + - "OR ((:fullSearch) IS TRUE AND LOWER(wtd.description) LIKE LOWER(CONCAT('%', :searchText, '%'))))") - Page findTenantWidgetTypesByTenantId(@Param("tenantId") UUID tenantId, - @Param("searchText") String searchText, - @Param("fullSearch") boolean fullSearch, - Pageable pageable); - @Query("SELECT wtd FROM WidgetTypeDetailsEntity wtd WHERE wtd.tenantId = :tenantId " + "AND LOWER(wtd.name) LIKE LOWER(CONCAT('%', :textSearch, '%'))") Page findTenantWidgetTypeDetailsByTenantId(@Param("tenantId") UUID tenantId, @@ -78,10 +51,6 @@ public interface WidgetTypeRepository extends JpaRepository findWidgetTypesDetailsByWidgetsBundleId(@Param("widgetsBundleId") UUID widgetsBundleId); - @Query("SELECT new org.thingsboard.server.dao.model.sql.WidgetTypeInfoEntity(wtd) FROM WidgetTypeDetailsEntity wtd, WidgetsBundleWidgetEntity wbw " + - "WHERE wbw.widgetsBundleId = :widgetsBundleId " + - "AND wbw.widgetTypeId = wtd.id ORDER BY wbw.widgetTypeOrder") - List findWidgetTypesInfosByWidgetsBundleId(@Param("widgetsBundleId") UUID widgetsBundleId); @Query("SELECT wtd.fqn FROM WidgetTypeDetailsEntity wtd, WidgetsBundleWidgetEntity wbw " + "WHERE wbw.widgetsBundleId = :widgetsBundleId " + diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java index 7a6ba68a36..25053bbbe6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java @@ -33,11 +33,33 @@ public interface WidgetsBundleRepository extends JpaRepository findSystemWidgetsBundles(@Param("systemTenantId") UUID systemTenantId, - @Param("searchText") String searchText, + @Param("textSearch") String textSearch, Pageable pageable); + @Query(nativeQuery = true, + value = "SELECT * FROM widgets_bundle wb WHERE wb.tenant_id = :systemTenantId " + + "AND (wb.title ILIKE CONCAT('%', :textSearch, '%') " + + "OR wb.description ILIKE CONCAT('%', :textSearch, '%') " + + "OR wb.id in (SELECT wbw.widgets_bundle_id FROM widgets_bundle_widget wbw, widget_type wtd " + + "WHERE wtd.id = wbw.widget_type_id " + + "AND (wtd.name ILIKE CONCAT('%', :textSearch, '%') " + + "OR wtd.description ILIKE CONCAT('%', :textSearch, '%') " + + "OR lower(wtd.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:textSearch), ' '))))", + countQuery = "SELECT count(*) FROM widgets_bundle wb WHERE wb.tenant_id = :systemTenantId " + + "AND (wb.title ILIKE CONCAT('%', :textSearch, '%') " + + "OR wb.description ILIKE CONCAT('%', :textSearch, '%') " + + "OR wb.id in (SELECT wbw.widgets_bundle_id FROM widgets_bundle_widget wbw, widget_type wtd " + + "WHERE wtd.id = wbw.widget_type_id " + + "AND (wtd.name ILIKE CONCAT('%', :textSearch, '%') " + + "OR wtd.description ILIKE CONCAT('%', :textSearch, '%') " + + "OR lower(wtd.tags\\:\\:text)\\:\\:text[] && string_to_array(lower(:textSearch), ' '))))" + ) + Page findSystemWidgetsBundlesFullSearch(@Param("systemTenantId") UUID systemTenantId, + @Param("textSearch") String textSearch, + Pageable pageable); + @Query("SELECT wb FROM WidgetsBundleEntity wb WHERE wb.tenantId = :tenantId " + "AND LOWER(wb.title) LIKE LOWER(CONCAT('%', :textSearch, '%'))") Page findTenantWidgetsBundlesByTenantId(@Param("tenantId") UUID tenantId, @@ -51,6 +73,29 @@ public interface WidgetsBundleRepository extends JpaRepository findAllTenantWidgetsBundlesByTenantIdFullSearch(@Param("tenantId") UUID tenantId, + @Param("nullTenantId") UUID nullTenantId, + @Param("textSearch") String textSearch, + Pageable pageable); + WidgetsBundleEntity findFirstByTenantIdAndTitle(UUID tenantId, String title); @Query("SELECT externalId FROM WidgetsBundleEntity WHERE id = :id") diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayType.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayType.java new file mode 100644 index 0000000000..a194b76aa5 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayType.java @@ -0,0 +1,45 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +import org.hibernate.type.AbstractSingleColumnStandardBasicType; +import org.hibernate.usertype.DynamicParameterizedType; + +import java.util.Properties; + +public abstract class AbstractArrayType + extends AbstractSingleColumnStandardBasicType + implements DynamicParameterizedType { + + public static final String SQL_ARRAY_TYPE = "sql_array_type"; + + public AbstractArrayType(AbstractArrayTypeDescriptor arrayTypeDescriptor) { + super( + ArraySqlTypeDescriptor.INSTANCE, + arrayTypeDescriptor + ); + } + + @Override + protected boolean registerUnderJavaType() { + return true; + } + + @Override + public void setParameterValues(Properties parameters) { + ((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters); + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java new file mode 100644 index 0000000000..91e426567c --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java @@ -0,0 +1,119 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +import org.hibernate.HibernateException; +import org.hibernate.type.descriptor.WrapperOptions; +import org.hibernate.type.descriptor.java.AbstractTypeDescriptor; +import org.hibernate.type.descriptor.java.MutabilityPlan; +import org.hibernate.type.descriptor.java.MutableMutabilityPlan; +import org.hibernate.usertype.DynamicParameterizedType; + +import java.sql.Array; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Properties; + +import static org.thingsboard.server.dao.util.mapping.AbstractArrayType.SQL_ARRAY_TYPE; + +public abstract class AbstractArrayTypeDescriptor + extends AbstractTypeDescriptor implements DynamicParameterizedType { + + private Class arrayObjectClass; + + private String sqlArrayType; + + public AbstractArrayTypeDescriptor(Class arrayObjectClass) { + this(arrayObjectClass, (MutabilityPlan) new MutableMutabilityPlan() { + @Override + protected T deepCopyNotNull(Object value) { + return ArrayUtil.deepCopy(value); + } + }); + } + + protected AbstractArrayTypeDescriptor(Class arrayObjectClass, MutabilityPlan mutableMutabilityPlan) { + super(arrayObjectClass, mutableMutabilityPlan); + this.arrayObjectClass = arrayObjectClass; + } + + public Class getArrayObjectClass() { + return arrayObjectClass; + } + + public void setArrayObjectClass(Class arrayObjectClass) { + this.arrayObjectClass = arrayObjectClass; + } + + @Override + public void setParameterValues(Properties parameters) { + if (parameters.containsKey(PARAMETER_TYPE)) { + arrayObjectClass = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass(); + } + sqlArrayType = parameters.getProperty(SQL_ARRAY_TYPE); + } + + @Override + public boolean areEqual(T one, T another) { + if (one == another) { + return true; + } + if (one == null || another == null) { + return false; + } + return ArrayUtil.isEquals(one, another); + } + + @Override + public String toString(T value) { + return Arrays.deepToString(ArrayUtil.wrapArray(value)); + } + + @Override + public T fromString(String string) { + return ArrayUtil.fromString(string, arrayObjectClass); + } + + @Override + public String extractLoggableRepresentation(T value) { + return (value == null) ? "null" : toString(value); + } + + @SuppressWarnings({"unchecked"}) + @Override + public X unwrap(T value, Class type, WrapperOptions options) { + return (X) ArrayUtil.wrapArray(value); + } + + @Override + public T wrap(X value, WrapperOptions options) { + if (value instanceof Array) { + Array array = (Array) value; + try { + return ArrayUtil.unwrapArray((Object[]) array.getArray(), arrayObjectClass); + } catch (SQLException e) { + throw new HibernateException( + new IllegalArgumentException(e) + ); + } + } + return (T) value; + } + + protected String getSqlArrayType() { + return sqlArrayType; + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java new file mode 100644 index 0000000000..4baa150445 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java @@ -0,0 +1,86 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +import org.hibernate.type.descriptor.ValueBinder; +import org.hibernate.type.descriptor.ValueExtractor; +import org.hibernate.type.descriptor.WrapperOptions; +import org.hibernate.type.descriptor.java.JavaTypeDescriptor; +import org.hibernate.type.descriptor.sql.BasicBinder; +import org.hibernate.type.descriptor.sql.BasicExtractor; +import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; + +public class ArraySqlTypeDescriptor implements SqlTypeDescriptor { + + public static final ArraySqlTypeDescriptor INSTANCE = new ArraySqlTypeDescriptor(); + + @Override + public int getSqlType() { + return Types.ARRAY; + } + + @Override + public boolean canBeRemapped() { + return true; + } + + @Override + public ValueBinder getBinder(final JavaTypeDescriptor javaTypeDescriptor) { + return new BasicBinder(javaTypeDescriptor, this) { + @Override + protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options) throws SQLException { + AbstractArrayTypeDescriptor abstractArrayTypeDescriptor = (AbstractArrayTypeDescriptor) javaTypeDescriptor; + st.setArray(index, st.getConnection().createArrayOf( + abstractArrayTypeDescriptor.getSqlArrayType(), + abstractArrayTypeDescriptor.unwrap(value, Object[].class, options) + )); + } + + @Override + protected void doBind(CallableStatement st, X value, String name, WrapperOptions options) + throws SQLException { + throw new UnsupportedOperationException("Binding by name is not supported!"); + } + }; + } + + @Override + public ValueExtractor getExtractor(final JavaTypeDescriptor javaTypeDescriptor) { + return new BasicExtractor(javaTypeDescriptor, this) { + @Override + protected X doExtract(ResultSet rs, String name, WrapperOptions options) throws SQLException { + return javaTypeDescriptor.wrap(rs.getArray(name), options); + } + + @Override + protected X doExtract(CallableStatement statement, int index, WrapperOptions options) throws SQLException { + return javaTypeDescriptor.wrap(statement.getArray(index), options); + } + + @Override + protected X doExtract(CallableStatement statement, String name, WrapperOptions options) throws SQLException { + return javaTypeDescriptor.wrap(statement.getArray(name), options); + } + }; + } + +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java new file mode 100644 index 0000000000..eb940c1912 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java @@ -0,0 +1,335 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +public class ArrayUtil { + + public static T deepCopy(Object originalArray) { + Class arrayClass = originalArray.getClass(); + + if (boolean[].class.equals(arrayClass)) { + boolean[] array = (boolean[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (byte[].class.equals(arrayClass)) { + byte[] array = (byte[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (short[].class.equals(arrayClass)) { + short[] array = (short[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (int[].class.equals(arrayClass)) { + int[] array = (int[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (long[].class.equals(arrayClass)) { + long[] array = (long[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (float[].class.equals(arrayClass)) { + float[] array = (float[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (double[].class.equals(arrayClass)) { + double[] array = (double[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else if (char[].class.equals(arrayClass)) { + char[] array = (char[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } else { + Object[] array = (Object[]) originalArray; + return (T) Arrays.copyOf(array, array.length); + } + } + + public static Object[] wrapArray(Object originalArray) { + Class arrayClass = originalArray.getClass(); + + if (boolean[].class.equals(arrayClass)) { + boolean[] fromArray = (boolean[]) originalArray; + Boolean[] array = new Boolean[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (byte[].class.equals(arrayClass)) { + byte[] fromArray = (byte[]) originalArray; + Byte[] array = new Byte[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (short[].class.equals(arrayClass)) { + short[] fromArray = (short[]) originalArray; + Short[] array = new Short[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (int[].class.equals(arrayClass)) { + int[] fromArray = (int[]) originalArray; + Integer[] array = new Integer[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (long[].class.equals(arrayClass)) { + long[] fromArray = (long[]) originalArray; + Long[] array = new Long[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (float[].class.equals(arrayClass)) { + float[] fromArray = (float[]) originalArray; + Float[] array = new Float[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (double[].class.equals(arrayClass)) { + double[] fromArray = (double[]) originalArray; + Double[] array = new Double[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (char[].class.equals(arrayClass)) { + char[] fromArray = (char[]) originalArray; + Character[] array = new Character[fromArray.length]; + for (int i = 0; i < fromArray.length; i++) { + array[i] = fromArray[i]; + } + return array; + } else if (originalArray instanceof Collection) { + return ((Collection) originalArray).toArray(); + } else { + return (Object[]) originalArray; + } + } + + public static T unwrapArray(Object[] originalArray, Class arrayClass) { + + if (boolean[].class.equals(arrayClass)) { + boolean[] array = new boolean[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Boolean) originalArray[i] : Boolean.FALSE; + } + return (T) array; + } else if (byte[].class.equals(arrayClass)) { + byte[] array = new byte[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Byte) originalArray[i] : 0; + } + return (T) array; + } else if (short[].class.equals(arrayClass)) { + short[] array = new short[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Short) originalArray[i] : 0; + } + return (T) array; + } else if (int[].class.equals(arrayClass)) { + int[] array = new int[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Integer) originalArray[i] : 0; + } + return (T) array; + } else if (long[].class.equals(arrayClass)) { + long[] array = new long[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Long) originalArray[i] : 0L; + } + return (T) array; + } else if (float[].class.equals(arrayClass)) { + float[] array = new float[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? ((Number) originalArray[i]).floatValue() : 0f; + } + return (T) array; + } else if (double[].class.equals(arrayClass)) { + double[] array = new double[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Double) originalArray[i] : 0d; + } + return (T) array; + } else if (char[].class.equals(arrayClass)) { + char[] array = new char[originalArray.length]; + for (int i = 0; i < originalArray.length; i++) { + array[i] = originalArray[i] != null ? (Character) originalArray[i] : 0; + } + return (T) array; + } else if (Enum[].class.isAssignableFrom(arrayClass)) { + T array = arrayClass.cast(Array.newInstance(arrayClass.getComponentType(), originalArray.length)); + for (int i = 0; i < originalArray.length; i++) { + Object objectValue = originalArray[i]; + if (objectValue != null) { + String stringValue = (objectValue instanceof String) ? (String) objectValue : String.valueOf(objectValue); + objectValue = Enum.valueOf((Class) arrayClass.getComponentType(), stringValue); + } + Array.set(array, i, objectValue); + } + return array; + } else if (java.time.LocalDate[].class.equals(arrayClass) && java.sql.Date[].class.equals(originalArray.getClass())) { + // special case because conversion is neither with ctor nor valueOf + Object[] array = (Object[]) Array.newInstance(java.time.LocalDate.class, originalArray.length); + for (int i = 0; i < array.length; ++i) { + array[i] = originalArray[i] != null ? ((java.sql.Date) originalArray[i]).toLocalDate() : null; + } + return (T) array; + } else if (java.time.LocalDateTime[].class.equals(arrayClass) && java.sql.Timestamp[].class.equals(originalArray.getClass())) { + // special case because conversion is neither with ctor nor valueOf + Object[] array = (Object[]) Array.newInstance(java.time.LocalDateTime.class, originalArray.length); + for (int i = 0; i < array.length; ++i) { + array[i] = originalArray[i] != null ? ((java.sql.Timestamp) originalArray[i]).toLocalDateTime() : null; + } + return (T) array; + } else if(arrayClass.getComponentType() != null && arrayClass.getComponentType().isArray()) { + int arrayLength = originalArray.length; + Object[] array = (Object[]) Array.newInstance(arrayClass.getComponentType(), arrayLength); + if (arrayLength > 0) { + for (int i = 0; i < originalArray.length; i++) { + array[i] = unwrapArray((Object[]) originalArray[i], arrayClass.getComponentType()); + } + } + return (T) array; + } else { + if (arrayClass.isInstance(originalArray)) { + return (T) originalArray; + } else { + return (T) Arrays.copyOf(originalArray, originalArray.length, (Class) arrayClass); + } + } + } + + public static T fromString(String string, Class arrayClass) { + String stringArray = string.replaceAll("[\\[\\]]", ""); + String[] tokens = stringArray.split(","); + + int length = tokens.length; + + if (boolean[].class.equals(arrayClass)) { + boolean[] array = new boolean[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Boolean.valueOf(tokens[i]); + } + return (T) array; + } else if (byte[].class.equals(arrayClass)) { + byte[] array = new byte[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Byte.valueOf(tokens[i]); + } + return (T) array; + } else if (short[].class.equals(arrayClass)) { + short[] array = new short[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Short.valueOf(tokens[i]); + } + return (T) array; + } else if (int[].class.equals(arrayClass)) { + int[] array = new int[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Integer.valueOf(tokens[i]); + } + return (T) array; + } else if (long[].class.equals(arrayClass)) { + long[] array = new long[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Long.valueOf(tokens[i]); + } + return (T) array; + } else if (float[].class.equals(arrayClass)) { + float[] array = new float[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Float.valueOf(tokens[i]); + } + return (T) array; + } else if (double[].class.equals(arrayClass)) { + double[] array = new double[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = Double.valueOf(tokens[i]); + } + return (T) array; + } else if (char[].class.equals(arrayClass)) { + char[] array = new char[length]; + for (int i = 0; i < tokens.length; i++) { + array[i] = tokens[i].length() > 0 ? tokens[i].charAt(0) : Character.MIN_VALUE; + } + return (T) array; + } else { + return (T) tokens; + } + } + + public static boolean isEquals(Object firstArray, Object secondArray) { + if (firstArray.getClass() != secondArray.getClass()) { + return false; + } + Class arrayClass = firstArray.getClass(); + + if (boolean[].class.equals(arrayClass)) { + return Arrays.equals((boolean[]) firstArray, (boolean[]) secondArray); + } else if (byte[].class.equals(arrayClass)) { + return Arrays.equals((byte[]) firstArray, (byte[]) secondArray); + } else if (short[].class.equals(arrayClass)) { + return Arrays.equals((short[]) firstArray, (short[]) secondArray); + } else if (int[].class.equals(arrayClass)) { + return Arrays.equals((int[]) firstArray, (int[]) secondArray); + } else if (long[].class.equals(arrayClass)) { + return Arrays.equals((long[]) firstArray, (long[]) secondArray); + } else if (float[].class.equals(arrayClass)) { + return Arrays.equals((float[]) firstArray, (float[]) secondArray); + } else if (double[].class.equals(arrayClass)) { + return Arrays.equals((double[]) firstArray, (double[]) secondArray); + } else if (char[].class.equals(arrayClass)) { + return Arrays.equals((char[]) firstArray, (char[]) secondArray); + } else { + return Arrays.equals((Object[]) firstArray, (Object[]) secondArray); + } + } + + public static Class toArrayClass(Class arrayElementClass) { + + if (boolean.class.equals(arrayElementClass)) { + return (Class) boolean[].class; + } else if (byte.class.equals(arrayElementClass)) { + return (Class) byte[].class; + } else if (short.class.equals(arrayElementClass)) { + return (Class) short[].class; + } else if (int.class.equals(arrayElementClass)) { + return (Class) int[].class; + } else if (long.class.equals(arrayElementClass)) { + return (Class) long[].class; + } else if (float.class.equals(arrayElementClass)) { + return (Class) float[].class; + } else if (double[].class.equals(arrayElementClass)) { + return (Class) double[].class; + } else if (char[].class.equals(arrayElementClass)) { + return (Class) char[].class; + } else { + Object array = Array.newInstance(arrayElementClass, 0); + return (Class) array.getClass(); + } + } + + public static List asList(T[] array) { + List list = new ArrayList(array.length); + for (int i = 0; i < array.length; i++) { + list.add(i, array[i]); + } + return list; + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java new file mode 100644 index 0000000000..53faf75720 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java @@ -0,0 +1,64 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +import org.hibernate.usertype.DynamicParameterizedType; + +import java.lang.annotation.Annotation; + +public class ParameterizedParameterType implements DynamicParameterizedType.ParameterType { + + private final Class clasz; + + public ParameterizedParameterType(Class clasz) { + this.clasz = clasz; + } + + @Override + public Class getReturnedClass() { + return clasz; + } + + @Override + public Annotation[] getAnnotationsMethod() { + return new Annotation[0]; + } + + @Override + public String getCatalog() { + throw new UnsupportedOperationException(); + } + + @Override + public String getSchema() { + throw new UnsupportedOperationException(); + } + + @Override + public String getTable() { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isPrimaryKey() { + throw new UnsupportedOperationException(); + } + + @Override + public String[] getColumns() { + throw new UnsupportedOperationException(); + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java new file mode 100644 index 0000000000..cd2ee52a35 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java @@ -0,0 +1,41 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +import org.hibernate.usertype.DynamicParameterizedType; +import java.util.Properties; + +public class StringArrayType extends AbstractArrayType { + + public static final StringArrayType INSTANCE = new StringArrayType(); + + public StringArrayType() { + super( + new StringArrayTypeDescriptor() + ); + } + + public StringArrayType(Class arrayClass) { + this(); + Properties parameters = new Properties(); + parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass)); + setParameterValues(parameters); + } + + public String getName() { + return "string-array"; + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java new file mode 100644 index 0000000000..8846d0a5e2 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java @@ -0,0 +1,31 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.thingsboard.server.dao.util.mapping; + +public class StringArrayTypeDescriptor + extends AbstractArrayTypeDescriptor { + + public StringArrayTypeDescriptor() { + super(String[].class); + } + + @Override + protected String getSqlArrayType() { + String sqlArrayType = super.getSqlArrayType(); + return sqlArrayType != null ? sqlArrayType : "text"; + } +} + diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java index d9d19a9617..96d93a34f1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeDao.java @@ -19,6 +19,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; @@ -53,11 +54,11 @@ public interface WidgetTypeDao extends Dao, ExportableEntityD boolean existsByTenantIdAndId(TenantId tenantId, UUID widgetTypeId); - PageData findSystemWidgetTypes(TenantId tenantId, boolean fullSearch, PageLink pageLink); + PageData findSystemWidgetTypes(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); - PageData findAllTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink); + PageData findAllTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); - PageData findTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink); + PageData findTenantWidgetTypesByTenantId(UUID tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); /** * Find widget types by widgetsBundleId. @@ -77,14 +78,7 @@ public interface WidgetTypeDao extends Dao, ExportableEntityD */ List findWidgetTypesDetailsByWidgetsBundleId(UUID tenantId, UUID widgetsBundleId); - /** - * Find widget types infos by widgetsBundleId. - * - * @param tenantId the tenantId - * @param widgetsBundleId the widgets bundle id - * @return the list of widget types infos objects - */ - List findWidgetTypesInfosByWidgetsBundleId(UUID tenantId, UUID widgetsBundleId); + PageData findWidgetTypesInfosByWidgetsBundleId(UUID tenantId, UUID widgetsBundleId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink); List findWidgetFqnsByWidgetsBundleId(UUID tenantId, UUID widgetsBundleId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java index 4bd0b62f4b..2e347f2b62 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetTypeServiceImpl.java @@ -27,6 +27,7 @@ import org.thingsboard.server.common.data.id.WidgetTypeId; import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; @@ -110,26 +111,28 @@ public class WidgetTypeServiceImpl implements WidgetTypeService { } @Override - public PageData findSystemWidgetTypesByPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) { - log.trace("Executing findSystemWidgetTypesByPageLink, fullSearch [{}] pageLink [{}]", fullSearch, pageLink); + public PageData findSystemWidgetTypesByPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + log.trace("Executing findSystemWidgetTypesByPageLink, fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]", fullSearch, deprecatedFilter, widgetTypes, pageLink); Validator.validatePageLink(pageLink); - return widgetTypeDao.findSystemWidgetTypes(tenantId, fullSearch, pageLink); + return widgetTypeDao.findSystemWidgetTypes(tenantId, fullSearch, deprecatedFilter, widgetTypes, pageLink); } @Override - public PageData findAllTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) { - log.trace("Executing findAllTenantWidgetTypesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], pageLink [{}]", tenantId, fullSearch, pageLink); + public PageData findAllTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + log.trace("Executing findAllTenantWidgetTypesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]", + tenantId, fullSearch, deprecatedFilter, widgetTypes, pageLink); Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); Validator.validatePageLink(pageLink); - return widgetTypeDao.findAllTenantWidgetTypesByTenantId(tenantId.getId(), fullSearch, pageLink); + return widgetTypeDao.findAllTenantWidgetTypesByTenantId(tenantId.getId(), fullSearch, deprecatedFilter, widgetTypes, pageLink); } @Override - public PageData findTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) { - log.trace("Executing findTenantWidgetTypesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], pageLink [{}]", tenantId, fullSearch, pageLink); + public PageData findTenantWidgetTypesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + log.trace("Executing findTenantWidgetTypesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]", + tenantId, fullSearch, deprecatedFilter, widgetTypes, pageLink); Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); Validator.validatePageLink(pageLink); - return widgetTypeDao.findTenantWidgetTypesByTenantId(tenantId.getId(), fullSearch, pageLink); + return widgetTypeDao.findTenantWidgetTypesByTenantId(tenantId.getId(), fullSearch, deprecatedFilter, widgetTypes, pageLink); } @Override @@ -150,11 +153,14 @@ public class WidgetTypeServiceImpl implements WidgetTypeService { } @Override - public List findWidgetTypesInfosByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId) { - log.trace("Executing findWidgetTypesInfosByWidgetsBundleId, tenantId [{}], widgetsBundleId [{}]", tenantId, widgetsBundleId); + public PageData findWidgetTypesInfosByWidgetsBundleId(TenantId tenantId, WidgetsBundleId widgetsBundleId, boolean fullSearch, + DeprecatedFilter deprecatedFilter, List widgetTypes, PageLink pageLink) { + log.trace("Executing findWidgetTypesInfosByWidgetsBundleId, tenantId [{}], widgetsBundleId [{}], fullSearch [{}], deprecatedFilter [{}], widgetTypes [{}], pageLink [{}]", + tenantId, widgetsBundleId, fullSearch, deprecatedFilter, widgetTypes, pageLink); Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); Validator.validateId(widgetsBundleId, INCORRECT_WIDGETS_BUNDLE_ID + widgetsBundleId); - return widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(tenantId.getId(), widgetsBundleId.getId()); + Validator.validatePageLink(pageLink); + return widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(tenantId.getId(), widgetsBundleId.getId(), fullSearch, deprecatedFilter, widgetTypes, pageLink); } @Override @@ -230,7 +236,7 @@ public class WidgetTypeServiceImpl implements WidgetTypeService { @Override protected PageData findEntities(TenantId tenantId, TenantId id, PageLink pageLink) { - return widgetTypeDao.findTenantWidgetTypesByTenantId(id.getId(), false, pageLink); + return widgetTypeDao.findTenantWidgetTypesByTenantId(id.getId(), false, DeprecatedFilter.ALL, null, pageLink); } @Override diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java index e4b1762426..b5486b61b1 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleDao.java @@ -54,7 +54,7 @@ public interface WidgetsBundleDao extends Dao, ExportableEntityDa * @param pageLink the page link * @return the list of widgets bundles objects */ - PageData findSystemWidgetsBundles(TenantId tenantId, PageLink pageLink); + PageData findSystemWidgetsBundles(TenantId tenantId, boolean fullSearch, PageLink pageLink); /** * Find tenant widgets bundles by tenantId and page link. @@ -72,7 +72,7 @@ public interface WidgetsBundleDao extends Dao, ExportableEntityDa * @param pageLink the page link * @return the list of widgets bundles objects */ - PageData findAllTenantWidgetsBundlesByTenantId(UUID tenantId, PageLink pageLink); + PageData findAllTenantWidgetsBundlesByTenantId(UUID tenantId, boolean fullSearch, PageLink pageLink); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java index 4f094ca62f..998cbb6e31 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/widget/WidgetsBundleServiceImpl.java @@ -104,10 +104,10 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { } @Override - public PageData findSystemWidgetsBundlesByPageLink(TenantId tenantId, PageLink pageLink) { - log.trace("Executing findSystemWidgetsBundles, pageLink [{}]", pageLink); + public PageData findSystemWidgetsBundlesByPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) { + log.trace("Executing findSystemWidgetsBundles, fullSearch [{}], pageLink [{}]", fullSearch, pageLink); Validator.validatePageLink(pageLink); - return widgetsBundleDao.findSystemWidgetsBundles(tenantId, pageLink); + return widgetsBundleDao.findSystemWidgetsBundles(tenantId, fullSearch, pageLink); } @Override @@ -117,7 +117,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { PageLink pageLink = new PageLink(DEFAULT_WIDGETS_BUNDLE_LIMIT); PageData pageData; do { - pageData = findSystemWidgetsBundlesByPageLink(tenantId, pageLink); + pageData = findSystemWidgetsBundlesByPageLink(tenantId, false, pageLink); widgetsBundles.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); @@ -135,11 +135,11 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { } @Override - public PageData findAllTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, PageLink pageLink) { - log.trace("Executing findAllTenantWidgetsBundlesByTenantIdAndPageLink, tenantId [{}], pageLink [{}]", tenantId, pageLink); + public PageData findAllTenantWidgetsBundlesByTenantIdAndPageLink(TenantId tenantId, boolean fullSearch, PageLink pageLink) { + log.trace("Executing findAllTenantWidgetsBundlesByTenantIdAndPageLink, tenantId [{}], fullSearch [{}], pageLink [{}]", tenantId, fullSearch, pageLink); Validator.validateId(tenantId, INCORRECT_TENANT_ID + tenantId); Validator.validatePageLink(pageLink); - return widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId.getId(), pageLink); + return widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId.getId(), fullSearch, pageLink); } @Override @@ -150,7 +150,7 @@ public class WidgetsBundleServiceImpl implements WidgetsBundleService { PageLink pageLink = new PageLink(DEFAULT_WIDGETS_BUNDLE_LIMIT); PageData pageData; do { - pageData = findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, pageLink); + pageData = findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, false, pageLink); widgetsBundles.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); diff --git a/dao/src/main/resources/sql/schema-entities.sql b/dao/src/main/resources/sql/schema-entities.sql index 4df73de9d6..b1ae32704e 100644 --- a/dao/src/main/resources/sql/schema-entities.sql +++ b/dao/src/main/resources/sql/schema-entities.sql @@ -489,6 +489,7 @@ CREATE TABLE IF NOT EXISTS widget_type ( image varchar(1000000), deprecated boolean NOT NULL DEFAULT false, description varchar(1024), + tags text[], external_id uuid, CONSTRAINT uq_widget_type_fqn UNIQUE (tenant_id, fqn), CONSTRAINT widget_type_external_id_unq_key UNIQUE (tenant_id, external_id) diff --git a/dao/src/main/resources/sql/schema-views-and-functions.sql b/dao/src/main/resources/sql/schema-views-and-functions.sql index 3aa797d7b6..1aa5647bde 100644 --- a/dao/src/main/resources/sql/schema-views-and-functions.sql +++ b/dao/src/main/resources/sql/schema-views-and-functions.sql @@ -285,3 +285,9 @@ BEGIN RETURN json_build_object('success', true, 'modified', modified, 'alarm', row_to_json(result))::text; END $$; + +DROP VIEW IF EXISTS widget_type_info_view CASCADE; +CREATE OR REPLACE VIEW widget_type_info_view AS +SELECT t.* + , COALESCE((t.descriptor::json->>'type')::text, '') as widget_type +FROM widget_type t; diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/WidgetsBundleServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/WidgetsBundleServiceTest.java index 0f5c90b4a8..da594bb9c7 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/WidgetsBundleServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/WidgetsBundleServiceTest.java @@ -174,7 +174,7 @@ public class WidgetsBundleServiceTest extends AbstractServiceTest { PageLink pageLink = new PageLink(19); PageData pageData = null; do { - pageData = widgetsBundleService.findSystemWidgetsBundlesByPageLink(tenantId, pageLink); + pageData = widgetsBundleService.findSystemWidgetsBundlesByPageLink(tenantId, false, pageLink); loadedWidgetsBundles.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); @@ -297,7 +297,7 @@ public class WidgetsBundleServiceTest extends AbstractServiceTest { PageLink pageLink = new PageLink(17); PageData pageData = null; do { - pageData = widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, pageLink); + pageData = widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, false, pageLink); loadedWidgetsBundles.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); @@ -314,7 +314,7 @@ public class WidgetsBundleServiceTest extends AbstractServiceTest { loadedWidgetsBundles.clear(); pageLink = new PageLink(14); do { - pageData = widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, pageLink); + pageData = widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, false, pageLink); loadedWidgetsBundles.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); @@ -336,7 +336,7 @@ public class WidgetsBundleServiceTest extends AbstractServiceTest { loadedWidgetsBundles.clear(); pageLink = new PageLink(18); do { - pageData = widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, pageLink); + pageData = widgetsBundleService.findAllTenantWidgetsBundlesByTenantIdAndPageLink(tenantId, false, pageLink); loadedWidgetsBundles.addAll(pageData.getData()); if (pageData.hasNext()) { pageLink = pageLink.nextPageLink(); diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java index 8d289c6e1a..420887c844 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetTypeDaoTest.java @@ -20,10 +20,17 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetsBundleId; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.page.SortOrder; +import org.thingsboard.server.common.data.widget.BaseWidgetType; +import org.thingsboard.server.common.data.widget.DeprecatedFilter; import org.thingsboard.server.common.data.widget.WidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; +import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.common.data.widget.WidgetsBundleWidget; import org.thingsboard.server.dao.AbstractJpaDaoTest; @@ -31,7 +38,10 @@ import org.thingsboard.server.dao.widget.WidgetTypeDao; import org.thingsboard.server.dao.widget.WidgetsBundleDao; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; +import java.util.UUID; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -43,7 +53,7 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { final String BUNDLE_ALIAS = "BUNDLE_ALIAS"; final int WIDGET_TYPE_COUNT = 3; - List widgetTypeList; + List widgetTypeList; WidgetsBundle widgetsBundle; @Autowired @@ -64,17 +74,24 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { this.widgetsBundle = widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); for (int i = 0; i < WIDGET_TYPE_COUNT; i++) { - var widgetType = createAndSaveWidgetType(i); + var widgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, i); widgetTypeList.add(widgetType); widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(this.widgetsBundle.getId(), widgetType.getId(), i)); } + widgetTypeList.sort(Comparator.comparing(BaseWidgetType::getName)); } - WidgetType createAndSaveWidgetType(int number) { + WidgetTypeDetails createAndSaveWidgetType(TenantId tenantId, int number) { WidgetTypeDetails widgetType = new WidgetTypeDetails(); - widgetType.setTenantId(TenantId.SYS_TENANT_ID); + widgetType.setTenantId(tenantId); widgetType.setName("WIDGET_TYPE_" + number); + widgetType.setDescription("WIDGET_TYPE_DESCRIPTION" + number); widgetType.setFqn("FQN_" + number); + var descriptor = JacksonUtil.newObjectNode(); + descriptor.put("type", number % 2 == 0 ? "latest" : "static"); + widgetType.setDescriptor(descriptor); + String[] tags = new String[]{"Tag1_"+number, "Tag2_"+number, "TEST_"+number}; + widgetType.setTags(tags); return widgetTypeDao.save(TenantId.SYS_TENANT_ID, widgetType); } @@ -92,6 +109,48 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { assertEquals(WIDGET_TYPE_COUNT, widgetTypes.size()); } + @Test + public void testFindSystemWidgetTypes() { + PageData widgetTypes = widgetTypeDao.findSystemWidgetTypes(TenantId.SYS_TENANT_ID, true, DeprecatedFilter.ALL, Collections.singletonList("static"), + new PageLink(1024, 0, "TYPE_DESCRIPTION", new SortOrder("name"))); + assertEquals(1, widgetTypes.getData().size()); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(1)), widgetTypes.getData().get(0)); + + widgetTypes = widgetTypeDao.findSystemWidgetTypes(TenantId.SYS_TENANT_ID, true, DeprecatedFilter.ALL, Collections.emptyList(), + new PageLink(1024, 0, "hfgfd tag2_2 ghg", new SortOrder("name"))); + assertEquals(1, widgetTypes.getData().size()); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(2)), widgetTypes.getData().get(0)); + } + + @Test + public void testFindTenantWidgetTypesByTenantId() { + UUID tenantId = Uuids.timeBased(); + for (int i = 0; i < WIDGET_TYPE_COUNT; i++) { + var widgetType = createAndSaveWidgetType(new TenantId(tenantId), i); + widgetTypeList.add(widgetType); + } + PageData widgetTypes = widgetTypeDao.findTenantWidgetTypesByTenantId(tenantId, true, DeprecatedFilter.ALL, null, + new PageLink(10, 0, "", new SortOrder("name"))); + assertEquals(WIDGET_TYPE_COUNT, widgetTypes.getData().size()); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(3)), widgetTypes.getData().get(0)); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(4)), widgetTypes.getData().get(1)); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(5)), widgetTypes.getData().get(2)); + } + + @Test + public void testFindByWidgetTypeInfosByBundleId() { + PageData widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(),true, DeprecatedFilter.ALL, Collections.singletonList("latest"), + new PageLink(1024, 0, "TYPE_DESCRIPTION", new SortOrder("name"))); + assertEquals(2, widgetTypes.getData().size()); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(0)), widgetTypes.getData().get(0)); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(2)), widgetTypes.getData().get(1)); + + widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(), true, DeprecatedFilter.ALL, Collections.emptyList(), + new PageLink(1024, 0, "hfgfd TEST_0 ghg", new SortOrder("name"))); + assertEquals(1, widgetTypes.getData().size()); + assertEquals(new WidgetTypeInfo(widgetTypeList.get(0)), widgetTypes.getData().get(0)); + } + @Test public void testFindByTenantIdAndFqn() { WidgetType result = widgetTypeList.get(0); diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java index e1758c4660..424bda88f7 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDaoTest.java @@ -17,18 +17,27 @@ package org.thingsboard.server.dao.sql.widget; import com.datastax.oss.driver.api.core.uuid.Uuids; import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.common.data.page.SortOrder; +import org.thingsboard.server.common.data.widget.WidgetType; +import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.common.data.widget.WidgetsBundle; +import org.thingsboard.server.common.data.widget.WidgetsBundleWidget; import org.thingsboard.server.dao.AbstractJpaDaoTest; +import org.thingsboard.server.dao.widget.WidgetTypeDao; import org.thingsboard.server.dao.widget.WidgetsBundleDao; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; import static org.junit.Assert.assertEquals; @@ -38,15 +47,27 @@ import static org.junit.Assert.assertEquals; public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { List widgetsBundles; + List widgetTypeList; + @Autowired private WidgetsBundleDao widgetsBundleDao; + @Autowired + private WidgetTypeDao widgetTypeDao; + + @Before + public void setUp() { + widgetTypeList = new ArrayList<>(); + } + @After public void tearDown() { for (WidgetsBundle widgetsBundle : widgetsBundles) { widgetsBundleDao.removeById(widgetsBundle.getTenantId(), widgetsBundle.getUuidId()); } - + for (WidgetType widgetType : widgetTypeList) { + widgetTypeDao.removeById(TenantId.SYS_TENANT_ID, widgetType.getUuidId()); + } } @Test @@ -72,14 +93,53 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { assertEquals(30, widgetsBundles.size()); // Get first page PageLink pageLink = new PageLink(10, 0, "WB"); - PageData widgetsBundles1 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, pageLink); + PageData widgetsBundles1 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, false, pageLink); assertEquals(10, widgetsBundles1.getData().size()); // Get next page pageLink = pageLink.nextPageLink(); - PageData widgetsBundles2 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, pageLink); + PageData widgetsBundles2 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, false, pageLink); assertEquals(10, widgetsBundles2.getData().size()); } + @Test + public void testFindSystemWidgetsBundlesFullSearch() { + createSystemWidgetBundles(30, "WB_"); + widgetsBundles = widgetsBundleDao.find(TenantId.SYS_TENANT_ID).stream().sorted(Comparator.comparing(WidgetsBundle::getTitle)).collect(Collectors.toList()); + assertEquals(30, widgetsBundles.size()); + + var widgetType1 = createAndSaveWidgetType(TenantId.SYS_TENANT_ID,1, "Test widget type 1", "This is the widget type 1", new String[]{"tag1", "Tag2", "TEST_TAG"}); + var widgetType2 = createAndSaveWidgetType(TenantId.SYS_TENANT_ID,2, "Test widget type 2", "This is the widget type 2", new String[]{"tag3", "Tag5", "TEST_Tag2"}); + + var widgetsBundle1 = widgetsBundles.get(10); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle1.getId(), widgetType1.getId(), 0)); + + var widgetsBundle2 = widgetsBundles.get(15); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle2.getId(), widgetType2.getId(), 0)); + + + var widgetsBundle3 = widgetsBundles.get(28); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle3.getId(), widgetType1.getId(), 0)); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle3.getId(), widgetType2.getId(), 1)); + + PageLink pageLink = new PageLink(10, 0, "widget type 1", new SortOrder("title")); + PageData widgetsBundles1 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, true, pageLink); + assertEquals(2, widgetsBundles1.getData().size()); + assertEquals(widgetsBundle1, widgetsBundles1.getData().get(0)); + assertEquals(widgetsBundle3, widgetsBundles1.getData().get(1)); + + pageLink = new PageLink(10, 0, "Test widget type 2", new SortOrder("title")); + PageData widgetsBundles2 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, true, pageLink); + assertEquals(2, widgetsBundles2.getData().size()); + assertEquals(widgetsBundle2, widgetsBundles2.getData().get(0)); + assertEquals(widgetsBundle3, widgetsBundles2.getData().get(1)); + + pageLink = new PageLink(10, 0, "ppp Fd v TAG1 tt", new SortOrder("title")); + PageData widgetsBundles3 = widgetsBundleDao.findSystemWidgetsBundles(TenantId.SYS_TENANT_ID, true, pageLink); + assertEquals(2, widgetsBundles3.getData().size()); + assertEquals(widgetsBundle1, widgetsBundles3.getData().get(0)); + assertEquals(widgetsBundle3, widgetsBundles3.getData().get(1)); + } + @Test public void testFindWidgetsBundlesByTenantId() { UUID tenantId1 = Uuids.timeBased(); @@ -120,22 +180,71 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { assertEquals(100, widgetsBundleDao.find(TenantId.SYS_TENANT_ID).size()); PageLink pageLink = new PageLink(30, 0, "WB"); - PageData widgetsBundles1 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, pageLink); + PageData widgetsBundles1 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, false, pageLink); assertEquals(30, widgetsBundles1.getData().size()); pageLink = pageLink.nextPageLink(); - PageData widgetsBundles2 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, pageLink); + PageData widgetsBundles2 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, false, pageLink); assertEquals(30, widgetsBundles2.getData().size()); pageLink = pageLink.nextPageLink(); - PageData widgetsBundles3 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, pageLink); + PageData widgetsBundles3 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, false, pageLink); assertEquals(10, widgetsBundles3.getData().size()); pageLink = pageLink.nextPageLink(); - PageData widgetsBundles4 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, pageLink); + PageData widgetsBundles4 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, false, pageLink); assertEquals(0, widgetsBundles4.getData().size()); } + @Test + public void testFindAllWidgetsBundlesByTenantIdFullSearch() { + UUID tenantId1 = Uuids.timeBased(); + UUID tenantId2 = Uuids.timeBased(); + for (int i = 0; i < 10; i++) { + createWidgetBundles(5, tenantId1, "WB1_" + i + "_"); + createWidgetBundles(3, tenantId2, "WB2_" + i + "_"); + createSystemWidgetBundles(2, "WB_SYS_" + i + "_"); + } + widgetsBundles = widgetsBundleDao.find(TenantId.SYS_TENANT_ID).stream().sorted(Comparator.comparing(WidgetsBundle::getTitle)).collect(Collectors.toList());; + assertEquals(100, widgetsBundleDao.find(TenantId.SYS_TENANT_ID).size()); + + var widgetType1 = createAndSaveWidgetType(new TenantId(tenantId1), 1, "Test widget type 1", "This is the widget type 1", new String[]{"tag1", "Tag2", "TEST_TAG"}); + var widgetType2 = createAndSaveWidgetType(new TenantId(tenantId2), 2, "Test widget type 2", "This is the widget type 2", new String[]{"tag3", "Tag5", "TEST_Tag2"}); + + var widgetsBundle1 = widgetsBundles.stream().filter(widgetsBundle -> widgetsBundle.getTenantId().getId().equals(tenantId1)).collect(Collectors.toList()).get(10); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle1.getId(), widgetType1.getId(), 0)); + + var widgetsBundle2 = widgetsBundles.stream().filter(widgetsBundle -> widgetsBundle.getTenantId().getId().equals(tenantId2)).collect(Collectors.toList()).get(15); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle2.getId(), widgetType2.getId(), 0)); + + var widgetsBundle3 = widgetsBundles.stream().filter(widgetsBundle -> widgetsBundle.getTenantId().getId().equals(tenantId2)).collect(Collectors.toList()).get(28); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle3.getId(), widgetType1.getId(), 0)); + widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(widgetsBundle3.getId(), widgetType2.getId(), 1)); + + PageLink pageLink = new PageLink(10, 0, "widget type 1", new SortOrder("title")); + PageData widgetsBundles1 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, true, pageLink); + assertEquals(1, widgetsBundles1.getData().size()); + assertEquals(widgetsBundle1, widgetsBundles1.getData().get(0)); + + pageLink = new PageLink(10, 0, "Test widget type 2", new SortOrder("title")); + PageData widgetsBundles2 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, true, pageLink); + assertEquals(0, widgetsBundles2.getData().size()); + + PageData widgetsBundles3 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId2, true, pageLink); + assertEquals(2, widgetsBundles3.getData().size()); + assertEquals(widgetsBundle2, widgetsBundles3.getData().get(0)); + assertEquals(widgetsBundle3, widgetsBundles3.getData().get(1)); + + pageLink = new PageLink(10, 0, "ttt Tag2 ffff hhhh", new SortOrder("title")); + PageData widgetsBundles4 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId1, true, pageLink); + assertEquals(1, widgetsBundles4.getData().size()); + assertEquals(widgetsBundle1, widgetsBundles4.getData().get(0)); + + PageData widgetsBundles5 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId2, true, pageLink); + assertEquals(1, widgetsBundles5.getData().size()); + assertEquals(widgetsBundle3, widgetsBundles5.getData().get(0)); + } + @Test public void testSearchTextNotFound() { UUID tenantId = Uuids.timeBased(); @@ -144,7 +253,7 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { widgetsBundles = widgetsBundleDao.find(TenantId.SYS_TENANT_ID); assertEquals(10, widgetsBundleDao.find(TenantId.SYS_TENANT_ID).size()); PageLink textPageLink = new PageLink(30, 0, "TEXT_NOT_FOUND"); - PageData widgetsBundles4 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId, textPageLink); + PageData widgetsBundles4 = widgetsBundleDao.findAllTenantWidgetsBundlesByTenantId(tenantId, false, textPageLink); assertEquals(0, widgetsBundles4.getData().size()); } @@ -169,4 +278,16 @@ public class JpaWidgetsBundleDaoTest extends AbstractJpaDaoTest { widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); } } + + WidgetType createAndSaveWidgetType(TenantId tenantId, int number, String name, String description, String[] tags) { + WidgetTypeDetails widgetType = new WidgetTypeDetails(); + widgetType.setTenantId(tenantId); + widgetType.setName(name); + widgetType.setDescription(description); + widgetType.setTags(tags); + widgetType.setFqn("FQN_" + number); + var saved = widgetTypeDao.save(TenantId.SYS_TENANT_ID, widgetType); + this.widgetTypeList.add(saved); + return saved; + } } diff --git a/ui-ngx/src/app/core/http/entity.service.ts b/ui-ngx/src/app/core/http/entity.service.ts index 12f6300b93..69ca114001 100644 --- a/ui-ngx/src/app/core/http/entity.service.ts +++ b/ui-ngx/src/app/core/http/entity.service.ts @@ -416,7 +416,7 @@ export class EntityService { break; case EntityType.WIDGETS_BUNDLE: pageLink.sortOrder.property = 'title'; - entitiesObservable = this.widgetService.getWidgetBundles(pageLink, config); + entitiesObservable = this.widgetService.getWidgetBundles(pageLink, false, config); break; case EntityType.NOTIFICATION_TARGET: pageLink.sortOrder.property = 'name'; diff --git a/ui-ngx/src/app/core/http/widget.service.ts b/ui-ngx/src/app/core/http/widget.service.ts index 6affb01efe..9dcda4ef8a 100644 --- a/ui-ngx/src/app/core/http/widget.service.ts +++ b/ui-ngx/src/app/core/http/widget.service.ts @@ -23,6 +23,7 @@ import { PageData } from '@shared/models/page/page-data'; import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; import { BaseWidgetType, + DeprecatedFilter, fullWidgetTypeFqn, WidgetType, widgetType, @@ -46,8 +47,6 @@ export class WidgetService { private systemWidgetsBundles: Array; private tenantWidgetsBundles: Array; - private widgetTypeInfosCache = new Map>(); - private widgetsInfoInMemoryCache = new Map(); private loadWidgetsBundleCacheSubject: ReplaySubject; @@ -86,8 +85,8 @@ export class WidgetService { ); } - public getWidgetBundles(pageLink: PageLink, config?: RequestConfig): Observable> { - return this.http.get>(`/api/widgetsBundles${pageLink.toQuery()}`, + public getWidgetBundles(pageLink: PageLink, fullSearch = false, config?: RequestConfig): Observable> { + return this.http.get>(`/api/widgetsBundles${pageLink.toQuery()}&fullSearch=${fullSearch}`, defaultHttpOptionsFromConfig(config)); } @@ -109,21 +108,13 @@ export class WidgetService { public updateWidgetsBundleWidgetTypes(widgetsBundleId: string, widgetTypeIds: Array, config?: RequestConfig): Observable { return this.http.post(`/api/widgetsBundle/${widgetsBundleId}/widgetTypes`, widgetTypeIds, - defaultHttpOptionsFromConfig(config)).pipe( - tap(() => { - this.widgetTypeInfosCache.delete(widgetsBundleId); - }) - ); + defaultHttpOptionsFromConfig(config)); } public updateWidgetsBundleWidgetFqns(widgetsBundleId: string, widgetTypeFqns: Array, config?: RequestConfig): Observable { return this.http.post(`/api/widgetsBundle/${widgetsBundleId}/widgetTypeFqns`, widgetTypeFqns, - defaultHttpOptionsFromConfig(config)).pipe( - tap(() => { - this.widgetTypeInfosCache.delete(widgetsBundleId); - }) - ); + defaultHttpOptionsFromConfig(config)); } public deleteWidgetsBundle(widgetsBundleId: string, config?: RequestConfig) { @@ -155,16 +146,27 @@ export class WidgetService { defaultHttpOptionsFromConfig(config)); } - public getBundleWidgetTypeInfos(widgetsBundleId: string, - config?: RequestConfig): Observable> { - if (this.widgetTypeInfosCache.has(widgetsBundleId)) { - return of(this.widgetTypeInfosCache.get(widgetsBundleId)); - } else { - return this.http.get>(`/api/widgetTypesInfos?widgetsBundleId=${widgetsBundleId}`, - defaultHttpOptionsFromConfig(config)).pipe( - tap((res) => this.widgetTypeInfosCache.set(widgetsBundleId, res) ) - ); + public getBundleWidgetTypeInfosList(widgetsBundleId: string, + config?: RequestConfig): Observable> { + return this.getBundleWidgetTypeInfos(new PageLink(1024), widgetsBundleId, false, DeprecatedFilter.ALL, null, config).pipe( + map((data) => data.data) + ); + } + + public getBundleWidgetTypeInfos(pageLink: PageLink, + widgetsBundleId: string, + fullSearch = false, + deprecatedFilter = DeprecatedFilter.ALL, + widgetTypes: Array = null, + config?: RequestConfig): Observable> { + + let url = + `/api/widgetTypesInfos${pageLink.toQuery()}&widgetsBundleId=${widgetsBundleId}` + + `&fullSearch=${fullSearch}&deprecatedFilter=${deprecatedFilter}`; + if (widgetTypes && widgetTypes.length) { + url += `&widgetTypeList=${widgetTypes.join(',')}`; } + return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } public getWidgetType(fullFqn: string, config?: RequestConfig): Observable { @@ -224,10 +226,14 @@ export class WidgetService { } public getWidgetTypes(pageLink: PageLink, tenantOnly = false, - fullSearch = false, config?: RequestConfig): Observable> { - return this.http.get>( - `/api/widgetTypes${pageLink.toQuery()}&tenantOnly=${tenantOnly}&fullSearch=${fullSearch}`, - defaultHttpOptionsFromConfig(config)); + fullSearch = false, deprecatedFilter = DeprecatedFilter.ALL, widgetTypes: Array = null, + config?: RequestConfig): Observable> { + let url = + `/api/widgetTypes${pageLink.toQuery()}&tenantOnly=${tenantOnly}&fullSearch=${fullSearch}&deprecatedFilter=${deprecatedFilter}`; + if (widgetTypes && widgetTypes.length) { + url += `&widgetTypeList=${widgetTypes.join(',')}`; + } + return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } public getWidgetTemplate(widgetTypeParam: widgetType, @@ -301,6 +307,5 @@ export class WidgetService { this.systemWidgetsBundles = undefined; this.tenantWidgetsBundles = undefined; this.loadWidgetsBundleCacheSubject = undefined; - this.widgetTypeInfosCache.clear(); } } diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.html b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.html index 9b5a742ecf..166e359799 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.html +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.html @@ -386,7 +386,7 @@ -
+ (closeSearch)="dashboardWidgetSelectComponent.search = ''"> +
-
+
+ [(ngModel)]="dashboardWidgetSelectComponent.search" + placeholder="{{ ((!dashboardWidgetSelectComponent.widgetsBundle && dashboardWidgetSelectComponent.selectWidgetMode === 'bundles') + ? 'widgets-bundle.search' : 'widget.search') | translate }}">
- - {{ 'widgets-bundle.widgets-bundles' | translate }} {{ 'widget.all-widgets' | translate }} + - {{ 'widget.all' | translate }} - {{ 'widget.actual' | translate }} - {{ 'widget.deprecated' | translate }} + [(ngModel)]="dashboardWidgetSelectComponent.deprecatedFilter"> + {{ 'widget.all' | translate }} + {{ 'widget.actual' | translate }} + {{ 'widget.deprecated' | translate }}
diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.ts index a9ce196203..af76812fa1 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.ts @@ -230,7 +230,6 @@ export class DashboardPageComponent extends PageComponent implements IDashboardC forceDashboardMobileMode = false; isAddingWidget = false; isAddingWidgetClosed = true; - searchBundle = ''; filterWidgetTypes: widgetType[] = null; isToolbarOpened = false; @@ -1153,7 +1152,6 @@ export class DashboardPageComponent extends PageComponent implements IDashboardC addWidgetFromType(widget: WidgetInfo) { this.onAddWidgetClosed(); - this.searchBundle = ''; this.widgetComponentService.getWidgetInfo(widget.typeFullFqn).subscribe( (widgetTypeInfo) => { const config: WidgetConfig = this.dashboardUtils.widgetConfigFromWidgetType(widgetTypeInfo); @@ -1426,13 +1424,10 @@ export class DashboardPageComponent extends PageComponent implements IDashboardC return widgetContextActions; } - widgetBundleSelected(){ - this.searchBundle = ''; - } - clearSelectedWidgetBundle() { - this.searchBundle = ''; + this.dashboardWidgetSelectComponent.search = ''; this.dashboardWidgetSelectComponent.widgetsBundle = null; + this.dashboardWidgetSelectComponent.selectWidgetMode = 'bundles'; } editWidgetsTypesToDisplay($event: Event) { @@ -1482,10 +1477,6 @@ export class DashboardPageComponent extends PageComponent implements IDashboardC this.cd.markForCheck(); } - onCloseSearchBundle() { - this.searchBundle = ''; - } - public updateDashboardImage($event: Event) { if ($event) { $event.stopPropagation(); diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html index 44882ab889..a0c7bec2e0 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.html @@ -15,79 +15,105 @@ limitations under the License. --> -
+
-
- -
+ + +
- + - -
-
- -
- {{ widget.title }} -
-
- {{widget.title}}
widget.deprecated
- {{ 'widget.' + widget.type | translate }} - - {{ widget.description }} - -
-
-
-
-
- -
+ + + + + +
+ {{ item.title }} +
+
+ {{item.name}}
widget.deprecated
+ {{ 'widget.' + item.widgetType | translate }} + + {{ item.description }} + +
+
+
+ +
{{ 'widget.loading-widgets' | translate }} - -
-
- - +
+
+ + {{(selectWidgetMode === 'bundles' ? 'widgets-bundle.empty' : 'widget.no-widgets-text') | translate}} + + -
-
- -
- {{ widgetsBundle.title }} -
-
- {{ widgetsBundle.title }} - widgets-bundle.system - - {{ widgetsBundle.description }} - -
-
-
-
+ + + + +
+ {{ item.title }} +
+
+ {{ item.title }} + widgets-bundle.system + + {{ item.description }} + +
+
+
-
{{ 'widgets-bundle.loading-widgets-bundles' | translate }}
- + + widgets-bundle.no-widgets-bundles-text -
+ + +
+
+
+ + + + +
+
+
diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.scss b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.scss index 3a290e53e5..3641638247 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.scss +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.scss @@ -13,83 +13,89 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -@import '../../../../../scss/constants'; -:host{ - min-width: 100%; - min-height: 100%; - position: absolute; +.tb-dashboard-widget-select { background-color: #cfd8dc; + position: absolute; + inset: 0; - .widget-select { - padding: 12px 0 12px 12px; - background-color: #cfd8dc; - .mat-card-container { - flex: 0 0 100%; - max-width: 100%; + .mat-mdc-card.tb-widget-preview-card { + cursor: pointer; + transition: box-shadow 0.2s; + padding: 16px; + + &:hover { + box-shadow: 0 2px 6px 6px rgb(0 0 0 / 20%), 0 1px 4px 2px rgb(0 0 0 / 14%), 0 1px 6px 0 rgb(0 0 0 / 12%) + } - &:hover { - .mat-mdc-card { - box-shadow: 0 2px 6px 6px rgb(0 0 0 / 20%), 0 1px 4px 2px rgb(0 0 0 / 14%), 0 1px 6px 0 rgb(0 0 0 / 12%) - } + &.loading-cell { + height: 100%; + min-height: 200px; + + .mat-mdc-card-title { + height: 32px; + margin-bottom: 16px; + } + + .preview-container { + height: 80%; + margin: auto 0; } - .mat-mdc-card { - cursor: pointer; - transition: box-shadow 0.2s; - padding: 16px; + .mat-mdc-card-content { + height: 100%; + margin: 0; + } - .preview-container { - text-align: center; - margin: auto 0; - } + .preview-container, .mat-mdc-card-title, .mat-mdc-card-content { + background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%); + border-radius: 5px; + background-size: 200% 100%; + animation: 1s shine linear infinite; + } + } - .preview { - max-width: 100%; - max-height: 100%; - object-fit: contain; - } + .preview-container { + text-align: center; + margin: auto 0; + } - .mat-mdc-card-title { - font-size: 20px; - line-height: normal; - margin-bottom: 8px; - .tb-deprecated { - font-size: 14px; - color: rgba(209, 39, 48, 0.87); - } - } + .preview { + max-width: 100%; + max-height: 100%; + object-fit: contain; + } - .mat-mdc-card-subtitle { - margin-bottom: 16px; - margin-top: -4px; - line-height: normal; - font-weight: normal; - } + .mat-mdc-card-title { + font-size: 20px; + line-height: normal; + margin-bottom: 8px; - .mat-mdc-card-content { - font-size: 14px; - line-height: 18px; - color: #666; - margin-bottom: 16px; - padding: 0; - } + .tb-deprecated { + font-size: 14px; + color: rgba(209, 39, 48, 0.87); } } - @media #{$mat-gt-xs} { - .mat-card-container { - flex: 0 0 50%; - max-width: 50%; - } + .mat-mdc-card-subtitle { + margin-bottom: 16px; + margin-top: -4px; + line-height: normal; + font-weight: normal; } - @media screen and (min-width: 2000px) { - .mat-card-container { - flex: 0 0 33.333333%; - max-width: 33.333333%; - } + .mat-mdc-card-content { + font-size: 14px; + line-height: 18px; + color: #666; + margin-bottom: 16px; + padding: 0; } } } +@keyframes shine { + to { + background-position-x: -200%; + } +} diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts index 8a359de66c..7f661df575 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-widget-select.component.ts @@ -14,74 +14,68 @@ /// limitations under the License. /// -import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core'; import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; import { IAliasController } from '@core/api/widget-api.models'; import { NULL_UUID } from '@shared/models/id/has-uuid'; import { WidgetService } from '@core/http/widget.service'; -import { fullWidgetTypeFqn, WidgetInfo, widgetType, WidgetTypeInfo } from '@shared/models/widget.models'; -import { debounceTime, distinctUntilChanged, map, share, switchMap, tap } from 'rxjs/operators'; -import { BehaviorSubject, combineLatest, Observable, of, ReplaySubject } from 'rxjs'; +import { + DeprecatedFilter, + fullWidgetTypeFqn, + WidgetInfo, + widgetType, + WidgetTypeInfo +} from '@shared/models/widget.models'; +import { debounceTime, distinctUntilChanged, map, skip } from 'rxjs/operators'; +import { BehaviorSubject, combineLatest } from 'rxjs'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; -import { isDefinedAndNotNull } from '@core/utils'; +import { isDefinedAndNotNull, isObject } from '@core/utils'; import { PageLink } from '@shared/models/page/page-link'; import { Direction } from '@shared/models/page/sort-order'; - -type widgetsListMode = 'all' | 'actual' | 'deprecated'; +import { GridEntitiesFetchFunction, ScrollGridColumns } from '@home/models/datasource/scroll-grid-datasource'; type selectWidgetMode = 'bundles' | 'allWidgets'; +interface WidgetsFilter { + search: string; + filter: widgetType[]; + deprecatedFilter: DeprecatedFilter; +} + +interface BundleWidgetsFilter extends WidgetsFilter { + widgetsBundleId: string; +} + @Component({ selector: 'tb-dashboard-widget-select', templateUrl: './dashboard-widget-select.component.html', - styleUrls: ['./dashboard-widget-select.component.scss'] + styleUrls: ['./dashboard-widget-select.component.scss'], + encapsulation: ViewEncapsulation.None }) export class DashboardWidgetSelectComponent implements OnInit { - private search$ = new BehaviorSubject(''); + private searchSubject = new BehaviorSubject(''); + private search$ = this.searchSubject.asObservable().pipe( + debounceTime(150)); + private filterWidgetTypes$ = new BehaviorSubject>(null); - private widgetsListMode$ = new BehaviorSubject('actual'); + private deprecatedFilter$ = new BehaviorSubject(DeprecatedFilter.ACTUAL); private selectWidgetMode$ = new BehaviorSubject('bundles'); - private widgetsInfo: Observable>; - private widgetsBundleValue: WidgetsBundle; + private widgetsBundle$ = new BehaviorSubject(null); + widgetTypes = new Set(); hasDeprecated = false; - allWidgets$: Observable>; - widgets$: Observable>; - loadingWidgetsSubject: BehaviorSubject = new BehaviorSubject(false); - loadingWidgets$ = this.loadingWidgetsSubject.pipe( - share() - ); - widgetsBundles$: Observable>; - loadingWidgetBundlesSubject: BehaviorSubject = new BehaviorSubject(true); - loadingWidgetBundles$ = this.loadingWidgetBundlesSubject.pipe( - share() - ); - - set widgetsBundle(widgetBundle: WidgetsBundle) { - if (this.widgetsBundleValue !== widgetBundle) { - this.widgetsBundleValue = widgetBundle; - if (widgetBundle === null) { - this.widgetTypes.clear(); - this.hasDeprecated = false; - } - this.filterWidgetTypes$.next(null); - this.widgetsListMode$.next('actual'); - this.widgetsInfo = null; - } - } - - get widgetsBundle(): WidgetsBundle { - return this.widgetsBundleValue; - } - @Input() aliasController: IAliasController; @Input() - set searchBundle(search: string) { - this.search$.next(search); + set search(search: string) { + this.searchSubject.next(search); + } + + get search(): string { + return this.searchSubject.value; } @Input() @@ -95,7 +89,18 @@ export class DashboardWidgetSelectComponent implements OnInit { @Input() set selectWidgetMode(mode: selectWidgetMode) { - this.selectWidgetMode$.next(mode); + if (this.selectWidgetMode$.value !== mode) { + if (mode === 'bundles' && this.widgetsBundle$.value === null) { + this.widgetTypes.clear(); + this.hasDeprecated = false; + } else { + this.widgetTypes = new Set(Object.keys(widgetType).map(t => t as widgetType)); + this.hasDeprecated = true; + } + this.filterWidgetTypes$.next(null); + this.deprecatedFilter$.next(DeprecatedFilter.ACTUAL); + this.selectWidgetMode$.next(mode); + } } get selectWidgetMode(): selectWidgetMode { @@ -103,77 +108,121 @@ export class DashboardWidgetSelectComponent implements OnInit { } @Input() - set widgetsListMode(mode: widgetsListMode) { - this.widgetsListMode$.next(mode); + set deprecatedFilter(filter: DeprecatedFilter) { + this.deprecatedFilter$.next(filter); + } + + get deprecatedFilter(): DeprecatedFilter { + return this.deprecatedFilter$.value; + } + + set widgetsBundle(widgetBundle: WidgetsBundle) { + if (this.widgetsBundle$.value !== widgetBundle) { + if (widgetBundle === null && this.selectWidgetMode$.value !== 'allWidgets') { + this.widgetTypes.clear(); + this.hasDeprecated = false; + } else { + this.widgetTypes = new Set(Object.keys(widgetType).map(t => t as widgetType)); + this.hasDeprecated = true; + } + this.filterWidgetTypes$.next(null); + this.deprecatedFilter$.next(DeprecatedFilter.ACTUAL); + this.widgetsBundle$.next(widgetBundle); + } } - get widgetsListMode(): widgetsListMode { - return this.widgetsListMode$.value; + get widgetsBundle(): WidgetsBundle { + return this.widgetsBundle$.value; } @Output() widgetSelected: EventEmitter = new EventEmitter(); - @Output() - widgetsBundleSelected: EventEmitter = new EventEmitter(); + columns: ScrollGridColumns = { + columns: 1, + breakpoints: { + 'screen and (min-width: 2000px)': 3, + 'screen and (min-width: 600px)': 2 + } + }; + + widgetBundlesFetchFunction: GridEntitiesFetchFunction; + allWidgetsFetchFunction: GridEntitiesFetchFunction; + widgetsFetchFunction: GridEntitiesFetchFunction; + + widgetsBundleFilter = ''; + allWidgetsFilter: WidgetsFilter = {search: '', filter: null, deprecatedFilter: DeprecatedFilter.ACTUAL}; + widgetsFilter: BundleWidgetsFilter = {search: '', filter: null, deprecatedFilter: DeprecatedFilter.ACTUAL, widgetsBundleId: null}; constructor(private widgetsService: WidgetService, - private sanitizer: DomSanitizer, - private cd: ChangeDetectorRef) { - this.widgetsBundles$ = combineLatest([this.search$.asObservable(), this.selectWidgetMode$.asObservable()]).pipe( - distinctUntilChanged((oldValue, newValue) => JSON.stringify(oldValue) === JSON.stringify(newValue)), - switchMap(search => this.fetchWidgetBundle(...search)) + private cd: ChangeDetectorRef, + private sanitizer: DomSanitizer) { + + this.widgetBundlesFetchFunction = (pageSize, page, filter) => { + const pageLink = new PageLink(pageSize, page, filter, { + property: 'title', + direction: Direction.ASC + }); + return this.widgetsService.getWidgetBundles(pageLink, true); + }; + + this.allWidgetsFetchFunction = (pageSize, page, filter) => { + const pageLink = new PageLink(pageSize, page, filter.search, { + property: 'name', + direction: Direction.ASC + }); + return this.widgetsService.getWidgetTypes(pageLink, false, true, filter.deprecatedFilter, filter.filter); + }; + + this.widgetsFetchFunction = (pageSize, page, filter) => { + const pageLink = new PageLink(pageSize, page, filter.search, { + property: 'name', + direction: Direction.ASC + }); + return this.widgetsService.getBundleWidgetTypeInfos(pageLink, filter.widgetsBundleId, + true, filter.deprecatedFilter, filter.filter); + }; + + this.search$.pipe( + distinctUntilChanged(), + skip(1) + ).subscribe( + (search) => { + this.widgetsBundleFilter = search; + this.cd.markForCheck(); + } ); - this.allWidgets$ = combineLatest([this.search$.asObservable().pipe( - debounceTime(150) - ), this.selectWidgetMode$.asObservable()]).pipe( - distinctUntilChanged((oldValue, newValue) => JSON.stringify(oldValue) === JSON.stringify(newValue)), - switchMap(search => this.fetchAllWidgets(...search)), - share({ connector: () => new ReplaySubject(1), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) + + combineLatest({search: this.search$, filter: this.filterWidgetTypes$.asObservable(), + deprecatedFilter: this.deprecatedFilter$.asObservable()}).pipe( + distinctUntilChanged((oldValue, newValue) => JSON.stringify(oldValue) === JSON.stringify(newValue)), + skip(1) + ).subscribe( + (filter) => { + this.allWidgetsFilter = filter; + this.cd.markForCheck(); + } ); - this.widgets$ = combineLatest([this.search$.asObservable(), this.filterWidgetTypes$.asObservable(), this.widgetsListMode$]).pipe( + + combineLatest({search: this.search$, widgetsBundleId: this.widgetsBundle$.pipe(map(wb => wb !== null ? wb.id.id : null)), + filter: this.filterWidgetTypes$.asObservable(), deprecatedFilter: this.deprecatedFilter$.asObservable()}).pipe( distinctUntilChanged((oldValue, newValue) => JSON.stringify(oldValue) === JSON.stringify(newValue)), - switchMap(search => this.fetchWidgets(...search)) + skip(1) + ).subscribe( + (filter) => { + if (filter.widgetsBundleId) { + this.widgetsFilter = filter; + this.cd.markForCheck(); + } + } ); } ngOnInit(): void { } - private getWidgets(): Observable> { - if (!this.widgetsInfo) { - if (this.widgetsBundle !== null) { - this.loadingWidgetsSubject.next(true); - this.widgetsInfo = this.widgetsService.getBundleWidgetTypeInfos(this.widgetsBundle.id.id).pipe( - map(widgets => { - const widgetTypes = new Set(); - const hasDeprecated = widgets.some(w => w.deprecated); - const widgetInfos = widgets.map((widgetTypeInfo) => { - widgetTypes.add(widgetTypeInfo.widgetType); - return this.toWidgetInfo(widgetTypeInfo); - } - ); - setTimeout(() => { - this.widgetTypes = widgetTypes; - this.hasDeprecated = hasDeprecated; - this.cd.markForCheck(); - }); - return widgetInfos; - }), - tap(() => { - this.loadingWidgetsSubject.next(false); - }), - share({ connector: () => new ReplaySubject(1), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) - ); - } else { - this.widgetsInfo = of([]); - } - } - return this.widgetsInfo; - } - - onWidgetClicked($event: Event, widget: WidgetInfo): void { - this.widgetSelected.emit(widget); + onWidgetClicked($event: Event, widget: WidgetTypeInfo): void { + this.widgetSelected.emit(this.toWidgetInfo(widget)); } isSystem(item: WidgetsBundle): boolean { @@ -183,8 +232,10 @@ export class DashboardWidgetSelectComponent implements OnInit { selectBundle($event: Event, bundle: WidgetsBundle) { $event.preventDefault(); this.widgetsBundle = bundle; - this.search$.next(''); - this.widgetsBundleSelected.emit(bundle); + if (bundle.title?.toLowerCase().includes(this.search.toLowerCase()) || + bundle.description?.toLowerCase().includes(this.search.toLowerCase())) { + this.searchSubject.next(''); + } } getPreviewImage(imageUrl: string | null): SafeUrl | string { @@ -194,62 +245,8 @@ export class DashboardWidgetSelectComponent implements OnInit { return '/assets/widget-preview-empty.svg'; } - private getWidgetsBundles(): Observable> { - return this.widgetsService.getAllWidgetsBundles().pipe( - tap(() => this.loadingWidgetBundlesSubject.next(false)), - share({ connector: () => new ReplaySubject(1), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) - ); - } - - private fetchWidgetBundle(search: string, mode: selectWidgetMode): Observable> { - if (mode === 'bundles') { - return this.getWidgetsBundles().pipe( - map(bundles => search ? bundles.filter( - bundle => ( - bundle.title?.toLowerCase().includes(search.toLowerCase()) || - bundle.description?.toLowerCase().includes(search.toLowerCase()) - )) : bundles - ) - ); - } else { - return of([]); - } - } - - private fetchWidgets(search: string, filter: widgetType[], listMode: widgetsListMode): Observable> { - return this.getWidgets().pipe( - map(widgets => (listMode && listMode !== 'all') ? - widgets.filter((widget) => listMode === 'actual' ? !widget.deprecated : widget.deprecated) : widgets), - map(widgets => filter ? widgets.filter((widget) => filter.includes(widget.type)) : widgets), - map(widgets => search ? widgets.filter( - widget => ( - widget.title?.toLowerCase().includes(search.toLowerCase()) || - widget.description?.toLowerCase().includes(search.toLowerCase()) - )) : widgets - ) - ); - } - - private fetchAllWidgets(search: string, mode: selectWidgetMode): Observable> { - if (mode === 'allWidgets') { - const pageLink = new PageLink(1024, 0, search, { - property: 'name', - direction: Direction.ASC - }); - return this.getAllWidgets(pageLink); - } else { - return of([]); - } - } - - private getAllWidgets(pageLink: PageLink): Observable> { - this.loadingWidgetsSubject.next(true); - return this.widgetsService.getWidgetTypes(pageLink, false, true).pipe( - map(data => data.data.map(w => this.toWidgetInfo(w))), - tap(() => { - this.loadingWidgetsSubject.next(false); - }) - ); + isObject(value: any): boolean { + return isObject(value); } private toWidgetInfo(widgetTypeInfo: WidgetTypeInfo): WidgetInfo { diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html new file mode 100644 index 0000000000..5340293a12 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.html @@ -0,0 +1,53 @@ + + + +
+
+ + + + + + +
+
+
+
+ + + + + + + + + + + + +
+ +
+
+ +
+ +
+
diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.scss b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.scss new file mode 100644 index 0000000000..c7a6e2d4b7 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.scss @@ -0,0 +1,32 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.tb-scroll-grid-viewport { + height: 100%; + .cdk-virtual-scroll-content-wrapper { + display: flex; + flex-direction: column; + } + .cdk-virtual-scroll-spacer { + height: auto !important; + } + .tb-scroll-grid-items-row { + display: flex; + flex-direction: row; + } + .tb-scroll-grid-item-container { + flex: 1; + } +} diff --git a/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts new file mode 100644 index 0000000000..3ca42bba07 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/grid/scroll-grid.component.ts @@ -0,0 +1,103 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + AfterViewInit, + Component, + Input, + OnChanges, + OnInit, + Renderer2, + SimpleChanges, + TemplateRef, + ViewChild, + ViewEncapsulation +} from '@angular/core'; +import { + GridEntitiesFetchFunction, + ScrollGridColumns, + ScrollGridDatasource +} from '@home/models/datasource/scroll-grid-datasource'; +import { BreakpointObserver } from '@angular/cdk/layout'; +import { isObject } from '@app/core/utils'; +import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; + +@Component({ + selector: 'tb-scroll-grid', + templateUrl: './scroll-grid.component.html', + styleUrls: ['./scroll-grid.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ScrollGridComponent implements OnInit, AfterViewInit, OnChanges { + + @ViewChild('viewport') + viewport: CdkVirtualScrollViewport; + + @Input() + columns: ScrollGridColumns = {columns: 1}; + + @Input() + fetchFunction: GridEntitiesFetchFunction; + + @Input() + filter: F; + + @Input() + itemSize = 200; + + @Input() + gap = 12; + + @Input() + itemCard: TemplateRef<{item: T}>; + + @Input() + loadingCell: TemplateRef; + + @Input() + dataLoading: TemplateRef; + + @Input() + noData: TemplateRef; + + dataSource: ScrollGridDatasource; + + constructor(private breakpointObserver: BreakpointObserver, + private renderer: Renderer2) { + } + + ngOnInit(): void { + this.dataSource = new ScrollGridDatasource(this.breakpointObserver, this.columns, this.fetchFunction, this.filter); + } + + ngAfterViewInit() { + this.renderer.setStyle(this.viewport._contentWrapper.nativeElement, 'gap', this.gap + 'px'); + this.renderer.setStyle(this.viewport._contentWrapper.nativeElement, 'padding', this.gap + 'px'); + } + + ngOnChanges(changes: SimpleChanges): void { + for (const propName of Object.keys(changes)) { + const change = changes[propName]; + if (!change.firstChange && change.currentValue !== change.previousValue && propName === 'filter') { + this.dataSource.updateFilter(this.filter); + } + } + } + + isObject(value: any): boolean { + return isObject(value); + } +} diff --git a/ui-ngx/src/app/modules/home/components/home-components.module.ts b/ui-ngx/src/app/modules/home/components/home-components.module.ts index 735ef9742b..46e9f15275 100644 --- a/ui-ngx/src/app/modules/home/components/home-components.module.ts +++ b/ui-ngx/src/app/modules/home/components/home-components.module.ts @@ -181,6 +181,7 @@ import { DeleteTimeseriesPanelComponent } from '@home/components/attribute/delet import { ExportWidgetsBundleDialogComponent } from '@home/components/import-export/export-widgets-bundle-dialog.component'; +import { ScrollGridComponent } from '@home/components/grid/scroll-grid.component'; @NgModule({ declarations: @@ -325,7 +326,8 @@ import { RateLimitsComponent, RateLimitsTextComponent, RateLimitsDetailsDialogComponent, - SendNotificationButtonComponent + SendNotificationButtonComponent, + ScrollGridComponent ], imports: [ CommonModule, @@ -463,7 +465,8 @@ import { RateLimitsComponent, RateLimitsTextComponent, RateLimitsDetailsDialogComponent, - SendNotificationButtonComponent + SendNotificationButtonComponent, + ScrollGridComponent ], providers: [ WidgetComponentService, diff --git a/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts b/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts new file mode 100644 index 0000000000..b3568b4bc5 --- /dev/null +++ b/ui-ngx/src/app/modules/home/models/datasource/scroll-grid-datasource.ts @@ -0,0 +1,250 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { DataSource, ListRange } from '@angular/cdk/collections'; +import { CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; +import { BehaviorSubject, Observable, of, Subscription } from 'rxjs'; +import { catchError } from 'rxjs/operators'; +import { emptyPageData, PageData } from '@shared/models/page/page-data'; +import { BreakpointObserver } from '@angular/cdk/layout'; + +export type GridEntitiesFetchFunction = (pageSize: number, page: number, filter: F) => Observable>; + +export type GridCellType = 'emptyCell' | 'loadingCell'; + +export interface ScrollGridColumns { + columns: number; + breakpoints?: {[breakpoint: string]: number}; +} + +export class ScrollGridDatasource extends DataSource<(T | GridCellType)[]> { + + public initialDataLoading = true; + + private _data: T[] = []; + private _rows: (T | GridCellType)[][] = Array.from({length: 100000}); + private _hasNext = true; + private _columns: number; + private _viewport: CdkVirtualScrollViewport; + private _pendingRange: ListRange = null; + private _fetchingData = false; + private _fetchSubscription: Subscription; + private _totalElements = 0; + + private _dataStream: BehaviorSubject<(T | GridCellType)[][]>; + private _subscription: Subscription; + + constructor(private breakpointObserver: BreakpointObserver, + private columns: ScrollGridColumns, + private fetchFunction: GridEntitiesFetchFunction, + private filter: F) { + super(); + } + + connect(collectionViewer: CdkVirtualForOf<(T | GridCellType)[]>): Observable<(T | GridCellType)[][]> { + this._viewport = (collectionViewer as any)._viewport; + this._init(); + + if (this.columns.breakpoints) { + const breakpoints = Object.keys(this.columns.breakpoints); + this._subscription.add(this.breakpointObserver.observe(breakpoints).subscribe( + () => { + this._columnsChanged(this._detectColumns()); + } + )); + } + + this._subscription.add( + collectionViewer.viewChange.subscribe(range => this._fetchDataFromRange(range)) + ); + return this._dataStream; + } + + disconnect(): void { + this._reset(); + this._subscription.unsubscribe(); + } + + + get isEmpty(): boolean { + return !this._data.length; + } + + get active(): boolean { + return !!this._subscription && !this._subscription.closed; + } + + public updateFilter(filter: F) { + this.filter = filter; + if (this.active) { + const prevLength = this._rows.length; + this._reset(); + const dataLengthChanged = prevLength !== this._rows.length; + + const range = this._viewport.getRenderedRange(); + + if (dataLengthChanged) { + // Force recalculate new range + if (range.start === 0) { + range.start = 1; + } + this._viewport.appendOnly = false; + } + + const scrollOffset = this._viewport.measureScrollOffset(); + if (scrollOffset > 0) { + this._viewport.scrollToOffset(0); + } + + this._dataUpdated(); + this._viewport.appendOnly = true; + + if (!dataLengthChanged) { + this._fetchDataFromRange(range); + } + } + } + + private _detectColumns(): number { + let columns = this.columns.columns; + if (this.columns.breakpoints) { + for (const breakpont of Object.keys(this.columns.breakpoints)) { + if (this.breakpointObserver.isMatched(breakpont)) { + columns = this.columns.breakpoints[breakpont]; + break; + } + } + } + return columns; + } + + private _init() { + this._subscription = new Subscription(); + this._columns = this._detectColumns(); + if (this._dataStream) { + this._dataStream.complete(); + } + this._dataStream = new BehaviorSubject(this._rows); + } + + private _reset() { + this._data = []; + this._totalElements = 0; + this.initialDataLoading = true; + this._rows = Array.from({length: 100000}); + this._hasNext = true; + this._pendingRange = null; + this._fetchingData = false; + if (this._fetchSubscription) { + this._fetchSubscription.unsubscribe(); + } + } + + private _columnsChanged(columns: number) { + if (this._columns !== columns) { + const fetchData = columns > this._columns; + this._columns = columns; + const rowsLength = this._totalElements ? Math.ceil(this._totalElements / this._columns) : 100000; + this._rows = Array.from({length: rowsLength}); + this._dataUpdated(); + if (fetchData && this._hasNext) { + this._fetchDataFromRange(this._viewport.getRenderedRange()); + } + } + } + + private _fetchDataFromRange(range: ListRange) { + if (this._hasNext) { + if (this._fetchingData) { + this._pendingRange = range; + } else { + const endIndex = (range.end + 1) * this._columns; + if (endIndex > this._data.length) { + const startIndex = this._data.length; + const minPageSize = endIndex - startIndex; + const maxPageSize = minPageSize * 2; + let pageSize = minPageSize; + let page = Math.floor(startIndex / pageSize); + while (startIndex % pageSize !== 0 && pageSize <= maxPageSize) { + if (((page + 1) * pageSize) > endIndex) { + break; + } + pageSize++; + page = Math.floor(startIndex / pageSize); + } + const offset = startIndex % pageSize; + this._fetchData(offset, pageSize, page); + } + } + } + } + + private _fetchData(offset: number, pageSize: number, page: number) { + this._fetchingData = true; + this._fetchSubscription = this.fetchFunction(pageSize, page, this.filter).pipe( + catchError(() => of(emptyPageData())) + ).subscribe( + (data) => { + this._hasNext = data.hasNext; + if (data.data.length > offset) { + for (let i = offset; i < data.data.length; i++) { + this._data.push(data.data[i]); + } + } + this._totalElements = data.totalElements; + const rowsLength = this._totalElements ? Math.ceil(this._totalElements / this._columns) : 100000; + this._rows = Array.from({length: rowsLength}); + this._dataUpdated(); + this.initialDataLoading = false; + this._fetchingData = false; + if (this._pendingRange) { + const range = this._pendingRange; + this._pendingRange = null; + this._fetchDataFromRange(range); + } + } + ); + } + + private _dataUpdated() { + for (let index = 0; index < this._data.length; index++) { + const row = Math.floor(index / this._columns); + const col = index % this._columns; + if (!this._rows[row]) { + this._rows[row] = []; + } + this._rows[row][col] = this._data[index]; + } + this._fillGridCells(); + this._dataStream.next(this._rows); + } + + private _fillGridCells() { + if (this._totalElements) { + const startIndex = this._data.length; + const endIndex = this._rows.length * this._columns; + for (let index = startIndex; index < endIndex; index++) { + const row = Math.floor(index / this._columns); + const col = index % this._columns; + const cellType: GridCellType = index < this._totalElements ? 'loadingCell' : 'emptyCell'; + if (!this._rows[row]) { + this._rows[row] = []; + } + this._rows[row][col] = cellType; + } + } + } +} diff --git a/ui-ngx/src/app/modules/home/models/widget-component.models.ts b/ui-ngx/src/app/modules/home/models/widget-component.models.ts index 214a78d022..61b4713cc4 100644 --- a/ui-ngx/src/app/modules/home/models/widget-component.models.ts +++ b/ui-ngx/src/app/modules/home/models/widget-component.models.ts @@ -516,6 +516,7 @@ export interface WidgetInfo extends WidgetTypeDescriptor, WidgetControllerDescri typeLatestDataKeySettingsSchema?: string | any; image?: string; description?: string; + tags?: string[]; componentType?: Type; componentModuleRef?: NgModuleRef; } @@ -632,6 +633,7 @@ export const detailsToWidgetInfo = (widgetTypeDetailsEntity: WidgetTypeDetails): const widgetInfo = toWidgetInfo(widgetTypeDetailsEntity); widgetInfo.image = widgetTypeDetailsEntity.image; widgetInfo.description = widgetTypeDetailsEntity.description; + widgetInfo.tags = widgetTypeDetailsEntity.tags; return widgetInfo; }; @@ -672,6 +674,7 @@ export const toWidgetTypeDetails = (widgetInfo: WidgetInfo, id: WidgetTypeId, te return { ...widgetTypeEntity, description: widgetInfo.description, + tags: widgetInfo.tags, image: widgetInfo.image }; }; diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.html b/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.html index f19edc35c7..f3410f9893 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.html @@ -253,6 +253,11 @@ rows="2" maxlength="255"> {{descriptionInput.value?.length || 0}}/255 + + diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts index 4ac54e7a68..4c3c933f82 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts @@ -58,7 +58,7 @@ export class WidgetsBundleWidgetsResolver implements Resolve> { const widgetsBundleId = route.params.widgetsBundleId; - return this.widgetsService.getBundleWidgetTypeInfos(widgetsBundleId); + return this.widgetsService.getBundleWidgetTypeInfosList(widgetsBundleId); } } diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html index b7c23c415d..19309e8660 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html @@ -58,6 +58,10 @@ {{descriptionInput.value?.length || 0}}/1024 + + {{ 'widget.deprecated' | translate }} diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.ts index 5418557631..e6354945d7 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.ts @@ -52,6 +52,7 @@ export class WidgetTypeComponent extends EntityComponent { name: [entity ? entity.name : '', [Validators.required, Validators.maxLength(255)]], image: [entity ? entity.image : ''], description: [entity ? entity.description : '', Validators.maxLength(1024)], + tags: [entity ? entity.tags : []], deprecated: [entity ? entity.deprecated : false] } ); @@ -62,6 +63,7 @@ export class WidgetTypeComponent extends EntityComponent { name: entity.name, image: entity.image, description: entity.description, + tags: entity.tags, deprecated: entity.deprecated }); } diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts index f368650aa5..58403ad9b2 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts @@ -152,7 +152,7 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn cancel() { if (this.isDirty) { - this.widgetsService.getBundleWidgetTypeInfos(this.widgetsBundle.id.id).subscribe( + this.widgetsService.getBundleWidgetTypeInfosList(this.widgetsBundle.id.id).subscribe( (widgets) => { this.widgets = [...widgets]; this.isDirty = false; diff --git a/ui-ngx/src/app/shared/models/widget.models.ts b/ui-ngx/src/app/shared/models/widget.models.ts index a08d8837f5..d10bbc433d 100644 --- a/ui-ngx/src/app/shared/models/widget.models.ts +++ b/ui-ngx/src/app/shared/models/widget.models.ts @@ -232,12 +232,20 @@ export interface WidgetType extends BaseWidgetType { export interface WidgetTypeInfo extends BaseWidgetType { image: string; description: string; + tags: string[]; widgetType: widgetType; } export interface WidgetTypeDetails extends WidgetType, ExportableEntity { image: string; description: string; + tags: string[]; +} + +export enum DeprecatedFilter { + ALL = 'ALL', + ACTUAL = 'ACTUAL', + DEPRECATED = 'DEPRECATED' } export enum LegendDirection { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 0867f21114..536b4fb5e5 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -4789,6 +4789,7 @@ "latest-datakey-settings-schema": "Latest data key settings schema", "widget-settings": "Widget settings", "description": "Description", + "tags": "Tags", "image-preview": "Image preview", "settings-form-selector": "Settings form selector", "data-key-settings-form-selector": "Data key settings form selector", From 57968eeb42fa5c9e5bb5a72252cffb3af6c4e40f Mon Sep 17 00:00:00 2001 From: Mr-Mime <37423773+Mr-Mime@users.noreply.github.com> Date: Thu, 28 Sep 2023 23:02:19 +0200 Subject: [PATCH 017/117] Update locale.constant-de_DE.json --- ui-ngx/src/assets/locale/locale.constant-de_DE.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui-ngx/src/assets/locale/locale.constant-de_DE.json b/ui-ngx/src/assets/locale/locale.constant-de_DE.json index 1ce02e0d23..ab02231180 100644 --- a/ui-ngx/src/assets/locale/locale.constant-de_DE.json +++ b/ui-ngx/src/assets/locale/locale.constant-de_DE.json @@ -10,6 +10,10 @@ "permission-denied": "Zugriff verweigert", "permission-denied-text": "Sie haben keine Berechtigung, um diesen Vorgang auszuführen!" }, + "account": { + "account": "Benutzerkonto", + "notification-settings": "Benachrichtigungseinstellungen" + }, "action": { "activate": "Aktivieren", "suspend": "Unterbrechen", From 4dd0d7aaca6e0ec6a95a20f664f8ec91aecd103d Mon Sep 17 00:00:00 2001 From: devaskim Date: Sun, 1 Oct 2023 11:26:05 +0500 Subject: [PATCH 018/117] Use translation placeholder for closing button in embed dialog. --- .../widget/dialog/embed-dashboard-dialog.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.html b/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.html index 36837414ed..e45da616f3 100644 --- a/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/dialog/embed-dashboard-dialog.component.html @@ -35,7 +35,7 @@ type="button" [disabled]="(isLoading$ | async)" (click)="close()" cdkFocusInitial> - Close + {{ 'action.close' | translate }}
From 0c1e5393dff67686a377f55b0b4f9e4f9c3b6574 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 3 Oct 2023 19:18:34 +0300 Subject: [PATCH 019/117] Replace copy-paste with the correct library --- dao/pom.xml | 4 + .../model/sql/WidgetTypeDetailsEntity.java | 3 +- .../dao/model/sql/WidgetTypeInfoEntity.java | 2 +- .../sql/widget/WidgetTypeInfoRepository.java | 2 +- .../dao/util/mapping/AbstractArrayType.java | 45 --- .../mapping/AbstractArrayTypeDescriptor.java | 119 ------- .../util/mapping/ArraySqlTypeDescriptor.java | 86 ----- .../server/dao/util/mapping/ArrayUtil.java | 335 ------------------ .../mapping/ParameterizedParameterType.java | 64 ---- .../dao/util/mapping/StringArrayType.java | 41 --- .../mapping/StringArrayTypeDescriptor.java | 31 -- pom.xml | 6 + 12 files changed, 13 insertions(+), 725 deletions(-) delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayType.java delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java delete mode 100644 dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java diff --git a/dao/pom.xml b/dao/pom.xml index e90694f22e..673a08e0c1 100644 --- a/dao/pom.xml +++ b/dao/pom.xml @@ -230,6 +230,10 @@ org.thingsboard.rule-engine rule-engine-api + + io.hypersistence + hypersistence-utils-hibernate-55 + diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java index 99555393c6..eec70be387 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeDetailsEntity.java @@ -16,17 +16,16 @@ package org.thingsboard.server.dao.model.sql; import com.fasterxml.jackson.databind.JsonNode; +import io.hypersistence.utils.hibernate.type.array.StringArrayType; import lombok.Data; import lombok.EqualsAndHashCode; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.id.WidgetTypeId; -import org.thingsboard.server.common.data.id.WidgetsBundleId; import org.thingsboard.server.common.data.widget.BaseWidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeDetails; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.util.mapping.JsonStringType; -import org.thingsboard.server.dao.util.mapping.StringArrayType; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java index 2422373c63..fa6fd895cd 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.model.sql; +import io.hypersistence.utils.hibernate.type.array.StringArrayType; import lombok.Data; import lombok.EqualsAndHashCode; import org.hibernate.annotations.Immutable; @@ -23,7 +24,6 @@ import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.widget.BaseWidgetType; import org.thingsboard.server.common.data.widget.WidgetTypeInfo; import org.thingsboard.server.dao.model.ModelConstants; -import org.thingsboard.server.dao.util.mapping.StringArrayType; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java index 27f4ef918f..f3f3bf5139 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java @@ -37,7 +37,7 @@ public interface WidgetTypeInfoRepository extends JpaRepository - extends AbstractSingleColumnStandardBasicType - implements DynamicParameterizedType { - - public static final String SQL_ARRAY_TYPE = "sql_array_type"; - - public AbstractArrayType(AbstractArrayTypeDescriptor arrayTypeDescriptor) { - super( - ArraySqlTypeDescriptor.INSTANCE, - arrayTypeDescriptor - ); - } - - @Override - protected boolean registerUnderJavaType() { - return true; - } - - @Override - public void setParameterValues(Properties parameters) { - ((AbstractArrayTypeDescriptor) getJavaTypeDescriptor()).setParameterValues(parameters); - } -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java deleted file mode 100644 index 91e426567c..0000000000 --- a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/AbstractArrayTypeDescriptor.java +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.util.mapping; - -import org.hibernate.HibernateException; -import org.hibernate.type.descriptor.WrapperOptions; -import org.hibernate.type.descriptor.java.AbstractTypeDescriptor; -import org.hibernate.type.descriptor.java.MutabilityPlan; -import org.hibernate.type.descriptor.java.MutableMutabilityPlan; -import org.hibernate.usertype.DynamicParameterizedType; - -import java.sql.Array; -import java.sql.SQLException; -import java.util.Arrays; -import java.util.Properties; - -import static org.thingsboard.server.dao.util.mapping.AbstractArrayType.SQL_ARRAY_TYPE; - -public abstract class AbstractArrayTypeDescriptor - extends AbstractTypeDescriptor implements DynamicParameterizedType { - - private Class arrayObjectClass; - - private String sqlArrayType; - - public AbstractArrayTypeDescriptor(Class arrayObjectClass) { - this(arrayObjectClass, (MutabilityPlan) new MutableMutabilityPlan() { - @Override - protected T deepCopyNotNull(Object value) { - return ArrayUtil.deepCopy(value); - } - }); - } - - protected AbstractArrayTypeDescriptor(Class arrayObjectClass, MutabilityPlan mutableMutabilityPlan) { - super(arrayObjectClass, mutableMutabilityPlan); - this.arrayObjectClass = arrayObjectClass; - } - - public Class getArrayObjectClass() { - return arrayObjectClass; - } - - public void setArrayObjectClass(Class arrayObjectClass) { - this.arrayObjectClass = arrayObjectClass; - } - - @Override - public void setParameterValues(Properties parameters) { - if (parameters.containsKey(PARAMETER_TYPE)) { - arrayObjectClass = ((ParameterType) parameters.get(PARAMETER_TYPE)).getReturnedClass(); - } - sqlArrayType = parameters.getProperty(SQL_ARRAY_TYPE); - } - - @Override - public boolean areEqual(T one, T another) { - if (one == another) { - return true; - } - if (one == null || another == null) { - return false; - } - return ArrayUtil.isEquals(one, another); - } - - @Override - public String toString(T value) { - return Arrays.deepToString(ArrayUtil.wrapArray(value)); - } - - @Override - public T fromString(String string) { - return ArrayUtil.fromString(string, arrayObjectClass); - } - - @Override - public String extractLoggableRepresentation(T value) { - return (value == null) ? "null" : toString(value); - } - - @SuppressWarnings({"unchecked"}) - @Override - public X unwrap(T value, Class type, WrapperOptions options) { - return (X) ArrayUtil.wrapArray(value); - } - - @Override - public T wrap(X value, WrapperOptions options) { - if (value instanceof Array) { - Array array = (Array) value; - try { - return ArrayUtil.unwrapArray((Object[]) array.getArray(), arrayObjectClass); - } catch (SQLException e) { - throw new HibernateException( - new IllegalArgumentException(e) - ); - } - } - return (T) value; - } - - protected String getSqlArrayType() { - return sqlArrayType; - } -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java deleted file mode 100644 index 4baa150445..0000000000 --- a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArraySqlTypeDescriptor.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.util.mapping; - -import org.hibernate.type.descriptor.ValueBinder; -import org.hibernate.type.descriptor.ValueExtractor; -import org.hibernate.type.descriptor.WrapperOptions; -import org.hibernate.type.descriptor.java.JavaTypeDescriptor; -import org.hibernate.type.descriptor.sql.BasicBinder; -import org.hibernate.type.descriptor.sql.BasicExtractor; -import org.hibernate.type.descriptor.sql.SqlTypeDescriptor; - -import java.sql.CallableStatement; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Types; - -public class ArraySqlTypeDescriptor implements SqlTypeDescriptor { - - public static final ArraySqlTypeDescriptor INSTANCE = new ArraySqlTypeDescriptor(); - - @Override - public int getSqlType() { - return Types.ARRAY; - } - - @Override - public boolean canBeRemapped() { - return true; - } - - @Override - public ValueBinder getBinder(final JavaTypeDescriptor javaTypeDescriptor) { - return new BasicBinder(javaTypeDescriptor, this) { - @Override - protected void doBind(PreparedStatement st, X value, int index, WrapperOptions options) throws SQLException { - AbstractArrayTypeDescriptor abstractArrayTypeDescriptor = (AbstractArrayTypeDescriptor) javaTypeDescriptor; - st.setArray(index, st.getConnection().createArrayOf( - abstractArrayTypeDescriptor.getSqlArrayType(), - abstractArrayTypeDescriptor.unwrap(value, Object[].class, options) - )); - } - - @Override - protected void doBind(CallableStatement st, X value, String name, WrapperOptions options) - throws SQLException { - throw new UnsupportedOperationException("Binding by name is not supported!"); - } - }; - } - - @Override - public ValueExtractor getExtractor(final JavaTypeDescriptor javaTypeDescriptor) { - return new BasicExtractor(javaTypeDescriptor, this) { - @Override - protected X doExtract(ResultSet rs, String name, WrapperOptions options) throws SQLException { - return javaTypeDescriptor.wrap(rs.getArray(name), options); - } - - @Override - protected X doExtract(CallableStatement statement, int index, WrapperOptions options) throws SQLException { - return javaTypeDescriptor.wrap(statement.getArray(index), options); - } - - @Override - protected X doExtract(CallableStatement statement, String name, WrapperOptions options) throws SQLException { - return javaTypeDescriptor.wrap(statement.getArray(name), options); - } - }; - } - -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java deleted file mode 100644 index eb940c1912..0000000000 --- a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ArrayUtil.java +++ /dev/null @@ -1,335 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.util.mapping; - -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -public class ArrayUtil { - - public static T deepCopy(Object originalArray) { - Class arrayClass = originalArray.getClass(); - - if (boolean[].class.equals(arrayClass)) { - boolean[] array = (boolean[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (byte[].class.equals(arrayClass)) { - byte[] array = (byte[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (short[].class.equals(arrayClass)) { - short[] array = (short[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (int[].class.equals(arrayClass)) { - int[] array = (int[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (long[].class.equals(arrayClass)) { - long[] array = (long[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (float[].class.equals(arrayClass)) { - float[] array = (float[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (double[].class.equals(arrayClass)) { - double[] array = (double[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else if (char[].class.equals(arrayClass)) { - char[] array = (char[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } else { - Object[] array = (Object[]) originalArray; - return (T) Arrays.copyOf(array, array.length); - } - } - - public static Object[] wrapArray(Object originalArray) { - Class arrayClass = originalArray.getClass(); - - if (boolean[].class.equals(arrayClass)) { - boolean[] fromArray = (boolean[]) originalArray; - Boolean[] array = new Boolean[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (byte[].class.equals(arrayClass)) { - byte[] fromArray = (byte[]) originalArray; - Byte[] array = new Byte[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (short[].class.equals(arrayClass)) { - short[] fromArray = (short[]) originalArray; - Short[] array = new Short[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (int[].class.equals(arrayClass)) { - int[] fromArray = (int[]) originalArray; - Integer[] array = new Integer[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (long[].class.equals(arrayClass)) { - long[] fromArray = (long[]) originalArray; - Long[] array = new Long[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (float[].class.equals(arrayClass)) { - float[] fromArray = (float[]) originalArray; - Float[] array = new Float[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (double[].class.equals(arrayClass)) { - double[] fromArray = (double[]) originalArray; - Double[] array = new Double[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (char[].class.equals(arrayClass)) { - char[] fromArray = (char[]) originalArray; - Character[] array = new Character[fromArray.length]; - for (int i = 0; i < fromArray.length; i++) { - array[i] = fromArray[i]; - } - return array; - } else if (originalArray instanceof Collection) { - return ((Collection) originalArray).toArray(); - } else { - return (Object[]) originalArray; - } - } - - public static T unwrapArray(Object[] originalArray, Class arrayClass) { - - if (boolean[].class.equals(arrayClass)) { - boolean[] array = new boolean[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Boolean) originalArray[i] : Boolean.FALSE; - } - return (T) array; - } else if (byte[].class.equals(arrayClass)) { - byte[] array = new byte[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Byte) originalArray[i] : 0; - } - return (T) array; - } else if (short[].class.equals(arrayClass)) { - short[] array = new short[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Short) originalArray[i] : 0; - } - return (T) array; - } else if (int[].class.equals(arrayClass)) { - int[] array = new int[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Integer) originalArray[i] : 0; - } - return (T) array; - } else if (long[].class.equals(arrayClass)) { - long[] array = new long[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Long) originalArray[i] : 0L; - } - return (T) array; - } else if (float[].class.equals(arrayClass)) { - float[] array = new float[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? ((Number) originalArray[i]).floatValue() : 0f; - } - return (T) array; - } else if (double[].class.equals(arrayClass)) { - double[] array = new double[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Double) originalArray[i] : 0d; - } - return (T) array; - } else if (char[].class.equals(arrayClass)) { - char[] array = new char[originalArray.length]; - for (int i = 0; i < originalArray.length; i++) { - array[i] = originalArray[i] != null ? (Character) originalArray[i] : 0; - } - return (T) array; - } else if (Enum[].class.isAssignableFrom(arrayClass)) { - T array = arrayClass.cast(Array.newInstance(arrayClass.getComponentType(), originalArray.length)); - for (int i = 0; i < originalArray.length; i++) { - Object objectValue = originalArray[i]; - if (objectValue != null) { - String stringValue = (objectValue instanceof String) ? (String) objectValue : String.valueOf(objectValue); - objectValue = Enum.valueOf((Class) arrayClass.getComponentType(), stringValue); - } - Array.set(array, i, objectValue); - } - return array; - } else if (java.time.LocalDate[].class.equals(arrayClass) && java.sql.Date[].class.equals(originalArray.getClass())) { - // special case because conversion is neither with ctor nor valueOf - Object[] array = (Object[]) Array.newInstance(java.time.LocalDate.class, originalArray.length); - for (int i = 0; i < array.length; ++i) { - array[i] = originalArray[i] != null ? ((java.sql.Date) originalArray[i]).toLocalDate() : null; - } - return (T) array; - } else if (java.time.LocalDateTime[].class.equals(arrayClass) && java.sql.Timestamp[].class.equals(originalArray.getClass())) { - // special case because conversion is neither with ctor nor valueOf - Object[] array = (Object[]) Array.newInstance(java.time.LocalDateTime.class, originalArray.length); - for (int i = 0; i < array.length; ++i) { - array[i] = originalArray[i] != null ? ((java.sql.Timestamp) originalArray[i]).toLocalDateTime() : null; - } - return (T) array; - } else if(arrayClass.getComponentType() != null && arrayClass.getComponentType().isArray()) { - int arrayLength = originalArray.length; - Object[] array = (Object[]) Array.newInstance(arrayClass.getComponentType(), arrayLength); - if (arrayLength > 0) { - for (int i = 0; i < originalArray.length; i++) { - array[i] = unwrapArray((Object[]) originalArray[i], arrayClass.getComponentType()); - } - } - return (T) array; - } else { - if (arrayClass.isInstance(originalArray)) { - return (T) originalArray; - } else { - return (T) Arrays.copyOf(originalArray, originalArray.length, (Class) arrayClass); - } - } - } - - public static T fromString(String string, Class arrayClass) { - String stringArray = string.replaceAll("[\\[\\]]", ""); - String[] tokens = stringArray.split(","); - - int length = tokens.length; - - if (boolean[].class.equals(arrayClass)) { - boolean[] array = new boolean[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Boolean.valueOf(tokens[i]); - } - return (T) array; - } else if (byte[].class.equals(arrayClass)) { - byte[] array = new byte[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Byte.valueOf(tokens[i]); - } - return (T) array; - } else if (short[].class.equals(arrayClass)) { - short[] array = new short[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Short.valueOf(tokens[i]); - } - return (T) array; - } else if (int[].class.equals(arrayClass)) { - int[] array = new int[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Integer.valueOf(tokens[i]); - } - return (T) array; - } else if (long[].class.equals(arrayClass)) { - long[] array = new long[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Long.valueOf(tokens[i]); - } - return (T) array; - } else if (float[].class.equals(arrayClass)) { - float[] array = new float[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Float.valueOf(tokens[i]); - } - return (T) array; - } else if (double[].class.equals(arrayClass)) { - double[] array = new double[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = Double.valueOf(tokens[i]); - } - return (T) array; - } else if (char[].class.equals(arrayClass)) { - char[] array = new char[length]; - for (int i = 0; i < tokens.length; i++) { - array[i] = tokens[i].length() > 0 ? tokens[i].charAt(0) : Character.MIN_VALUE; - } - return (T) array; - } else { - return (T) tokens; - } - } - - public static boolean isEquals(Object firstArray, Object secondArray) { - if (firstArray.getClass() != secondArray.getClass()) { - return false; - } - Class arrayClass = firstArray.getClass(); - - if (boolean[].class.equals(arrayClass)) { - return Arrays.equals((boolean[]) firstArray, (boolean[]) secondArray); - } else if (byte[].class.equals(arrayClass)) { - return Arrays.equals((byte[]) firstArray, (byte[]) secondArray); - } else if (short[].class.equals(arrayClass)) { - return Arrays.equals((short[]) firstArray, (short[]) secondArray); - } else if (int[].class.equals(arrayClass)) { - return Arrays.equals((int[]) firstArray, (int[]) secondArray); - } else if (long[].class.equals(arrayClass)) { - return Arrays.equals((long[]) firstArray, (long[]) secondArray); - } else if (float[].class.equals(arrayClass)) { - return Arrays.equals((float[]) firstArray, (float[]) secondArray); - } else if (double[].class.equals(arrayClass)) { - return Arrays.equals((double[]) firstArray, (double[]) secondArray); - } else if (char[].class.equals(arrayClass)) { - return Arrays.equals((char[]) firstArray, (char[]) secondArray); - } else { - return Arrays.equals((Object[]) firstArray, (Object[]) secondArray); - } - } - - public static Class toArrayClass(Class arrayElementClass) { - - if (boolean.class.equals(arrayElementClass)) { - return (Class) boolean[].class; - } else if (byte.class.equals(arrayElementClass)) { - return (Class) byte[].class; - } else if (short.class.equals(arrayElementClass)) { - return (Class) short[].class; - } else if (int.class.equals(arrayElementClass)) { - return (Class) int[].class; - } else if (long.class.equals(arrayElementClass)) { - return (Class) long[].class; - } else if (float.class.equals(arrayElementClass)) { - return (Class) float[].class; - } else if (double[].class.equals(arrayElementClass)) { - return (Class) double[].class; - } else if (char[].class.equals(arrayElementClass)) { - return (Class) char[].class; - } else { - Object array = Array.newInstance(arrayElementClass, 0); - return (Class) array.getClass(); - } - } - - public static List asList(T[] array) { - List list = new ArrayList(array.length); - for (int i = 0; i < array.length; i++) { - list.add(i, array[i]); - } - return list; - } -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java deleted file mode 100644 index 53faf75720..0000000000 --- a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/ParameterizedParameterType.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.util.mapping; - -import org.hibernate.usertype.DynamicParameterizedType; - -import java.lang.annotation.Annotation; - -public class ParameterizedParameterType implements DynamicParameterizedType.ParameterType { - - private final Class clasz; - - public ParameterizedParameterType(Class clasz) { - this.clasz = clasz; - } - - @Override - public Class getReturnedClass() { - return clasz; - } - - @Override - public Annotation[] getAnnotationsMethod() { - return new Annotation[0]; - } - - @Override - public String getCatalog() { - throw new UnsupportedOperationException(); - } - - @Override - public String getSchema() { - throw new UnsupportedOperationException(); - } - - @Override - public String getTable() { - throw new UnsupportedOperationException(); - } - - @Override - public boolean isPrimaryKey() { - throw new UnsupportedOperationException(); - } - - @Override - public String[] getColumns() { - throw new UnsupportedOperationException(); - } -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java deleted file mode 100644 index cd2ee52a35..0000000000 --- a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayType.java +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.util.mapping; - -import org.hibernate.usertype.DynamicParameterizedType; -import java.util.Properties; - -public class StringArrayType extends AbstractArrayType { - - public static final StringArrayType INSTANCE = new StringArrayType(); - - public StringArrayType() { - super( - new StringArrayTypeDescriptor() - ); - } - - public StringArrayType(Class arrayClass) { - this(); - Properties parameters = new Properties(); - parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass)); - setParameterValues(parameters); - } - - public String getName() { - return "string-array"; - } -} diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java b/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java deleted file mode 100644 index 8846d0a5e2..0000000000 --- a/dao/src/main/java/org/thingsboard/server/dao/util/mapping/StringArrayTypeDescriptor.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.server.dao.util.mapping; - -public class StringArrayTypeDescriptor - extends AbstractArrayTypeDescriptor { - - public StringArrayTypeDescriptor() { - super(String[].class); - } - - @Override - protected String getSqlArrayType() { - String sqlArrayType = super.getSqlArrayType(); - return sqlArrayType != null ? sqlArrayType : "text"; - } -} - diff --git a/pom.xml b/pom.xml index 0344ced04e..05b2d9455f 100755 --- a/pom.xml +++ b/pom.xml @@ -121,6 +121,7 @@ 3.4.0 8.17.0 6.0.20.Final + 3.5.2 3.0.0 2.0.1.Final 1.7.2 @@ -1923,6 +1924,11 @@ hibernate-validator ${hibernate-validator.version} + + io.hypersistence + hypersistence-utils-hibernate-55 + ${hypersistence-utils.version} + org.glassfish javax.el From e7f9171b3877ab319894f5d4a863088456de03ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20N=C3=BA=C3=B1ez?= Date: Wed, 4 Oct 2023 09:41:28 +0200 Subject: [PATCH 020/117] Update es_ES locale to 3.6 --- .../assets/locale/locale.constant-es_ES.json | 1124 ++++++++++++++++- 1 file changed, 1078 insertions(+), 46 deletions(-) diff --git a/ui-ngx/src/assets/locale/locale.constant-es_ES.json b/ui-ngx/src/assets/locale/locale.constant-es_ES.json index 143bed648b..782284792d 100644 --- a/ui-ngx/src/assets/locale/locale.constant-es_ES.json +++ b/ui-ngx/src/assets/locale/locale.constant-es_ES.json @@ -10,11 +10,16 @@ "permission-denied": "Permiso Denegado", "permission-denied-text": "No tienes suficientes derechos para realizar esta operación!" }, + "account": { + "account": "Cuenta", + "notification-settings": "Ajustes de notificaciones" + }, "action": { "activate": "Activar", "suspend": "Suspender", "save": "Guardar", "saveAs": "Guardar como", + "move": "Mover", "cancel": "Cancelar", "ok": "OK", "delete": "Borrar", @@ -35,6 +40,7 @@ "edit-mode": "Modo Edición", "enter-edit-mode": "Modo Edición", "decline-changes": "Descartar cambios", + "decline": "Descartar", "close": "Cerrar", "back": "Atrás", "run": "Ejecutar", @@ -66,7 +72,12 @@ "more": "Más", "less": "Menos", "skip": "Saltar", - "send": "Enviar" + "send": "Enviar", + "reset": "Reset", + "show-more": "Mostrar más", + "dont-show-again": "No volver a mostrar", + "see-documentation": "Ver documentación", + "clear": "Borrar" }, "aggregation": { "aggregation": "Agrupación", @@ -173,6 +184,7 @@ "domain-name-unique": "El nombre de dominio y protocolo debe ser único.", "domain-name-max-length": "El nombre de dominio debe ser menor que 256", "error-verification-url": "Un nombre de dominio no debe contener símbolos '/' y ':'. Ejemplo: thingsboard.io", + "connection-settings": "Ajustes de conexión", "oauth2": { "access-token-uri": "URI Access token", "access-token-uri-required": "Se requere URI Access token.", @@ -263,7 +275,28 @@ "platform-android": "Android", "platform-ios": "iOS", "all-platforms": "Todas las plataformas", - "allowed-platforms": "Plataformas permitidas" + "smtp-provider": "Proveedor SMTP", + "allowed-platforms": "Plataformas permitidas", + "authentication": "Autenticación", + "basic": "Básica", + "provider": "Proveedor", + "redirect-url": "URL Redirección", + "domain-name": "Nombre de dominio", + "redirect-url-template": "Plantilla de redirección (URI)", + "microsoft-tenant-id": "Microsoft tenant ID", + "microsoft-tenant-id-required": "Se requiere tenant ID", + "token-uri": "URI Token", + "token-uri-required": "Se requiere URI token", + "redirect-uri": "URI Redirección", + "google-provider": "Google", + "microsoft-provider": "Office 365", + "sendgrid-provider": "Sendgrid", + "custom-provider": "Personalizado", + "generate-access-token": "Generar token de acceso", + "update-access-token": "Actualizar token de acceso", + "access-token-status": "Estado token:", + "token-status-generated": "Generado", + "token-status-not-generated": "No generado" }, "smpp-provider": { "smpp-version": "Versión SMPP", @@ -481,6 +514,7 @@ "severity-indeterminate": "Indeterminada", "acknowledge": "Reconocer", "clear": "Normalizar", + "delete": "Borrar", "search": "Buscar alarmas", "selected-alarms": "{ count, plural, =1 {1 alarma} other {# alarmas} } seleccionadas", "no-data": "Sin datos que mostrar", @@ -491,10 +525,14 @@ "aknowledge-alarms-text": "Estas seguro de reconocer { count, plural, =1 {1 alarma} other {# alarmas} }?", "aknowledge-alarm-title": "Recononcer Alarma", "aknowledge-alarm-text": "Estas seguro de reconocer Alarma?", + "selected-alarms-are-acknowledged": "Las alarmas seleccionadas ya están reconocidas", "clear-alarms-title": "Normalizar { count, plural, =1 {1 alarma} other {# alarmas} }", "clear-alarms-text": "Limpiar { count, plural, =1 {1 alarma} other {# alarmas} }?", "clear-alarm-title": "Limpiar Alarma", "clear-alarm-text": "Limpiar Alarma?", + "delete-alarms-title": "Delete { count, plural, =1 {1 alarm} other {# alarms} }", + "delete-alarms-text": "Are you sure you want to delete { count, plural, =1 {1 alarm} other {# alarms} }?", + "selected-alarms-are-cleared": "Selected alarms are already cleared", "alarm-status-filter": "Filtro de estados de Alarmas", "alarm-filter-title": "Filtros de alarmas", "assigned": "Asignadas", @@ -512,7 +550,11 @@ "search-propagated-alarms": "Buscar alarmas propagadas", "comments": "Comentarios de alarma", "show-more": "Mostrar más", - "additional-info": "Información adicional" + "additional-info": "Información adicional", + "alarm-type": "Tipo de alarma", + "enter-alarm-type": "Introduce tipo de alarma", + "no-alarm-types-matching": "No se han encontrado tipos de alarma que coincidan con '{{entitySubtype}}'.", + "alarm-type-list-empty": "No se han seleccionado tipos de alarma." }, "alarm-activity": { "add": "Añadir comentario...", @@ -666,6 +708,7 @@ "attribute": { "attributes": "Atributos", "latest-telemetry": "Última telemetría", + "no-latest-telemetry": "No hay última telemetría", "attributes-scope": "Alcance de los atributos del dispositivo", "scope-telemetry": "Telemetría", "scope-latest-telemetry": "Última telemetría", @@ -679,6 +722,8 @@ "key-required": "Clave del atributo requerida.", "value": "Valor", "value-required": "Valor del atributo requerido.", + "telemetry-key-required": "Se requiere clave de telemetría", + "telemetry-value-required": "Se requiere valor Telemetry value is required", "delete-attributes-title": "¿Eliminar { count, plural, =1 {1 atributo} other {# atributos} }?", "delete-attributes-text": "Atención, tras la confirmación el atributo será eliminado, y la información relacionada será irrecuperable.", "delete-attributes": "Borrar atributo", @@ -694,7 +739,19 @@ "no-attributes-text": "No se encontró ningún atributo", "no-telemetry-text": "No se encontró ninguna telemetría", "copy-key": "Copiar clave", - "copy-value": "Copiar valor" + "add-telemetry": "Añadir telemetría", + "copy-value": "Copiar valor", + "delete-timeseries": { + "start-time": "Hora de inicio", + "ends-on": "Fin", + "strategy": "Estrategia", + "delete-strategy": "Estrategia de borrado", + "all-data": "Borrar todos los datos", + "all-data-except-latest-value": "Borrar todos los datos salvo los últimos valores", + "latest-value": "Borrar último valor", + "all-data-for-time-period": "Borrar todos los datos del periodo seleccionado", + "rewrite-latest-value": "Reescribir último valor" + } }, "api-usage": { "api-features": "Características API", @@ -757,6 +814,18 @@ "view-details": "Ver detalles", "view-statistics": "Ver estadísticas" }, + "api-limit": { + "cassandra-queries": "Consultas Cassandra", + "entity-version-creation": "Creación de versiones de entidad", + "entity-version-load": "Carga de versiones de entidad", + "notification-requests": "Solicitudes de notificación", + "notification-requests-per-rule": "Solicitudes de notificación por regla", + "rest-api-requests": "Solicitudes REST API", + "rest-api-requests-per-customer": "Solicitudes REST API por cliente", + "transport-messages": "Mensajes de transporte", + "transport-messages-per-device": "Mensajes de transporte por dispositivo", + "ws-updates-per-session": "Actualizaciones WS por sesión" + }, "audit-log": { "audit": "Auditoría", "audit-logs": "Registro Auditoría", @@ -808,7 +877,8 @@ "type-provision-success": "Dispositivo aprovisionado", "type-provision-failure": "Aprovisionamiento fallido", "type-timeseries-updated": "Telemetría actualizada", - "type-timeseries-deleted": "Telemetría borrada" + "type-timeseries-deleted": "Telemetría borrada", + "type-sms-sent": "SMS enviado" }, "confirm-on-exit": { "message": "Tienes cambios sin guardar. ¿Abandonar la página?", @@ -839,7 +909,9 @@ "created-time": "Fecha de creación", "loading": "Cargando...", "proceed": "Proceder", - "open-details-page": "Abrir detalles" + "open-details-page": "Abrir detalles", + "not-found": "No encontrado", + "documentation": "Documentación" }, "content-type": { "json": "Json", @@ -868,9 +940,9 @@ "manage-public-devices": "Gestionar dispositivos públicos", "manage-public-dashboards": "Gestionar paneles públicos", "manage-customer-assets": "Gestionar activos del cliente", + "manage-public-assets": "Gestionar activos públicos", "manage-customer-edges": "Administrar Edges de clientes", "manage-public-edges": "Administrar Edges públicos", - "manage-public-assets": "Gestionar activos públicos", "add-customer-text": "Agregar nuevo cliente", "no-customers-text": "No se encontraron clientes", "customer-details": "Detalles del cliente", @@ -902,6 +974,13 @@ "edges": "Instancias de Edge del cliente", "manage-edges": "Administrar Edges" }, + "date": { + "last-update-n-ago": "Última actualización hace N", + "last-update-n-ago-text": "Última actualización {{ agoText }}", + "custom-date": "Fecha personalizada", + "format": "Formato", + "preview": "Previsualizar" + }, "datetime": { "date-from": "Fecha desde", "time-from": "Hora desde", @@ -931,6 +1010,7 @@ "no-dashboards-text": "Ningún panel encontrado", "no-widgets": "Ningún widget configurado", "add-widget": "Agregar nuevo widget", + "add-widget-button-text": "Agregar widget", "title": "Título", "image": "Imagen de panel", "mobile-app-settings": "Ajustes de aplicación móvil", @@ -1059,6 +1139,7 @@ "public-link-copied-message": "El link público del panel se ha copiado al portapapeles", "manage-states": "Administrar estados de paneles", "states": "Estados de paneles", + "states-short": "Estados", "search-states": "Buscar estados de paneles", "selected-states": "{ count, plural, =1 {1 estado panel} other {# estado paneles} } seleccionados", "edit-state": "Editar estado panel", @@ -1087,11 +1168,14 @@ "unassign-dashboards-from-edge-text": "Después de la confirmación, se anulará la asignación de todos los paneles seleccionados y no serán accesibles por de Edge", "assign-dashboard-to-edge": "Asignar panel(es) al Edge", "assign-dashboard-to-edge-text": "Por favor selecciona los paneles para asignar al Edge", - "non-existent-dashboard-state-error": "El panel con id de estado \"{{ stateId }}\" no se ha encontrado" + "non-existent-dashboard-state-error": "El panel con id de estado \"{{ stateId }}\" no se ha encontrado", + "edit-mode": "Modo Edición" }, "datakey": { "settings": "Ajustes", + "general": "General", "advanced": "Avanzado", + "key": "Clave", "label": "Etiqueta", "color": "Color", "units": "Símbolo especial para mostrar junto con el valor", @@ -1111,6 +1195,10 @@ "function-types": "Tipos de funciones", "function-type": "Tipos de función", "function-types-required": "Tipos de funciones requerido.", + "data-keys": "Claves de datos", + "data-key": "Clave de datos", + "data-keys-required": "Se requieren claves de datos.", + "data-key-required": "Se requiere clave de datos.", "alarm-keys": "Claves de Alarmas", "alarm-key": "Clave de Slarma", "alarm-key-functions": "Funciones de claves de Alarmas", @@ -1143,7 +1231,13 @@ "delta-calculation-result": "Resultado de cálculo delta", "delta-calculation-result-previous-value": "Valor anterior", "delta-calculation-result-delta-absolute": "Delta (absoluto)", - "delta-calculation-result-delta-percent": "Delta (percentil)" + "delta-calculation-result-delta-percent": "Delta (percentil)", + "source": "Origen", + "latest": "Último", + "latest-value": "Último valor", + "delta": "delta", + "percent": "porcentaje", + "absolute": "absoluto" }, "datasource": { "type": "Típo de fuente de datos", @@ -1329,7 +1423,25 @@ "device-details": "Detalles del dispositivo" }, "unassign-devices-from-edge-title": "¿Está seguro de que desea desasignar {count, plural, =1 {1 dispositivo} other {# dispositivos} }?", - "unassign-devices-from-edge-text": "Después de la confirmación, todos los dispositivos seleccionados quedarán sin asignar y el Edge no podrá acceder a ellos." + "unassign-devices-from-edge-text": "Después de la confirmación, todos los dispositivos seleccionados quedarán sin asignar y el Edge no podrá acceder a ellos.", + "time": "Hora", + "connectivity": { + "check-connectivity": "Probar conectividad", + "device-created-check-connectivity": "Dispositivo creado. Prueba de conectividad.", + "loading-check-connectivity-command": "Cargando comandos...", + "use-following-instructions": "Usa las siguientes instrucciones para enviar telemetrías usando comandos shell", + "execute-following-command": "Ejecuta el comando siguietne", + "install-curl-windows": "Desde Windows 10 b17063, el comando cURL está disponible por defecto", + "install-curl-macos": "Desde Mac OS X 10.2 6C115 (Jaguar), el comando cURL está disponible por defecto", + "install-mqtt-windows": "Usa las instrucciones para descargar, instalar y configurar mosquitto_pub", + "install-coap-client": "Usa las instrucciones para descargar, instalar y configurar coap-client", + "install-necessary-client-tools": "Instala las herramientas de cliente", + "mqtts-x509-command": "Usa la documentación para conectar el dispositivo vía MQTT con autorización X509", + "coaps-x509-command": "Usa la documentación para conectar el dispositivo vía CoAP sobre DTLS con autorización X509", + "snmp-command": "Usa la siguiente documentación para conectar el dispositivo vía SNMP.", + "sparkplug-command": "Usa la siguiente documentación para conectar el dispositivo vía MQTT Sparkplug.", + "lwm2m-command": "Usa la siguiente documentación para conectar el dispositivo vía LWM2M." + } }, "asset-profile": { "asset-profile": "Perfil de activo", @@ -1411,6 +1523,7 @@ "transport-type-lwm2m-hint": "Transporte LWM2M", "transport-type-snmp": "SNMP", "transport-type-snmp-hint": "Configuración transporte SNMP", + "transport-type-http": "HTTP", "description": "Descripción", "default": "Defecto", "profile-configuration": "Configuración de perfil", @@ -1782,7 +1895,9 @@ } }, "dialog": { - "close": "Cerrar diálogo" + "close": "Cerrar diálogo", + "error-message-title": "Mensaje de error:", + "error-details-title": "Detalles de error" }, "direction": { "column": "Columna", @@ -1843,6 +1958,8 @@ "make-private-edge-text": "Después de la confirmación, el Edge y todos sus datos se harán privados y otros no podrán acceder a ellos", "import": "Importar Edge", "install-connect-instructions": "Instrucciones de instalación y conexión", + "install-connect-instructions-edge-created": "Edge creado! Revisa las instrucciones de instalación y conexión", + "loading-edge-instructions": "Cargando instrucciones edge...", "label": "Etiqueta", "load-entity-error": "Entidad no encontrada. No se pudo cargar la información", "assign-new-edge": "Asignar nuevo Edge", @@ -1853,11 +1970,11 @@ "edge-secret": "Secreto del Edge", "copy-edge-secret": "Copiar secreto del Edge", "edge-secret-copied-message": "El secreto de Edge se ha copiado al portapapeles", - "edge-assets": "Gestionar activos de Edges", - "edge-devices": "Gestionar dispositivos de Edge", - "edge-entity-views": "Gestionar vistas de entidad de Edge", - "edge-dashboards": "Administrar paneles de Edge", - "edge-rulechains": "Cadenas de reglas de Edge", + "manage-assets": "Gestionar activos", + "manage-devices": "Gestionar dispositivos", + "manage-entity-views": "Gestionar vistas de entidad", + "manage-dashboards": "Administrar paneles", + "manage-rulechains": "Administrar cadenas de reglas", "assets": "Activos de Edge", "devices": "Dispositivos de Edge", "entity-views": "Vistas de entidad de Edge", @@ -1894,11 +2011,15 @@ "type-rule-chain-metadata": "Metadatos de Cadena de Reglas", "type-edge": "Edge", "type-user": "Usuario", + "type-tenant": "Propietario", + "type-tenant-profile": "Perfil de Propietario", "type-customer": "Cliente", "type-relation": "Relación", "type-widgets-bundle": "Paquete de Widgets", "type-widgets-type": "Tipos de Widgets", "type-admin-settings": "Ajustes de Administración", + "type-ota-package": "Paquete OTA", + "type-queue": "Cola", "action-type-added": "Añadido", "action-type-deleted": "Borrado", "action-type-updated": "Actualizado", @@ -1914,6 +2035,8 @@ "action-type-rpc-call": "Llamada RPC", "action-type-alarm-ack": "ACK Alarma", "action-type-alarm-clear": "Borrado de Alarma", + "action-type-alarm-assigned": "Alarma Asignada", + "action-type-alarm-unassigned": "Alarma Desasignada", "action-type-assigned-to-edge": "Asignado a Edge", "action-type-unassigned-from-edge": "Desasignado de Edge", "action-type-credentials-request": "Obtención de Credenciales", @@ -1930,6 +2053,7 @@ "entities-count": "Nº de entidades", "alarms-count": "Nº de alarmas", "aliases": "Alias de entidad", + "aliases-short": "Alias", "entity-alias": "Alias de entidad", "unable-delete-entity-alias-title": "No ha sido posible eliminar el alias de entidad", "unable-delete-entity-alias-text": "El alias de entidad '{{entityAlias}}' no puede ser eliminado ya que se esta usando por los siguientes widgets:
{{widgetsList}}", @@ -1945,6 +2069,7 @@ "entity-types": "Tipos de entidades", "entity-type-list": "Lista de tipos de entidad", "any-entity": "Cualquier entdad", + "add-entity-type": "Añadir tipo de entidad", "enter-entity-type": "Introducir tipo de entidad", "no-entities-matching": "No se han encontrado entidades que coincidan con '{{entity}}' .", "no-entity-types-matching": "No se han encontrado tipos de entidad que coincidan con '{{entityType}}' .", @@ -1952,6 +2077,7 @@ "help-text": "Usar el símbolo '%' de acuerdo a las necesidades: '%entity_name_contains%', '%entity_name_ends', 'entity_starts_with'.", "use-entity-name-filter": "Usar filtro", "entity-list-empty": "No hay entidades seleccionadas.", + "entity-type-list-required": "Al menos debe seleccionar un tipo de entidad", "entity-name-filter-required": "Filtro de nombre de entidad requerido.", "entity-name-filter-no-entity-matched": "No hay entidades que comiencen con '{{entity}}' .", "all-subtypes": "Todos", @@ -1959,6 +2085,7 @@ "no-aliases-found": "No se han encontrado alias.", "no-alias-matching": "'{{alias}}' no encontrado.", "create-new-alias": "Crear nuevo alias!", + "create-new": "Crear nuevo", "key": "Clave", "key-name": "Nombre de clave", "no-keys-found": "No se han encontrado claves.", @@ -1972,6 +2099,7 @@ "device-name-starts-with": "Dispositivos cuyos nombres comiencen por '{{prefix}}'", "type-device-profile": "Perfil de dispositivo", "type-device-profiles": "Perfiles de dispositivo", + "clear-selected-profiles": "Borrar perfiles seleccionados", "list-of-device-profiles": "{ count, plural, =1 {un perfil} other {Lista de # perfiles} }", "device-profile-name-starts-with": "Perfiles cuyo nombre empiece por '{{prefix}}'", "type-asset-profile": "Perfil de activo", @@ -2033,6 +2161,9 @@ "type-widgets-bundle": "Paquete de widgets", "type-widgets-bundles": "Paquetes de widgets", "list-of-widgets-bundles": "{ count, plural, =1 {Un paquete de widget} other {Lista de # paquetes de widgets} }", + "type-widget-type": "Tipo de widget", + "type-widget-types": "Tipos de widget", + "list-of-widget-types": "{ count, plural, =1 {Un tipo de widget} other {Lista de # tipos de widgets} }", "search": "Buscar entidades", "selected-entities": "{ count, plural, =1 {1 entidad} other {# entidades} } seleccionadas", "entity-label": "Etiqueta de entidad", @@ -2051,10 +2182,16 @@ "type-rpc": "RPC", "type-queue": "Cola", "type-notification": "Notificación", - "type-notification-rule": "Regla de notificaciones", - "type-notification-target": "Destinatario de notificaciones", + "type-notification-rule": "Regla de notificación", + "type-notification-rules": "Reglas de notificación", + "list-of-notification-rules": "{ count, plural, =1 {Una regla de notificación} other {Lista de # reglas de notificación} }", + "type-notification-target": "Destinatario de notificación", + "type-notification-targets": "Destinatarios de notificación", + "list-of-notification-targets": "{ count, plural, =1 {Un destinatario} other {Lista de # destinatarios} }", "type-notification-request": "Solicitud de notificaciones", - "type-notification-template": "Plantilla de notificaciones" + "type-notification-template": "Plantilla de notificaciones", + "type-notification-templates": "Plantillas de notificación", + "list-of-notification-templates": "{ count, plural, =1 {Una plantilla de notificación} other {Lista de # plantillas de notificación} }" }, "entity-field": { "created-time": "Hora de creación", @@ -2413,6 +2550,7 @@ "add-filter-prompt": "Por favos, añadir filtro", "no-filter-matching": "'{{filter}}' no encontrado.", "create-new-filter": "Crear un filtro nuevo!", + "create-new": "Crear nuevo", "filter-required": "Se requiere filtro.", "operation": { "operation": "Operación", @@ -2500,38 +2638,152 @@ }, "gateway": { "add-entry": "Añadir configuración", + "advanced": "Avanzado", + "checking-device-activity": "Probando actividad de dispositivo", + "command": "Comandos Docker", + "command-copied-message": "Se han copiado los comandos al portapapeles", + "configuration": "Configuración", "connector-add": "Añadir conector", "connector-enabled": "Activar conector", "connector-name": "Nombre conector", "connector-name-required": "Se requiere nombre conector.", "connector-type": "Tipo conector", "connector-type-required": "Se requiere tipo conector.", - "connectors": "Configuración de conectores", + "connectors": "Conectores", + "connectors-config": "Configuración de conectores", + "connectors-table-enabled": "Enabled", + "connectors-table-name": "Nombre", + "connectors-table-type": "Tipo", + "connectors-table-status": "Estado", + "connectors-table-actions": "Acciones", + "connectors-table-key": "Clave", + "connectors-table-class": "Clase", + "rpc-command-send": "Enviar", + "rpc-command-result": "Resultado", + "rpc-command-edit-params": "Editar parametros", + "gateway-configuration": "Configuración General", + "docker-label": "Usa los siguientes comandos para ejecutar el gateway en Docker.", "create-new-gateway": "Crear un gateway nuevo", "create-new-gateway-text": "Crear un nuevo gateway con el nombre: '{{gatewayName}}'?", + "created-time": "Hora de creación", + "configuration-delete-dialog-header": "Las configuraciones se borrarán", + "configuration-delete-dialog-body": "Sólo es posible desactivar la configuración remota, si hay acceso físico al gateway. Se borrarán todas las configuraciones previas.

\nPara desactivar la configuración, introduce el nombre del gateway aquí", + "configuration-delete-dialog-input": "Nombre Gateway", + "configuration-delete-dialog-input-required": "Se requiere nombre de gateway", + "configuration-delete-dialog-confirm": "Desactivar", "delete": "Borrar configuración", "download-tip": "Descargar fichero de configuración", + "drop-file": "Arrastra un fichero o", "gateway": "Gateway", "gateway-exists": "Ya existe un dispositivo con el mismo nombre.", "gateway-name": "Nombre de Gateway", "gateway-name-required": "Se requiere un nombre de gateway.", "gateway-saved": "Configuración de gateway grabada satisfactoriamente.", + "grpc": "GRPC", + "grpc-keep-alive-timeout": "Timeout Keep alive (en ms)", + "grpc-keep-alive-timeout-required": "Se requiere Timeout Keep alive", + "grpc-keep-alive-timeout-min": "El valor no puede ser menor de 1", + "grpc-keep-alive-timeout-pattern": "El valor no es válido", + "grpc-keep-alive": "Keep alive (en ms)", + "grpc-keep-alive-required": "Se requiere keep alive", + "grpc-keep-alive-min": "El valor no puede ser menor de 1", + "grpc-keep-alive-pattern": "El valor keep alive no es válido", + "grpc-min-time-between-pings": "Tiempo mínimo entre pings (en ms)", + "grpc-min-time-between-pings-required": "Se requiere tiempo mínimo entre pings", + "grpc-min-time-between-pings-min": "El valor no puede ser menor de 1", + "grpc-min-time-between-pings-pattern": "El valor de tiempo mínimo entre pings no es válido", + "grpc-min-ping-interval-without-data": "Intervalo mínimo sin datos (en ms)", + "grpc-min-ping-interval-without-data-required": "Se requiere intervalo", + "grpc-min-ping-interval-without-data-min": "El valor no puede ser menor de 1", + "grpc-min-ping-interval-without-data-pattern": "El valor de intervalo no es válido", + "grpc-max-pings-without-data": "Intervalo máximo sin datos", + "grpc-max-pings-without-data-required": "Se requiere intervalo", + "grpc-max-pings-without-data-min": "El valor no puede ser menor de 1", + "grpc-max-pings-without-data-pattern": "El valor de intervalo no es válido", + "inactivity-check-period-seconds": "Periodo de control de inactividad (en segundos)", + "inactivity-check-period-seconds-required": "Se requiere periodo", + "inactivity-check-period-seconds-min": "El valor no puede ser menor de 1", + "inactivity-check-period-seconds-pattern": "El valor del periodo no es válido", + "inactivity-timeout-seconds": "Timeout de inactividad (en segundos)", + "inactivity-timeout-seconds-required": "Se requiere timeout de inactividad", + "inactivity-timeout-seconds-min": "El valor no puede ser menor de 1", + "inactivity-timeout-seconds-pattern": "El valor de inactividad no es válido", "json-parse": "JSON no válido.", "json-required": "El campo no puede estar vacío.", + "logs": { + "logs": "Registros", + "days": "días", + "hours": "horas", + "minutes": "minutos", + "seconds": "segundos", + "date-format": "Formato de fecha", + "date-format-required": "Se requiere formato de fecha", + "log-format": "Formato de registro", + "log-type": "Tipo de registro", + "log-format-required": "Se requiere tipo de registro", + "remote": "Registro remoto", + "remote-logs": "Registro remoto", + "local": "Registro local", + "level": "Nivel de registro", + "file-path": "Ruta de fichero", + "file-path-required": "Se requiere ruta de fichero", + "saving-period": "Periodo de guardado de registros", + "saving-period-min": "El periodo no puede ser menor que 1", + "saving-period-required": "Se requiere periodo de guardado", + "backup-count": "Número de backups", + "backup-count-min": "El número de backups no puede ser menor que 1", + "backup-count-required": "Se requiere número de backups" + }, + "min-pack-send-delay": "Tiempo de espera, envío de paquetes (en ms)", + "min-pack-send-delay-required": "Se requiere tiempo de espera", + "min-pack-send-delay-min": "El tiempo de espera no puede ser menor que 0", "no-connectors": "No hay conectores", "no-data": "No hay configuraciones", "no-gateway-found": "No se ha encontrado ningún gateway.", "no-gateway-matching": " '{{item}}' no encontrado.", "path-logs": "Ruta a los archivos de log", "path-logs-required": "Ruta requerida.", + "permit-without-calls": "Permitir Keep alive si llamadas", "remote": "Configuración remota", "remote-logging-level": "Nivel de logging", "remove-entry": "Borrar configuración", + "remote-shell": "Consola remota", + "remote-configuration": "Configuración remota", + "other": "otros", "save-tip": "Grabar fichero de configuración", "security-type": "Tipo de seguridad", "security-types": { - "access-token": "Token de acceso", - "tls": "TLS" + "access-token": "Tóken de acceso", + "username-password": "Usuario y contraseña", + "tls": "TLS", + "tls-access-token": "TLS + Tóken de acceso", + "tls-private-key": "TLS + Clave privada" + }, + "server-port": "Puerto del servidor", + "statistics": { + "statistic": "Estadística", + "statistics": "Estadísticas", + "statistic-commands-empty": "No hay estadísticas", + "commands": "Comandos", + "send-period": "Periodo de envío de estadísticas (en segundos)", + "send-period-required": "Se requiere periodo de envío", + "send-period-min": "El periodo de envío no puede ser menor de 60", + "send-period-pattern": "El periodo de envío no es válido", + "check-connectors-configuration": "Revisar configuración de conectores (en segundos)", + "check-connectors-configuration-required": "Se requiere un valor", + "check-connectors-configuration-min": "El valor no puede ser menor de 1", + "check-connectors-configuration-pattern": "La configuración no es válida", + "add": "Añadir comando", + "timeout": "Timeout", + "timeout-ms": "Timeout (en ms)", + "timeout-required": "Se requiere timeout", + "timeout-min": "El timeout no puede ser menor de 1", + "timeout-pattern": "El timeout no es válido", + "attribute-name": "Nombre de atributo", + "attribute-name-required": "Se requiere nombre de atributo", + "command": "Comando", + "command-required": "Se requiere comando", + "remove": "Borrar comando" }, "storage": "Grabación", "storage-max-file-records": "Número máximo de registros en fichero", @@ -2543,6 +2795,16 @@ "storage-max-records-min": "El número mínimo es 1.", "storage-max-records-pattern": "Número no válido.", "storage-max-records-required": "Se requiere número.", + "storage-read-record-count": "Leer número de entradas en almacén", + "storage-read-record-count-min": "El número mínimo de entradas es 1.", + "storage-read-record-count-pattern": "El número no es válido.", + "storage-read-record-count-required": "Se requiere número de entradas.", + "storage-max-read-record-count": "Número máximo de entradas en el almacén", + "storage-max-read-record-count-min": "El número mínimo es 1.", + "storage-max-read-record-count-pattern": "El número no es válido", + "storage-max-read-record-count-required": "Se requiere número máximo de entradas.", + "storage-data-folder-path": "Ruta de carpeta de datos", + "storage-data-folder-path-required": "Se requiere ruta.", "storage-pack-size": "Tamaño máximo de eventos", "storage-pack-size-min": "El número mínimo es 1.", "storage-pack-size-pattern": "Número no válido.", @@ -2551,10 +2813,12 @@ "storage-path-required": "Se requiere ruta de almacén.", "storage-type": "Tipo de almacén", "storage-types": { - "file-storage": "Almacén fichero", - "memory-storage": "Almacén en memoria" + "file-storage": "Almacén en fichero", + "memory-storage": "Almacén en memoria", + "sqlite": "SQLITE" }, "thingsboard": "ThingsBoard", + "general": "General", "thingsboard-host": "Host ThingsBoard", "thingsboard-host-required": "Se requiere Host.", "thingsboard-port": "Puerto ThingsBoard", @@ -2567,10 +2831,61 @@ "title-connectors-json": "Configuración conector {{typeName}}", "tls-path-ca-certificate": "Ruta al certificado CA en el gateway", "tls-path-client-certificate": "Ruta al certificado cliente en el gateway", + "messages-ttl-check-in-hours": "Comprobación de TTL de mensajes en horas", + "messages-ttl-check-in-hours-required": "Campo requerido.", + "messages-ttl-check-in-hours-min": "El mínimo es 1.", + "messages-ttl-check-in-hours-pattern": "El número no es válido.", + "messages-ttl-in-days": "TTL (Time to live) de mensages en días", + "messages-ttl-in-days-required": "Se requiere TTL de mensajes.", + "messages-ttl-in-days-min": "El número mínimo es 1.", + "messages-ttl-in-days-pattern": "El número no es válido.", + "mqtt-qos": "QoS", + "mqtt-qos-required": "Se requiere QoS", + "mqtt-qos-range": "El rango de valores es desde 0 a 1", "tls-path-private-key": "Ruta a la clave privada en el gateway", "toggle-fullscreen": "Pantalla completa fullscreen", "transformer-json-config": "Configuración JSON*", - "update-config": "Añadir/actualizar configuración JSON" + "update-config": "Añadir/actualizar configuración JSON", + "hints": { + "remote-configuration": "Habilita la administración y configuración remota del gateway", + "remote-shell": "Habilita el control remoto del sistema operativo del gateway desde el widget terminal remoto", + "host": "Hostname o dirección IP del servidor Thingsboard", + "port": "Puerto del servicio MQTT en el servidor Thingsboard", + "token": "Access token para el gateway", + "client-id": "ID de cliente MQTT para el gateway", + "username": "Usuario MQTT para el gateway", + "password": "Contraseña MQTT para el gateway", + "ca-cert": "Ruta al fichero del certificado CA", + "date-form": "Formato de fecha en los mensajes de registro", + "data-folder": "Ruta a la carpeta que contendrá los datos (Relativa o absoluta)", + "log-format": "Formato de mensajes en registro", + "remote-log": "Habilita el registro remoto y la posterior lectura desde el gateway", + "backup-count": "Si el contaje de copias de seguridad es mayor que 0, cuando se realice una renovación, no se conservan más que los archivos de recuento de copias de seguridad, los más antíguos se eliminarán", + "storage": "Provee la configuración para el grabado de datos entrantes antes de que se envíen a la plataforma", + "max-file-count": "Número máximo de ficheros que se crearán", + "max-read-count": "Númeo máximo de mensajes a obtener desde el disco y enviados a la plataforma", + "max-records": "Número máximo de registros que se guardarán en un solo fichero", + "read-record-count": "Número de mensages a obtener desde el almacenamiento y enviados a la plataforma", + "max-records-count": "Número máximo de datos en almacenamiento antes de enviar a la plataforma", + "ttl-check-hour": "Con qué frecuencia el gateway comprobará si los datos están obsoletos", + "ttl-messages-day": "Número máximo de días para la retención de datos en el almacén", + "commands": "Comandos para recoger estadísticas adicionales", + "attribute": "Clave de telemetría para estadísticas", + "timeout": "Timeout para la ejecución de comandos", + "command": "El resultado de la ejecución del comando, se usará como valor para la telemetría", + "check-device-activity": "Habilita la monitorización de cada uno de los dispositivos conectados", + "inactivity-timeout": "Tiempo tras que el gateway desconectará el dispositivo", + "inactivity-period": "Periodo de monitorización de actividad en el dispositivo", + "minimal-pack-delay": "Tiempo de espera entre envío de paquetes de mensajes (Un valor muy bajo, resultará en un aumento de uso de la CPU en el gateway)", + "qos": "Quality of Service en los mensajes MQTT (0 - at most once, 1 - at least once)", + "server-port": "Puerto de red en el cual el servidor GRPC escuchará conexiones entrantes.", + "grpc-keep-alive-timeout": "Tiempo máximo, el cual el servidor esperara un ping keepalive antes de considerar la conexión terminada.", + "grpc-keep-alive": "Duración entre dos pings keepalive cuando no haya llamada RPC activa.", + "grpc-min-time-between-pings": "Mínimo tiempo que el servidor debe esperar entre envíos de mensajes de ping", + "grpc-max-pings-without-data": "Número máximo de pings keepalive que el servidor puede enviar sin recibir ningún dato antes de considerar la conexión terminada.", + "grpc-min-ping-interval-without-data": "Mínimo tiempo que el servidor debe esperar entre envíos de ping keepalive cuando no haya ningún dato en envío o recepción.", + "permit-without-calls": "Permitir al servidor mantener la conexión GRPC abierta, cuando no haya llamadas RPC activas." + } }, "grid": { "delete-item-title": "¿Quieres eliminar este item?", @@ -2603,6 +2918,9 @@ }, "image-input": { "drop-images-or": "Arrastrar y soltar imagenes o", + "drag-and-drop": "Arrastrar y soltar", + "or": "O", + "browse": "Navegar", "no-images": "No hay imágenes seleccionadas", "images": "imágenes" }, @@ -2653,6 +2971,12 @@ "lwm2m-server-secret-key": "Clave secreta servidor LwM2M", "lwm2m-server-public-key-id": "Clave pública servidor LwM2M" }, + "snmp": { + "host": "Host SNMP", + "port": "Puerto SNMP", + "version": "Versión SNMP (v1, v2c or v3)", + "community-string": "String de SNMP community" + }, "isgateway": "Es Gateway", "activity-time-from-gateway-device": "Fecha de actividad desde el dispositivo gateway", "description": "Descripción", @@ -2689,6 +3013,7 @@ }, "layout": { "layout": "Diseño", + "layouts": "Diseños", "manage": "Administrar diseños", "settings": "Ajustes de diseño", "color": "Color", @@ -2714,6 +3039,12 @@ "legend": { "direction": "Dirección de la leyenda", "position": "Posición de la leyenda", + "show-values": "Mostrar valores", + "min-option": "Min", + "max-option": "Max", + "average-option": "Media", + "total-option": "Total", + "latest-option": "Últimos", "sort-legend": "Ordenar claves en leyenda", "show-max": "Mostrar valor máximo", "show-min": "Mostrar valor mínimo", @@ -2795,6 +3126,7 @@ "api-feature-hint": "Si el campo está vacío, la activación se aplicará a todas las características API", "api-usage-trigger-settings": "Ajustes de activación de uso API", "new-platform-version-trigger-settings": "Ajustes de activación de nueva versión de plataforma", + "rate-limits-trigger-settings": "Ajustes de límites excedidos", "at-least-one-should-be-selected": "Se debe seleccionar por lo menos uno", "basic-settings": "Ajustes básicos", "button-text": "Texto del botón", @@ -2835,6 +3167,8 @@ "email-preview": "Vista previa de notificación eMail", "slack": "Slack", "slack-preview": "Vista previa de notificación Slack", + "microsoft-teams": "Microsoft Teams", + "microsoft-teams-preview": "Vista previa de notificación por Microsoft Teams", "sms": "SMS", "sms-preview": "Vista previa de notificación SMS", "web": "Web", @@ -2872,6 +3206,7 @@ "dashboard": "Abrir panel", "link": "Abrir enlace URL" }, + "loading-notifications": "Cargando notificaciones...", "management": "Administración de notificaciones", "mark-all-as-read": "Marcar todas como leídas", "mark-as-read": "Marcar como leída", @@ -2912,6 +3247,8 @@ "only-rule-chain-lifecycle-failures": "Sólo fallos de ciclo de vida en cadena de reglas", "only-rule-node-lifecycle-failures": "Sólo fallos de ciclo de vida en nodos de reglas", "platform-users": "Usuarios de la plataforma", + "rate-limits": "Límites de tasa", + "rate-limits-hint": "Si el campo está vacío, el activador se aplicará a todos los límites de tasa", "recipient": "Destinatario", "recipient-group": "Grupo de destinatarios", "recipient-type": { @@ -2945,6 +3282,8 @@ "rule-engine-filter": "Filtro de motor de reglas", "rule-name": "Nombre de regla", "rule-name-required": "Se requiere nombre", + "rule-disable": "Desactivar regla de notificación", + "rule-enable": "Activar regla de notificación", "rule-node-filter": "Filtro de regla", "rules": "Reglas", "notification-rules": "Notificaciones / Reglas", @@ -2988,13 +3327,15 @@ "general": "General", "rule-engine-lifecycle-event": "Evento de ciclo de vida en motor de reglas", "rule-node": "Nodo de regla", - "new-platform-version": "Nueva versión de plataforma" + "new-platform-version": "Nueva versión de plataforma", + "rate-limits": "Se excedieron los límites de tasa" }, "templates": "Plantillas", "notification-templates": "Notificaciones / Plantillas", "tenant-profiles-list-rule-hint": "Si el campo está vacío, el disparo se aplicará a todos los perfiles de administradores propietarios", "tenants-list-rule-hint": "Si el campo está vacío, el disparo se aplicará a todos los administradores propietarios", "threshold": "Umbral", + "theme-color": "Color del tema", "time": "Hora", "track-rule-node-events": "Hacer seguimiento de eventos en nodos de reglas", "trigger": { @@ -3007,6 +3348,7 @@ "entity-action": "Actiones de entidades", "rule-engine-lifecycle-event": "Evento de ciclo de vida en Motor de reglas", "new-platform-version": "Nueva versión de plataforma", + "rate-limits": "Se excedieron los límites de tasa", "trigger": "Disparo", "trigger-required": "Se requiere disparo" }, @@ -3015,7 +3357,21 @@ "updated": "Actualizado", "use-template": "Usar plantilla", "view-all": "Ver todos", - "warning": "Alerta" + "warning": "Alerta", + "webhook-url": "URL Webhook", + "webhook-url-required": "Se requiere URL Webhook", + "channel-name": "Nombre del canal", + "channel-name-required": "Se requiere nombre del canal", + "settings": { + "notification-settings": "Ajustes de notificaciones", + "reset-all": "Restablecer ajustes", + "reset-all-title": "Estás seguro de borrar el formulario?", + "reset-all-text": "Atención, tras la confirmación, el formulario de ajustes se restablecerá a los valores por defecto.", + "type": "Tipo", + "enable-all": "Activar todos", + "disable-all": "Desactivar todos", + "delivery-not-configured": "No hay configurado un método de entrega" + } }, "ota-update": { "add": "Añadir paquete", @@ -3104,7 +3460,14 @@ }, "security": { "security": "Seguridad", - "general-settings": "Ajusters generales de seguridad", + "general-settings": "Ajustes generales de seguridad", + "access-token": "Tóken de acceso", + "access-token-required": "Tóken de acceso requerido.", + "clientId": "ID cliente", + "clientId-required": "Se requiere ID cliente", + "username": "Usuario", + "username-required": "Se requiere usuario", + "ca-cert": "Certificado CA", "2fa": { "2fa": "Autenticación de doble factor (2FA)", "2fa-description": "La autenticación de doble factor proteje tu cuenta de accesos no autorizados. Lo único que tienes que hacer es entrar un código de seguridad al hacer login.", @@ -3177,6 +3540,7 @@ "relation": { "relations": "Relaciones", "direction": "Dirección", + "clear-relation-type": "Borrar tipo de relación", "search-direction": { "FROM": "Desde", "TO": "Hacia" @@ -3210,7 +3574,8 @@ "delete-from-relation-text": "Atención, tras la confirmación la entidad actual no estará relacionada con la entidad '{{entityName}}'.", "delete-from-relations-title": "¿Quieres eliminar { count, plural, =1 {1 relación} other {# relaciones} }?", "delete-from-relations-text": "Atención, tras la confirmación todas las relaciones seleccionadas se eliminarán y sus entidades correspondientes no estarán relacionadas con sus entidades correspondientes.", - "remove-relation-filter": "Quitar filtro de relación", + "remove-relation-filter": "Borrar filtro de relación", + "remove-filter": "Borrar filtro", "add-relation-filter": "Añadir filtro de relación", "any-relation": "Cualquier relación", "relation-filters": "Filtro de relación", @@ -3220,6 +3585,7 @@ }, "resource": { "add": "Añadir Recurso", + "all-types": "Todos", "copyId": "Copiar Id de recurso", "delete": "Borrar recurso", "delete-resource-text": "Atención, tras la confirmación el recurso será irrecuperable.", @@ -3245,7 +3611,13 @@ "system": "Sistema", "title": "Título", "title-required": "Título requerido.", - "title-max-length": "El título debe ser menor de 256" + "title-max-length": "El título debe ser menor de 256", + "type": { + "jks": "JKS", + "js-module": "Módulo JS", + "lwm2m-model": "Modelo LWM2M", + "pkcs-12": "PKCS #12" + } }, "rulechain": { "rulechain": "Cadena de Regla", @@ -3316,11 +3688,13 @@ "events": "Eventos", "search": "Buscar nodos", "open-node-library": "Abrir librería de nodos", + "close-node-library": "Cerrar librería de nodos", "add": "Añadir nodo de reglas", "name": "Nombre", "name-required": "El nombre es requerido.", "name-max-length": "Nombre debe ser menor de 256", "type": "Tipo", + "rule-node-description": "Descripción de nodo de reglas", "delete": "Eliminar nodo de reglas", "select-all-objects": "Seleccionar todos los nodos y conexiones", "deselect-all-objects": "Deshacer selección de todos los nodos y conexiones", @@ -3379,7 +3753,8 @@ "output": "Salida", "test": "Test", "help": "Ayuda", - "reset-debug-mode": "Restablecer el modo de depuración en todos los nodos" + "reset-debug-mode": "Restablecer el modo de depuración en todos los nodos", + "test-with-this-message": "{{test}} con este mensaje" }, "timezone": { "timezone": "Zona Horaria", @@ -3392,7 +3767,7 @@ "queue-name": "Cola", "no-queues-found": "No se encontraron colas.", "no-queues-matching": "No se encontraron colas que coincidan con '{{queue}}'.", - "select_name": "Selecciona el nombre de la cola", + "select-name": "Selecciona el nombre de la cola", "name": "Nombre Cola", "name-required": "Necesario especificar el nombre de cola", "name-unique": "El nombre de cola ya existe!", @@ -3453,6 +3828,8 @@ "description": "Descripción", "description-hint": "Este texto se mostrará en la descripción de la cola, en lugar de la estrategia seleccionada", "alt-description": "Estrategia de envío: {{submitStrategy}}, Estrategia de procesamiento: {{processingStrategy}}", + "custom-properties": "Propiedades personalizadas", + "custom-properties-hint": "Propiedades de creación de tema en colas personalizadas, p.e. 'retention.ms:604800000;retention.bytes:1048576000'", "strategies": { "sequential-by-originator-label": "Secuencial por iniciador", "sequential-by-originator-hint": "El nuevo mensaje por ejemplo dispositivo A, no se enviará hasta que el mensaje anterior del dispositivo A sea admitido/procesado", @@ -3632,6 +4009,7 @@ "max-emails": "Nº Máximo de emails (0 - sin límite)", "max-emails-required": "Nº Máximo de emails requerido.", "max-emails-range": "Nº Máximo de emails no puede ser negativo", + "sms-enabled": "SMS Activados", "max-sms": "Nº Máximo de mensajes SMS (0 - sin límite)", "max-sms-required": "Nº Máximo de mensajes SMS requerido.", "max-sms-range": "Nº Máximo de mensajes SMS no puede ser negativo", @@ -3742,16 +4120,24 @@ "days": "Días" }, "timewindow": { + "timewindow": "Ventana de tiempo", "years": "{ years, plural, =1 { año } other {# años } }", + "years-short": "{{ years }}a", "months": "{ months, plural, =1 { mes } other {# meses } }", + "months-short": "{{ months }}M", "weeks": "{ weeks, plural, =1 { semana } other {# semanas } }", + "weeks-short": "{{ weeks }}sem", "days": "{ days, plural, =1 { día } other {# días } }", + "days-short": "{{ days }}d", "hours": "{ hours, plural, =0 { horas } =1 {1 hora } other {# horas } }", "hr": "{{ hr }} hr", + "hr-short": "{{ hr }}h", "minutes": "{ minutes, plural, =0 { minutos } =1 {1 minuto } other {# minutos } }", "min": "{{ min }} min", + "min-short": "{{ min }}m", "seconds": "{ seconds, plural, =0 { segundos } =1 {1 segundo } other {# segundos } }", "sec": "{{ sec }} sec", + "sec-short": "{{ sec }}s", "short": { "days": "{ days, plural, =1 {1 día } other {# días } }", "hours": "{ hours, plural, =1 {1 hora } other {# horas } }", @@ -3770,7 +4156,436 @@ "hide": "Ocultar", "interval": "Intervalo", "just-now": "Ahora mismo", - "ago": "hace" + "just-now-lower": "ahora mismo", + "ago": "hace", + "style": "Estilo de ventana de tiempo", + "icon": "Icono", + "icon-position": "Posición de icono", + "icon-position-left": "Izquierda", + "icon-position-right": "Derecha", + "font": "Fuente", + "color": "Color", + "displayTypePrefix": "Mostrar prefijo en tiempo real/histórico", + "preview": "Previsualizar" + }, + "unit": { + "millimeter": "Milímetro", + "centimeter": "Centímetro", + "angstrom": "Angstrom", + "nanometer": "Nanómetro", + "micrometer": "Micrómetro", + "meter": "Metro", + "kilometer": "Kilómetro", + "inch": "Pulgada", + "foot": "Pie", + "yard": "Yarda", + "mile": "Milla", + "nautical-mile": "Milla Náutica", + "astronomical-unit": "Unidad Astronómica", + "reciprocal-metre": "Metro recíproco", + "meter-per-meter": "Metro por metro", + "steradian": "Estereorradián", + "thou": "Tú", + "barleycorn": "Grano de cebada", + "hand": "Hand", + "chain": "Cadena", + "furlong": "Furlong", + "league": "League", + "fathom": "Fathom", + "cable": "Cable", + "link": "Enlace", + "rod": "Barra", + "nanogram": "Nanogramo", + "microgram": "Microgramo", + "milligram": "Miligramo", + "gram": "Gramo", + "kilogram": "Kilogramo", + "tonne": "Tonelada", + "ounce": "Onza", + "pound": "Libra", + "stone": "Piedra", + "hundredweight-count": "Hundredweight", + "short-tons": "Tonelada corta", + "dalton": "Dalton", + "grain": "Grano", + "drachm": "Dracma", + "quarter": "Cuarto", + "slug": "Lingote", + "carat": "Quilate", + "cubic-millimeter": "Milímetro Cúbico", + "cubic-centimeter": "Centímetro Cúbico", + "cubic-meter": "Metro Cúbico/s", + "cubic-kilometer": "Kilómetro Cúbico", + "microliter": "Microlitro", + "milliliter": "Mililitro", + "liter": "Litro", + "hectoliter": "Hectolitro", + "cubic-inch": "Pulgada Cúbica", + "cubic-foot": "Pié Cúbico", + "cubic-yard": "Yarda Cúbica", + "fluid-ounce": "Onza Fluida", + "pint": "Pinta", + "quart": "Cuarta", + "gallon": "Galón", + "oil-barrels": "Barriles de Aceite", + "cubic-meter-per-kilogram": "Metro Cúbico por Kilogramo", + "gill": "Cuarta parte de una pinta", + "hogshead": "Tonel", + "teaspoon": "Cucharilla", + "tablespoon": "Cucharada", + "cup": "Taza", + "celsius": "Celsius", + "kelvin": "Kelvin", + "rankine": "Rankine", + "fahrenheit": "Fahrenheit", + "percent": "%", + "meter-per-second": "Metros por Segundo", + "kilometer-per-hour": "Kilómetros por Hora", + "foot-per-second": "Pies por Segundo", + "mile-per-hour": "Millas por Hora", + "knot": "Nudo", + "millimeters-per-minute": "Milímetros por minuto", + "kilometer-per-hour-squared": "Kilómetros al cuadrado por hora", + "foot-per-second-squared": "Pie al cuadrado por segundo", + "pascal": "Pascal", + "kilopascal": "Kilopascale", + "megapascal": "Megapascal", + "gigapascal": "Gigapascal", + "millibar": "Milibar", + "bar": "Bar", + "kilobar": "Kilobar", + "newton": "Newton", + "newton-meter": "Newton metro", + "foot-pounds": "Libras-pie", + "inch-pounds": "Pulgadas-pie", + "newton-per-meter": "Newton por metro", + "atmospheres": "Atmósferas", + "pounds-per-square-inch": "Libras por pulgada cuadrada", + "torr": "Torr", + "inches-of-mercury": "Pulgadas de mercurio", + "pascal-per-square-meter": "Pascales por metro cuadrado", + "pound-per-square-inch": "Pie por pulgada cuadrada", + "newton-per-square-meter": "Newtons por metro cuadrado", + "kilogram-force-per-square-meter": "Kilogramo de fuerza por metro cuadrado", + "pascal-per-square-centimeter": "Pascales por centímetro cuadrado", + "ton-force-per-square-inch": "Tonelada de fuerza por pulgada cuadrada", + "kilonewton-per-square-meter": "Kilonewtons por metro cuadrado", + "newton-per-square-millimeter": "Newton por milímetro cuadrado", + + "microjoule": "Microjulio", + "millijoule": "Milijulio", + "joule": "Julio", + "kilojoule": "Kilojulio", + "megajoule": "Megajulio", + "gigajoule": "Gigajulio", + "watt-hour": "Watios-hora", + "kilowatt-hour": "Kilowatios-hora", + "electron-volts": "Electronvoltios", + "joules-per-coulomb": "Julios por Coulomb", + "british-thermal-unit": "British Thermal Units (BTU)", + "foot-pound": "Foot-pound", + "calorie": "Caloría", + "small-calorie": "Caloría-pequeña", + "kilocalorie": "Kilocaloría", + "joule-per-kelvin": "Julios por Kelvin", + "joule-per-kilogram-kelvin": "Julio por Kilogramo-Kelvin", + "joule-per-kilogram": "Julio por Kilogramo", + "watt-per-meter-kelvin": "Watios por metro Kelvin", + "joule-per-cubic-meter": "Julios por metro cúbico", + "therm": "Termia", + "electric-dipole-moment": "Momento dipolar eléctrico", + "magnetic-dipole-moment": "Momento dipolar magnético", + "debye": "Debyé", + "coulomb-per-square-meter-per-volt": "Culombio por metro cuadrado por Voltio", + "milliwatt": "Miliwatio", + "microwatt": "Microwatio", + "watt": "Watio", + "kilowatt": "Kilowatio", + "megawatt": "Megawatio", + "gigawatt": "Gigawatio", + "metric-horsepower": "Caballos métricos", + "milliwatt-per-square-centimeter": "Miliwatios por centímetro cuadrado", + "watt-per-square-centimeter": "Watios por centímetro cuadrado", + "kilowatt-per-square-centimeter": "Kilowatios por centímetro cuadrado", + "milliwatt-per-square-meter": "Miliwatios por metro cuadrado", + "watt-per-square-meter": "Watios por metro cuadrado", + "kilowatt-per-square-meter": "Kilowatios por metro cuadrado", + "watt-per-square-inch": "Watios por pulgada cuadrada", + "kilowatt-per-square-inch": "Kilowatios por pulgada cuadrada", + "horsepower": "Caballos", + "btu-per-hour": "BTU/h", + "coulomb": "Culombio", + "millicoulomb": "Miliculombios", + "microcoulomb": "Microculombios", + "picocoulomb": "Picoculombios", + "coulomb-per-meter": "Culombio por metro", + "coulomb-per-cubic-meter": "Culombio por metro cúbico", + "coulomb-per-square-meter": "Culombio por metro cuadrado", + "square-millimeter": "Milímetro cuadrado", + "square-centimeter": "Centímetro cuadrado", + "square-meter": "Metro Cuadrado", + "hectare": "Hectárea", + "square-kilometer": "Kilómetro Cuadrado", + "square-inch": "Pulgada Cuadrada", + "square-foot": "Pie Cuadrada", + "square-yard": "Yarda Cuadrada", + "acre": "Hectárea", + "square-mile": "Milla Cuadrada", + "are": "Área", + "barn": "Barnio", + "circular-inch": "Pulgada circular", + "milliampere-hour": "Miliamperios hora", + "milliampere-hour-tags": "intensidad eléctrica, flujo de corriente, carga eléctrica, capacidad actual, flujo de electricidad, flujo eléctrico, miliamperio hora, miliamperios hora, mAh", + "ampere-hours": "Amperios hora", + "ampere-hours-tags": "intensidad eléctrica, flujo de corriente, carga eléctrica, capacidad actual, flujo de electricidad, flujo eléctrico, ampere, amperio hora, Ah", + "kiloampere-hours": "Kiloamperios hora", + "kiloampere-hours-tags": "intensidad eléctrica, flujo de corriente, carga eléctrica, capacidad actual, flujo de electricidad, flujo eléctrico, kiloamperio hora, kiloampreios hora, kAh", + "nanoampere": "Nanoamperio", + "nanoampere-tags": "intensidad, amperios, nanoamperio, nA", + "picoampere": "Picoamperio", + "picoampere-tags": "intensidad, amperios, picoamperio, pA", + "microampere": "Microamperio", + "microampere-tags": "intensidad eléctrica, microamperio, microamperios, μA", + "milliampere": "Miliamperio", + "milliampere-tags": "intensidad eléctrica, miliamperio, miliamperios, mA", + "ampere": "Amperio", + "ampere-tags": "intensidad eléctrica, flujo de corriente, flujo de electricidad, flujo eléctrico, amperio, amperios, amperaje, A", + "kiloamperes": "Kiloamperios", + "kiloamperes-tags": "intensidad eléctrica, flujo de corriente, kiloamperios, kA", + "microampere-per-square-centimeter": "Microamperio por centímetro cuadrado", + "microampere-per-square-centimeter-tags": "Densidad de intensidad, microamperio por centímetro cuadrado, µA/cm²", + "ampere-per-square-meter": "Amperio por metro cuadrado", + "ampere-per-square-meter-tags": "Densidad de intensidad, intensidad por área de unidad, amperio por metro cuadrado, A/m²", + "ampere-per-meter": "Amperio por Metro", + "ampere-per-meter-tags": "fuerza del campo magnético, intensidad del campo magnético, amperios por metro, A/m", + "oersted": "Oersted", + "oersted-tags": "campo magnético, oersted, Oe", + "bohr-magneton": "Magneton de Bohr", + "bohr-magneton-tags": "física atómica, momento magnético, magnetón de bohr, μB", + "ampere-meter-squared": "Amperios metro al cuadrado", + "ampere-meter-squared-tags": "momento magnético, momento dipolar, ampero metro cuadrado, A·m²", + "ampere-meter": "Amperio Metro", + "ampere-meter-tags": "campo magnético, bucle de corriente, ampero metro, A·m", + "nanovolt": "Nanovoltio", + "picovolt": "Picovoltio", + "millivolts": "Milivoltios", + "microvolts": "Microvoltios", + "volt": "Voltio", + "kilovolts": "Kilovoltios", + "dbmV": "dBmV", + "volt-meter": "Voltio-Metro", + "kilovolt-meter": "Kilovoltio-Metro", + "megavolt-meter": "Megavoltio-Metro", + "microvolt-meter": "Microvoltio-Metro", + "millivolt-meter": "Milivoltio-Metro", + "nanovolt-meter": "Nanovoltio-Metro", + "ohm": "Ohmio", + "microohm": "Microohmio", + "milliohm": "Miliohmio", + "kilohm": "Kiloohmio", + "megohm": "Megaohmio", + "gigohm": "Gigaohmio", + "hertz": "Hertzio", + "kilohertz": "Kilohertzio", + "megahertz": "Megahertzio", + "gigahertz": "Gigahertzio", + "rpm": "Revoluciones por minuto", + "candela-per-square-meter": "Candela por metro cuadrado", + "candela": "Candela", + "lumen": "Lúmenes", + "lux": "Lux", + "foot-candle": "Candela", + "lumen-per-square-meter": "Lúmenes por metro cuadrado", + "lux-second": "Lux segundo", + "lumen-second": "Lumen segundo", + "lumens-per-watt": "Lumens por watio", + "absorbance": "Absorbancia", + "mole": "Mole", + "nanomole": "Nanomole", + "micromole": "MicroMole", + "millimole": "Milimole", + "kilomole": "Kilomole", + "mole-per-cubic-meter": "Mole por metro cúbico", + "rssi": "RSSI", + "ppm": "Partes Por Millón", + "ppb": "Partes Por Billión", + "micrograms-per-cubic-meter": "Microgramos por metro cúbico", + "aqi": "AQI", + "gram-per-cubic-meter": "Gramos por metro cúbico", + "gram-per-kilogram": "Humedad Específica", + "millimeters-per-second": "Milimetros por segundo", + "neper": "Neper", + "bel": "Belio", + "decibel": "Decibelio", + "meters-per-second-squared": "Metros por segundo al cuadrado", + "becquerel": "Becquerel", + "curie": "Curie", + "gray": "Gray", + "sievert": "Sievert", + "roentgen": "Roentgen", + "cps": "Cuentas por segundo", + "rad": "Rad", + "rem": "Rem", + "dps": "Desintegraciones por segundo", + "rutherford": "Rutherford", + "coulombs-per-kilogram": "Culombios por kilogramo", + "becquerels-per-cubic-meter": "Becquerels por metro cúbico", + "curies-per-liter": "Curies por litro", + "becquerels-per-second": "Becquerels por segundo", + "curies-per-second": "Curies por segundo", + "gy-per-second": "Gray por segundo", + "watt-per-steradian": "Watio por estereorradián", + "watt-per-square-metre-steradian": "Watios por metro cuadrado de estereorradián", + "ph-level": "Nivel de pH", + "turbidity": "Turbidez", + "mg-per-liter": "Miligramos por litro", + "microsiemens-per-centimeter": "Microsiemens por centímetro", + "millisiemens-per-meter": "Milisiemens por metro", + "siemens-per-meter": "Siemens por metro", + "kilogram-per-cubic-meter": "Kilogramos por metro cúbico", + "gram-per-cubic-centimeter": "Gramos por centímetro cúbico", + "kilogram-per-square-meter": "Kilogramo por metro cuadrado", + "milligram-per-milliliter": "Miligramo por mililitro", + "pound-per-cubic-foot": "Libra por pie cúbico", + "ounces-per-cubic-inch": "Onzas por pulgada cúbica", + "tons-per-cubic-yard": "Toneladas por yarda cúbica", + "particle-density": "Densidad de partícula", + "kilometers-per-liter": "Kilometros por litro", + "miles-per-gallon": "Millas por galón", + "liters-per-100-km": "Litros por 100 km", + "gallons-per-mile": "Galones por milla", + "liters-per-hour": "Litros por hora", + "gallons-per-hour": "Galones por hora", + "beats-per-minute": "Pulsaciones por minuto", + "millimeters-of-mercury": "Milímetros de mercurio", + "milligrams-per-deciliter": "Miligramos por decilitro", + "g-force": "Fuerza-G", + "kilonewton": "Kilonewton", + "kilogram-force": "Kilogramo-Fuerza", + "pound-force": "Pondio-Fuerza", + "kilopound-force": "Kilopondio-Fuerza", + "dyne": "Dina", + "poundal": "Poundal", + "kip": "Kip", + "gal": "Gal", + "gravity": "Gravedad", + "hectopascal": "Hectopascal", + "atmosphere": "Atmósfera", + "millibars": "Milibares", + "inch-of-mercury": "Pulgada de mercurio", + "richter-scale": "Escala de Richter", + "second": "Segundo", + "minute": "Minuto", + "hour": "Hora", + "day": "Día", + "week": "Semana", + "month": "Mes", + "year": "Año", + "cubic-foot-per-minute": "Pie cúbico por minuto", + "cubic-meters-per-hour": "Metros cúbicos por hora", + "cubic-meters-per-second": "Metros cúbicos por segundo", + "liter-per-second": "Litros por segundo", + "liter-per-minute": "Litros por minuto", + "gallons-per-minute": "Galones por minuto", + "cubic-foot-per-second": "Pie cúbico por segundo", + "milliliters-per-minute": "Mililitros por minuto", + "bit": "Bit", + "byte": "Byte", + "kilobyte": "Kilobyte", + "megabyte": "Megabyte", + "gigabyte": "Gigabyte", + "terabyte": "Terabyte", + "petabyte": "Petabyte", + "exabyte": "Exabyte", + "zettabyte": "Zettabyte", + "yottabyte": "Yottabyte", + "bit-per-second": "Bit por segundo", + "kilobit-per-second": "Kilobit por segundo", + "megabit-per-second": "Megabit por segundo", + "gigabit-per-second": "Gigabit por segundo", + "terabit-per-second": "Terabit por segundo", + "byte-per-second": "Byte por segundo", + "kilobyte-per-second": "Kilobyte por segundo", + "megabyte-per-second": "Megabyte por segundo", + "gigabyte-per-second": "Gigabyte por segundo", + "degree": "Grado", + "radian": "Radian", + "gradian": "Gradian", + "mil": "Mil", + "revolution": "Revolución", + "siemens": "Siemens", + "millisiemens": "Milisiemens", + "microsiemens": "Microsiemens", + "kilosiemens": "Kilosiemens", + "megasiemens": "Megasiemens", + "gigasiemens": "Gigasiemens", + "farad": "Faradio", + "millifarad": "Milifaradio", + "microfarad": "Microfaradio", + "nanofarad": "Nanofaradio", + "picofarad": "Picofaradio", + "kilofarad": "Kilofaradio", + "megafarad": "Megafaradio", + "gigafarad": "Gigafaradio", + "terfarad": "Terfaradio", + "farad-per-meter": "Faradio por metro", + "tesla": "Tesla", + "gauss": "Gauss", + "kilogauss": "Kilogauss", + "millitesla": "Militesla", + "microtesla": "Microtesla", + "nanotesla": "Nanotesla", + "kilotesla": "Kilotesla", + "megatesla": "Megatesla", + "millitesla-square-meters": "militesla por metro cuadrado", + "gamma": "Gamma", + "lambda": "Lambda", + "square-meter-per-second": "Metros cuadrados por segundo", + "square-centimeter-per-second": "Centímetros cuadrados por segundo", + "stoke": "Stoke", + "centistokes": "Centistokes", + "square-foot-per-second": "Pie cuadrado por segundo", + "square-inch-per-second": "Pulgada cuadrada por segundo", + "pascal-second": "Pascal-segundo", + "centipoise": "Centipoise", + "poise": "Poise", + "reynolds": "Reynolds", + "pound-per-foot-hour": "Libra por pie-hora", + "newton-second-per-square-meter": "Newton segundo por metro cuadrado", + "dyne-second-per-square-centimeter": "Dyne segundo por centímetro cuadrado", + "kilogram-per-meter-second": "Kilogramo por metro-segundo", + "tesla-square-meters": "Tesla metros cuadrados", + "maxwell": "Maxwell", + "tesla-per-meter": "Tesla por metro", + "gauss-per-centimeter": "Gauss por centímetro", + "weber": "Weber", + "microweber": "Microweber", + "milliweber": "Miliweber", + "gauss-square-centimeter": "Gauss-centímetro cuadrado", + "kilogauss-square-centimeter": "Kilogauss-centímetro cuadrado", + "henry": "Henrio", + "millihenry": "Milihenrio", + "microhenry": "Microhenrio", + "nanohenry": "Nanohenrio", + "henry-per-meter": "Henrio por metro", + "tesla-meter-per-ampere": "Tesla metro por amperio", + "gauss-per-oersted": "Gauss por Oersted", + "kilogram-per-mole": "Kilogramo por mole", + "gram-per-mole": "Gramo por mole", + "milligram-per-mole": "Miligramo por mole", + "joule-per-mole": "Julios por mole", + "joule-per-mole-kelvin": "Julios por mole-Kelvin", + "millivolts-per-meter": "Milivoltios por metro", + "volts-per-meter": "Voltios por metro", + "kilovolts-per-meter": "Kilovoltios por metro", + "radian-per-second": "Radianes por segundo", + "radian-per-second-squared": "Radianes por segundo al cuadrado", + "revolutions-per-minute-per-second": "Aceleración angular", + "revolutions-per-minute-per-second-squared": "Aceleración angular", + "deg-per-second": "Grados/s", + "degrees-brix": "Grados Brix", + "katal": "Katal", + "katal-per-cubic-metre": "Katal por metro cúbico" }, "user": { "user": "Usuario", @@ -3920,12 +4735,21 @@ "widget-bundle": "Paquetes de Widgets", "all-bundles": "Todos los paquetes", "select-widgets-bundle": "Seleccionar paquete de widgets", + "widgets": "Widgets", + "all-widgets": "Todos los widgets", + "widget": "Widget", + "select-widget": "Seleccionar widget", + "no-widgets-matching": "No se han encontrado widgets que coincidan con '{{entity}}'.", + "no-widgets": "No hay widgets todavía", + "no-widgets-text": "No se han encontrado widgets", "management": "Gestión de Widgets", "editor": "Editor de widgets", "widget-type-not-found": "Problema al cargar la configuración del widget.
Probablemente asociado\n El tipo de widget fue eliminado.", "widget-type-load-error": "El widget no pudo ser cargado debido a estos errores:", "remove": "Eliminar widget", + "delete": "Borrar widget", "edit": "Editar widget", + "edit-widget-type": "Editar tipo de widget", "remove-widget-title": "¿Eliminar el widget '{{widgetTitle}}'?", "remove-widget-text": "Atención, tras la confirmación el widget será eliminado y toda la información relacionada será irrecuperable..", "timeseries": "Series de tiempo", @@ -3941,13 +4765,17 @@ "unable-to-save-widget-error": "Imposible guardar widget! Tiene errores!", "save": "Guardar widget", "saveAs": "Guardar widget como", + "move": "Mover widget", "save-widget-type-as": "Guardar tipo de widget como", "save-widget-type-as-text": "Por favor, ingrese un nuevo titulo y/o seleccione un paquete de destino.", "toggle-fullscreen": "Cambiar a pantalla completa", "run": "Ejecutar widget", + "widget-title": "Título del widget", "title": "Título", "title-required": "Título requerido.", - "type": "Tipo", + "title-max-length": "El título debe ser menor de 256", + "system": "Sistema", + "type": "Tipo de widget", "resources": "Recursos", "resource-url": "URL JavaScript/CSS", "resource-is-module": "Es módulo", @@ -3961,19 +4789,38 @@ "latest-datakey-settings-schema": "Esquema de últimos valores", "widget-settings": "Ajustes de widget", "description": "Descripción", + "tags": "Etiquetas", "image-preview": "Imagen previsualización", "settings-form-selector": "Selector formulario de ajustes", "data-key-settings-form-selector": "Selector formulario de ajustes claves de datos", + "all": "Todos", + "actual": "Actuales", + "deprecated": "Obsoletos", + "has-basic-mode": "Tienen modo básico", + "basic-mode-form-selector": "Selector formulario en modo básico", + "basic-mode": "Básico", + "advanced-mode": "Avanzado", "latest-data-key-settings-form-selector": "Selector formulario de últimos valores", "javascript": "Javascript", "js": "JS", "remove-widget-type-title": "¿Eliminar el tipo del widget '{{widgetName}}'?", "remove-widget-type-text": "Atención, tras la confirmación el tipo será eliminado y la información relacionada será irrecuperable.", "remove-widget-type": "Eliminar tipo de widget.", + "widget-types": "Tipos de Widget", + "delete-widget-type-title": "¿Eliminar el tipo de widget '{{widgetTypeName}}'?", + "delete-widget-type-text": "Atención, tras la confirmación el tipo será eliminado y la información relacionada será irrecuperable.", + "delete-widget-types-title": "¿Eliminar { count, plural, =1 {1 tipo de widget} other {# tipos de widget} }?", + "delete-widget-types-text": "Atención, tras la confirmación los tipos de widget seleccionados serán eliminados y la información relacionada será irrecuperable.", + "delete-widget-type": "Borrar tipo de widget", "add-widget-type": "Agregar nuevo tipo de widget", "widget-type-load-failed-error": "Error al cargar el tipo de widget!", "widget-template-load-failed-error": "Error al cargar la plantilla del widget!", + "details": "Detalles", + "widget-type-details": "Detalles de tipo de widget", "add": "Agregar Widget", + "no-widget-types-text": "No se han encontrado tipos de widget", + "search-widget-types": "Buscar tipos de widget", + "selected-widget-types": "{ count, plural, =1 {1 tipo de widget} other {# tipos de widget} } seleccionados", "undo": "Deshacer cambios", "export": "Exportar widget", "no-data": "No hay datos para mostrar en widget", @@ -3981,7 +4828,8 @@ "alarm-data-overflow": "El widget muestra alarmas para {{allowedEntities}} entidades (máximo permitido) de {{totalEntities}} entidades", "search": "Buscar widget", "filter": "Filtro tipo de widget", - "loading-widgets": "Cargando widgets..." + "loading-widgets": "Cargando widgets...", + "widget-template-error": "Plantilla HTML inválida." }, "widget-action": { "header-button": "Botón de encabezado widget", @@ -3990,6 +4838,9 @@ "open-dashboard": "Navegar hacia otro panel", "custom": "Acción personalizada", "custom-pretty": "Acción personalizada (con plantilla HTML)", + "custom-pretty-error-title": "Diálogo de error personalizado", + "custom-pretty-template-error": "Plantilla de diálogo de error inválida.", + "custom-pretty-controller-error": "Ha ocurrido un error mientras se evaluaba la función.", "mobile-action": "Acción en dispositivo móvil", "target-dashboard-state": "Estado de panel de destino", "target-dashboard-state-required": "Se requiere estado de panel de destino", @@ -4040,6 +4891,7 @@ "widgets-bundle": { "current": "Paquete actual", "widgets-bundles": "Paquete de Widgets", + "widgets-bundle-widgets": "Widgets del paquete de widgets", "add": "Agregar paquete de widgets", "delete": "Eliminar paquete de widgets", "title": "Título", @@ -4062,6 +4914,7 @@ "system": "Widget de Sistema", "import": "Importar paquete de widgets", "export": "Exportar paquete de widgets", + "export-widgets-bundle-widgets-prompt": "Incluir tipos de widget en los datos exportados (de lo contrario, solo se exportarán los FQN de los tipos de widget a los que hace referencia)", "export-failed-error": "Imposible exportar paquete de widgets: {{error}}", "create-new-widgets-bundle": "Crear nuevo paquete de widgets", "widgets-bundle-file": "Archivo de paquete de widgets", @@ -4075,14 +4928,19 @@ "data": "Datos", "settings": "Ajustes", "advanced": "Avanzado", - "title": "Titulo", + "appearance": "Apariencia", + "widget-card": "Tarjeta de widget", + "mobile": "Móvil", + "title": "Título", "title-tooltip": "Tooltip Título", "general-settings": "Ajustes generales", "display-title": "Mostrar titulo", + "card-title": "Título de la tarjeta", "drop-shadow": "Sombra", "enable-fullscreen": "Habilitar pantalla completa", "background-color": "Color de fondo", "text-color": "Color del texto", + "border-radius": "Radio del borde", "padding": "Relleno", "margin": "Margen", "widget-style": "Estilo de widget", @@ -4094,13 +4952,21 @@ "mobile-hide": "Ocultar widget en modo móvil", "desktop-hide": "Ocultar widget en modo escritorio", "units": "Caracter especial a mostrar en el siguiente valor", - "decimals": "Números de dígitos después de la coma", + "units-by-default": "Unidades por defecto", + "decimals": "Decimales", + "decimals-by-default": "Decimales por defecto", + "default-data-key-parameter-hint": "Este parámetro aplica a todos los valores del widget a menos que la configuración de la clave de datos lo anule", + "units-short": "Unidades", + "decimals-short": "Decimales", + "decimals-suffix": "decimales", "timewindow": "Ventana de tiempo", "use-dashboard-timewindow": "Usar ventana de tiempo del Panel", + "use-widget-timewindow": "Usar ventana de tiempo del widget", "display-timewindow": "Mostrar ventana de tiempo", "legend": "Leyenda", "display-legend": "Mostrar leyenda", - "datasources": "Set de datos", + "datasources": "Origen de datos", + "datasource": "Origen de dato", "maximum-datasources": "Un máximo de { count, plural, =1 {1 set de datos es permitido.} other {# set de datos son permitidos} }", "timeseries-key-error": "Se debe especificar al menos un datakey tipo timeseries", "datasource-type": "Tipo", @@ -4129,26 +4995,69 @@ "delete-action-text": "Eliminar la acción de widget con el nombre '{{actionName}}'?", "title-icon": "Título de icono", "display-icon": "Mostrar título de icono", + "card-icon": "Card icon", "icon-color": "Color del icono", "icon-size": "Tamaño del icono", "advanced-settings": "Ajustes avanzados", "data-settings": "Ajustes de datos", + "limits": "Limits", "no-data-display-message": "\"No hay datos que mostrar\" mensaje alternativo", "data-page-size": "Nº Máximo de entidades por origen de datos", - "settings-component-not-found": "Componente de ajustes no encontrado para el selector '{{selector}}'" + "settings-component-not-found": "Componente de ajustes no encontrado para el selector '{{selector}}'", + "preview": "Previsualizar", + "set": "Establecer", + "set-message": "Establecer mensaje", + "advanced-title-style": "Estilo de título avanzado", + "card-style": "Estilo de tarjeta", + "text": "Texto", + "background": "Fondo", + "advanced-widget-style": "Estilo avanzado de widget", + "card-buttons": "Botones de tarjeta", + "show-card-buttons": "Mostrar botones", + "card-border-radius": "Radio del borde", + "card-appearance": "Apariencia", + "color": "Color" }, "widget-type": { "import": "Importar tipo de widget", "export": "Exportar tipo de widget", + "export-widget-types": "Exportar tipos de widget", "export-failed-error": "Imposible exportar tipo de widget: {{error}}", "create-new-widget-type": "Crear nuevo tipo de widget", "widget-type-file": "Archivo de tipo de widget", "invalid-widget-type-file-error": "No se puede importar tipo de widget: Estructura de datos del tipo de widget es inválida." }, "widgets": { + "background": { + "background": "Fondo", + "background-settings": "Ajustes de fondo", + "background-type-image": "Subir imagen", + "background-type-image-url": "URL imagen", + "background-type-color": "Color sólido", + "image-url": "URL imagen", + "overlay": "Capa superpuesta", + "enable-overlay": "Activar capa", + "blur": "Difuminar", + "preview": "Previsualizar" + }, + "battery-level": { + "layout": "Diseño", + "layout-vertical-solid": "Vertical. Sólido", + "layout-horizontal-solid": "Horizontal. Sólido", + "layout-vertical-divided": "Vertical. Dividido", + "layout-horizontal-divided": "Horizontal. Dividido", + "icon": "Icono", + "value": "Valor", + "auto-scale": "Auto escalar", + "battery-level-color": "Color del nivel de batería", + "battery-shape-color": "Color de la forma", + "battery-level-card-style": "Estilo de tarjeta batería" + }, "chart": { "common-settings": "Ajustes comunes", "enable-stacking-mode": "Activar modo de apilamiento (stacking)", + "selection": "Selección de rango de tiempo", + "enable-selection-mode": "Habilitar modo de selección", "line-shadow-size": "Tamaño de sombra (línea)", "display-smooth-lines": "Mostrar líneas suaves (curvas)", "default-bar-width": "Ancho de barra por defecto para datos no agregados (millisegundos)", @@ -4156,10 +5065,12 @@ "bar-alignment-left": "Izquierda", "bar-alignment-right": "Derecha", "bar-alignment-center": "Centro", + "default-font": "Fuente por defecto", "default-font-size": "Tamaño de fuente por defecto", "default-font-color": "Color de fuente por defecto", "thresholds-line-width": "Ancho de línea por defecto para todos los umbrales", "tooltip-settings": "Ajustes de sugerencias (tooltip)", + "tooltip": "Tooltip (sugerencias)", "show-tooltip": "Mostrar sugerencias", "hover-individual-points": "Hover sobre puntos individuales", "show-cumulative-values": "Mostrar valores acumulados en modo apilado", @@ -4237,6 +5148,7 @@ "add-threshold": "Añadir nuevo umbral", "show-values-for-comparison": "Mostrar valores históricos para su comparación", "comparison-values-label": "Etiqueta de valores históricos", + "comparison-line-color": "Color de línea en comparación", "threshold-settings": "Ajustes de umbrales", "use-as-threshold": "Usar valor de clave como umbral", "threshold-line-width": "Ancho de línea (para umbral)", @@ -4245,6 +5157,7 @@ "radius": "Radio", "inner-radius": "Radio interior", "tilt": "Inclinación", + "common-pie-settings-range-error": "El valor debe estar en el rango de 0 a 1", "stroke-settings": "Ajustes de trazo", "width-pixels": "Ancho (pixels)", "show-labels": "Mostrar etiquetas", @@ -4255,7 +5168,34 @@ "border-color": "Color de borde", "legend-settings": "Ajustes de leyenda", "display-legend": "Mostrar leyenda", - "labels-font-color": "Color de texto en leyenda" + "labels-font-color": "Color de texto en leyenda", + "series": "Series", + "add-series": "Añadir series", + "series-settings": "Ajustes de series", + "remove-series": "Eliminar serie", + "no-series": "No hay series configuradas", + "no-series-error": "Al menos se debe especificar una serie", + "chart-appearance": "Apariencia del gráfico", + "vertical-grid-lines": "Líneas de cuadrícula verticales", + "horizontal-grid-lines": "Líneas de cuadrícula horizontales", + "chart-background": "Fondo del gráfico", + "grid-lines-color": "Color de cuadrícula", + "border": "Borde", + "axis": "Eje", + "vertical-axis": "Eje vertical", + "ticks": "Ticks", + "horizontal-axis": "Eje horizontal" + }, + "color": { + "color-settings": "Ajustes de color", + "color-type-constant": "Constante", + "color-type-range": "Rango", + "color-type-function": "Función", + "color": "Color", + "value-range": "Rango de valor", + "from": "Desde", + "to": "A", + "color-function": "Función de color" }, "dashboard-state": { "dashboard-state-settings": "Ajustes estado de panel", @@ -4371,7 +5311,12 @@ "read-only": "Solo lectura", "events-title": "Título del formulario de eventos", "events-filter": "Filtro de eventos", - "event-key-contains": "La clave de evento contiene..." + "event-key-contains": "La clave de evento contiene...", + "show-connector": "Mostrar para el conector", + "connector-state-param-key": "Clave del parámetro de estado del conector", + "status": "Estado", + "message": "Mensaje", + "created-time": "Hora de creación" }, "gauge": { "default-color": "Color por defecto", @@ -4604,6 +5549,9 @@ "input-fields-alignment": "Alineado de campos de entrada", "input-fields-alignment-column": "Columna (por defecto)", "input-fields-alignment-row": "Fila", + "layout": "Diseño", + "row-gap": "Espacio entre filas en píxeles", + "column-gap": "Espacio entre columnas en píxeles", "latitude-field-required": "Campo latitud requerido", "longitude-field-required": "Campo longitud requerido", "attribute-settings": "Ajustes de atributos", @@ -4652,12 +5600,19 @@ "datakey-value-type-date": "Fecha", "datakey-value-type-time": "Hora", "datakey-value-type-select": "Selección", + "datakey-value-type-color": "Color", "value-is-required": "Valor requerido", "ability-to-edit-attribute": "Posibilidad de editar atributo", "ability-to-edit-attribute-editable": "Editable (por defecto)", "ability-to-edit-attribute-disabled": "Desactivado", "ability-to-edit-attribute-readonly": "Sólo lectura", "disable-on-datakey-name": "Desactivar cuando otra clave de datos sea false (especificar nombre de clave de datos)", + "field-appearance": "Apariencia de los campos", + "appearance-fill": "Relleno", + "appearance-outline": "Contorno", + "subscript-sizing": "Tamaño subscript", + "subscript-sizing-fixed": "Fijo", + "subscript-sizing-dynamic": "Dinámico", "slide-toggle-settings": "Ajustes de deslizador", "slide-toggle-label-position": "Posición de etiqueta", "slide-toggle-label-position-after": "Después", @@ -5061,10 +6016,62 @@ "markdown-css": "Markdown/HTML CSS" }, "simple-card": { + "label": "Etiqueta", "label-position": "Posición etiqueta", "label-position-left": "Izquierda", "label-position-top": "Superior" }, + "value-card": { + "layout": "Diseño", + "layout-square": "Cuadrado", + "layout-vertical": "Vertical", + "layout-centered": "Centrado", + "layout-simplified": "Simplificado", + "layout-horizontal": "Horizontal", + "layout-horizontal-reversed": "Horizontal inverso", + "label": "Etiqueta", + "icon": "Icono", + "value": "Valor", + "date": "Fecha", + "value-card-style": "Estilo de tarjeta valores" + }, + "aggregated-value-card": { + "subtitle": "Subtítulo", + "chart": "Gráfico", + "values": "Valores", + "value-appearance": "Apariencia de valores", + "position": "Posición", + "position-center": "Centro", + "position-right-top": "Arriba a la derecha", + "position-right-bottom": "Abajo a la derecha", + "position-left-top": "Arriba a la izquierda", + "position-left-bottom": "Abajo a la izquierda", + "font": "Fuente", + "color": "Color", + "arrow": "Flecha", + "display-up-down-arrow": "Mostrar flecha Arriba/Abajo", + "add-value": "Añadir valor", + "remove-value": "Quitar valor", + "no-values": "No hay valores configurados", + "aggregation": "Agregación", + "aggregated-value-card-style": "Estilo de tarjeta valores agregados" + }, + "alarm-count": { + "alarm-count-card-style": "Estilo de tarjeta contaje de alarmas" + }, + "entity-count": { + "entity-count-card-style": "Estilo de tarjeta contaje de entidades" + }, + "count": { + "layout": "Diseño", + "layout-column": "Columna", + "layout-row": "Fila", + "label": "Etiqueta", + "icon": "Icono", + "icon-background": "Fondo de icono", + "value": "Valor", + "chevron": "Chevron" + }, "table": { "common-table-settings": "Ajustes comunes en tablas", "enable-search": "Activar búsqueda", @@ -5115,7 +6122,21 @@ "allow-alarms-ack": "Permitir reconocimiento de alarmas", "allow-alarms-clear": "Permitir borrado de alarmas", "display-alarm-activity": "Mostrar actividad de alarmas", - "allow-alarms-assign": "Permitir asignar alarmas" + "allow-alarms-assign": "Permitir asignar alarmas", + "columns": "Columnas", + "column-settings": "Ajustes de columnas", + "remove-column": "Quitar columna", + "add-column": "Añadir columna", + "no-columns": "No hay columnas configuradas", + "columns-to-display": "Columnas a Mostrar", + "table-header": "Encabezado de tabla", + "header-buttons": "Botones encabezado", + "table-buttons": "Botones de tabla", + "pagination": "Paginación", + "rows": "Filas", + "timeseries-column-error": "Se debe especificar al menos una columna tipo timeseries", + "table-tabs": "Pestañas de la tabla", + "show-cell-actions-menu-mobile": "Mostrar menú desplegable de acciones de celda en modo móvil" }, "value-source": { "value-source": "Origen valor", @@ -5126,6 +6147,7 @@ "source-entity-attribute": "Atributo entidad de origen" }, "widget-font": { + "font-settings": "Ajustes de fuente", "font-family": "Familia (font family)", "size": "Tamaño", "relative-font-size": "Tamaño fuente relativo (porcentaje)", @@ -5139,7 +6161,10 @@ "font-weight-bolder": "Negrita+", "font-weight-lighter": "Lighter", "color": "Color", - "shadow-color": "Color de sombra" + "shadow-color": "Color de sombra", + "preview": "Previsualizar", + "line-height": "Altura de línea", + "auto": "Auto" }, "home": { "no-data-available": "No hay datos disponibles" @@ -5336,11 +6361,17 @@ } } }, + "color": { + "color": "Color" + }, "icon": { "icon": "Icono", - "select-icon": "Seleccionar iconos", + "icons": "Iconos", + "select-icon": "Seleccionar icono", "material-icons": "Iconos material-design", - "show-all": "Mostrar todos los iconos" + "show-all": "Mostrar todos los iconos", + "search-icon": "Buscar icono", + "no-icons-found": "No se han encontrado iconos que coincidan con '{{iconSearch}}'" }, "phone-input": { "phone-input-label": "Número de teléfono", @@ -5360,7 +6391,8 @@ "node-selected": "Clic en el nodo seleccionado", "element-click": "Clic en el elemento HTML", "pie-slice-click": "Clic en la rebanada", - "row-double-click": "Doble clic en la fila" + "row-double-click": "Doble clic en la fila", + "card-click": "En click de tarjeta" } }, "paginator" : { From d33d847c0c24de4b2944b577a27d9719fb71b664 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Thu, 5 Oct 2023 09:56:23 +0200 Subject: [PATCH 021/117] ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE increased from 4 to 8 --- .../thingsboard/server/actors/service/DefaultActorService.java | 2 +- application/src/main/resources/thingsboard.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java b/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java index 380da71443..87831cb8f6 100644 --- a/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java +++ b/application/src/main/java/org/thingsboard/server/actors/service/DefaultActorService.java @@ -74,7 +74,7 @@ public class DefaultActorService extends TbApplicationEventListener Date: Thu, 5 Oct 2023 10:41:29 +0200 Subject: [PATCH 022/117] SQL_ATTRIBUTES_BATCH_SIZE decreased from 10k down to 1k to improve concurrent updates on maximum load --- application/src/main/resources/thingsboard.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 0b012ba96c..9827a58a53 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -268,8 +268,8 @@ cassandra: sql: # Specify batch size for persisting attribute updates attributes: - batch_size: "${SQL_ATTRIBUTES_BATCH_SIZE:10000}" - batch_max_delay: "${SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS:100}" + batch_size: "${SQL_ATTRIBUTES_BATCH_SIZE:1000}" + batch_max_delay: "${SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS:50}" stats_print_interval_ms: "${SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS:10000}" batch_threads: "${SQL_ATTRIBUTES_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution value_no_xss_validation: "${SQL_ATTRIBUTES_VALUE_NO_XSS_VALIDATION:false}" From b6b4124625e2203731953245761f4ade819acb93 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Thu, 5 Oct 2023 10:41:43 +0200 Subject: [PATCH 023/117] SQL_TS_LATEST_BATCH_SIZE decreased from 10k down to 1k to improve concurrent updates on maximum load --- application/src/main/resources/thingsboard.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 9827a58a53..4a3023d48f 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -280,8 +280,8 @@ sql: batch_threads: "${SQL_TS_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution value_no_xss_validation: "${SQL_TS_VALUE_NO_XSS_VALIDATION:false}" ts_latest: - batch_size: "${SQL_TS_LATEST_BATCH_SIZE:10000}" - batch_max_delay: "${SQL_TS_LATEST_BATCH_MAX_DELAY_MS:100}" + batch_size: "${SQL_TS_LATEST_BATCH_SIZE:1000}" + batch_max_delay: "${SQL_TS_LATEST_BATCH_MAX_DELAY_MS:50}" stats_print_interval_ms: "${SQL_TS_LATEST_BATCH_STATS_PRINT_MS:10000}" batch_threads: "${SQL_TS_LATEST_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution update_by_latest_ts: "${SQL_TS_UPDATE_BY_LATEST_TIMESTAMP:true}" From 261bec2b39b5dfbaac1fdf7809f5a8cd0ad6aed2 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 5 Oct 2023 14:24:33 +0300 Subject: [PATCH 024/117] added missed yml parameter descriptions, script that check description exists for all parameters, added github action that run script --- .../check_yml_parameter_descriptions.yml | 24 + .../src/main/resources/thingsboard.yml | 641 +++++++++++++----- pull_request_template.md | 1 + tools/src/main/python/check_yml_file.py | 105 +++ 4 files changed, 608 insertions(+), 163 deletions(-) create mode 100644 .github/workflows/check_yml_parameter_descriptions.yml create mode 100644 tools/src/main/python/check_yml_file.py diff --git a/.github/workflows/check_yml_parameter_descriptions.yml b/.github/workflows/check_yml_parameter_descriptions.yml new file mode 100644 index 0000000000..240222d1b1 --- /dev/null +++ b/.github/workflows/check_yml_parameter_descriptions.yml @@ -0,0 +1,24 @@ +name: Check yml parameters have description +on: + pull_request: + paths: + - 'application/src/main/resources/thingsboard.yml' +jobs: + build: + name: check + runs-on: ubuntu-20.04 + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10.2" + architecture: "x64" + env: + AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache + + - name: Run Verification Script + run: python3 tools/src/main/python/check_env_variables.py diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index d1e5113449..f04d2b8767 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -14,6 +14,7 @@ # limitations under the License. # +# Server common properties server: # Server bind address address: "${HTTP_BIND_ADDRESS:0.0.0.0}" @@ -53,18 +54,27 @@ server: http2: # Enable/disable HTTP/2 support enabled: "${HTTP2_ENABLED:true}" + # Log errors with stacktrace when REST API throws exception with message "Please contact sysadmin" log_controller_error_stack_trace: "${HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE:false}" ws: + # Timeout for sending data to client WebSocket session in milliseconds send_timeout: "${TB_SERVER_WS_SEND_TIMEOUT:5000}" # recommended timeout >= 30 seconds. Platform will attempt to send 'ping' request 3 times within the timeout ping_timeout: "${TB_SERVER_WS_PING_TIMEOUT:30000}" dynamic_page_link: + # Refresh rate of the dynamic alarm end entity data queries refresh_interval: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_INTERVAL_SEC:60}" + # Thread pool size to execute dynamic queries refresh_pool_size: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE:1}" + # Maximum number of dynamic queries per refresh interval. For example, no more than 10 alarm queries executed by user simultaneously in all browsers. max_alarm_queries_per_refresh_interval: "${TB_SERVER_WS_MAX_ALARM_QUERIES_PER_REFRESH_INTERVAL:10}" + # Maximum number of dynamic queries per user. For example, no more than 10 alarm widgets opened by user simultaneously in all browsers< max_per_user: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER:10}" + # Maximum number of entities returned for single entity subscription. For example, no more than 10 000 entities on the map widget max_entities_per_data_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION:10000}" + # Maximum number of alarms returned for single alarm subscription. For example, no more than 10 000 alarms on the alarm widget max_entities_per_alarm_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION:10000}" + # Maximum queue size of the websocket updates per session. This restriction prevents infinite updates of WS max_queue_messages_per_session: "${TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION:1000}" rest: server_side_rpc: @@ -75,6 +85,7 @@ server: # Default value of the server side RPC timeout. default_timeout: "${DEFAULT_SERVER_SIDE_RPC_TIMEOUT:10000}" rate_limits: + # Limit that prohibits resetting the password for the user too often. The value of rate limit. By default, no more than 5 requests per hour reset_password_per_user: "${RESET_PASSWORD_PER_USER_RATE_LIMIT_CONFIGURATION:5:3600}" # Application info @@ -101,9 +112,12 @@ zk: # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" +# Cluster properties cluster: stats: + # Enable/Disable the cluster statistics. Calculates number of messages sent between cluster nodes based on each type enabled: "${TB_CLUSTER_STATS_ENABLED:false}" + # Interval of printing the cluster stats to the log file print_interval_ms: "${TB_CLUSTER_STATS_PRINT_INTERVAL_MS:10000}" # Plugins configuration parameters @@ -117,7 +131,7 @@ security: jwt: # Since 3.4.2 values are persisted to the database during install or upgrade. On Install, the key will be generated randomly if no custom value set. You can change it later from Web UI under SYS_ADMIN tokenExpirationTime: "${JWT_TOKEN_EXPIRATION_TIME:9000}" # Number of seconds (2.5 hours) refreshTokenExpTime: "${JWT_REFRESH_TOKEN_EXPIRATION_TIME:604800}" # Number of seconds (1 week). - tokenIssuer: "${JWT_TOKEN_ISSUER:thingsboard.io}" + tokenIssuer: "${JWT_TOKEN_ISSUER:thingsboard.io}" # User JWT Token issuer tokenSigningKey: "${JWT_TOKEN_SIGNING_KEY:thingsboardDefaultSigningKey}" # Base64 encoded # Enable/disable access to Tenant Administrators JWT token by System Administrator or Customer Users JWT token by Tenant Administrator user_token_access_enabled: "${SECURITY_USER_TOKEN_ACCESS_ENABLED:true}" @@ -129,28 +143,37 @@ security: # Time allowed to claim the device in milliseconds duration: "${SECURITY_CLAIM_DURATION:86400000}" # 1 minute, note this value must equal claimDevices.timeToLiveInMinutes value basic: + # Enable/Disable basic security options enabled: "${SECURITY_BASIC_ENABLED:false}" oauth2: # Redirect URL where access code from external user management system will be processed loginProcessingUrl: "${SECURITY_OAUTH2_LOGIN_PROCESSING_URL:/login/oauth2/code/}" githubMapper: + # The email addresses that will be mapped from the URL emailUrl: "${SECURITY_OAUTH2_GITHUB_MAPPER_EMAIL_URL_KEY:https://api.github.com/user/emails}" java_cacerts: + # CA certificates keystore default path. Typically this keystore is at JAVA_HOME/lib/security/cacerts path: "${SECURITY_JAVA_CACERTS_PATH:${java.home}/lib/security/cacerts}" + # The password of the cacerts keystore file password: "${SECURITY_JAVA_CACERTS_PASSWORD:changeit}" mail: oauth2: - refreshTokenCheckingInterval: "${REFRESH_TOKEN_EXPIRATION_CHECKING_INTERVAL:86400}" # Number of seconds (1 day). + # Interval to check refresh token is going to expire in seconds(by default 1 day). + refreshTokenCheckingInterval: "${REFRESH_TOKEN_EXPIRATION_CHECKING_INTERVAL:86400}" # Usage statistics parameters usage: stats: report: + # Enable/Disable collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" + # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" + # Interval of reporting the statistics. By default, the summarized statistics is sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" check: + # Interval of checking the start of next cycle and re-enabling the blocked tenants/customers cycle: "${USAGE_STATS_CHECK_CYCLE:60000}" # In milliseconds. Default value is 3 minutes gauge_report_interval: "${USAGE_STATS_GAUGE_REPORT_INTERVAL:180000}" @@ -169,6 +192,7 @@ ui: # Base url for UI help assets base-url: "${UI_HELP_BASE_URL:https://raw.githubusercontent.com/thingsboard/thingsboard-ui-help/release-3.6}" +# Database telemetry parameters database: ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by single API call to fetch telemetry records ts: @@ -194,10 +218,12 @@ cassandra: hostname_validation: "${CASSANDRA_SSL_HOSTNAME_VALIDATION:true}" # Set trust store for client authentication of server (optional, uses trust store from default SSLContext if not set) trust_store: "${CASSANDRA_SSL_TRUST_STORE:}" + # The password for Cassandra trust store key trust_store_password: "${CASSANDRA_SSL_TRUST_STORE_PASSWORD:}" # Set key store for server authentication of client (optional, uses key store from default SSLContext if not set) # A key store is only needed if the Cassandra server requires client authentication key_store: "${CASSANDRA_SSL_KEY_STORE:}" + # The password for Cassandra key store key_store_password: "${CASSANDRA_SSL_KEY_STORE_PASSWORD:}" # Comma separated list of cipher suites (optional, uses Java default cipher suites if not set) cipher_suites: "${CASSANDRA_SSL_CIPHER_SUITES:}" @@ -211,7 +237,9 @@ cassandra: init_timeout_ms: "${CASSANDRA_CLUSTER_INIT_TIMEOUT_MS:300000}" # Specify cassandra claster initialization retry interval (if no hosts available during startup) init_retry_interval_ms: "${CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS:3000}" + # Cassandra max local requests per connection max_requests_per_connection_local: "${CASSANDRA_MAX_REQUESTS_PER_CONNECTION_LOCAL:32768}" + # Cassandra max remote requests per connection max_requests_per_connection_remote: "${CASSANDRA_MAX_REQUESTS_PER_CONNECTION_REMOTE:32768}" # Credential parameters credentials: "${CASSANDRA_USE_CREDENTIALS:false}" @@ -230,72 +258,93 @@ cassandra: # Cassandra cluster connection socket parameters # socket: + # Sets the timeout, in millisecond, of a native connection from ThingsBoard to Cassandra. The default value is 5000 connect_timeout: "${CASSANDRA_SOCKET_TIMEOUT:5000}" + # Timeout before closing the connection. Value set in milliseconds read_timeout: "${CASSANDRA_SOCKET_READ_TIMEOUT:20000}" + # Gets if TCP keep-alive must be used keep_alive: "${CASSANDRA_SOCKET_KEEP_ALIVE:true}" + # Enable/Disable reuse-address.The socket option allows for the reuse of local addresses and ports reuse_address: "${CASSANDRA_SOCKET_REUSE_ADDRESS:true}" + # Sets the linger-on-close timeout. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport so_linger: "${CASSANDRA_SOCKET_SO_LINGER:}" + # Enable/Disable Nagle's algorithm tcp_no_delay: "${CASSANDRA_SOCKET_TCP_NO_DELAY:false}" + # Sets a hint to the size of the underlying buffers for incoming network I/O. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport receive_buffer_size: "${CASSANDRA_SOCKET_RECEIVE_BUFFER_SIZE:}" + # Returns the hint to the size of the underlying buffers for outgoing network I/O. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport send_buffer_size: "${CASSANDRA_SOCKET_SEND_BUFFER_SIZE:}" # Cassandra cluster connection query parameters # query: + # Consistency levels in Cassandra can be configured to manage availability versus data accuracy. The consistency level defaults to ONE for all write and read operations read_consistency_level: "${CASSANDRA_READ_CONSISTENCY_LEVEL:ONE}" + # Consistency levels in Cassandra can be configured to manage availability versus data accuracy. The consistency level defaults to ONE for all write and read operations write_consistency_level: "${CASSANDRA_WRITE_CONSISTENCY_LEVEL:ONE}" + # The fetch size specifies how many rows will be returned at once by Cassandra (in other words, it’s the size of each page) default_fetch_size: "${CASSANDRA_DEFAULT_FETCH_SIZE:2000}" # Specify partitioning size for timestamp key-value storage. Example: MINUTES, HOURS, DAYS, MONTHS, INDEFINITE ts_key_value_partitioning: "${TS_KV_PARTITIONING:MONTHS}" + # Enable/Disable timestamp key-value partioning on read queries use_ts_key_value_partitioning_on_read: "${USE_TS_KV_PARTITIONING_ON_READ:true}" + # The number of partitions that are cached in memory of each service. Useful to decrease load of re-inserting same partitions again ts_key_value_partitions_max_cache_size: "${TS_KV_PARTITIONS_MAX_CACHE_SIZE:100000}" + # Timeseries Time To Live (in seconds) for Cassandra Record. 0 - record is never expired ts_key_value_ttl: "${TS_KV_TTL:0}" + # Maximum number of Cassandra queries that are waiting for execution buffer_size: "${CASSANDRA_QUERY_BUFFER_SIZE:200000}" + # Maximum number of concurrent Cassandra queries concurrent_limit: "${CASSANDRA_QUERY_CONCURRENT_LIMIT:1000}" + # Max time in milliseconds query waits for execution permit_max_wait_time: "${PERMIT_MAX_WAIT_TIME:120000}" + # Amount of threads to dispatch cassandra queries dispatcher_threads: "${CASSANDRA_QUERY_DISPATCHER_THREADS:2}" callback_threads: "${CASSANDRA_QUERY_CALLBACK_THREADS:4}" # Buffered rate executor (read, write), for managing I/O rate. See "nosql-*-callback" threads in JMX result_processing_threads: "${CASSANDRA_QUERY_RESULT_PROCESSING_THREADS:50}" # Result set transformer and processing. See "cassandra-callback" threads in JMX + # Cassandra query queue polling interval in milliseconds poll_ms: "${CASSANDRA_QUERY_POLL_MS:50}" + # Interval in milliseconds for printing Cassandra query queue statistic rate_limit_print_interval_ms: "${CASSANDRA_QUERY_RATE_LIMIT_PRINT_MS:10000}" # set all data types values except target to null for the same ts on save set_null_values_enabled: "${CASSANDRA_QUERY_SET_NULL_VALUES_ENABLED:false}" # log one of cassandra queries with specified frequency (0 - logging is disabled) print_queries_freq: "${CASSANDRA_QUERY_PRINT_FREQ:0}" tenant_rate_limits: + # Whether to print rate-limited tenant names when printing Cassandra query queue statistic print_tenant_names: "${CASSANDRA_QUERY_TENANT_RATE_LIMITS_PRINT_TENANT_NAMES:false}" # SQL configuration parameters sql: # Specify batch size for persisting attribute updates attributes: - batch_size: "${SQL_ATTRIBUTES_BATCH_SIZE:10000}" - batch_max_delay: "${SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS:100}" - stats_print_interval_ms: "${SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS:10000}" + batch_size: "${SQL_ATTRIBUTES_BATCH_SIZE:10000}" # Batch size for persisting attribute updates + batch_max_delay: "${SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS:100}" # Max timeout for attributes entries queue polling. Value set in milliseconds + stats_print_interval_ms: "${SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing attributes updates statistic batch_threads: "${SQL_ATTRIBUTES_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution - value_no_xss_validation: "${SQL_ATTRIBUTES_VALUE_NO_XSS_VALIDATION:false}" + value_no_xss_validation: "${SQL_ATTRIBUTES_VALUE_NO_XSS_VALIDATION:false}" # If true attribute values will be checked for XSS vulnerability ts: - batch_size: "${SQL_TS_BATCH_SIZE:10000}" - batch_max_delay: "${SQL_TS_BATCH_MAX_DELAY_MS:100}" - stats_print_interval_ms: "${SQL_TS_BATCH_STATS_PRINT_MS:10000}" + batch_size: "${SQL_TS_BATCH_SIZE:10000}" # Batch size for persisting timeseries inserts + batch_max_delay: "${SQL_TS_BATCH_MAX_DELAY_MS:100}" # Max timeout for time-series entries queue polling. Value set in milliseconds + stats_print_interval_ms: "${SQL_TS_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing timeseries insert statistic batch_threads: "${SQL_TS_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution - value_no_xss_validation: "${SQL_TS_VALUE_NO_XSS_VALIDATION:false}" + value_no_xss_validation: "${SQL_TS_VALUE_NO_XSS_VALIDATION:false}" # If true telemetry values will be checked for XSS vulnerability ts_latest: - batch_size: "${SQL_TS_LATEST_BATCH_SIZE:10000}" - batch_max_delay: "${SQL_TS_LATEST_BATCH_MAX_DELAY_MS:100}" - stats_print_interval_ms: "${SQL_TS_LATEST_BATCH_STATS_PRINT_MS:10000}" + batch_size: "${SQL_TS_LATEST_BATCH_SIZE:10000}" # Batch size for persisting latest telemetry updates + batch_max_delay: "${SQL_TS_LATEST_BATCH_MAX_DELAY_MS:100}" # Maximum timeout for latest telemetry entries queue polling. The value set in milliseconds + stats_print_interval_ms: "${SQL_TS_LATEST_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing latest telemetry updates statistic batch_threads: "${SQL_TS_LATEST_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution - update_by_latest_ts: "${SQL_TS_UPDATE_BY_LATEST_TIMESTAMP:true}" + update_by_latest_ts: "${SQL_TS_UPDATE_BY_LATEST_TIMESTAMP:true}" # Update latest values only if the timestamp of the new record is greater or equals than timestamp of the previously saved latest value. Latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case events: - batch_size: "${SQL_EVENTS_BATCH_SIZE:10000}" - batch_max_delay: "${SQL_EVENTS_BATCH_MAX_DELAY_MS:100}" - stats_print_interval_ms: "${SQL_EVENTS_BATCH_STATS_PRINT_MS:10000}" + batch_size: "${SQL_EVENTS_BATCH_SIZE:10000}" # Batch size for persisting latest telemetry updates + batch_max_delay: "${SQL_EVENTS_BATCH_MAX_DELAY_MS:100}" # Max timeout for latest telemetry entries queue polling. The value set in milliseconds + stats_print_interval_ms: "${SQL_EVENTS_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing latest telemetry updates statistic batch_threads: "${SQL_EVENTS_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution partition_size: "${SQL_EVENTS_REGULAR_PARTITION_SIZE_HOURS:168}" # Number of hours to partition the events. The current value corresponds to one week. debug_partition_size: "${SQL_EVENTS_DEBUG_PARTITION_SIZE_HOURS:1}" # Number of hours to partition the debug events. The current value corresponds to one hour. edge_events: - batch_size: "${SQL_EDGE_EVENTS_BATCH_SIZE:1000}" - batch_max_delay: "${SQL_EDGE_EVENTS_BATCH_MAX_DELAY_MS:100}" - stats_print_interval_ms: "${SQL_EDGE_EVENTS_BATCH_STATS_PRINT_MS:10000}" + batch_size: "${SQL_EDGE_EVENTS_BATCH_SIZE:1000}" # Batch size for persisting latest telemetry updates + batch_max_delay: "${SQL_EDGE_EVENTS_BATCH_MAX_DELAY_MS:100}" # Max timeout for latest telemetry entries queue polling. The value set in milliseconds + stats_print_interval_ms: "${SQL_EDGE_EVENTS_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing latest telemetry updates statistic partition_size: "${SQL_EDGE_EVENTS_PARTITION_SIZE_HOURS:168}" # Number of hours to partition the events. The current value corresponds to one week. audit_logs: partition_size: "${SQL_AUDIT_LOGS_PARTITION_SIZE_HOURS:168}" # Default value - 1 week @@ -309,8 +358,11 @@ sql: remove_null_chars: "${SQL_REMOVE_NULL_CHARS:true}" # Specify whether to log database queries and their parameters generated by entity query repository log_queries: "${SQL_LOG_QUERIES:false}" + # Threshold of slow SQL queries to log. The value set in milliseconds log_queries_threshold: "${SQL_LOG_QUERIES_THRESHOLD:5000}" + # Enable/Disable logging statistic information about tenants log_tenant_stats: "${SQL_LOG_TENANT_STATS:true}" + # Interval in milliseconds for printing latest statistic information about tenant log_tenant_stats_interval_ms: "${SQL_LOG_TENANT_STATS_INTERVAL_MS:60000}" postgres: # Specify partitioning size for timestamp key-value storage. Example: DAYS, MONTHS, YEARS, INDEFINITE. @@ -321,10 +373,12 @@ sql: batch_threads: "${SQL_TIMESCALE_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution ttl: ts: + # The parameter to specify whether to use TTL (Time To Live) for timeseries records enabled: "${SQL_TTL_TS_ENABLED:true}" execution_interval_ms: "${SQL_TTL_TS_EXECUTION_INTERVAL:86400000}" # Number of milliseconds. The current value corresponds to one day ts_key_value_ttl: "${SQL_TTL_TS_TS_KEY_VALUE_TTL:0}" # Number of seconds events: + # The parameter to specify whether to use TTL (Time To Live) for event records enabled: "${SQL_TTL_EVENTS_ENABLED:true}" execution_interval_ms: "${SQL_TTL_EVENTS_EXECUTION_INTERVAL:3600000}" # Number of milliseconds (max random initial delay and fixed period). # Number of seconds. TTL is disabled by default. Accuracy of the cleanup depends on the sql.events.partition_size parameter. @@ -332,21 +386,21 @@ sql: # Number of seconds. The current value corresponds to one week. Accuracy of the cleanup depends on the sql.events.debug_partition_size parameter. debug_events_ttl: "${SQL_TTL_EVENTS_DEBUG_EVENTS_TTL:604800}" edge_events: - enabled: "${SQL_TTL_EDGE_EVENTS_ENABLED:true}" + enabled: "${SQL_TTL_EDGE_EVENTS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for egde event records execution_interval_ms: "${SQL_TTL_EDGE_EVENTS_EXECUTION_INTERVAL:86400000}" # Number of milliseconds. The current value corresponds to one day edge_events_ttl: "${SQL_TTL_EDGE_EVENTS_TTL:2628000}" # Number of seconds. The current value corresponds to one month alarms: checking_interval: "${SQL_ALARMS_TTL_CHECKING_INTERVAL:7200000}" # Number of milliseconds. The current value corresponds to two hours removal_batch_size: "${SQL_ALARMS_TTL_REMOVAL_BATCH_SIZE:3000}" # To delete outdated alarms not all at once but in batches rpc: - enabled: "${SQL_TTL_RPC_ENABLED:true}" + enabled: "${SQL_TTL_RPC_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for rpc call records checking_interval: "${SQL_RPC_TTL_CHECKING_INTERVAL:7200000}" # Number of milliseconds. The current value corresponds to two hours audit_logs: - enabled: "${SQL_TTL_AUDIT_LOGS_ENABLED:true}" + enabled: "${SQL_TTL_AUDIT_LOGS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for audit log records ttl: "${SQL_TTL_AUDIT_LOGS_SECS:0}" # Disabled by default. Accuracy of the cleanup depends on the sql.audit_logs.partition_size checking_interval_ms: "${SQL_TTL_AUDIT_LOGS_CHECKING_INTERVAL_MS:86400000}" # Default value - 1 day notifications: - enabled: "${SQL_TTL_NOTIFICATIONS_ENABLED:true}" + enabled: "${SQL_TTL_NOTIFICATIONS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for notification center records ttl: "${SQL_TTL_NOTIFICATIONS_SECS:2592000}" # Default value - 30 days checking_interval_ms: "${SQL_TTL_NOTIFICATIONS_CHECKING_INTERVAL_MS:86400000}" # Default value - 1 day relations: @@ -357,17 +411,17 @@ sql: # Actor system parameters actors: system: - throughput: "${ACTORS_SYSTEM_THROUGHPUT:5}" - scheduler_pool_size: "${ACTORS_SYSTEM_SCHEDULER_POOL_SIZE:1}" - max_actor_init_attempts: "${ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS:10}" - app_dispatcher_pool_size: "${ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE:1}" - tenant_dispatcher_pool_size: "${ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE:2}" - device_dispatcher_pool_size: "${ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE:4}" - rule_dispatcher_pool_size: "${ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE:4}" + throughput: "${ACTORS_SYSTEM_THROUGHPUT:5}" # Number of messages the actor system will process per actor before switching to processing of messages for next actor + scheduler_pool_size: "${ACTORS_SYSTEM_SCHEDULER_POOL_SIZE:1}" # Thread pool size for actor system scheduler + max_actor_init_attempts: "${ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS:10}" # Maximum number of attempts to init the actor before disabling the actor + app_dispatcher_pool_size: "${ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE:1}" # Thread pool size for main actor system dispatcher + tenant_dispatcher_pool_size: "${ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE:2}" # Thread pool size for actor system dispatcher that process messages for tenant actors + device_dispatcher_pool_size: "${ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE:4}" # Thread pool size for actor system dispatcher that process messages for device actors + rule_dispatcher_pool_size: "${ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE:4}" # Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors tenant: - create_components_on_init: "${ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT:true}" + create_components_on_init: "${ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT:true}" # Create components in initialization session: - max_concurrent_sessions_per_device: "${ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE:1}" + max_concurrent_sessions_per_device: "${ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE:1}" # Max number of concurrent sessions per device sync: # Default timeout for processing request using synchronous session (HTTP, CoAP) in milliseconds timeout: "${ACTORS_SESSION_SYNC_TIMEOUT:10000}" @@ -390,7 +444,9 @@ actors: # Errors for particular actor are persisted once per specified amount of milliseconds error_persist_frequency: "${ACTORS_RULE_CHAIN_ERROR_FREQUENCY:3000}" debug_mode_rate_limits_per_tenant: + # Enable/Disable the rate limit of persisted debug events for all rule nodes per tenant enabled: "${ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_ENABLED:true}" + # The value of DEBUG mode rate limit. By default, no more then 50 thousand events per hour configuration: "${ACTORS_RULE_CHAIN_DEBUG_MODE_RATE_LIMITS_PER_TENANT_CONFIGURATION:50000:3600}" node: # Errors for particular actor are persisted once per specified amount of milliseconds @@ -414,9 +470,12 @@ actors: statistics: # Enable/disable actor statistics enabled: "${ACTORS_STATISTICS_ENABLED:true}" + # Frequency of printing the JS executor statistics js_print_interval_ms: "${ACTORS_JS_STATISTICS_PRINT_INTERVAL_MS:10000}" + # Actors statistic persistence frequency in milliseconds persist_frequency: "${ACTORS_STATISTICS_PERSIST_FREQUENCY:3600000}" +# Cache parameters cache: # caffeine or redis type: "${CACHE_TYPE:caffeine}" @@ -426,113 +485,118 @@ cache: enabled: "${CACHE_ATTRIBUTES_ENABLED:true}" specs: relations: - timeToLiveInMinutes: "${CACHE_SPECS_RELATIONS_TTL:1440}" - maxSize: "${CACHE_SPECS_RELATIONS_MAX_SIZE:10000}" # maxSize: 0 means the cache is disabled + timeToLiveInMinutes: "${CACHE_SPECS_RELATIONS_TTL:1440}" # Relations cache max size + maxSize: "${CACHE_SPECS_RELATIONS_MAX_SIZE:10000}" # 0 means the cache is disabled deviceCredentials: - timeToLiveInMinutes: "${CACHE_SPECS_DEVICE_CREDENTIALS_TTL:1440}" - maxSize: "${CACHE_SPECS_DEVICE_CREDENTIALS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_DEVICE_CREDENTIALS_TTL:1440}" # Device credentials cache TTL + maxSize: "${CACHE_SPECS_DEVICE_CREDENTIALS_MAX_SIZE:10000}" # 0 means the cache is disabled devices: - timeToLiveInMinutes: "${CACHE_SPECS_DEVICES_TTL:1440}" - maxSize: "${CACHE_SPECS_DEVICES_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_DEVICES_TTL:1440}" # Device cache TTL + maxSize: "${CACHE_SPECS_DEVICES_MAX_SIZE:10000}" # 0 means the cache is disabled sessions: - timeToLiveInMinutes: "${CACHE_SPECS_SESSIONS_TTL:1440}" - maxSize: "${CACHE_SPECS_SESSIONS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_SESSIONS_TTL:1440}" # Sessions cache TTL + maxSize: "${CACHE_SPECS_SESSIONS_MAX_SIZE:10000}" # 0 means the cache is disabled assets: - timeToLiveInMinutes: "${CACHE_SPECS_ASSETS_TTL:1440}" - maxSize: "${CACHE_SPECS_ASSETS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_ASSETS_TTL:1440}" # Asset cache TTL + maxSize: "${CACHE_SPECS_ASSETS_MAX_SIZE:10000}" # 0 means the cache is disabled entityViews: - timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_VIEWS_TTL:1440}" - maxSize: "${CACHE_SPECS_ENTITY_VIEWS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_VIEWS_TTL:1440}" # Entity view cache TTL + maxSize: "${CACHE_SPECS_ENTITY_VIEWS_MAX_SIZE:10000}" # 0 means the cache is disabled claimDevices: - timeToLiveInMinutes: "${CACHE_SPECS_CLAIM_DEVICES_TTL:1440}" - maxSize: "${CACHE_SPECS_CLAIM_DEVICES_MAX_SIZE:1000}" + timeToLiveInMinutes: "${CACHE_SPECS_CLAIM_DEVICES_TTL:1440}" # Claim devices cache TTL + maxSize: "${CACHE_SPECS_CLAIM_DEVICES_MAX_SIZE:1000}" # 0 means the cache is disabled securitySettings: - timeToLiveInMinutes: "${CACHE_SPECS_SECURITY_SETTINGS_TTL:1440}" - maxSize: "${CACHE_SPECS_SECURITY_SETTINGS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_SECURITY_SETTINGS_TTL:1440}" # Security settings cache TTL + maxSize: "${CACHE_SPECS_SECURITY_SETTINGS_MAX_SIZE:10000}" # 0 means the cache is disabled tenantProfiles: - timeToLiveInMinutes: "${CACHE_SPECS_TENANT_PROFILES_TTL:1440}" - maxSize: "${CACHE_SPECS_TENANT_PROFILES_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_TENANT_PROFILES_TTL:1440}" # Tenant profiles cache TTL + maxSize: "${CACHE_SPECS_TENANT_PROFILES_MAX_SIZE:10000}" # 0 means the cache is disabled tenants: - timeToLiveInMinutes: "${CACHE_SPECS_TENANTS_TTL:1440}" - maxSize: "${CACHE_SPECS_TENANTS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_TENANTS_TTL:1440}" # Tenant cache TTL + maxSize: "${CACHE_SPECS_TENANTS_MAX_SIZE:10000}" # 0 means the cache is disabled tenantsExist: # environment variables are intentionally the same as in 'tenants' cache to be equal. timeToLiveInMinutes: "${CACHE_SPECS_TENANTS_TTL:1440}" - maxSize: "${CACHE_SPECS_TENANTS_MAX_SIZE:10000}" + maxSize: "${CACHE_SPECS_TENANTS_MAX_SIZE:10000}" # 0 means the cache is disabled deviceProfiles: - timeToLiveInMinutes: "${CACHE_SPECS_DEVICE_PROFILES_TTL:1440}" - maxSize: "${CACHE_SPECS_DEVICE_PROFILES_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_DEVICE_PROFILES_TTL:1440}" # Device profile cache TTL + maxSize: "${CACHE_SPECS_DEVICE_PROFILES_MAX_SIZE:10000}" # 0 means the cache is disabled assetProfiles: - timeToLiveInMinutes: "${CACHE_SPECS_ASSET_PROFILES_TTL:1440}" - maxSize: "${CACHE_SPECS_ASSET_PROFILES_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_ASSET_PROFILES_TTL:1440}" # Asset profile cache TTL + maxSize: "${CACHE_SPECS_ASSET_PROFILES_MAX_SIZE:10000}" # 0 means the cache is disabled notificationSettings: - timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_SETTINGS_TTL:10}" - maxSize: "${CACHE_SPECS_NOTIFICATION_SETTINGS_MAX_SIZE:1000}" + timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_SETTINGS_TTL:10}" # Noification settings cache TTL + maxSize: "${CACHE_SPECS_NOTIFICATION_SETTINGS_MAX_SIZE:1000}" # 0 means the cache is disabled sentNotifications: - timeToLiveInMinutes: "${CACHE_SPECS_SENT_NOTIFICATIONS_TTL:1440}" - maxSize: "${CACHE_SPECS_SENT_NOTIFICATIONS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_SENT_NOTIFICATIONS_TTL:1440}" # Sent notifications cache TTL + maxSize: "${CACHE_SPECS_SENT_NOTIFICATIONS_MAX_SIZE:10000}" # 0 means the cache is disabled attributes: - timeToLiveInMinutes: "${CACHE_SPECS_ATTRIBUTES_TTL:1440}" - maxSize: "${CACHE_SPECS_ATTRIBUTES_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_ATTRIBUTES_TTL:1440}" # Attributes cache TTL + maxSize: "${CACHE_SPECS_ATTRIBUTES_MAX_SIZE:100000}" # 0 means the cache is disabled userSessionsInvalidation: # The value of this TTL is ignored and replaced by JWT refresh token expiration time timeToLiveInMinutes: "0" - maxSize: "${CACHE_SPECS_USERS_UPDATE_TIME_MAX_SIZE:10000}" + maxSize: "${CACHE_SPECS_USERS_UPDATE_TIME_MAX_SIZE:10000}" # 0 means the cache is disabled otaPackages: - timeToLiveInMinutes: "${CACHE_SPECS_OTA_PACKAGES_TTL:60}" - maxSize: "${CACHE_SPECS_OTA_PACKAGES_MAX_SIZE:10}" + timeToLiveInMinutes: "${CACHE_SPECS_OTA_PACKAGES_TTL:60}" # Ota packages cache TTL + maxSize: "${CACHE_SPECS_OTA_PACKAGES_MAX_SIZE:10}" # 0 means the cache is disabled otaPackagesData: - timeToLiveInMinutes: "${CACHE_SPECS_OTA_PACKAGES_DATA_TTL:60}" - maxSize: "${CACHE_SPECS_OTA_PACKAGES_DATA_MAX_SIZE:10}" + timeToLiveInMinutes: "${CACHE_SPECS_OTA_PACKAGES_DATA_TTL:60}" # Ota packages data cache TTL + maxSize: "${CACHE_SPECS_OTA_PACKAGES_DATA_MAX_SIZE:10}" # 0 means the cache is disabled edges: - timeToLiveInMinutes: "${CACHE_SPECS_EDGES_TTL:1440}" - maxSize: "${CACHE_SPECS_EDGES_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_EDGES_TTL:1440}" # Edges cache TTL + maxSize: "${CACHE_SPECS_EDGES_MAX_SIZE:10000}" # 0 means the cache is disabled repositorySettings: - timeToLiveInMinutes: "${CACHE_SPECS_REPOSITORY_SETTINGS_TTL:1440}" - maxSize: "${CACHE_SPECS_REPOSITORY_SETTINGS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_REPOSITORY_SETTINGS_TTL:1440}" # Repository settings cache TTL + maxSize: "${CACHE_SPECS_REPOSITORY_SETTINGS_MAX_SIZE:10000}" # 0 means the cache is disabled autoCommitSettings: - timeToLiveInMinutes: "${CACHE_SPECS_AUTO_COMMIT_SETTINGS_TTL:1440}" - maxSize: "${CACHE_SPECS_AUTO_COMMIT_SETTINGS_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_AUTO_COMMIT_SETTINGS_TTL:1440}" # Autocommit settings cache TTL + maxSize: "${CACHE_SPECS_AUTO_COMMIT_SETTINGS_MAX_SIZE:10000}" # 0 means the cache is disabled twoFaVerificationCodes: - timeToLiveInMinutes: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_TTL:60}" - maxSize: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_TTL:60}" # Two fa carification codes cache TTL + maxSize: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_MAX_SIZE:100000}" # 0 means the cache is disabled versionControlTask: - timeToLiveInMinutes: "${CACHE_SPECS_VERSION_CONTROL_TASK_TTL:20}" - maxSize: "${CACHE_SPECS_VERSION_CONTROL_TASK_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_VERSION_CONTROL_TASK_TTL:20}" # Version control task cache TTL + maxSize: "${CACHE_SPECS_VERSION_CONTROL_TASK_MAX_SIZE:100000}" # 0 means the cache is disabled userSettings: - timeToLiveInMinutes: "${CACHE_SPECS_USER_SETTINGS_TTL:1440}" - maxSize: "${CACHE_SPECS_USER_SETTINGS_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_USER_SETTINGS_TTL:1440}" # User settings cache TTL + maxSize: "${CACHE_SPECS_USER_SETTINGS_MAX_SIZE:100000}" # 0 means the cache is disabled dashboardTitles: - timeToLiveInMinutes: "${CACHE_SPECS_DASHBOARD_TITLES_TTL:1440}" - maxSize: "${CACHE_SPECS_DASHBOARD_TITLES_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_DASHBOARD_TITLES_TTL:1440}" # Dashboard titles cache TTL + maxSize: "${CACHE_SPECS_DASHBOARD_TITLES_MAX_SIZE:100000}" # 0 means the cache is disabled entityCount: - timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_COUNT_TTL:1440}" - maxSize: "${CACHE_SPECS_ENTITY_COUNT_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_ENTITY_COUNT_TTL:1440}" # Entity count cache TTL + maxSize: "${CACHE_SPECS_ENTITY_COUNT_MAX_SIZE:100000}" # 0 means the cache is disabled resourceInfo: - timeToLiveInMinutes: "${CACHE_SPECS_RESOURCE_INFO_TTL:1440}" - maxSize: "${CACHE_SPECS_RESOURCE_INFO_MAX_SIZE:100000}" + timeToLiveInMinutes: "${CACHE_SPECS_RESOURCE_INFO_TTL:1440}" # Resource info cache TTL + maxSize: "${CACHE_SPECS_RESOURCE_INFO_MAX_SIZE:100000}" # 0 means the cache is disabled alarmTypes: - timeToLiveInMinutes: "${CACHE_SPECS_ALARM_TYPES_TTL:60}" - maxSize: "${CACHE_SPECS_ALARM_TYPES_MAX_SIZE:10000}" + timeToLiveInMinutes: "${CACHE_SPECS_ALARM_TYPES_TTL:60}" # Alarm types cache TTL + maxSize: "${CACHE_SPECS_ALARM_TYPES_MAX_SIZE:10000}" # 0 means the cache is disabled # deliberately placed outside 'specs' group above notificationRules: - timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_RULES_TTL:30}" - maxSize: "${CACHE_SPECS_NOTIFICATION_RULES_MAX_SIZE:1000}" + timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_RULES_TTL:30}" # notification rules cache TTL + maxSize: "${CACHE_SPECS_NOTIFICATION_RULES_MAX_SIZE:1000}" # 0 means the cache is disabled rateLimits: - timeToLiveInMinutes: "${CACHE_SPECS_RATE_LIMITS_TTL:120}" - maxSize: "${CACHE_SPECS_RATE_LIMITS_MAX_SIZE:200000}" + timeToLiveInMinutes: "${CACHE_SPECS_RATE_LIMITS_TTL:120}" # Rate limits cache TTL + maxSize: "${CACHE_SPECS_RATE_LIMITS_MAX_SIZE:200000}" # 0 means the cache is disabled -#Disable this because it is not required. -spring.data.redis.repositories.enabled: false +# Spring data properties +spring.data.redis.repositories.enabled: false # Disable this because it is not required. +# Redis configuration properties redis: # standalone or cluster or sentinel connection: + # Redis deployment type: Standalone (single Redis node deployment) OR Cluster type: "${REDIS_CONNECTION_TYPE:standalone}" standalone: + # Redis connection host host: "${REDIS_HOST:localhost}" + # Redis connection port port: "${REDIS_PORT:6379}" + # Use default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" # this value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" @@ -564,31 +628,37 @@ redis: password: "${REDIS_PASSWORD:}" # pool config pool_config: + # Maximum number of connections that can be allocated by the connection pool maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}" + # Maximum number of idle connections that can be maintained in the pool without being closed maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" + # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" + # Enable/Disable PING command send when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" + # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" + # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" + # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" + # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" + # Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" + # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" + # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" # TTL for short-living SET commands that are used to replace DEL in order to enable transaction support evictTtlInMs: "${REDIS_EVICT_TTL_MS:60000}" -# Check new version updates parameters +# Update version properties updates: - # Enable/disable updates checking. + # Enable/disable checks for new version enabled: "${UPDATES_ENABLED:true}" -spring.main.allow-circular-references: "true" - -# spring freemarker configuration -spring.freemarker.checkTemplateLocation: "false" - -# spring CORS configuration +# Spring CORS configuration spring.mvc.cors: mappings: # Intercept path @@ -604,45 +674,49 @@ spring.mvc.cors: #Set whether credentials are supported. When not set, credentials are not supported. allow-credentials: "true" -# The default timeout for asynchronous requests in milliseconds -spring.mvc.async.request-timeout: "${SPRING_MVC_ASYNC_REQUEST_TIMEOUT:30000}" - -# For endpoints matching in Swagger -spring.mvc.pathmatch.matching-strategy: "ANT_PATH_MATCHER" - -# spring serve gzip compressed static resources +# General spring properties +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed or not. +spring.freemarker.checkTemplateLocation: "false" # spring freemarker configuration +spring.mvc.async.request-timeout: "${SPRING_MVC_ASYNC_REQUEST_TIMEOUT:30000}" # The default timeout for asynchronous requests in milliseconds +spring.mvc.pathmatch.matching-strategy: "ANT_PATH_MATCHER" # For endpoints matching in Swagger spring.resources.chain: - compressed: "true" + compressed: "true" # This property enables or disables support for serving pre-compressed resources (for example, a .gzip or .br file) strategy: content: - enabled: "true" + enabled: "true" # This property enables or disables the content Version Strategy. This strategy allows Spring to generate a unique version for static resources, which is based on the content of the resource -spring.servlet.multipart.max-file-size: "50MB" -spring.servlet.multipart.max-request-size: "50MB" +spring.servlet.multipart.max-file-size: "50MB" # Total file size cannot exceed 50MB when configuring file uploads +spring.servlet.multipart.max-request-size: "50MB" # Total request size for a multipart/form-data cannot exceed 50MB -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation: "true" -# Note: as for current Spring JPA version, custom NullHandling for the Sort.Order is ignored and this parameter is used -spring.jpa.properties.hibernate.order_by.default_null_ordering: "${SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING:last}" +spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation: "true" #Fix Postgres JPA Error (Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented) +spring.jpa.properties.hibernate.order_by.default_null_ordering: "${SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING:last}" # Note: as for current Spring JPA version, custom NullHandling for the Sort.Order is ignored and this parameter is used # SQL DAO Configuration spring: data: jpa: repositories: - enabled: "true" + enabled: "true" # Enable/Disable the Spring Data JPA repositories support jpa: properties: - javax.persistence.query.timeout: "${JAVAX_PERSISTENCE_QUERY_TIMEOUT:30000}" - open-in-view: "false" + javax.persistence.query.timeout: "${JAVAX_PERSISTENCE_QUERY_TIMEOUT:30000}" # General timeout for JDBC queries + open-in-view: "false" # Enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning hibernate: + # You can set a Hibernate feature that controls the DDL behavior in a more fine-grained way. The standard Hibernate property values are none, validate, update, create-drop. Spring Boot chooses a default value for you based on whether it thinks your database is embedded (default create-drop) or not (default none) ddl-auto: "none" datasource: + # Database driver for Spring JPA - org.postgresql.Driver driverClassName: "${SPRING_DRIVER_CLASS_NAME:org.postgresql.Driver}" + # Database connection URL url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/thingsboard}" + # Database user name username: "${SPRING_DATASOURCE_USERNAME:postgres}" + # Database user password password: "${SPRING_DATASOURCE_PASSWORD:postgres}" hikari: + # This property controls the amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled leakDetectionThreshold: "${SPRING_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD:0}" + # This property allows the number of connections in the pool to increase as demand increases. At the same time, the property ensures that the pool doesn't grow to the point of exhausting a system's resources, which ultimately affects an application's performance and availability maximumPoolSize: "${SPRING_DATASOURCE_MAXIMUM_POOL_SIZE:16}" registerMbeans: "${SPRING_DATASOURCE_HIKARI_REGISTER_MBEANS:false}" # true - enable MBean to diagnose pools state via JMX @@ -654,21 +728,21 @@ audit-log: # Allowed values: OFF (disable), W (log write operations), RW (log read and write operations) logging-level: mask: - "device": "${AUDIT_LOG_MASK_DEVICE:W}" - "asset": "${AUDIT_LOG_MASK_ASSET:W}" - "dashboard": "${AUDIT_LOG_MASK_DASHBOARD:W}" - "widget_type": "${AUDIT_LOG_MASK_WIDGET_TYPE:W}" - "widgets_bundle": "${AUDIT_LOG_MASK_WIDGETS_BUNDLE:W}" - "customer": "${AUDIT_LOG_MASK_CUSTOMER:W}" - "user": "${AUDIT_LOG_MASK_USER:W}" - "rule_chain": "${AUDIT_LOG_MASK_RULE_CHAIN:W}" - "alarm": "${AUDIT_LOG_MASK_ALARM:W}" - "entity_view": "${AUDIT_LOG_MASK_ENTITY_VIEW:W}" - "device_profile": "${AUDIT_LOG_MASK_DEVICE_PROFILE:W}" - "asset_profile": "${AUDIT_LOG_MASK_ASSET_PROFILE:W}" - "edge": "${AUDIT_LOG_MASK_EDGE:W}" - "tb_resource": "${AUDIT_LOG_MASK_RESOURCE:W}" - "ota_package": "${AUDIT_LOG_MASK_OTA_PACKAGE:W}" + "device": "${AUDIT_LOG_MASK_DEVICE:W}" # Device logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "asset": "${AUDIT_LOG_MASK_ASSET:W}" # Asset logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "dashboard": "${AUDIT_LOG_MASK_DASHBOARD:W}" # Dashboard logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "widget_type": "${AUDIT_LOG_MASK_WIDGET_TYPE:W}" # Widget type logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "widgets_bundle": "${AUDIT_LOG_MASK_WIDGETS_BUNDLE:W}" # Widget bundles logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "customer": "${AUDIT_LOG_MASK_CUSTOMER:W}" # Customer logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "user": "${AUDIT_LOG_MASK_USER:W}" # User logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "rule_chain": "${AUDIT_LOG_MASK_RULE_CHAIN:W}" # Rule chain logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "alarm": "${AUDIT_LOG_MASK_ALARM:W}" # Alarm logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "entity_view": "${AUDIT_LOG_MASK_ENTITY_VIEW:W}" # Entity view logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "device_profile": "${AUDIT_LOG_MASK_DEVICE_PROFILE:W}" # Device profile logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "asset_profile": "${AUDIT_LOG_MASK_ASSET_PROFILE:W}" # Asset profile logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "edge": "${AUDIT_LOG_MASK_EDGE:W}" # Edge logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "tb_resource": "${AUDIT_LOG_MASK_RESOURCE:W}" # TB resource logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation + "ota_package": "${AUDIT_LOG_MASK_OTA_PACKAGE:W}" # Ota package logging levels. Allowed values: OFF (disable), W (log write operations), RW (log read and write operation sink: # Type of external sink. possible options: none, elasticsearch type: "${AUDIT_LOG_SINK_TYPE:none}" @@ -681,25 +755,31 @@ audit-log: # https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html date_format: "${AUDIT_LOG_SINK_DATE_FORMAT:YYYY.MM.dd}" scheme_name: "${AUDIT_LOG_SINK_SCHEME_NAME:http}" # http or https - host: "${AUDIT_LOG_SINK_HOST:localhost}" - port: "${AUDIT_LOG_SINK_PORT:9200}" - user_name: "${AUDIT_LOG_SINK_USER_NAME:}" - password: "${AUDIT_LOG_SINK_PASSWORD:}" + host: "${AUDIT_LOG_SINK_HOST:localhost}" # Host of external sink system + port: "${AUDIT_LOG_SINK_PORT:9200}" # Port of external sink system + user_name: "${AUDIT_LOG_SINK_USER_NAME:}" # Username used to access external sink system + password: "${AUDIT_LOG_SINK_PASSWORD:}" # Password used to access external sink system +# State properties state: - # Should be greater then transport.sessions.report_timeout + # Should be greater than transport.sessions.report_timeout defaultInactivityTimeoutInSec: "${DEFAULT_INACTIVITY_TIMEOUT:600}" - defaultStateCheckIntervalInSec: "${DEFAULT_STATE_CHECK_INTERVAL:60}" + defaultStateCheckIntervalInSec: "${DEFAULT_STATE_CHECK_INTERVAL:60}" # Interval for checking the device state after a specified period of time. Time in seconds # Controls whether we store device 'active' flag in attributes (default) or telemetry. # If you device to change this parameter, you should re-create the device info view as one of the following: # If 'persistToTelemetry' is changed from 'false' to 'true': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;' # If 'persistToTelemetry' is changed from 'true' to 'false': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;' persistToTelemetry: "${PERSIST_STATE_TO_TELEMETRY:false}" +# Tbel properties tbel: + # Enable/Disable TBEL feature. enabled: "${TBEL_ENABLED:true}" + # Limit on the number of arguments that are passed to the function to execute the script max_total_args_size: "${TBEL_MAX_TOTAL_ARGS_SIZE:100000}" + # Maximum allowed symbols in a result after processing a script max_result_size: "${TBEL_MAX_RESULT_SIZE:300000}" + # Maximum allowed symbols in script body max_script_body_size: "${TBEL_MAX_SCRIPT_BODY_SIZE:50000}" # Maximum allowed TBEL script execution memory max_memory_limit_mb: "${TBEL_MAX_MEMORY_LIMIT_MB: 8}" @@ -711,15 +791,23 @@ tbel: max_black_list_duration_sec: "${TBEL_MAX_BLACKLIST_DURATION_SEC:60}" # Specify thread pool size for javascript executor service thread_pool_size: "${TBEL_THREAD_POOL_SIZE:50}" + # Maximum cache size of TBEL compiled scripts compiled_scripts_cache_size: "${TBEL_COMPILED_SCRIPTS_CACHE_SIZE:1000}" stats: + # Enable/Disable stats collection for TBEL engine enabled: "${TB_TBEL_STATS_ENABLED:false}" + # Interval of logging for TBEL stats print_interval_ms: "${TB_TBEL_STATS_PRINT_INTERVAL_MS:10000}" +# JS properties js: - evaluator: "${JS_EVALUATOR:local}" # local/remote + # local (Nashorn Engine, deprecated) OR remote JS-Executors (NodeJS) + evaluator: "${JS_EVALUATOR:local}" + # Limit on the number of arguments that are passed to the function to execute the script max_total_args_size: "${JS_MAX_TOTAL_ARGS_SIZE:100000}" + # Maximum allowed symbols in a result after processing a script max_result_size: "${JS_MAX_RESULT_SIZE:300000}" + # Maximum allowed symbols in script body max_script_body_size: "${JS_MAX_SCRIPT_BODY_SIZE:50000}" # Built-in JVM JavaScript environment properties local: @@ -738,7 +826,9 @@ js: # Maximum time in seconds for black listed function to stay in the list. max_black_list_duration_sec: "${LOCAL_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC:60}" stats: + # Enable/Disable stats collection for local JS executor enabled: "${TB_JS_LOCAL_STATS_ENABLED:false}" + # Interval of logging for local JS executor stats print_interval_ms: "${TB_JS_LOCAL_STATS_PRINT_INTERVAL_MS:10000}" # Remote JavaScript environment properties remote: @@ -749,12 +839,17 @@ js: # Maximum time in seconds for black listed function to stay in the list. max_black_list_duration_sec: "${REMOTE_JS_SANDBOX_MAX_BLACKLIST_DURATION_SEC:60}" stats: + # Enable/Disable stats collection for remote JS executor enabled: "${TB_JS_REMOTE_STATS_ENABLED:false}" + # Interval of logging for remote JS executor stats print_interval_ms: "${TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS:10000}" +# Transport configuration properties transport: sessions: + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" + # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" json: # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON @@ -762,11 +857,14 @@ transport: # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" client_side_rpc: + # Processing timeout interval of the RPC command on the CLIENT SIDE. Time in milliseconds timeout: "${CLIENT_SIDE_RPC_TIMEOUT:60000}" # Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) api_enabled: "${TB_TRANSPORT_API_ENABLED:true}" log: + # Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update enabled: "${TB_TRANSPORT_LOG_ENABLED:true}" + # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" rate_limits: # Enable or disable generic rate limits. Device and Tenant specific rate limits are controlled in Tenant Profile. @@ -777,25 +875,36 @@ transport: ip_block_timeout: "${TB_TRANSPORT_IP_BLOCK_TIMEOUT:60000}" # Local HTTP transport parameters http: + # Enable/Disable local HTTP transport protocol enabled: "${HTTP_ENABLED:true}" + # HTTP request processing timeout in milliseconds request_timeout: "${HTTP_REQUEST_TIMEOUT:60000}" + # HTTP maximum request processing timeout in milliseconds max_request_timeout: "${HTTP_MAX_REQUEST_TIMEOUT:300000}" # Local MQTT transport parameters mqtt: # Enable/disable mqtt transport protocol. enabled: "${MQTT_ENABLED:true}" + # MQTT bind address bind_address: "${MQTT_BIND_ADDRESS:0.0.0.0}" + # MQTT bind port bind_port: "${MQTT_BIND_PORT:1883}" # Enable proxy protocol support. Disabled by default. If enabled, supports both v1 and v2. # Useful to get the real IP address of the client in the logs and for rate limits. proxy_enabled: "${MQTT_PROXY_PROTOCOL_ENABLED:false}" + # MQTT processing timeout in milliseconds timeout: "${MQTT_TIMEOUT:10000}" msg_queue_size_per_device_limit: "${MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT:100}" # messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism netty: + # Netty leak detector level leak_detector_level: "${NETTY_LEAK_DETECTOR_LVL:DISABLED}" + # Netty BOSS threads count boss_group_thread_count: "${NETTY_BOSS_GROUP_THREADS:1}" + # Netty worker threads count worker_group_thread_count: "${NETTY_WORKER_GROUP_THREADS:12}" + # Max payload size in bytes max_payload_size: "${NETTY_MAX_PAYLOAD_SIZE:65536}" + # Enables TCP keepalive. This means that TCP starts sending keepalive probes when a connection is idle for some time so_keep_alive: "${NETTY_SO_KEEPALIVE:false}" # MQTT SSL configuration ssl: @@ -837,11 +946,17 @@ transport: coap: # Enable/disable coap transport protocol. enabled: "${COAP_ENABLED:true}" + # CoAP bind address bind_address: "${COAP_BIND_ADDRESS:0.0.0.0}" + # CoAP bind port bind_port: "${COAP_BIND_PORT:5683}" + # CoaP processing timeout in milliseconds timeout: "${COAP_TIMEOUT:10000}" + # CoaP piggyback response timeout in milliseconds piggyback_timeout: "${COAP_PIGGYBACK_TIMEOUT:500}" + # Default PSM Activity Timer if not specified in device profile psm_activity_timer: "${COAP_PSM_ACTIVITY_TIMER:10000}" + # Default PSM Activity Timer if not specified in device profile paging_transmission_window: "${COAP_PAGING_TRANSMISSION_WINDOW:10000}" dtls: # Enable/disable DTLS 1.2 support @@ -879,7 +994,9 @@ transport: x509: # Skip certificate validity check for client certificates. skip_validity_check_for_client_cert: "${TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" + # Inactivity timeout of DTLS session. Used to cleanup cache dtls_session_inactivity_timeout: "${TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT:86400000}" + # Interval of periodic eviction of the timed-out DTLS sessions dtls_session_report_timeout: "${TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT:1800000}" # Local LwM2M transport parameters lwm2m: @@ -889,11 +1006,16 @@ transport: # RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000 retransmission_timeout: "${LWM2M_DTLS_RETRANSMISSION_TIMEOUT_MS:9000}" server: + # LwM2M Server ID id: "${LWM2M_SERVER_ID:123}" + # LwM2M server bind address. Bind to all interfaces by default bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}" + # LwM2M server bind port bind_port: "${LWM2M_BIND_PORT:5685}" security: + # LwM2M server bind address for DTLS. Bind to all interfaces by default bind_address: "${LWM2M_SECURITY_BIND_ADDRESS:0.0.0.0}" + # LwM2M server bind port for DTLS bind_port: "${LWM2M_SECURITY_BIND_PORT:5686}" # Server X509 Certificates support credentials: @@ -924,12 +1046,18 @@ transport: # Only Certificate_x509: skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" bootstrap: + # Enable/disable Bootstrap Server enabled: "${LWM2M_ENABLED_BS:true}" + # Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) id: "${LWM2M_SERVER_ID_BS:111}" + # LwM2M bootstrap server bind address. Bind to all interfaces by default bind_address: "${LWM2M_BS_BIND_ADDRESS:0.0.0.0}" + # LwM2M bootstrap server bind port bind_port: "${LWM2M_BS_BIND_PORT:5687}" security: + # LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default bind_address: "${LWM2M_BS_SECURITY_BIND_ADDRESS:0.0.0.0}" + # LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default bind_port: "${LWM2M_BS_SECURITY_BIND_PORT:5688}" # Bootstrap server X509 Certificates support credentials: @@ -976,103 +1104,167 @@ transport: store_file: "${LWM2M_TRUST_KEY_STORE:lwm2mtruststorechain.jks}" # Password used to access the key store store_password: "${LWM2M_TRUST_KEY_STORE_PASSWORD:server_ks_password}" + # Set usage of recommended cipher suites; true - allow only recommended cipher suites; false - allow not recommended cipher suites recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}" + # Set usage of recommended supported groups (curves); true - allow only recommended supported groups, false - allow not recommended supported groups recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}" + # Timeout of LwM2M operation timeout: "${LWM2M_TIMEOUT:120000}" + # Thread pool size for processing of the LwM2M uplinks uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}" + # Thread pool size for processing of the LwM2M downlinks downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}" + # Thread pool size for processing of the OTA updates ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}" + # Period of cleanup for the registrations in store clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}" + # Maximum log size log_max_length: "${LWM2M_LOG_MAX_LENGTH:1024}" + # PSM Activity Timer if not specified in device profile psm_activity_timer: "${LWM2M_PSM_ACTIVITY_TIMER:10000}" + # Paging Transmission Window for eDRX support if not specified in the device profile paging_transmission_window: "${LWM2M_PAGING_TRANSMISSION_WINDOW:10000}" network_config: # In this section you can specify custom parameters for LwM2M network configuration and expose the env variables to configure outside # - key: "PROTOCOL_STAGE_THREAD_COUNT" # value: "${LWM2M_PROTOCOL_STAGE_THREAD_COUNT:4}" snmp: + # Enable/disable SNMP transport protocol enabled: "${SNMP_ENABLED:true}" + # Snmp bind port bind_port: "${SNMP_BIND_PORT:1620}" response_processing: # parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices parallelism_level: "${SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL:20}" # to configure SNMP to work over UDP or TCP underlying_protocol: "${SNMP_UNDERLYING_PROTOCOL:udp}" + # Batch size to request OID mappings from device (useful when device profile has multiple hundreds of OID mappings) max_request_oids: "${SNMP_MAX_REQUEST_OIDS:100}" response: + # To ignore SNMP response values that do not match data type of the configured OID mapping (by default false - will throw error if any value of the response not matches configured data types) ignore_type_cast_errors: "${SNMP_RESPONSE_IGNORE_TYPE_CAST_ERRORS:false}" stats: + # Enable/Disable collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" + # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" # Device connectivity properties to publish telemetry device: connectivity: http: + # If true check-connectivity service will include curl command to the list of all test commands using DEVICE_CONNECTIVITY_HTTP_HOST and DEVICE_CONNECTIVITY_HTTP_PORT variables enabled: "${DEVICE_CONNECTIVITY_HTTP_ENABLED:true}" + # Host of http transport service. If empty base url will be used. host: "${DEVICE_CONNECTIVITY_HTTP_HOST:}" + # Port of http transport service. If empty default http port will be used. port: "${DEVICE_CONNECTIVITY_HTTP_PORT:8080}" https: + # If true check-connectivity service will include curl command to the list of all test commands using DEVICE_CONNECTIVITY_HTTPS_HOST and DEVICE_CONNECTIVITY_HTTPS_PORT variables enabled: "${DEVICE_CONNECTIVITY_HTTPS_ENABLED:false}" + # Host of http transport service. If empty base url will be used. host: "${DEVICE_CONNECTIVITY_HTTPS_HOST:}" + # Port of http transport service. If empty default https port will be used. port: "${DEVICE_CONNECTIVITY_HTTPS_PORT:443}" mqtt: + # If true mosquito command will be included to the list of all test commands using DEVICE_CONNECTIVITY_MQTT_HOST and DEVICE_CONNECTIVITY_MQTT_PORT enabled: "${DEVICE_CONNECTIVITY_MQTT_ENABLED:true}" + # Host of mqtt transport service. If empty base url host will be used. host: "${DEVICE_CONNECTIVITY_MQTT_HOST:}" + # Port of mqtt transport service port: "${DEVICE_CONNECTIVITY_MQTT_PORT:1883}" mqtts: + # If true mosquito command will be included to the list of all test commands using DEVICE_CONNECTIVITY_MQTTS_HOST and DEVICE_CONNECTIVITY_MQTTS_PORT< enabled: "${DEVICE_CONNECTIVITY_MQTTS_ENABLED:false}" + # Host of mqtt transport service. If empty base url host will be used. host: "${DEVICE_CONNECTIVITY_MQTTS_HOST:}" + # Port of mqtt transport service. If empty default port for mqtts will be used. port: "${DEVICE_CONNECTIVITY_MQTTS_PORT:8883}" + # Path to the server certificate file pem_cert_file: "${DEVICE_CONNECTIVITY_MQTT_SSL_PEM_CERT:mqttserver.pem}" coap: + # If true coap command will be included to the list of all test commands using DEVICE_CONNECTIVITY_COAP_HOST and DEVICE_CONNECTIVITY_COAP_PORT. enabled: "${DEVICE_CONNECTIVITY_COAP_ENABLED:true}" + # Host of coap transport service. If empty base url host will be used. host: "${DEVICE_CONNECTIVITY_COAP_HOST:}" + # Port of coap transport service. If empty default port for coap will be used. port: "${DEVICE_CONNECTIVITY_COAP_PORT:5683}" coaps: + # If true coap command will be included to the list of all test commands using DEVICE_CONNECTIVITY_COAPS_HOST and DEVICE_CONNECTIVITY_COAPS_PORT. enabled: "${DEVICE_CONNECTIVITY_COAPS_ENABLED:false}" + # Host of coap transport service. If empty base url host will be used. host: "${DEVICE_CONNECTIVITY_COAPS_HOST:}" + # Port of coap transport service. If empty default port for coaps will be used. port: "${DEVICE_CONNECTIVITY_COAPS_PORT:5684}" # Edges parameters edges: + # Enable/disable Edge instance enabled: "${EDGES_ENABLED:true}" rpc: + # RPC port bind port: "${EDGES_RPC_PORT:7070}" + # Maximum time of keep alive client RPC connection. Time in seconds client_max_keep_alive_time_sec: "${EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC:1}" + # Maximum time of keep alive connection. Time in seconds keep_alive_time_sec: "${EDGES_RPC_KEEP_ALIVE_TIME_SEC:10}" + # Timeout of keep alive RPC connection. Time in seconds keep_alive_timeout_sec: "${EDGES_RPC_KEEP_ALIVE_TIMEOUT_SEC:5}" ssl: # Enable/disable SSL support enabled: "${EDGES_RPC_SSL_ENABLED:false}" + # Cert file to be used during TLS connectivity to cloud cert: "${EDGES_RPC_SSL_CERT:certChainFile.pem}" + # Private key file associated with the Cert certificate. This key is used in the encryption process during a secure connection private_key: "${EDGES_RPC_SSL_PRIVATE_KEY:privateKeyFile.pem}" + # Maximum size (in bytes) of inbound messages that cloud can handle from edge. By default, it can handle messages up to 4 Megabytes max_inbound_message_size: "${EDGES_RPC_MAX_INBOUND_MESSAGE_SIZE:4194304}" storage: + # Max records of edge event to read from DB and sent to edge max_read_records_count: "${EDGES_STORAGE_MAX_READ_RECORDS_COUNT:50}" + # Number of milliseconds to wait before next check of edge events in DB no_read_records_sleep: "${EDGES_NO_READ_RECORDS_SLEEP:1000}" + # Number of milliseconds to wait before resend failed batch of edge events to edge sleep_between_batches: "${EDGES_SLEEP_BETWEEN_BATCHES:10000}" + # Number of threads that used to check DB for edge events scheduler_pool_size: "${EDGES_SCHEDULER_POOL_SIZE:1}" + # Number of threads that used to send downlink messages to edge over gRPC send_scheduler_pool_size: "${EDGES_SEND_SCHEDULER_POOL_SIZE:1}" + # Number of threads that used to convert edge events from DB into downlink message and send them for delivery grpc_callback_thread_pool_size: "${EDGES_GRPC_CALLBACK_POOL_SIZE:1}" state: + # Persist state of edge (active, last connect, last disconnect) into timeseries or attributes tables. 'false' means to store edge state into attributes table persistToTelemetry: "${EDGES_PERSIST_STATE_TO_TELEMETRY:false}" +# Swagger common properties swagger: + # If false swagger api docs will be unavailable enabled: "${SWAGGER_ENABLED:true}" + # General swagger match pattern of swaggerUI links api_path_regex: "${SWAGGER_API_PATH_REGEX:/api/.*}" + # General swagger match pattern path of swaggerUI links security_path_regex: "${SWAGGER_SECURITY_PATH_REGEX:/api/.*}" + # Non security API path match pattern of swaggerUI links non_security_path_regex: "${SWAGGER_NON_SECURITY_PATH_REGEX:/api/(?:noauth|v1)/.*}" + # The title on the API doc UI page title: "${SWAGGER_TITLE:ThingsBoard REST API}" + # The description on the API doc UI page description: "${SWAGGER_DESCRIPTION: ThingsBoard open-source IoT platform REST API documentation.}" contact: + # The contact name on the API doc UI page name: "${SWAGGER_CONTACT_NAME:ThingsBoard team}" + # The contact URL on the API doc UI page url: "${SWAGGER_CONTACT_URL:https://thingsboard.io}" + # The contact email on the API doc UI page email: "${SWAGGER_CONTACT_EMAIL:info@thingsboard.io}" license: + # The license title on the API doc UI page title: "${SWAGGER_LICENSE_TITLE:Apache License Version 2.0}" + # Link to the license body on the API doc UI page url: "${SWAGGER_LICENSE_URL:https://github.com/thingsboard/thingsboard/blob/master/LICENSE}" + # The version of the API doc to display. Default to the package version. version: "${SWAGGER_VERSION:}" +# Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:in-memory}" # in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) in_memory: @@ -1080,44 +1272,73 @@ queue: # For debug lvl print-interval-ms: "${TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS:60000}" kafka: + # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: + # Enable/Disable SSL Kafka communication enabled: "${TB_KAFKA_SSL_ENABLED:false}" + # The location of the trust store file truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" + # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" + # The location of the key store file. This is optional for client and can be used for two-way authentication for client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" + # The store password for the key store file. This is optional for client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" + # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all acks: "${TB_KAFKA_ACKS:all}" + # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" + # The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values none or gzip compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip + # Default batch size. This setting gives the upper bound of the batch size to be sent batch.size: "${TB_KAFKA_BATCH_SIZE:16384}" + # This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record linger.ms: "${TB_KAFKA_LINGER_MS:1}" + # The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}" + # The maximum number of unacknowledged requests the client will send on a single connection before blocking max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}" + # The total bytes of memory the producer can use to buffer records waiting to be sent to the server buffer.memory: "${TB_BUFFER_MEMORY:33554432}" + # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" + # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" + # The maximum number of records returned in a single call to poll() max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" + # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" + # The maximum amount of data the server will return. Records are fetched in batches by the consumer fetch_max_bytes: "${TB_QUEUE_KAFKA_FETCH_MAX_BYTES:134217728}" request.timeout.ms: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms session.timeout.ms: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms auto_offset_reset: "${TB_QUEUE_KAFKA_AUTO_OFFSET_RESET:earliest}" # earliest, latest or none + # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: + # The endpoint identification algorithm used by clients to validate server host name. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" + # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" + # Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" # Key-value properties for Kafka consumer per specific topic, e.g. tb_ota_package is a topic name for ota, tb_rule_engine.sq is a topic name for default SequentialByOriginator queue. # Check TB_QUEUE_CORE_OTA_TOPIC and TB_QUEUE_RE_SQ_TOPIC params consumer-properties-per-topic: tb_ota_package: + # Key-value properties for Kafka consumer per specific topic, e.g. tb_ota_package is a topic name for ota, tb_rule_engine.sq is a topic name for default SequentialByOriginator queue. Check TB_QUEUE_CORE_OTA_TOPIC and TB_QUEUE_RE_SQ_TOPIC params - key: max.poll.records + # Example of specific consumer properties value per topic value: "${TB_QUEUE_KAFKA_OTA_MAX_POLL_RECORDS:10}" tb_version_control: + # Example of specific consumer properties value per topic for VC - key: max.poll.interval.ms + # Example of specific consumer properties value per topic for VC value: "${TB_QUEUE_KAFKA_VC_MAX_POLL_INTERVAL_MS:600000}" # tb_rule_engine.sq: # - key: max.poll.records @@ -1129,102 +1350,182 @@ queue: # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms # value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) topic-properties: + # Kafka properties for Rule Engine rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Core topics core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Transport Api topics transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Notifications topics notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for JS Executor topics js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}" + # Kafka properties for OTA updates topic ota-updates: "${TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Version Control topic version-control: "${TB_QUEUE_KAFKA_VC_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" consumer-stats: + # Prints lag between consumer group offset and last messages offset in Kafka topics enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}" + # Statistics printing interval for Kafka's consumer-groups stats print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}" + # Time to wait for the stats-loading requests to Kafka to finis kafka-response-timeout-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS:1000}" aws_sqs: + # Use default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" + # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" + # Secret access key from AWS IAM user secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}" + # Region from AWS account region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}" + # Number of threads per each AWS SQS queue in consumer threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}" queue-properties: + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800 js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds ota-updates: "${TB_QUEUE_AWS_SQS_OTA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds version-control: "${TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: + # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + # API Credentials in JSON format service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" - max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes + # Message size for PubSub queue.Value in bytes + max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consume again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consume again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # PubSub queue properties js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again version-control: "${TB_QUEUE_PUBSUB_VC_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: + # Azure namespace namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}" + # Azure Service Bus Shared Access Signatures key name sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}" + # Azure Service Bus Shared Access Signatures key sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}" queue-properties: + # Azure Service Bus properties for Rule Engine queues rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Core queues core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Transport Api queues transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Notification queues notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus queue properties js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Version Control queues version-control: "${TB_QUEUE_SERVICE_BUS_VC_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" rabbitmq: + # By default empty exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" + # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" + # RabbitMQ host used to establish connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" + # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" + # Username for RabbitMQ user account username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}" + # User password for RabbitMQ user account password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}" + # Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}" + # The connection timeout for the RabbitMQ connection factory connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}" + # RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}" queue-properties: + # RabbitMQ properties for Rule Engine queues rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Core queues core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Transport API queues transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Notification queues notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ queue properties js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Version Control queues version-control: "${TB_QUEUE_RABBIT_MQ_VC_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" partitions: hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 transport_api: + # Topic used to consume api requests from transport microservices requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}" + # Topic used to produce api responses to transport microservices responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}" + # Maximum pending api requests from transport microservices to be handled by server max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}" + # Maximum timeout in milliseconds to handle api request from transport microservice by server max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}" + # Amount of threads used to invoke callbacks max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}" + # Interval in milliseconds to poll api requests from transport microservices request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}" + # Interval in milliseconds to poll api response from transport microservices response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}" core: + # Default topic name of Kafka, RabbitMQ, etc. queue topic: "${TB_QUEUE_CORE_TOPIC:tb_core}" + # Interval in milliseconds to poll messages by Core microservices poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" + # Amount of partitions used by Core microservices partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" + # Timeout for processing a message pack by Core microservices pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:2000}" ota: + # Default topic name for OTA updates topic: "${TB_QUEUE_CORE_OTA_TOPIC:tb_ota_package}" + # The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates pack-interval-ms: "${TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS:60000}" + # The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids pack-size: "${TB_QUEUE_CORE_OTA_PACK_SIZE:100}" + # Default topic name for queue Kafka, RabbitMQ, etc. usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" stats: + # Enable/disable statistics for Core microservices enabled: "${TB_QUEUE_CORE_STATS_ENABLED:true}" + # Statistics printing interval for Core microservices print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:60000}" vc: + # Default topic name for Kafka, RabbitMQ, etc. topic: "${TB_QUEUE_VC_TOPIC:tb_version_control}" + # Number of partitions to associate with this queue. Used for scaling the number of messages that can be processed in parallel partitions: "${TB_QUEUE_VC_PARTITIONS:10}" + # Interval in milliseconds between polling of the messages if no new messages arrive poll-interval: "${TB_QUEUE_VC_INTERVAL_MS:25}" + # Timeout before retry all failed and timed-out messages from processing pack pack-processing-timeout: "${TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS:180000}" + # Timeout for a request to VC-executor (for a request for the version of the entity, for a commit charge, etc.) request-timeout: "${TB_QUEUE_VC_REQUEST_TIMEOUT:180000}" + # Queue settings for Kafka, RabbitMQ, etc. Limit for single message size msg-chunk-size: "${TB_QUEUE_VC_MSG_CHUNK_SIZE:250000}" js: # JS Eval request topic @@ -1242,19 +1543,24 @@ queue: # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" rule-engine: + # Deprecated. Will be removed in nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" + # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" + # Timeout for processing a message pack of Rule Engine pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:2000}" stats: + # Enable/disable statistics for Rule Engine enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" + # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" queues: - - name: "${TB_QUEUE_RE_MAIN_QUEUE_NAME:Main}" - topic: "${TB_QUEUE_RE_MAIN_TOPIC:tb_rule_engine.main}" - poll-interval: "${TB_QUEUE_RE_MAIN_POLL_INTERVAL_MS:25}" - partitions: "${TB_QUEUE_RE_MAIN_PARTITIONS:10}" - consumer-per-partition: "${TB_QUEUE_RE_MAIN_CONSUMER_PER_PARTITION:true}" - pack-processing-timeout: "${TB_QUEUE_RE_MAIN_PACK_PROCESSING_TIMEOUT_MS:2000}" + - name: "${TB_QUEUE_RE_MAIN_QUEUE_NAME:Main}" # queue name + topic: "${TB_QUEUE_RE_MAIN_TOPIC:tb_rule_engine.main}" # queue topic + poll-interval: "${TB_QUEUE_RE_MAIN_POLL_INTERVAL_MS:25}" # poll interval + partitions: "${TB_QUEUE_RE_MAIN_PARTITIONS:10}" # number queue partitions + consumer-per-partition: "${TB_QUEUE_RE_MAIN_CONSUMER_PER_PARTITION:true}" # if true - use for each customer different partition + pack-processing-timeout: "${TB_QUEUE_RE_MAIN_PACK_PROCESSING_TIMEOUT_MS:2000}" # Timeout for processing a message pack submit-strategy: type: "${TB_QUEUE_RE_MAIN_SUBMIT_STRATEGY_TYPE:BURST}" # BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_BY_TENANT, SEQUENTIAL # For BATCH only @@ -1266,12 +1572,12 @@ queue: failure-percentage: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less then X percentage of messages; pause-between-retries: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRY_PAUSE:3}" # Time in seconds to wait in consumer thread before retries; max-pause-between-retries: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_MAX_RETRY_PAUSE:3}" # Max allowed time in seconds for pause between retries. - - name: "${TB_QUEUE_RE_HP_QUEUE_NAME:HighPriority}" - topic: "${TB_QUEUE_RE_HP_TOPIC:tb_rule_engine.hp}" - poll-interval: "${TB_QUEUE_RE_HP_POLL_INTERVAL_MS:25}" - partitions: "${TB_QUEUE_RE_HP_PARTITIONS:10}" - consumer-per-partition: "${TB_QUEUE_RE_HP_CONSUMER_PER_PARTITION:true}" - pack-processing-timeout: "${TB_QUEUE_RE_HP_PACK_PROCESSING_TIMEOUT_MS:2000}" + - name: "${TB_QUEUE_RE_HP_QUEUE_NAME:HighPriority}" # queue name + topic: "${TB_QUEUE_RE_HP_TOPIC:tb_rule_engine.hp}" # queue topic + poll-interval: "${TB_QUEUE_RE_HP_POLL_INTERVAL_MS:25}" # poll interval + partitions: "${TB_QUEUE_RE_HP_PARTITIONS:10}" # number queue partitions + consumer-per-partition: "${TB_QUEUE_RE_HP_CONSUMER_PER_PARTITION:true}" # if true - use for each customer different partition + pack-processing-timeout: "${TB_QUEUE_RE_HP_PACK_PROCESSING_TIMEOUT_MS:2000}" # Timeout for processing a message pack submit-strategy: type: "${TB_QUEUE_RE_HP_SUBMIT_STRATEGY_TYPE:BURST}" # BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_BY_TENANT, SEQUENTIAL # For BATCH only @@ -1283,12 +1589,12 @@ queue: failure-percentage: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less then X percentage of messages; pause-between-retries: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRY_PAUSE:5}" # Time in seconds to wait in consumer thread before retries; max-pause-between-retries: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_MAX_RETRY_PAUSE:5}" # Max allowed time in seconds for pause between retries. - - name: "${TB_QUEUE_RE_SQ_QUEUE_NAME:SequentialByOriginator}" - topic: "${TB_QUEUE_RE_SQ_TOPIC:tb_rule_engine.sq}" - poll-interval: "${TB_QUEUE_RE_SQ_POLL_INTERVAL_MS:25}" - partitions: "${TB_QUEUE_RE_SQ_PARTITIONS:10}" - consumer-per-partition: "${TB_QUEUE_RE_SQ_CONSUMER_PER_PARTITION:true}" - pack-processing-timeout: "${TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS:2000}" + - name: "${TB_QUEUE_RE_SQ_QUEUE_NAME:SequentialByOriginator}" # queue name + topic: "${TB_QUEUE_RE_SQ_TOPIC:tb_rule_engine.sq}" # queue topic + poll-interval: "${TB_QUEUE_RE_SQ_POLL_INTERVAL_MS:25}" # poll interval + partitions: "${TB_QUEUE_RE_SQ_PARTITIONS:10}" # number queue partitions + consumer-per-partition: "${TB_QUEUE_RE_SQ_CONSUMER_PER_PARTITION:true}" # if true - use for each customer different partition + pack-processing-timeout: "${TB_QUEUE_RE_SQ_PACK_PROCESSING_TIMEOUT_MS:2000}" # Timeout for processing a message pack submit-strategy: type: "${TB_QUEUE_RE_SQ_SUBMIT_STRATEGY_TYPE:SEQUENTIAL_BY_ORIGINATOR}" # BURST, BATCH, SEQUENTIAL_BY_ORIGINATOR, SEQUENTIAL_BY_TENANT, SEQUENTIAL # For BATCH only @@ -1305,12 +1611,16 @@ queue: transport: # For high priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" + # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" +# Event configuration parameters event: debug: + # Maximum number of symbols per debug event. The event content will be truncated if needed max-symbols: "${TB_MAX_DEBUG_EVENT_SYMBOLS:4096}" +# General service parameters service: type: "${TB_SERVICE_TYPE:monolith}" # monolith or tb-core or tb-rule-engine # Unique id for this service (autogenerated if empty) @@ -1320,6 +1630,7 @@ service: # This Rule Engine will only be responsible for tenants with these profiles (in case 'isolation' option is enabled in profile). assigned_tenant_profiles: "${TB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES:}" +# Metrics parameters metrics: # Enable/disable actuator metrics. enabled: "${METRICS_ENABLED:false}" @@ -1327,24 +1638,28 @@ metrics: # Metrics percentiles returned by actuator for timer metrics. List of double values (divided by ,). percentiles: "${METRICS_TIMER_PERCENTILES:0.5}" +# Version control parameters vc: # Pool size for handling export tasks thread_pool_size: "${TB_VC_POOL_SIZE:2}" git: # Pool size for handling the git IO operations io_pool_size: "${TB_VC_GIT_POOL_SIZE:3}" + # Default storing repository path repositories-folder: "${TB_VC_GIT_REPOSITORIES_FOLDER:${java.io.tmpdir}/repositories}" +# Notification system parameters notification_system: + # Specify thread pool size for Notification System processing notification rules and notification sending. Recommend value < =10 thread_pool_size: "${TB_NOTIFICATION_SYSTEM_THREAD_POOL_SIZE:10}" rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' deduplication_durations: "${TB_NOTIFICATION_RULES_DEDUPLICATION_DURATIONS:NEW_PLATFORM_VERSION:0;RATE_LIMITS:14400000;}" +# General management parameters management: endpoints: web: exposure: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). - include: '${METRICS_ENDPOINTS_EXPOSE:info}' - + include: '${METRICS_ENDPOINTS_EXPOSE:info}' \ No newline at end of file diff --git a/pull_request_template.md b/pull_request_template.md index f65aa0a1f3..584ee6f4fc 100644 --- a/pull_request_template.md +++ b/pull_request_template.md @@ -26,6 +26,7 @@ Put your PR description here instead of this sentence. - [ ] If new dependency was added: the dependency tree is checked for conflicts. - [ ] If new service was added: the service is marked with corresponding @TbCoreComponent, @TbRuleEngineComponent, @TbTransportComponent, etc. - [ ] If new REST API was added: the RestClient.java was updated, issue for [Python REST client](https://github.com/thingsboard/thingsboard-python-rest-client) is created. +- [ ] If new yml property was added: make sure a description is added (above or near the property). diff --git a/tools/src/main/python/check_yml_file.py b/tools/src/main/python/check_yml_file.py new file mode 100644 index 0000000000..2c65876f70 --- /dev/null +++ b/tools/src/main/python/check_yml_file.py @@ -0,0 +1,105 @@ +import sys +import re + +def extract_properties_with_comments(yaml_file_path): + properties = {} + + with open(yaml_file_path, 'r') as file: + lines = file.readlines() + index = 0 + key_level_map = {0 : ''} + parse_line('', '', key_level_map, 0, index, lines, properties) + + return properties + + +def parse_line(table_name, comment, key_level_map, parent_line_level, index, lines, properties): + if index >= len(lines): + return + line = lines[index] + line_level = (len(line) - len(line.lstrip())) if line.strip() else 0 + if line_level == 0: + key_level_map = {0 : ''} + line = line.strip() + # if line is empty - parse next line + if not line: + index = index + 1 + parse_line(table_name, comment, key_level_map, line_level, index, lines, properties) + # if line is a comment - save comment and parse next line + elif line.startswith('#'): + if line_level == 0: + table_name = line.lstrip('#') + elif line_level == parent_line_level: + comment = comment + '\n' + line.lstrip('#') + else: + comment = line.lstrip('#') + index = index + 1 + parse_line(table_name, comment, key_level_map, line_level, index, lines, properties) + else: + # Check if it's a property line + if ':' in line: + # clean comment if level was changed + if line_level != parent_line_level: + comment = '' + key, value = line.split(':', 1) + if key.startswith('- '): + key = key.lstrip('- ') + key_level_map[line_level] = key + value = value.strip() + if value.split('#')[0]: + current_key = '' + for k in key_level_map.keys(): + if k <= line_level: + current_key = ((current_key + '.') if current_key else '') + key_level_map[k] + properties[current_key] = (value, comment, table_name) + comment = '' + index = index + 1 + parse_line(table_name, comment, key_level_map, line_level, index, lines, properties) + +def extract_property_info(properties): + rows = [] + for property_name, value in properties.items(): + if '#' in value[0]: + value_parts = value[0].split('#') + comment = value_parts[1] + else: + comment = value[1] + pattern = r'\"\$\{(.*?)\:(.*?)\}\"' + match = re.match(pattern, value[0]) + if match is not None: + rows.append((property_name, match.group(1), match.group(2), comment, value[2])) + else: + rows.append((property_name, "", value[0].split('#')[0], comment, value[2])) + return rows + +def check_descriptions(properties): + variables_without_description = [] + for row in properties: + # Extract information from the tuple + property_name, env_variable, default_value, comment, table_name = row + if comment == '' or len(comment) < 5 : + variables_without_description.append(property_name) + + return variables_without_description + + +if __name__ == '__main__': + sys. setrecursionlimit(10000) + # path to the YAML file + input_yaml_file = "application/src/main/resources/thingsboard.yml" + + # Parse yml file to map where key is property key path with '.' separator + # and value is an object (env_name_with_default_value, comment, table_name) + properties = extract_properties_with_comments(input_yaml_file) + + # Extract property information (extract env name, default value and comment nearby property) + property_info = extract_property_info(properties) + + # Check all properies have descriptions + variables_without_desc = check_descriptions(property_info) + + if len(variables_without_desc) > 0: + print(f"There are some yml properties without valid description: (total {len(variables_without_desc)}) {variables_without_desc}.") + exit(1) + else: + print("All yml properties have valid description.") \ No newline at end of file From a7daf55a38d291f35e857ec6728865e97c94dcc4 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 5 Oct 2023 14:43:42 +0300 Subject: [PATCH 025/117] fixed github action yml file --- ...{check_yml_parameter_descriptions.yml => check_yml_file.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{check_yml_parameter_descriptions.yml => check_yml_file.yml} (88%) diff --git a/.github/workflows/check_yml_parameter_descriptions.yml b/.github/workflows/check_yml_file.yml similarity index 88% rename from .github/workflows/check_yml_parameter_descriptions.yml rename to .github/workflows/check_yml_file.yml index 240222d1b1..3ec0a64439 100644 --- a/.github/workflows/check_yml_parameter_descriptions.yml +++ b/.github/workflows/check_yml_file.yml @@ -21,4 +21,4 @@ jobs: AGENT_TOOLSDIRECTORY: /opt/hostedtoolcache - name: Run Verification Script - run: python3 tools/src/main/python/check_env_variables.py + run: python3 tools/src/main/python/check_yml_file.py From 12f140c5e28046e4cdc03cde7ab2fa203276ef83 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 5 Oct 2023 14:49:48 +0300 Subject: [PATCH 026/117] renamed github action yml file --- .github/workflows/{check_yml_file.yml => main.yml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{check_yml_file.yml => main.yml} (89%) diff --git a/.github/workflows/check_yml_file.yml b/.github/workflows/main.yml similarity index 89% rename from .github/workflows/check_yml_file.yml rename to .github/workflows/main.yml index 3ec0a64439..f420254f34 100644 --- a/.github/workflows/check_yml_file.yml +++ b/.github/workflows/main.yml @@ -1,11 +1,11 @@ -name: Check yml parameters have description +name: check_yml on: pull_request: paths: - 'application/src/main/resources/thingsboard.yml' jobs: build: - name: check + name: Check yml parameters have description runs-on: ubuntu-20.04 steps: From 5d494f81dd171a4022a78058271afc88cc4c8fab Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 5 Oct 2023 15:25:05 +0300 Subject: [PATCH 027/117] renamed github action job name --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f420254f34..5a4d79428c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,11 +1,11 @@ -name: check_yml +name: check_yml_file on: pull_request: paths: - 'application/src/main/resources/thingsboard.yml' jobs: build: - name: Check yml parameters have description + name: check_yml_file runs-on: ubuntu-20.04 steps: From 4c00b839e687d2119a84cc7e6f5167e8c2de9bbc Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 5 Oct 2023 17:33:06 +0300 Subject: [PATCH 028/117] add yml parameter description --- application/src/main/resources/thingsboard.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index a94ecc8de0..b73c4f1fda 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1554,6 +1554,7 @@ queue: enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" + # Max length of error message that is printed by statistics max-error-message-length: "${TB_QUEUE_RULE_ENGINE_MAX_ERROR_MESSAGE_LENGTH:4096}" queues: - name: "${TB_QUEUE_RE_MAIN_QUEUE_NAME:Main}" # queue name From 2492b81d3403d5de852c2eba7e0c93522db9ce78 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 5 Oct 2023 17:52:49 +0300 Subject: [PATCH 029/117] UI: Wind speed and direction widget. --- .../widget_bundles/weather_widgets.json | 13 + .../wind_speed_and_direction.json | 29 ++ .../DefaultSystemDataLoaderService.java | 1 + .../sql/widget/WidgetTypeInfoRepository.java | 2 +- ui-ngx/package.json | 1 + ui-ngx/src/app/core/utils.ts | 4 +- .../basic/basic-widget-config.module.ts | 12 +- .../basic/common/data-key-row.component.html | 37 +- .../basic/common/data-key-row.component.scss | 25 ++ .../basic/common/data-key-row.component.ts | 138 +++++--- .../common/data-keys-panel.component.html | 9 + .../basic/common/data-keys-panel.component.ts | 17 - ...peed-direction-basic-config.component.html | 213 +++++++++++ ...-speed-direction-basic-config.component.ts | 291 +++++++++++++++ .../battery-level-widget.component.html | 4 +- .../battery-level-widget.component.scss | 214 ++++++----- .../battery-level-widget.component.ts | 6 +- ...d-direction-widget-settings.component.html | 102 ++++++ ...eed-direction-widget-settings.component.ts | 139 ++++++++ .../lib/settings/widget-settings.module.ts | 12 +- ...wind-speed-direction-widget.component.html | 25 ++ ...wind-speed-direction-widget.component.scss | 49 +++ .../wind-speed-direction-widget.component.ts | 333 ++++++++++++++++++ .../wind-speed-direction-widget.models.ts | 108 ++++++ .../widget/widget-components.module.ts | 9 +- .../shared/models/widget-settings.models.ts | 41 +++ .../assets/locale/locale.constant-en_US.json | 21 ++ .../wind-speed-direction/advanced-layout.svg | 187 ++++++++++ .../wind-speed-direction/default-layout.svg | 167 +++++++++ .../simplified-layout.svg | 153 ++++++++ ui-ngx/src/form.scss | 12 +- ui-ngx/yarn.lock | 5 + 32 files changed, 2167 insertions(+), 212 deletions(-) create mode 100644 application/src/main/data/json/system/widget_bundles/weather_widgets.json create mode 100644 application/src/main/data/json/system/widget_types/wind_speed_and_direction.json create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.models.ts create mode 100644 ui-ngx/src/assets/widget/wind-speed-direction/advanced-layout.svg create mode 100644 ui-ngx/src/assets/widget/wind-speed-direction/default-layout.svg create mode 100644 ui-ngx/src/assets/widget/wind-speed-direction/simplified-layout.svg diff --git a/application/src/main/data/json/system/widget_bundles/weather_widgets.json b/application/src/main/data/json/system/widget_bundles/weather_widgets.json new file mode 100644 index 0000000000..a38c139cf0 --- /dev/null +++ b/application/src/main/data/json/system/widget_bundles/weather_widgets.json @@ -0,0 +1,13 @@ +{ + "widgetsBundle": { + "alias": "weather_widgets", + "title": "Weather widgets", + "image": null, + "description": null, + "externalId": null, + "name": "Weather widgets" + }, + "widgetTypeFqns": [ + "wind_speed_and_direction" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json new file mode 100644 index 0000000000..1c4f7ecb7c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json @@ -0,0 +1,29 @@ +{ + "fqn": "wind_speed_and_direction", + "name": "Wind speed and direction", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays the latest values of the wind speed and direction.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "settingsSchema": "", + "dataKeySettingsSchema": "", + "settingsDirective": "tb-wind-speed-direction-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-wind-speed-direction-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"windDirection\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"centerValue\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 30) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\":{\"layout\":\"default\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"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';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind speed and direction\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"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\":\"air\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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": [ + "wind", + "weather", + "compass", + "degrees" + ] +} \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 29dcd601a1..a40913a281 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -532,6 +532,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("html_widgets"); this.deleteSystemWidgetBundle("tables"); this.deleteSystemWidgetBundle("count_widgets"); + this.deleteSystemWidgetBundle("weather_widgets"); installScripts.loadSystemWidgets(); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java index 27f4ef918f..f3f3bf5139 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetTypeInfoRepository.java @@ -37,7 +37,7 @@ public interface WidgetTypeInfoRepository extends JpaRepository { - if (dataKey.label === label) { + if (dataKey?.label === label) { i++; label = name + ' ' + i; matches = true; @@ -777,7 +777,7 @@ export function genNextLabel(name: string, datasources: Datasource[]): string { } if (datasource.latestDataKeys) { datasource.latestDataKeys.forEach((dataKey) => { - if (dataKey.label === label) { + if (dataKey?.label === label) { i++; label = name + ' ' + i; matches = true; diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts index 41115904b3..3cc2eddb7d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts @@ -58,6 +58,9 @@ import { import { BatteryLevelBasicConfigComponent } from '@home/components/widget/config/basic/indicator/battery-level-basic-config.component'; +import { + WindSpeedDirectionBasicConfigComponent +} from '@home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component'; @NgModule({ declarations: [ @@ -75,7 +78,8 @@ import { DataKeysPanelComponent, AlarmCountBasicConfigComponent, EntityCountBasicConfigComponent, - BatteryLevelBasicConfigComponent + BatteryLevelBasicConfigComponent, + WindSpeedDirectionBasicConfigComponent ], imports: [ CommonModule, @@ -97,7 +101,8 @@ import { DataKeysPanelComponent, AlarmCountBasicConfigComponent, EntityCountBasicConfigComponent, - BatteryLevelBasicConfigComponent + BatteryLevelBasicConfigComponent, + WindSpeedDirectionBasicConfigComponent ] }) export class BasicWidgetConfigModule { @@ -113,5 +118,6 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type -
+
{{ 'datakey.timeseries' | translate }} @@ -23,8 +23,8 @@ - - +
@@ -67,8 +67,8 @@ #keyInput [formControl]="keyFormControl" matAutocompleteOrigin - [fxHide]="!!modelValue.type" - [readonly]="!!modelValue.type" + [fxHide]="!!modelValue?.type" + [readonly]="!!modelValue?.type" #origin="matAutocompleteOrigin" [matAutocompleteConnectedTo]="origin" (focusin)="onKeyInputFocus()" @@ -139,7 +139,7 @@ - +
@@ -147,25 +147,28 @@ formControlName="color">
-
+
-
+
+
widget-config.decimals-suffix
-
- +
+
+ +
+ + +
+ +
+
+
+
@@ -63,7 +63,7 @@ : ''" formControlName="icon"> - +
@@ -76,7 +76,7 @@
- +
@@ -86,7 +86,7 @@ - +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts index 5a2a91b56b..4018549863 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/widget-settings-common.module.ts @@ -27,7 +27,10 @@ import { } from '@home/components/widget/lib/settings/common/image-cards-select.component'; import { FontSettingsComponent } from '@home/components/widget/lib/settings/common/font-settings.component'; import { FontSettingsPanelComponent } from '@home/components/widget/lib/settings/common/font-settings-panel.component'; -import { ColorSettingsComponent } from '@home/components/widget/lib/settings/common/color-settings.component'; +import { + ColorSettingsComponent, + ColorSettingsComponentService +} from '@home/components/widget/lib/settings/common/color-settings.component'; import { ColorSettingsPanelComponent } from '@home/components/widget/lib/settings/common/color-settings-panel.component'; @@ -83,6 +86,9 @@ import { LegendConfigComponent, WidgetFontComponent, CountWidgetSettingsComponent + ], + providers: [ + ColorSettingsComponentService ] }) export class WidgetSettingsCommonModule { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html index 1221e5bfc2..7e53d17df1 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html @@ -40,18 +40,18 @@ [autoScale]="batteryLevelWidgetSettingsForm.get('autoScaleValueSize').value" [previewText]="valuePreviewFn"> - +
{{ 'widgets.battery-level.battery-level-color' | translate }}
- +
{{ 'widgets.battery-level.battery-shape-color' | translate }}
- +
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.html index e81519ff3c..1bf2095b10 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.html @@ -36,7 +36,7 @@ [initialPreviewStyle]="{ color: windSpeedDirectionWidgetSettingsForm.get('centerValueColor').value?.color }" [previewText]="centerValuePreviewFn"> - +
diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 40abb989c1..e755f16420 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -5201,7 +5201,8 @@ "value-range": "Value range", "from": "From", "to": "To", - "color-function": "Color function" + "color-function": "Color function", + "copy-color-settings-from": "Copy color settings from" }, "dashboard-state": { "dashboard-state-settings": "Dashboard state settings", From bc096de3f702290e7ad926b7916db9a34e911e06 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Tue, 10 Oct 2023 09:47:55 +0300 Subject: [PATCH 040/117] UI: Hide edit button if profile is not selected --- .../profile/tenant-profile-autocomplete.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-autocomplete.component.html b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-autocomplete.component.html index 2c5a019b70..a27bff5165 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-autocomplete.component.html +++ b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-autocomplete.component.html @@ -35,7 +35,7 @@ (click)="clear()"> close - + Date: Tue, 10 Oct 2023 13:41:45 +0300 Subject: [PATCH 042/117] UI: Implement sections count parameter for battery level widget. --- .../battery-level-basic-config.component.html | 6 +++++ .../battery-level-basic-config.component.ts | 20 +++++++++++--- .../battery-level-widget.component.html | 3 ++- .../battery-level-widget.component.ts | 26 ++++++++++++++++++- .../indicator/battery-level-widget.models.ts | 2 ++ ...ttery-level-widget-settings.component.html | 6 +++++ ...battery-level-widget-settings.component.ts | 21 ++++++++++++--- .../assets/locale/locale.constant-en_US.json | 3 ++- 8 files changed, 78 insertions(+), 9 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.html b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.html index 245ae063a1..1d67d587fe 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.html @@ -40,6 +40,12 @@ {{ batteryLevelLayoutTranslationMap.get(layout) | translate }} +
+
{{ 'widgets.battery-level.sections-count' | translate }}
+ + + +
{{ 'widget-config.title' | translate }} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts index 482a8dd2c3..bb6af9d5ad 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts @@ -14,7 +14,7 @@ /// limitations under the License. /// -import { Component, Injector } from '@angular/core'; +import { Component } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; @@ -35,6 +35,7 @@ import { formatValue, isUndefined } from '@core/utils'; import { cssSizeToStrSize, resolveCssSize } from '@shared/models/widget-settings.models'; import { batteryLevelDefaultSettings, + BatteryLevelLayout, batteryLevelLayoutImages, batteryLevelLayouts, batteryLevelLayoutTranslations, @@ -67,9 +68,13 @@ export class BatteryLevelBasicConfigComponent extends BasicWidgetConfigComponent valuePreviewFn = this._valuePreviewFn.bind(this); + get sectionsCountEnabled(): boolean { + const layout: BatteryLevelLayout = this.batteryLevelWidgetConfigForm.get('layout').value; + return [BatteryLevelLayout.vertical_divided, BatteryLevelLayout.horizontal_divided].includes(layout); + } + constructor(protected store: Store, protected widgetConfigComponent: WidgetConfigComponent, - private $injector: Injector, private fb: UntypedFormBuilder) { super(store, widgetConfigComponent); } @@ -90,6 +95,7 @@ export class BatteryLevelBasicConfigComponent extends BasicWidgetConfigComponent datasources: [configData.config.datasources, []], layout: [settings.layout, []], + sectionsCount: [settings.sectionsCount, [Validators.min(2), Validators.max(20)]], showTitle: [configData.config.showTitle, []], title: [configData.config.title, []], @@ -136,6 +142,7 @@ export class BatteryLevelBasicConfigComponent extends BasicWidgetConfigComponent this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; this.widgetConfig.config.settings.layout = config.layout; + this.widgetConfig.config.settings.sectionsCount = config.sectionsCount; this.widgetConfig.config.settings.showValue = config.showValue; this.widgetConfig.config.settings.autoScaleValueSize = config.autoScaleValueSize === true; @@ -155,13 +162,15 @@ export class BatteryLevelBasicConfigComponent extends BasicWidgetConfigComponent } protected validatorTriggers(): string[] { - return ['showTitle', 'showIcon', 'showValue']; + return ['showTitle', 'showIcon', 'showValue', 'layout']; } protected updateValidators(emitEvent: boolean, trigger?: string) { const showTitle: boolean = this.batteryLevelWidgetConfigForm.get('showTitle').value; const showIcon: boolean = this.batteryLevelWidgetConfigForm.get('showIcon').value; const showValue: boolean = this.batteryLevelWidgetConfigForm.get('showValue').value; + const layout: BatteryLevelLayout = this.batteryLevelWidgetConfigForm.get('layout').value; + const divided = [BatteryLevelLayout.vertical_divided, BatteryLevelLayout.horizontal_divided].includes(layout); if (showTitle) { this.batteryLevelWidgetConfigForm.get('title').enable(); @@ -199,6 +208,11 @@ export class BatteryLevelBasicConfigComponent extends BasicWidgetConfigComponent this.batteryLevelWidgetConfigForm.get('valueFont').disable(); this.batteryLevelWidgetConfigForm.get('valueColor').disable(); } + if (divided) { + this.batteryLevelWidgetConfigForm.get('sectionsCount').enable(); + } else { + this.batteryLevelWidgetConfigForm.get('sectionsCount').disable(); + } } private getCardButtons(config: WidgetConfig): string[] { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.html index d5739683b7..cc2fe2cf8f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.html @@ -22,7 +22,7 @@
-
+
@@ -38,5 +38,6 @@
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts index 6e9f8323be..9161764223 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts @@ -117,7 +117,9 @@ export class BatteryLevelWidgetComponent implements OnInit, OnDestroy, AfterView value: number; - batterySections: boolean[] = [false, false, false, false]; + batterySections: boolean[]; + dividedBorderRadius: string; + dividedGap: string; batteryLevelColor: ColorProcessor; @@ -158,6 +160,26 @@ export class BatteryLevelWidgetComponent implements OnInit, OnDestroy, AfterView this.vertical = [BatteryLevelLayout.vertical_solid, BatteryLevelLayout.vertical_divided].includes(this.layout); this.layoutClass = this.vertical ? 'vertical' : 'horizontal'; this.solid = [BatteryLevelLayout.vertical_solid, BatteryLevelLayout.horizontal_solid].includes(this.layout); + if (!this.solid) { + let sectionsCount = this.settings.sectionsCount; + if (!sectionsCount) { + sectionsCount = 4; + } + sectionsCount = Math.min(Math.max(sectionsCount, 2), 20); + this.batterySections = Array.from(Array(sectionsCount), () => false); + const gap = 1 + (24 - sectionsCount) / 10; + this.dividedGap = `${gap}%`; + const containerAspect = 0.5567; + const sectionHeight = (100 - (gap * (sectionsCount - 1))) / sectionsCount; + const sectionAspect = 100 * containerAspect / sectionHeight; + const rad1 = 8.425 - sectionsCount * 0.32125; + const rad2 = rad1 * sectionAspect; + if (this.vertical) { + this.dividedBorderRadius = `${rad1}% / ${rad2}%`; + } else { + this.dividedBorderRadius = `${rad2}% / ${rad1}%`; + } + } this.showValue = this.settings.showValue; this.autoScaleValueSize = this.showValue && this.settings.autoScaleValueSize; @@ -243,6 +265,8 @@ export class BatteryLevelWidgetComponent implements OnInit, OnDestroy, AfterView const valueLineHeight = ratios.valueLineHeightRaio * boxSize; this.setValueFontSize(valueFontSize, valueLineHeight, boxWidth); } + const fontSize = parseInt(window.getComputedStyle(this.batteryLevelValue.nativeElement).fontSize, 10) || 10; + this.renderer.setStyle(this.batteryLevelValue.nativeElement, 'minWidth', `${Math.min(fontSize*4, boxWidth)}px`); } let height = this.batteryLevelContent.nativeElement.getBoundingClientRect().height; const width = height * verticalBatteryDimensions.shapeAspectRatio; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.models.ts index 8d8724f901..34c00a4b92 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.models.ts @@ -53,6 +53,7 @@ export const batteryLevelLayoutImages = new Map( export interface BatteryLevelWidgetSettings { layout: BatteryLevelLayout; + sectionsCount: number; showValue: boolean; autoScaleValueSize: boolean; valueFont: Font; @@ -64,6 +65,7 @@ export interface BatteryLevelWidgetSettings { export const batteryLevelDefaultSettings: BatteryLevelWidgetSettings = { layout: BatteryLevelLayout.vertical_solid, + sectionsCount: 4, showValue: true, autoScaleValueSize: true, valueFont: { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html index 7e53d17df1..2b841ca9f8 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.html @@ -28,6 +28,12 @@ {{ batteryLevelLayoutTranslationMap.get(layout) | translate }} +
+
{{ 'widgets.battery-level.sections-count' | translate }}
+ + + +
{{ 'widgets.battery-level.value' | translate }} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.ts index 627bf00cd2..6c6fecf662 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/indicator/battery-level-widget-settings.component.ts @@ -16,12 +16,12 @@ import { Component, Injector } from '@angular/core'; import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; -import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { formatValue } from '@core/utils'; import { - batteryLevelDefaultSettings, + batteryLevelDefaultSettings, BatteryLevelLayout, batteryLevelLayoutImages, batteryLevelLayouts, batteryLevelLayoutTranslations @@ -43,6 +43,11 @@ export class BatteryLevelWidgetSettingsComponent extends WidgetSettingsComponent valuePreviewFn = this._valuePreviewFn.bind(this); + get sectionsCountEnabled(): boolean { + const layout: BatteryLevelLayout = this.batteryLevelWidgetSettingsForm.get('layout').value; + return [BatteryLevelLayout.vertical_divided, BatteryLevelLayout.horizontal_divided].includes(layout); + } + constructor(protected store: Store, private $injector: Injector, private fb: UntypedFormBuilder) { @@ -60,6 +65,7 @@ export class BatteryLevelWidgetSettingsComponent extends WidgetSettingsComponent protected onSettingsSet(settings: WidgetSettings) { this.batteryLevelWidgetSettingsForm = this.fb.group({ layout: [settings.layout, []], + sectionsCount: [settings.sectionsCount, [Validators.min(2), Validators.max(20)]], showValue: [settings.showValue, []], autoScaleValueSize: [settings.autoScaleValueSize, []], @@ -74,11 +80,13 @@ export class BatteryLevelWidgetSettingsComponent extends WidgetSettingsComponent } protected validatorTriggers(): string[] { - return ['showValue']; + return ['showValue', 'layout']; } protected updateValidators(emitEvent: boolean) { const showValue: boolean = this.batteryLevelWidgetSettingsForm.get('showValue').value; + const layout: BatteryLevelLayout = this.batteryLevelWidgetSettingsForm.get('layout').value; + const divided = [BatteryLevelLayout.vertical_divided, BatteryLevelLayout.horizontal_divided].includes(layout); if (showValue) { this.batteryLevelWidgetSettingsForm.get('autoScaleValueSize').enable(); @@ -90,9 +98,16 @@ export class BatteryLevelWidgetSettingsComponent extends WidgetSettingsComponent this.batteryLevelWidgetSettingsForm.get('valueColor').disable(); } + if (divided) { + this.batteryLevelWidgetSettingsForm.get('sectionsCount').enable(); + } else { + this.batteryLevelWidgetSettingsForm.get('sectionsCount').disable(); + } + this.batteryLevelWidgetSettingsForm.get('autoScaleValueSize').updateValueAndValidity({emitEvent}); this.batteryLevelWidgetSettingsForm.get('valueFont').updateValueAndValidity({emitEvent}); this.batteryLevelWidgetSettingsForm.get('valueColor').updateValueAndValidity({emitEvent}); + this.batteryLevelWidgetSettingsForm.get('sectionsCount').updateValueAndValidity({emitEvent}); } private _valuePreviewFn(): string { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index e755f16420..0fdf48d12c 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -5057,7 +5057,8 @@ "auto-scale": "Auto scale", "battery-level-color": "Battery level color", "battery-shape-color": "Battery shape color", - "battery-level-card-style": "Battery level card style" + "battery-level-card-style": "Battery level card style", + "sections-count": "Sections count" }, "chart": { "common-settings": "Common settings", From fd2bf34508db29a7f308c26e0b2fc12dc137f937 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Tue, 10 Oct 2023 15:44:58 +0300 Subject: [PATCH 043/117] UI: Fixed tenant profile dialog --- .../tenant-profile-dialog.component.html | 2 +- .../tenant-profile-dialog.component.scss | 23 +++++++++++++++++++ .../tenant-profile-dialog.component.ts | 2 +- .../queue/queue-form.component.html | 12 ++++++---- 4 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.scss diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.html b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.html index af4aec4e80..c9d807d39e 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.html +++ b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.html @@ -15,7 +15,7 @@ limitations under the License. --> -
+

{{ (isAdd ? 'tenant-profile.add' : 'tenant-profile.edit' ) | translate }}

diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.scss b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.scss new file mode 100644 index 0000000000..a881fa5023 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.scss @@ -0,0 +1,23 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +:host ::ng-deep { + tb-tenant-profile { + .mat-padding { + padding: 0; + + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.ts b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.ts index 96ead6405d..b5f910821a 100644 --- a/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/tenant-profile-dialog.component.ts @@ -43,7 +43,7 @@ export interface TenantProfileDialogData { selector: 'tb-tenant-profile-dialog', templateUrl: './tenant-profile-dialog.component.html', providers: [{provide: ErrorStateMatcher, useExisting: TenantProfileDialogComponent}], - styleUrls: [] + styleUrls: ['tenant-profile-dialog.component.scss'] }) export class TenantProfileDialogComponent extends DialogComponent implements ErrorStateMatcher, AfterViewInit { diff --git a/ui-ngx/src/app/modules/home/components/queue/queue-form.component.html b/ui-ngx/src/app/modules/home/components/queue/queue-form.component.html index 960e81f8b4..53262717f9 100644 --- a/ui-ngx/src/app/modules/home/components/queue/queue-form.component.html +++ b/ui-ngx/src/app/modules/home/components/queue/queue-form.component.html @@ -91,9 +91,10 @@
- + queue.retries + {{ 'queue.retries-required' | translate }} @@ -102,9 +103,10 @@ {{ 'queue.retries-min-value' | translate }} - + queue.failure-percentage + {{ 'queue.failure-percentage-required' | translate }} @@ -119,9 +121,10 @@ {{ 'queue.failure-percentage-max-value' | translate }} - + queue.pause-between-retries + {{ 'queue.pause-between-retries-required' | translate }} @@ -130,9 +133,10 @@ {{ 'queue.pause-between-retries-min-value' | translate }} - + queue.max-pause-between-retries + {{ 'queue.max-pause-between-retries-required' | translate }} From 3ab6b0e2b7a9216a52b5344954d015af2084080d Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 10 Oct 2023 17:23:12 +0300 Subject: [PATCH 044/117] UI: Fix data keys chips validation. --- .../widget/config/data-keys.component.ts | 70 ++++++++++++++----- .../widget/widget-config.component.ts | 1 + 2 files changed, 55 insertions(+), 16 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/config/data-keys.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/data-keys.component.ts index 02060db364..24b2f6345b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/data-keys.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/data-keys.component.ts @@ -33,13 +33,13 @@ import { import { AbstractControl, ControlValueAccessor, - FormGroupDirective, + FormGroupDirective, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgForm, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, - ValidationErrors + ValidationErrors, Validator } from '@angular/forms'; import { Observable, of } from 'rxjs'; import { filter, map, mergeMap, publishReplay, refCount, share, tap } from 'rxjs/operators'; @@ -62,7 +62,7 @@ import { DataKeyConfigDialogComponent, DataKeyConfigDialogData } from '@home/components/widget/config/data-key-config-dialog.component'; -import { deepClone, guid, isDefinedAndNotNull, isUndefined } from '@core/utils'; +import { deepClone, guid, isDefinedAndNotNull, isObject, isUndefined } from '@core/utils'; import { Dashboard } from '@shared/models/dashboard.models'; import { AggregationType } from '@shared/models/time/time.models'; import { DndDropEvent } from 'ngx-drag-drop/lib/dnd-dropzone.directive'; @@ -81,15 +81,20 @@ import { TbPopoverService } from '@shared/components/popover.service'; provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DataKeysComponent), multi: true - } /*, + }, + { + provide: NG_VALIDATORS, + useExisting: forwardRef(() => DataKeysComponent), + multi: true, + }, { provide: ErrorStateMatcher, useExisting: DataKeysComponent - } */ + } ], encapsulation: ViewEncapsulation.None }) -export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChanges, ErrorStateMatcher { +export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChanges, ErrorStateMatcher, Validator { public get hideDataKeyLabel(): boolean { return this.datasourceComponent.hideDataKeyLabel; @@ -205,6 +210,9 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange private propagateChange = (v: any) => { }; + private keysRequired = this._keysRequired.bind(this); + private keysValidator = this._keysValidator.bind(this); + constructor(private store: Store, @SkipSelf() private errorStateMatcher: ErrorStateMatcher, private datasourceComponent: DatasourceComponent, @@ -220,12 +228,16 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange } updateValidators() { - this.keysListFormGroup.get('keys').setValidators(this.required ? [this.keysRequired] : []); + if (this.required) { + this.keysListFormGroup.get('keys').addValidators(this.keysRequired); + } else { + this.keysListFormGroup.get('keys').removeValidators(this.keysRequired); + } this.keysListFormGroup.get('keys').updateValueAndValidity(); } - keysRequired(control: AbstractControl): ValidationErrors | null { - const value = control.value; + private _keysRequired(control: AbstractControl): ValidationErrors | null { + const value = this.modelValue; if (value && Array.isArray(value) && value.length) { return null; } else { @@ -233,8 +245,23 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange } } + private _keysValidator(control: AbstractControl): ValidationErrors | null { + const value = this.modelValue; + if (value && Array.isArray(value)) { + if (value.some(v => isObject(v) && (!v.type || !v.name))) { + return { + dataKey: true + }; + } + } + return null; + } + registerOnChange(fn: any): void { this.propagateChange = fn; + if (!this.keysListFormGroup.valid) { + this.propagateChange(this.modelValue); + } } registerOnTouched(fn: any): void { @@ -242,9 +269,12 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange ngOnInit() { this.keysListFormGroup = this.fb.group({ - keys: [null, this.required ? [this.keysRequired] : []], + keys: [null, [this.keysValidator]], key: [null] }); + if (this.required) { + this.keysListFormGroup.get('keys').addValidators(this.keysRequired); + } this.alarmKeys = []; for (const name of Object.keys(alarmFields)) { this.alarmKeys.push({ @@ -335,8 +365,8 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange } else { this.keys = []; } - this.keysListFormGroup.get('keys').setValue(this.keys); this.modelValue = this.keys.length ? [...this.keys] : null; + this.keysListFormGroup.get('keys').setValue(this.keys); if (this.keyInput) { this.keyInput.nativeElement.value = ''; } @@ -374,7 +404,7 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean { const originalErrorState = this.errorStateMatcher.isErrorState(control, form); - const customErrorState = this.required && (!this.modelValue || !this.modelValue.length); + const customErrorState = this.keysListFormGroup.get('keys').hasError('dataKey'); return originalErrorState || customErrorState; } @@ -395,12 +425,20 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange this.keysListFormGroup.get('keys').setValue(this.keys); } else { this.keys = []; - this.keysListFormGroup.get('keys').setValue(this.keys); this.modelValue = null; + this.keysListFormGroup.get('keys').setValue(this.keys); } this.dirty = true; } + validate(c: UntypedFormControl) { + return (this.keysListFormGroup.get('keys').hasError('dataKey')) ? { + dataKeys: { + valid: false, + }, + } : null; + } + onFocus() { if (this.dirty) { this.keysListFormGroup.get('key').updateValueAndValidity({onlySelf: true, emitEvent: true}); @@ -441,8 +479,8 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange const index = this.keys.indexOf(key); if (index >= 0) { this.keys.splice(index, 1); - this.keysListFormGroup.get('keys').setValue(this.keys); this.modelValue.splice(index, 1); + this.keysListFormGroup.get('keys').setValue(this.keys); if (!this.modelValue.length) { this.modelValue = null; } @@ -468,8 +506,8 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange index = this.keys.length; } moveItemInArray(this.keys, this.dragIndex, index); - this.keysListFormGroup.get('keys').setValue(this.keys); moveItemInArray(this.modelValue, this.dragIndex, index); + this.keysListFormGroup.get('keys').setValue(this.keys); this.dragIndex = -1; this.propagateChange(this.modelValue); } @@ -525,8 +563,8 @@ export class DataKeysComponent implements ControlValueAccessor, OnInit, OnChange }).afterClosed().subscribe((updatedDataKey) => { if (updatedDataKey) { this.keys[index] = updatedDataKey; - this.keysListFormGroup.get('keys').setValue(this.keys); this.modelValue[index] = updatedDataKey; + this.keysListFormGroup.get('keys').setValue(this.keys); this.propagateChange(this.modelValue); } }); diff --git a/ui-ngx/src/app/modules/home/components/widget/widget-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/widget-config.component.ts index b4495a2b95..0f569c5ce9 100644 --- a/ui-ngx/src/app/modules/home/components/widget/widget-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/widget-config.component.ts @@ -435,6 +435,7 @@ export class WidgetConfigComponent extends PageComponent implements OnInit, OnDe this.basicModeComponentChangeSubscription = this.basicModeComponent.widgetConfigChanged.subscribe((data) => { this.modelValue = data; this.propagateChange(this.modelValue); + this.cd.markForCheck(); }); this.cd.markForCheck(); }, 0); From 8edab0a5cdeb725bd51d148e35b46315e5654b90 Mon Sep 17 00:00:00 2001 From: rusikv Date: Tue, 10 Oct 2023 17:31:30 +0300 Subject: [PATCH 045/117] UI: enabled all delete strategies for multiple deleterion of timeseries --- .../attribute/attribute-table.component.ts | 36 +++++++++---------- .../delete-timeseries-panel.component.ts | 17 ++------- 2 files changed, 19 insertions(+), 34 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts index 872e124f3a..119c7a829f 100644 --- a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts @@ -39,7 +39,7 @@ import { TranslateService } from '@ngx-translate/core'; import { MatDialog } from '@angular/material/dialog'; import { DialogService } from '@core/services/dialog.service'; import { Direction, SortOrder } from '@shared/models/page/sort-order'; -import { merge, Subject } from 'rxjs'; +import { forkJoin, merge, Observable, Subject } from 'rxjs'; import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'; import { EntityId } from '@shared/models/id/entity-id'; import { @@ -84,15 +84,11 @@ import { AddWidgetToDashboardDialogComponent, AddWidgetToDashboardDialogData } from '@home/components/attribute/add-widget-to-dashboard-dialog.component'; -import { deepClone, isUndefinedOrNull } from '@core/utils'; +import { deepClone } from '@core/utils'; import { Filters } from '@shared/models/query/query.models'; import { hidePageSizePixelValue } from '@shared/models/constants'; import { ResizeObserver } from '@juggle/resize-observer'; -import { - DELETE_TIMESERIES_PANEL_DATA, - DeleteTimeseriesPanelComponent, - DeleteTimeseriesPanelData -} from '@home/components/attribute/delete-timeseries-panel.component'; +import { DeleteTimeseriesPanelComponent } from '@home/components/attribute/delete-timeseries-panel.component'; import { FormBuilder } from '@angular/forms'; @@ -392,7 +388,6 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI if ($event) { $event.stopPropagation(); } - const isMultipleDeletion = isUndefinedOrNull(telemetry) && this.dataSource.selection.selected.length > 1; const target = $event.target || $event.srcElement || $event.currentTarget; const config = new OverlayConfig({ panelClass: 'tb-filter-panel', @@ -415,12 +410,6 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI }); const providers: StaticProvider[] = [ - { - provide: DELETE_TIMESERIES_PANEL_DATA, - useValue: { - isMultipleDeletion - } as DeleteTimeseriesPanelData - }, { provide: OverlayRef, useValue: overlayRef @@ -433,6 +422,7 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI if (componentRef.instance.result !== null) { const result = componentRef.instance.result; const deleteTimeseries = telemetry ? [telemetry]: this.dataSource.selection.selected; + const tasks: Observable[] = []; let deleteAllDataForKeys = false; let rewriteLatestIfDeleted = false; let startTs = null; @@ -448,8 +438,12 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI break; case TimeseriesDeleteStrategy.DELETE_LATEST_VALUE: rewriteLatestIfDeleted = result.rewriteLatest; - startTs = deleteTimeseries[0].lastUpdateTs; - endTs = startTs + 1; + for (const ts of deleteTimeseries) { + startTs = ts.lastUpdateTs; + endTs = startTs + 1; + tasks.push(this.attributeService.deleteEntityTimeseries(this.entityIdValue, [ts], + deleteAllDataForKeys, startTs, endTs, rewriteLatestIfDeleted, deleteLatest)); + } break; case TimeseriesDeleteStrategy.DELETE_ALL_DATA_FOR_TIME_PERIOD: startTs = result.startDateTime.getTime(); @@ -457,9 +451,13 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI rewriteLatestIfDeleted = result.rewriteLatest; break; } - this.attributeService.deleteEntityTimeseries(this.entityIdValue, deleteTimeseries, deleteAllDataForKeys, - startTs, endTs, rewriteLatestIfDeleted, deleteLatest) - .subscribe(() => this.reloadAttributes()); + if (tasks.length) { + forkJoin(tasks).subscribe(() => this.reloadAttributes()); + } else { + this.attributeService.deleteEntityTimeseries(this.entityIdValue, deleteTimeseries, deleteAllDataForKeys, + startTs, endTs, rewriteLatestIfDeleted, deleteLatest) + .subscribe(() => this.reloadAttributes()); + } } }); } diff --git a/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts b/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts index 94c66b3734..df2eb931df 100644 --- a/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts +++ b/ui-ngx/src/app/modules/home/components/attribute/delete-timeseries-panel.component.ts @@ -14,7 +14,7 @@ /// limitations under the License. /// -import { Component, Inject, InjectionToken, OnDestroy, OnInit } from '@angular/core'; +import { Component, InjectionToken, OnDestroy, OnInit } from '@angular/core'; import { OverlayRef } from '@angular/cdk/overlay'; import { TimeseriesDeleteStrategy, @@ -27,9 +27,6 @@ import { takeUntil } from 'rxjs/operators'; export const DELETE_TIMESERIES_PANEL_DATA = new InjectionToken('DeleteTimeseriesPanelData'); -export interface DeleteTimeseriesPanelData { - isMultipleDeletion: boolean; -} export interface DeleteTimeseriesPanelResult { strategy: TimeseriesDeleteStrategy; @@ -51,23 +48,13 @@ export class DeleteTimeseriesPanelComponent implements OnInit, OnDestroy { strategiesTranslationsMap = timeseriesDeleteStrategyTranslations; - private multipleDeletionStrategies = new Set([ - TimeseriesDeleteStrategy.DELETE_ALL_DATA, - TimeseriesDeleteStrategy.DELETE_ALL_DATA_EXCEPT_LATEST_VALUE - ]); - private destroy$ = new Subject(); - constructor(@Inject(DELETE_TIMESERIES_PANEL_DATA) private data: DeleteTimeseriesPanelData, - private overlayRef: OverlayRef, + constructor(private overlayRef: OverlayRef, private fb: FormBuilder) { } ngOnInit(): void { const today = new Date(); - if (this.data.isMultipleDeletion) { - this.strategiesTranslationsMap = new Map(Array.from(this.strategiesTranslationsMap) - .filter(([strategy]) => this.multipleDeletionStrategies.has(strategy))) - } this.deleteTimeseriesFormGroup = this.fb.group({ strategy: [TimeseriesDeleteStrategy.DELETE_ALL_DATA], startDateTime: [ From 761c900fc5fe7d3e05f40ec361801671f2372de2 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Wed, 11 Oct 2023 17:34:05 +0300 Subject: [PATCH 046/117] added yml parameter description for transport services --- .../src/main/resources/thingsboard.yml | 342 +++++++++--------- tools/src/main/python/check_yml_file.py | 33 +- .../src/main/resources/tb-coap-transport.yml | 149 +++++++- .../src/main/resources/tb-http-transport.yml | 137 ++++++- .../src/main/resources/tb-lwm2m-transport.yml | 161 ++++++++- .../src/main/resources/tb-mqtt-transport.yml | 152 +++++++- .../src/main/resources/tb-snmp-transport.yml | 149 +++++++- 7 files changed, 891 insertions(+), 232 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index b73c4f1fda..c7d5af8a5d 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -14,9 +14,9 @@ # limitations under the License. # -# Server common properties +# Server common parameters server: - # Server bind address + # Server bind-address address: "${HTTP_BIND_ADDRESS:0.0.0.0}" # Server bind port port: "${HTTP_BIND_PORT:8080}" @@ -34,7 +34,7 @@ server: pem: # Path to the server certificate file (holds server certificate or certificate chain, may include server private key) cert_file: "${SSL_PEM_CERT:server.pem}" - # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file; + # Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file; key_file: "${SSL_PEM_KEY:server_key.pem}" # Server certificate private key password (optional) key_password: "${SSL_PEM_KEY_PASSWORD:server_key_password}" @@ -54,41 +54,41 @@ server: http2: # Enable/disable HTTP/2 support enabled: "${HTTP2_ENABLED:true}" - # Log errors with stacktrace when REST API throws exception with message "Please contact sysadmin" + # Log errors with stacktrace when REST API throws an exception with the message "Please contact sysadmin" log_controller_error_stack_trace: "${HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE:false}" ws: # Timeout for sending data to client WebSocket session in milliseconds send_timeout: "${TB_SERVER_WS_SEND_TIMEOUT:5000}" - # recommended timeout >= 30 seconds. Platform will attempt to send 'ping' request 3 times within the timeout + # recommended timeout >= 30 seconds. The platform will attempt to send a 'ping' request 3 times within the timeout ping_timeout: "${TB_SERVER_WS_PING_TIMEOUT:30000}" dynamic_page_link: # Refresh rate of the dynamic alarm end entity data queries refresh_interval: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_INTERVAL_SEC:60}" # Thread pool size to execute dynamic queries refresh_pool_size: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE:1}" - # Maximum number of dynamic queries per refresh interval. For example, no more than 10 alarm queries executed by user simultaneously in all browsers. + # Maximum number of dynamic queries per refresh interval. For example, no more than 10 alarm queries are executed by the user simultaneously in all browsers. max_alarm_queries_per_refresh_interval: "${TB_SERVER_WS_MAX_ALARM_QUERIES_PER_REFRESH_INTERVAL:10}" - # Maximum number of dynamic queries per user. For example, no more than 10 alarm widgets opened by user simultaneously in all browsers< + # Maximum number of dynamic queries per user. For example, no more than 10 alarm widgets opened by the user simultaneously in all browsers< max_per_user: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER:10}" - # Maximum number of entities returned for single entity subscription. For example, no more than 10 000 entities on the map widget + # Maximum number of entities returned for single entity subscription. For example, no more than 10,000 entities on the map widget max_entities_per_data_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION:10000}" - # Maximum number of alarms returned for single alarm subscription. For example, no more than 10 000 alarms on the alarm widget + # Maximum number of alarms returned for single alarm subscription. For example, no more than 10,000 alarms on the alarm widget max_entities_per_alarm_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_ALARM_SUBSCRIPTION:10000}" # Maximum queue size of the websocket updates per session. This restriction prevents infinite updates of WS max_queue_messages_per_session: "${TB_SERVER_WS_DEFAULT_QUEUE_MESSAGES_PER_SESSION:1000}" rest: server_side_rpc: - # Minimum value of the server side RPC timeout. May override value provided in the REST API call. + # Minimum value of the server-side RPC timeout. May override value provided in the REST API call. # Since 2.5 migration to queues, the RPC delay depends on the size of the pending messages in the queue, - # so default UI parameter of 500ms may not be sufficient for loaded environments. + # So default UI parameter of 500ms may not be sufficient for loaded environments. min_timeout: "${MIN_SERVER_SIDE_RPC_TIMEOUT:5000}" - # Default value of the server side RPC timeout. + # Default value of the server-side RPC timeout. default_timeout: "${DEFAULT_SERVER_SIDE_RPC_TIMEOUT:10000}" rate_limits: - # Limit that prohibits resetting the password for the user too often. The value of rate limit. By default, no more than 5 requests per hour + # Limit that prohibits resetting the password for the user too often. The value of the rate limit. By default, no more than 5 requests per hour reset_password_per_user: "${RESET_PASSWORD_PER_USER_RATE_LIMIT_CONFIGURATION:5:3600}" -# Application info +# Application info parameters app: # Application version version: "@project.version@" @@ -107,28 +107,28 @@ zk: session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}" # Name of the directory in zookeeper 'filesystem' zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}" - # The recalculate_delay property recommended in a microservices architecture setup for rule-engine services. + # The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. # This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" -# Cluster properties +# Cluster parameters cluster: stats: - # Enable/Disable the cluster statistics. Calculates number of messages sent between cluster nodes based on each type + # Enable/Disable the cluster statistics. Calculates the number of messages sent between cluster nodes based on each type enabled: "${TB_CLUSTER_STATS_ENABLED:false}" # Interval of printing the cluster stats to the log file print_interval_ms: "${TB_CLUSTER_STATS_PRINT_INTERVAL_MS:10000}" # Plugins configuration parameters plugins: - # Comma separated package list used during classpath scanning for plugins + # Comma-separated package list used during classpath scanning for plugins scan_packages: "${PLUGINS_SCAN_PACKAGES:org.thingsboard.server.extensions,org.thingsboard.rule.engine}" # Security parameters security: # JWT Token parameters - jwt: # Since 3.4.2 values are persisted to the database during install or upgrade. On Install, the key will be generated randomly if no custom value set. You can change it later from Web UI under SYS_ADMIN + jwt: # Since 3.4.2 values are persisted in the database during installation or upgrade. On Install, the key will be generated randomly if no custom value set. You can change it later from Web UI under SYS_ADMIN tokenExpirationTime: "${JWT_TOKEN_EXPIRATION_TIME:9000}" # Number of seconds (2.5 hours) refreshTokenExpTime: "${JWT_REFRESH_TOKEN_EXPIRATION_TIME:604800}" # Number of seconds (1 week). tokenIssuer: "${JWT_TOKEN_ISSUER:thingsboard.io}" # User JWT Token issuer @@ -138,7 +138,7 @@ security: # Enable/disable case-sensitive username login user_login_case_sensitive: "${SECURITY_USER_LOGIN_CASE_SENSITIVE:true}" claim: - # Enable/disable claiming devices, if false -> the device's [claimingAllowed] SERVER_SCOPE attribute must be set to [true] to allow claiming specific device + # Enable/disable claiming devices; if false -> the device's [claimingAllowed] SERVER_SCOPE attribute must be set to [true] to allow claiming the specific device allowClaimingByDefault: "${SECURITY_CLAIM_ALLOW_CLAIMING_BY_DEFAULT:true}" # Time allowed to claim the device in milliseconds duration: "${SECURITY_CLAIM_DURATION:86400000}" # 1 minute, note this value must equal claimDevices.timeToLiveInMinutes value @@ -157,31 +157,32 @@ security: # The password of the cacerts keystore file password: "${SECURITY_JAVA_CACERTS_PASSWORD:changeit}" +# Mail settings parameters mail: oauth2: - # Interval to check refresh token is going to expire in seconds(by default 1 day). + # Interval to check that the refresh token will expire in seconds(by default, 1 day). refreshTokenCheckingInterval: "${REFRESH_TOKEN_EXPIRATION_CHECKING_INTERVAL:86400}" # Usage statistics parameters usage: stats: report: - # Enable/Disable collection of statistics about API usage. Collected on a system and tenant level by default + # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" - # Interval of reporting the statistics. By default, the summarized statistics is sent every 10 seconds + # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" check: - # Interval of checking the start of next cycle and re-enabling the blocked tenants/customers + # Interval of checking the start of the next cycle and re-enabling the blocked tenants/customers cycle: "${USAGE_STATS_CHECK_CYCLE:60000}" - # In milliseconds. Default value is 3 minutes + # In milliseconds. The default value is 3 minutes gauge_report_interval: "${USAGE_STATS_GAUGE_REPORT_INTERVAL:180000}" devices: - # In seconds, default value is 1 minutes. When changing, in cluster mode, make sure usage.stats.gauge_report_interval is set to x2-x3 of this value + # In seconds, the default value is 1 minute. When changing, in cluster mode, make sure usage.stats.gauge_report_interval is set to x2-x3 of this value report_interval: "${DEVICES_STATS_REPORT_INTERVAL:60}" -# UI parameters +# UI settings parameters ui: # Dashboard parameters dashboard: @@ -189,14 +190,14 @@ ui: max_datapoints_limit: "${DASHBOARD_MAX_DATAPOINTS_LIMIT:50000}" # Help parameters help: - # Base url for UI help assets + # Base URL for UI help assets base-url: "${UI_HELP_BASE_URL:https://raw.githubusercontent.com/thingsboard/thingsboard-ui-help/release-3.6}" # Database telemetry parameters database: - ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by single API call to fetch telemetry records + ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by a single API call to fetch telemetry records ts: - type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale) + type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra or timescale) ts_latest: type: "${DATABASE_TS_LATEST_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale) @@ -208,24 +209,24 @@ cassandra: keyspace_name: "${CASSANDRA_KEYSPACE_NAME:thingsboard}" # Specify node list url: "${CASSANDRA_URL:127.0.0.1:9042}" - # Specify local datacenter name + # Specify the local data center name local_datacenter: "${CASSANDRA_LOCAL_DATACENTER:datacenter1}" ssl: # Enable/disable secure connection enabled: "${CASSANDRA_USE_SSL:false}" # Enable/disable validation of Cassandra server hostname - # If enabled, hostname of Cassandra server must match CN of server certificate + # If enabled, the hostname of the Cassandra server must match the CN of the server certificate hostname_validation: "${CASSANDRA_SSL_HOSTNAME_VALIDATION:true}" - # Set trust store for client authentication of server (optional, uses trust store from default SSLContext if not set) + # Set trust store for client authentication of the server (optional, uses trust store from default SSLContext if not set) trust_store: "${CASSANDRA_SSL_TRUST_STORE:}" # The password for Cassandra trust store key trust_store_password: "${CASSANDRA_SSL_TRUST_STORE_PASSWORD:}" - # Set key store for server authentication of client (optional, uses key store from default SSLContext if not set) + # Set key store for server authentication of the client (optional, uses key store from default SSLContext if not set) # A key store is only needed if the Cassandra server requires client authentication key_store: "${CASSANDRA_SSL_KEY_STORE:}" - # The password for Cassandra key store + # The password for the Cassandra key store key_store_password: "${CASSANDRA_SSL_KEY_STORE_PASSWORD:}" - # Comma separated list of cipher suites (optional, uses Java default cipher suites if not set) + # Comma-separated list of cipher suites (optional, uses Java default cipher suites if not set) cipher_suites: "${CASSANDRA_SSL_CIPHER_SUITES:}" # Enable/disable JMX jmx: "${CASSANDRA_USE_JMX:false}" @@ -233,9 +234,9 @@ cassandra: metrics: "${CASSANDRA_USE_METRICS:false}" # NONE SNAPPY LZ4 compression: "${CASSANDRA_COMPRESSION:none}" - # Specify cassandra cluster initialization timeout in milliseconds (if no hosts available during startup) + # Specify cassandra cluster initialization timeout in milliseconds (if no hosts are available during startup) init_timeout_ms: "${CASSANDRA_CLUSTER_INIT_TIMEOUT_MS:300000}" - # Specify cassandra claster initialization retry interval (if no hosts available during startup) + # Specify cassandra cluster initialization retry interval (if no hosts available during startup) init_retry_interval_ms: "${CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS:3000}" # Cassandra max local requests per connection max_requests_per_connection_local: "${CASSANDRA_MAX_REQUESTS_PER_CONNECTION_LOCAL:32768}" @@ -258,13 +259,13 @@ cassandra: # Cassandra cluster connection socket parameters # socket: - # Sets the timeout, in millisecond, of a native connection from ThingsBoard to Cassandra. The default value is 5000 + # Sets the timeout, in milliseconds, of a native connection from ThingsBoard to Cassandra. The default value is 5000 connect_timeout: "${CASSANDRA_SOCKET_TIMEOUT:5000}" # Timeout before closing the connection. Value set in milliseconds read_timeout: "${CASSANDRA_SOCKET_READ_TIMEOUT:20000}" # Gets if TCP keep-alive must be used keep_alive: "${CASSANDRA_SOCKET_KEEP_ALIVE:true}" - # Enable/Disable reuse-address.The socket option allows for the reuse of local addresses and ports + # Enable/Disable reuse-address. The socket option allows for the reuse of local addresses and ports reuse_address: "${CASSANDRA_SOCKET_REUSE_ADDRESS:true}" # Sets the linger-on-close timeout. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport so_linger: "${CASSANDRA_SOCKET_SO_LINGER:}" @@ -287,9 +288,9 @@ cassandra: ts_key_value_partitioning: "${TS_KV_PARTITIONING:MONTHS}" # Enable/Disable timestamp key-value partioning on read queries use_ts_key_value_partitioning_on_read: "${USE_TS_KV_PARTITIONING_ON_READ:true}" - # The number of partitions that are cached in memory of each service. Useful to decrease load of re-inserting same partitions again + # The number of partitions that are cached in memory of each service. It is useful to decrease the load of re-inserting the same partitions again ts_key_value_partitions_max_cache_size: "${TS_KV_PARTITIONS_MAX_CACHE_SIZE:100000}" - # Timeseries Time To Live (in seconds) for Cassandra Record. 0 - record is never expired + # Timeseries Time To Live (in seconds) for Cassandra Record. 0 - record has never expired ts_key_value_ttl: "${TS_KV_TTL:0}" # Maximum number of Cassandra queries that are waiting for execution buffer_size: "${CASSANDRA_QUERY_BUFFER_SIZE:200000}" @@ -299,13 +300,13 @@ cassandra: permit_max_wait_time: "${PERMIT_MAX_WAIT_TIME:120000}" # Amount of threads to dispatch cassandra queries dispatcher_threads: "${CASSANDRA_QUERY_DISPATCHER_THREADS:2}" - callback_threads: "${CASSANDRA_QUERY_CALLBACK_THREADS:4}" # Buffered rate executor (read, write), for managing I/O rate. See "nosql-*-callback" threads in JMX + callback_threads: "${CASSANDRA_QUERY_CALLBACK_THREADS:4}" # Buffered rate executor (read, write) for managing I/O rate. See "nosql-*-callback" threads in JMX result_processing_threads: "${CASSANDRA_QUERY_RESULT_PROCESSING_THREADS:50}" # Result set transformer and processing. See "cassandra-callback" threads in JMX # Cassandra query queue polling interval in milliseconds poll_ms: "${CASSANDRA_QUERY_POLL_MS:50}" # Interval in milliseconds for printing Cassandra query queue statistic rate_limit_print_interval_ms: "${CASSANDRA_QUERY_RATE_LIMIT_PRINT_MS:10000}" - # set all data types values except target to null for the same ts on save + # set all data type values except target to null for the same ts on save set_null_values_enabled: "${CASSANDRA_QUERY_SET_NULL_VALUES_ENABLED:false}" # log one of cassandra queries with specified frequency (0 - logging is disabled) print_queries_freq: "${CASSANDRA_QUERY_PRINT_FREQ:0}" @@ -318,27 +319,27 @@ sql: # Specify batch size for persisting attribute updates attributes: batch_size: "${SQL_ATTRIBUTES_BATCH_SIZE:1000}" # Batch size for persisting attribute updates - batch_max_delay: "${SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS:50}" # Max timeout for attributes entries queue polling. Value set in milliseconds + batch_max_delay: "${SQL_ATTRIBUTES_BATCH_MAX_DELAY_MS:50}" # Max timeout for attributes entries queue polling. The value is set in milliseconds stats_print_interval_ms: "${SQL_ATTRIBUTES_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing attributes updates statistic - batch_threads: "${SQL_ATTRIBUTES_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution + batch_threads: "${SQL_ATTRIBUTES_BATCH_THREADS:3}" # batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution value_no_xss_validation: "${SQL_ATTRIBUTES_VALUE_NO_XSS_VALIDATION:false}" # If true attribute values will be checked for XSS vulnerability ts: batch_size: "${SQL_TS_BATCH_SIZE:10000}" # Batch size for persisting timeseries inserts - batch_max_delay: "${SQL_TS_BATCH_MAX_DELAY_MS:100}" # Max timeout for time-series entries queue polling. Value set in milliseconds + batch_max_delay: "${SQL_TS_BATCH_MAX_DELAY_MS:100}" # Max timeout for time-series entries queue polling. The value set in milliseconds stats_print_interval_ms: "${SQL_TS_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing timeseries insert statistic - batch_threads: "${SQL_TS_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution + batch_threads: "${SQL_TS_BATCH_THREADS:3}" # batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution value_no_xss_validation: "${SQL_TS_VALUE_NO_XSS_VALIDATION:false}" # If true telemetry values will be checked for XSS vulnerability ts_latest: batch_size: "${SQL_TS_LATEST_BATCH_SIZE:1000}" # Batch size for persisting latest telemetry updates batch_max_delay: "${SQL_TS_LATEST_BATCH_MAX_DELAY_MS:50}" # Maximum timeout for latest telemetry entries queue polling. The value set in milliseconds stats_print_interval_ms: "${SQL_TS_LATEST_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing latest telemetry updates statistic - batch_threads: "${SQL_TS_LATEST_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution - update_by_latest_ts: "${SQL_TS_UPDATE_BY_LATEST_TIMESTAMP:true}" # Update latest values only if the timestamp of the new record is greater or equals than timestamp of the previously saved latest value. Latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case + batch_threads: "${SQL_TS_LATEST_BATCH_THREADS:3}" # batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution + update_by_latest_ts: "${SQL_TS_UPDATE_BY_LATEST_TIMESTAMP:true}" # Update latest values only if the timestamp of the new record is greater or equals the timestamp of the previously saved latest value. The latest values are stored separately from historical values for fast lookup from DB. Insert of historical value happens in any case events: batch_size: "${SQL_EVENTS_BATCH_SIZE:10000}" # Batch size for persisting latest telemetry updates batch_max_delay: "${SQL_EVENTS_BATCH_MAX_DELAY_MS:100}" # Max timeout for latest telemetry entries queue polling. The value set in milliseconds stats_print_interval_ms: "${SQL_EVENTS_BATCH_STATS_PRINT_MS:10000}" # Interval in milliseconds for printing latest telemetry updates statistic - batch_threads: "${SQL_EVENTS_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution + batch_threads: "${SQL_EVENTS_BATCH_THREADS:3}" # batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution partition_size: "${SQL_EVENTS_REGULAR_PARTITION_SIZE_HOURS:168}" # Number of hours to partition the events. The current value corresponds to one week. debug_partition_size: "${SQL_EVENTS_DEBUG_PARTITION_SIZE_HOURS:1}" # Number of hours to partition the debug events. The current value corresponds to one hour. edge_events: @@ -356,13 +357,13 @@ sql: batch_sort: "${SQL_BATCH_SORT:true}" # Specify whether to remove null characters from strValue of attributes and timeseries before insert remove_null_chars: "${SQL_REMOVE_NULL_CHARS:true}" - # Specify whether to log database queries and their parameters generated by entity query repository + # Specify whether to log database queries and their parameters generated by the entity query repository log_queries: "${SQL_LOG_QUERIES:false}" # Threshold of slow SQL queries to log. The value set in milliseconds log_queries_threshold: "${SQL_LOG_QUERIES_THRESHOLD:5000}" # Enable/Disable logging statistic information about tenants log_tenant_stats: "${SQL_LOG_TENANT_STATS:true}" - # Interval in milliseconds for printing latest statistic information about tenant + # Interval in milliseconds for printing the latest statistic information about the tenant log_tenant_stats_interval_ms: "${SQL_LOG_TENANT_STATS_INTERVAL_MS:60000}" postgres: # Specify partitioning size for timestamp key-value storage. Example: DAYS, MONTHS, YEARS, INDEFINITE. @@ -370,7 +371,7 @@ sql: timescale: # Specify Interval size for new data chunks storage. chunk_time_interval: "${SQL_TIMESCALE_CHUNK_TIME_INTERVAL:604800000}" - batch_threads: "${SQL_TIMESCALE_BATCH_THREADS:3}" # batch thread count have to be a prime number like 3 or 5 to gain perfect hash distribution + batch_threads: "${SQL_TIMESCALE_BATCH_THREADS:3}" # batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution ttl: ts: # The parameter to specify whether to use TTL (Time To Live) for timeseries records @@ -381,9 +382,9 @@ sql: # The parameter to specify whether to use TTL (Time To Live) for event records enabled: "${SQL_TTL_EVENTS_ENABLED:true}" execution_interval_ms: "${SQL_TTL_EVENTS_EXECUTION_INTERVAL:3600000}" # Number of milliseconds (max random initial delay and fixed period). - # Number of seconds. TTL is disabled by default. Accuracy of the cleanup depends on the sql.events.partition_size parameter. + # Number of seconds. TTL is disabled by default. The accuracy of the cleanup depends on the sql.events.partition_size parameter. events_ttl: "${SQL_TTL_EVENTS_EVENTS_TTL:0}" - # Number of seconds. The current value corresponds to one week. Accuracy of the cleanup depends on the sql.events.debug_partition_size parameter. + # Number of seconds. The current value corresponds to one week. The accuracy of the cleanup depends on the sql.events.debug_partition_size parameter. debug_events_ttl: "${SQL_TTL_EVENTS_DEBUG_EVENTS_TTL:604800}" edge_events: enabled: "${SQL_TTL_EDGE_EVENTS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for egde event records @@ -397,33 +398,33 @@ sql: checking_interval: "${SQL_RPC_TTL_CHECKING_INTERVAL:7200000}" # Number of milliseconds. The current value corresponds to two hours audit_logs: enabled: "${SQL_TTL_AUDIT_LOGS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for audit log records - ttl: "${SQL_TTL_AUDIT_LOGS_SECS:0}" # Disabled by default. Accuracy of the cleanup depends on the sql.audit_logs.partition_size + ttl: "${SQL_TTL_AUDIT_LOGS_SECS:0}" # Disabled by default. The accuracy of the cleanup depends on the sql.audit_logs.partition_size checking_interval_ms: "${SQL_TTL_AUDIT_LOGS_CHECKING_INTERVAL_MS:86400000}" # Default value - 1 day notifications: enabled: "${SQL_TTL_NOTIFICATIONS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for notification center records ttl: "${SQL_TTL_NOTIFICATIONS_SECS:2592000}" # Default value - 30 days checking_interval_ms: "${SQL_TTL_NOTIFICATIONS_CHECKING_INTERVAL_MS:86400000}" # Default value - 1 day relations: - max_level: "${SQL_RELATIONS_MAX_LEVEL:50}" # This value has to be reasonable small to prevent infinite recursion as early as possible - pool_size: "${SQL_RELATIONS_POOL_SIZE:4}" # This value has to be reasonable small to prevent relation query blocking all other DB calls - query_timeout: "${SQL_RELATIONS_QUERY_TIMEOUT_SEC:20}" # This value has to be reasonable small to prevent relation query blocking all other DB calls + max_level: "${SQL_RELATIONS_MAX_LEVEL:50}" # This value has to be reasonably small to prevent infinite recursion as early as possible + pool_size: "${SQL_RELATIONS_POOL_SIZE:4}" # This value has to be reasonably small to prevent the relation query from blocking all other DB calls + query_timeout: "${SQL_RELATIONS_QUERY_TIMEOUT_SEC:20}" # This value has to be reasonably small to prevent the relation query from blocking all other DB calls # Actor system parameters actors: system: - throughput: "${ACTORS_SYSTEM_THROUGHPUT:5}" # Number of messages the actor system will process per actor before switching to processing of messages for next actor + throughput: "${ACTORS_SYSTEM_THROUGHPUT:5}" # Number of messages the actor system will process per actor before switching to processing of messages for the next actor scheduler_pool_size: "${ACTORS_SYSTEM_SCHEDULER_POOL_SIZE:1}" # Thread pool size for actor system scheduler max_actor_init_attempts: "${ACTORS_SYSTEM_MAX_ACTOR_INIT_ATTEMPTS:10}" # Maximum number of attempts to init the actor before disabling the actor app_dispatcher_pool_size: "${ACTORS_SYSTEM_APP_DISPATCHER_POOL_SIZE:1}" # Thread pool size for main actor system dispatcher tenant_dispatcher_pool_size: "${ACTORS_SYSTEM_TENANT_DISPATCHER_POOL_SIZE:2}" # Thread pool size for actor system dispatcher that process messages for tenant actors device_dispatcher_pool_size: "${ACTORS_SYSTEM_DEVICE_DISPATCHER_POOL_SIZE:4}" # Thread pool size for actor system dispatcher that process messages for device actors - rule_dispatcher_pool_size: "${ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE:8}" # Thread pool size for actor system dispatcher that process messages for rule engine (chain/node) actors + rule_dispatcher_pool_size: "${ACTORS_SYSTEM_RULE_DISPATCHER_POOL_SIZE:8}" # Thread pool size for actor system dispatcher that processes messages for rule engine (chain/node) actors tenant: create_components_on_init: "${ACTORS_TENANT_CREATE_COMPONENTS_ON_INIT:true}" # Create components in initialization session: max_concurrent_sessions_per_device: "${ACTORS_MAX_CONCURRENT_SESSION_PER_DEVICE:1}" # Max number of concurrent sessions per device sync: - # Default timeout for processing request using synchronous session (HTTP, CoAP) in milliseconds + # Default timeout for processing requests using synchronous session (HTTP, CoAP) in milliseconds timeout: "${ACTORS_SESSION_SYNC_TIMEOUT:10000}" rule: # Specify thread pool size for database request callbacks executor service @@ -441,7 +442,7 @@ actors: # Specify thread pool size for external call service external_call_thread_pool_size: "${ACTORS_RULE_EXTERNAL_CALL_THREAD_POOL_SIZE:50}" chain: - # Errors for particular actor are persisted once per specified amount of milliseconds + # Errors for particular actors are persisted once per specified amount of milliseconds error_persist_frequency: "${ACTORS_RULE_CHAIN_ERROR_FREQUENCY:3000}" debug_mode_rate_limits_per_tenant: # Enable/Disable the rate limit of persisted debug events for all rule nodes per tenant @@ -452,20 +453,20 @@ actors: # Errors for particular actor are persisted once per specified amount of milliseconds error_persist_frequency: "${ACTORS_RULE_NODE_ERROR_FREQUENCY:3000}" transaction: - # Size of queues which store messages for transaction rule nodes + # Size of queues that store messages for transaction rule nodes queue_size: "${ACTORS_RULE_TRANSACTION_QUEUE_SIZE:15000}" # Time in milliseconds for transaction to complete duration: "${ACTORS_RULE_TRANSACTION_DURATION:60000}" external: - # Force acknowledgement of the incoming message for external rule nodes to decrease processing latency. + # Force acknowledgment of the incoming message for external rule nodes to decrease processing latency. # Enqueue the result of external node processing as a separate message to the rule engine. force_ack: "${ACTORS_RULE_EXTERNAL_NODE_FORCE_ACK:false}" rpc: - # Maximum number of persistent RPC call retries in case of failed requests delivery. + # Maximum number of persistent RPC call retries in case of failed request delivery. max_retries: "${ACTORS_RPC_MAX_RETRIES:5}" # RPC submit strategies. Allowed values: BURST, SEQUENTIAL_ON_ACK_FROM_DEVICE, SEQUENTIAL_ON_RESPONSE_FROM_DEVICE. submit_strategy: "${ACTORS_RPC_SUBMIT_STRATEGY_TYPE:BURST}" - # Time in milliseconds for RPC to receive response after delivery. Used only for SEQUENTIAL_ON_RESPONSE_FROM_DEVICE submit strategy. + # Time in milliseconds for RPC to receive a response after delivery. Used only for SEQUENTIAL_ON_RESPONSE_FROM_DEVICE submit strategy. response_timeout_ms: "${ACTORS_RPC_RESPONSE_TIMEOUT_MS:30000}" statistics: # Enable/disable actor statistics @@ -479,9 +480,9 @@ actors: cache: # caffeine or redis type: "${CACHE_TYPE:caffeine}" - maximumPoolSize: "${CACHE_MAXIMUM_POOL_SIZE:16}" # max pool size to process futures that calls the external cache + maximumPoolSize: "${CACHE_MAXIMUM_POOL_SIZE:16}" # max pool size to process futures that call the external cache attributes: - # make sure that if cache.type is 'redis' and cache.attributes.enabled is 'true' that you change 'maxmemory-policy' Redis config property to 'allkeys-lru', 'allkeys-lfu' or 'allkeys-random' + # make sure that if cache.type is 'redis' and cache.attributes.enabled is 'true' if you change 'maxmemory-policy' Redis config property to 'allkeys-lru', 'allkeys-lfu' or 'allkeys-random' enabled: "${CACHE_ATTRIBUTES_ENABLED:true}" specs: relations: @@ -534,7 +535,7 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_ATTRIBUTES_TTL:1440}" # Attributes cache TTL maxSize: "${CACHE_SPECS_ATTRIBUTES_MAX_SIZE:100000}" # 0 means the cache is disabled userSessionsInvalidation: - # The value of this TTL is ignored and replaced by JWT refresh token expiration time + # The value of this TTL is ignored and replaced by the JWT refresh token expiration time timeToLiveInMinutes: "0" maxSize: "${CACHE_SPECS_USERS_UPDATE_TIME_MAX_SIZE:10000}" # 0 means the cache is disabled otaPackages: @@ -574,7 +575,7 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_ALARM_TYPES_TTL:60}" # Alarm types cache TTL maxSize: "${CACHE_SPECS_ALARM_TYPES_MAX_SIZE:10000}" # 0 means the cache is disabled - # deliberately placed outside 'specs' group above + # deliberately placed outside the 'specs' group above notificationRules: timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_RULES_TTL:30}" # notification rules cache TTL maxSize: "${CACHE_SPECS_NOTIFICATION_RULES_MAX_SIZE:1000}" # 0 means the cache is disabled @@ -582,10 +583,10 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_RATE_LIMITS_TTL:120}" # Rate limits cache TTL maxSize: "${CACHE_SPECS_RATE_LIMITS_MAX_SIZE:200000}" # 0 means the cache is disabled -# Spring data properties +# Spring data parameters spring.data.redis.repositories.enabled: false # Disable this because it is not required. -# Redis configuration properties +# Redis configuration parameters redis: # standalone or cluster or sentinel connection: @@ -596,15 +597,15 @@ redis: host: "${REDIS_HOST:localhost}" # Redis connection port port: "${REDIS_PORT:6379}" - # Use default Redis configuration file + # Use the default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" - # this value may be used only if you used not default ClientConfig + # This value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" - # this value may be used only if you used not default ClientConfig + # This value may be used only if you used not default ClientConfig connectTimeout: "${REDIS_CLIENT_CONNECT_TIMEOUT:30000}" - # this value may be used only if you used not default ClientConfig + # This value may be used only if you used not default ClientConfig readTimeout: "${REDIS_CLIENT_READ_TIMEOUT:60000}" - # this value may be used only if you used not default ClientConfig + # This value may be used only if you used not default ClientConfig usePoolConfig: "${REDIS_CLIENT_USE_POOL_CONFIG:false}" cluster: # Comma-separated list of "host:port" pairs to bootstrap from. @@ -614,7 +615,7 @@ redis: # if set false will be used pool config build from values of the pool config section useDefaultPoolConfig: "${REDIS_USE_DEFAULT_POOL_CONFIG:true}" sentinel: - # name of master node + # name of the master node master: "${REDIS_MASTER:}" # comma-separated list of "host:port" pairs of sentinels sentinels: "${REDIS_SENTINELS:}" @@ -634,13 +635,13 @@ redis: maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" - # Enable/Disable PING command send when a connection is borrowed + # Enable/Disable PING command sent when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" - # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds + # Minimum time that an idle connection should be idle before it can be evicted from the connection pool. The value is set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" @@ -648,22 +649,23 @@ redis: maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" - # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration + # Determines the behavior when a thread requests a connection from the pool, but there are no available connections, and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" - # TTL for short-living SET commands that are used to replace DEL in order to enable transaction support + # TTL for short-living SET commands that are used to replace DEL to enable transaction support evictTtlInMs: "${REDIS_EVICT_TTL_MS:60000}" -# Update version properties + +# Update version parameters updates: - # Enable/disable checks for new version + # Enable/disable checks for the new version enabled: "${UPDATES_ENABLED:true}" -# Spring CORS configuration +# Spring CORS configuration parameters spring.mvc.cors: mappings: # Intercept path "[/api/**]": - #Comma-separated list of origins to allow. '*' allows all origins. When not set,CORS support is disabled. + #Comma-separated list of origins to allow. '*' allows all origins. When not set, CORS support is disabled. allowed-origin-patterns: "*" #Comma-separated list of methods to allow. '*' allows all methods. allowed-methods: "*" @@ -674,8 +676,8 @@ spring.mvc.cors: #Set whether credentials are supported. When not set, credentials are not supported. allow-credentials: "true" -# General spring properties -spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed or not. +# General spring parameters +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed. spring.freemarker.checkTemplateLocation: "false" # spring freemarker configuration spring.mvc.async.request-timeout: "${SPRING_MVC_ASYNC_REQUEST_TIMEOUT:30000}" # The default timeout for asynchronous requests in milliseconds spring.mvc.pathmatch.matching-strategy: "ANT_PATH_MATCHER" # For endpoints matching in Swagger @@ -691,7 +693,7 @@ spring.servlet.multipart.max-request-size: "50MB" # Total request size for a mul spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation: "true" #Fix Postgres JPA Error (Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented) spring.jpa.properties.hibernate.order_by.default_null_ordering: "${SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING:last}" # Note: as for current Spring JPA version, custom NullHandling for the Sort.Order is ignored and this parameter is used -# SQL DAO Configuration +# SQL DAO Configuration parameters spring: data: jpa: @@ -716,7 +718,7 @@ spring: hikari: # This property controls the amount of time that a connection can be out of the pool before a message is logged indicating a possible connection leak. A value of 0 means leak detection is disabled leakDetectionThreshold: "${SPRING_DATASOURCE_HIKARI_LEAK_DETECTION_THRESHOLD:0}" - # This property allows the number of connections in the pool to increase as demand increases. At the same time, the property ensures that the pool doesn't grow to the point of exhausting a system's resources, which ultimately affects an application's performance and availability + # This property increases the number of connections in the pool as demand increases. At the same time, the property ensures that the pool doesn't grow to the point of exhausting a system's resources, which ultimately affects an application's performance and availability maximumPoolSize: "${SPRING_DATASOURCE_MAXIMUM_POOL_SIZE:16}" registerMbeans: "${SPRING_DATASOURCE_HIKARI_REGISTER_MBEANS:false}" # true - enable MBean to diagnose pools state via JMX @@ -746,12 +748,12 @@ audit-log: sink: # Type of external sink. possible options: none, elasticsearch type: "${AUDIT_LOG_SINK_TYPE:none}" - # Name of the index where audit logs stored + # Name of the index where audit logs are stored # Index name could contain next placeholders (not mandatory): # @{TENANT} - substituted by tenant ID # @{DATE} - substituted by current date in format provided in audit_log.sink.date_format index_pattern: "${AUDIT_LOG_SINK_INDEX_PATTERN:@{TENANT}_AUDIT_LOG_@{DATE}}" - # Date format. Details of the pattern could be found here: + # Date format. Details of the pattern can be found here: # https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html date_format: "${AUDIT_LOG_SINK_DATE_FORMAT:YYYY.MM.dd}" scheme_name: "${AUDIT_LOG_SINK_SCHEME_NAME:http}" # http or https @@ -760,26 +762,26 @@ audit-log: user_name: "${AUDIT_LOG_SINK_USER_NAME:}" # Username used to access external sink system password: "${AUDIT_LOG_SINK_PASSWORD:}" # Password used to access external sink system -# State properties +# Device state parameters state: # Should be greater than transport.sessions.report_timeout defaultInactivityTimeoutInSec: "${DEFAULT_INACTIVITY_TIMEOUT:600}" - defaultStateCheckIntervalInSec: "${DEFAULT_STATE_CHECK_INTERVAL:60}" # Interval for checking the device state after a specified period of time. Time in seconds - # Controls whether we store device 'active' flag in attributes (default) or telemetry. + defaultStateCheckIntervalInSec: "${DEFAULT_STATE_CHECK_INTERVAL:60}" # Interval for checking the device state after a specified period. Time in seconds + # Controls whether we store the device 'active' flag in attributes (default) or telemetry. # If you device to change this parameter, you should re-create the device info view as one of the following: # If 'persistToTelemetry' is changed from 'false' to 'true': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_ts_view;' # If 'persistToTelemetry' is changed from 'true' to 'false': 'CREATE OR REPLACE VIEW device_info_view AS SELECT * FROM device_info_active_attribute_view;' persistToTelemetry: "${PERSIST_STATE_TO_TELEMETRY:false}" -# Tbel properties +# Tbel parameters tbel: # Enable/Disable TBEL feature. enabled: "${TBEL_ENABLED:true}" - # Limit on the number of arguments that are passed to the function to execute the script + # Limit the number of arguments that are passed to the function to execute the script max_total_args_size: "${TBEL_MAX_TOTAL_ARGS_SIZE:100000}" # Maximum allowed symbols in a result after processing a script max_result_size: "${TBEL_MAX_RESULT_SIZE:300000}" - # Maximum allowed symbols in script body + # Maximum allowed symbols in the script body max_script_body_size: "${TBEL_MAX_SCRIPT_BODY_SIZE:50000}" # Maximum allowed TBEL script execution memory max_memory_limit_mb: "${TBEL_MAX_MEMORY_LIMIT_MB: 8}" @@ -799,11 +801,11 @@ tbel: # Interval of logging for TBEL stats print_interval_ms: "${TB_TBEL_STATS_PRINT_INTERVAL_MS:10000}" -# JS properties +# JS parameters js: # local (Nashorn Engine, deprecated) OR remote JS-Executors (NodeJS) evaluator: "${JS_EVALUATOR:local}" - # Limit on the number of arguments that are passed to the function to execute the script + # Limit the number of arguments that are passed to the function to execute the script max_total_args_size: "${JS_MAX_TOTAL_ARGS_SIZE:100000}" # Maximum allowed symbols in a result after processing a script max_result_size: "${JS_MAX_RESULT_SIZE:300000}" @@ -844,10 +846,10 @@ js: # Interval of logging for remote JS executor stats print_interval_ms: "${TB_JS_REMOTE_STATS_PRINT_INTERVAL_MS:10000}" -# Transport configuration properties +# Transport configuration parameters transport: sessions: - # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if the device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" @@ -867,7 +869,7 @@ transport: # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" rate_limits: - # Enable or disable generic rate limits. Device and Tenant specific rate limits are controlled in Tenant Profile. + # Enable or disable generic rate limits. Device and Tenant-specific rate limits are controlled in Tenant Profile. ip_limits_enabled: "${TB_TRANSPORT_IP_RATE_LIMITS_ENABLED:false}" # Maximum number of connect attempts with invalid credentials max_wrong_credentials_per_ip: "${TB_TRANSPORT_MAX_WRONG_CREDENTIALS_PER_IP:10}" @@ -885,7 +887,7 @@ transport: mqtt: # Enable/disable mqtt transport protocol. enabled: "${MQTT_ENABLED:true}" - # MQTT bind address + # MQTT bind-address bind_address: "${MQTT_BIND_ADDRESS:0.0.0.0}" # MQTT bind port bind_port: "${MQTT_BIND_PORT:1883}" @@ -910,7 +912,7 @@ transport: ssl: # Enable/disable SSL support enabled: "${MQTT_SSL_ENABLED:false}" - # MQTT SSL bind address + # MQTT SSL bind-address bind_address: "${MQTT_SSL_BIND_ADDRESS:0.0.0.0}" # MQTT SSL bind port bind_port: "${MQTT_SSL_BIND_PORT:8883}" @@ -946,7 +948,7 @@ transport: coap: # Enable/disable coap transport protocol. enabled: "${COAP_ENABLED:true}" - # CoAP bind address + # CoAP bind-address bind_address: "${COAP_BIND_ADDRESS:0.0.0.0}" # CoAP bind port bind_port: "${COAP_BIND_PORT:5683}" @@ -963,7 +965,7 @@ transport: enabled: "${COAP_DTLS_ENABLED:false}" # RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000 retransmission_timeout: "${COAP_DTLS_RETRANSMISSION_TIMEOUT_MS:9000}" - # CoAP DTLS bind address + # CoAP DTLS bind-address bind_address: "${COAP_DTLS_BIND_ADDRESS:0.0.0.0}" # CoAP DTLS bind port bind_port: "${COAP_DTLS_BIND_PORT:5684}" @@ -975,7 +977,7 @@ transport: pem: # Path to the server certificate file (holds server certificate or certificate chain, may include server private key) cert_file: "${COAP_DTLS_PEM_CERT:coapserver.pem}" - # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file; + # Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file; key_file: "${COAP_DTLS_PEM_KEY:coapserver_key.pem}" # Server certificate private key password (optional) key_password: "${COAP_DTLS_PEM_KEY_PASSWORD:server_key_password}" @@ -994,7 +996,7 @@ transport: x509: # Skip certificate validity check for client certificates. skip_validity_check_for_client_cert: "${TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" - # Inactivity timeout of DTLS session. Used to cleanup cache + # Inactivity timeout of DTLS session. Used to clean cache dtls_session_inactivity_timeout: "${TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT:86400000}" # Interval of periodic eviction of the timed-out DTLS sessions dtls_session_report_timeout: "${TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT:1800000}" @@ -1027,7 +1029,7 @@ transport: pem: # Path to the server certificate file (holds server certificate or certificate chain, may include server private key) cert_file: "${LWM2M_SERVER_PEM_CERT:lwm2mserver.pem}" - # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file; + # Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file; key_file: "${LWM2M_SERVER_PEM_KEY:lwm2mserver_key.pem}" # Server certificate private key password (optional) key_password: "${LWM2M_SERVER_PEM_KEY_PASSWORD:server_key_password}" @@ -1120,7 +1122,7 @@ transport: clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}" # Maximum log size log_max_length: "${LWM2M_LOG_MAX_LENGTH:1024}" - # PSM Activity Timer if not specified in device profile + # PSM Activity Timer if not specified in the device profile psm_activity_timer: "${LWM2M_PSM_ACTIVITY_TIMER:10000}" # Paging Transmission Window for eDRX support if not specified in the device profile paging_transmission_window: "${LWM2M_PAGING_TRANSMISSION_WINDOW:10000}" @@ -1137,63 +1139,63 @@ transport: parallelism_level: "${SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL:20}" # to configure SNMP to work over UDP or TCP underlying_protocol: "${SNMP_UNDERLYING_PROTOCOL:udp}" - # Batch size to request OID mappings from device (useful when device profile has multiple hundreds of OID mappings) + # Batch size to request OID mappings from the device (useful when the device profile has multiple hundreds of OID mappings) max_request_oids: "${SNMP_MAX_REQUEST_OIDS:100}" response: - # To ignore SNMP response values that do not match data type of the configured OID mapping (by default false - will throw error if any value of the response not matches configured data types) + # To ignore SNMP response values that do not match the data type of the configured OID mapping (by default false - will throw an error if any value of the response not match configured data types) ignore_type_cast_errors: "${SNMP_RESPONSE_IGNORE_TYPE_CAST_ERRORS:false}" stats: - # Enable/Disable collection of transport statistics + # Enable/Disable the collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" -# Device connectivity properties to publish telemetry +# Device connectivity parameters device: connectivity: http: # If true check-connectivity service will include curl command to the list of all test commands using DEVICE_CONNECTIVITY_HTTP_HOST and DEVICE_CONNECTIVITY_HTTP_PORT variables enabled: "${DEVICE_CONNECTIVITY_HTTP_ENABLED:true}" - # Host of http transport service. If empty base url will be used. + # Host of http transport service. If empty, the base URL will be used. host: "${DEVICE_CONNECTIVITY_HTTP_HOST:}" - # Port of http transport service. If empty default http port will be used. + # Port of http transport service. If empty, default http port will be used. port: "${DEVICE_CONNECTIVITY_HTTP_PORT:8080}" https: # If true check-connectivity service will include curl command to the list of all test commands using DEVICE_CONNECTIVITY_HTTPS_HOST and DEVICE_CONNECTIVITY_HTTPS_PORT variables enabled: "${DEVICE_CONNECTIVITY_HTTPS_ENABLED:false}" - # Host of http transport service. If empty base url will be used. + # Host of http transport service. If empty, the base URL will be used. host: "${DEVICE_CONNECTIVITY_HTTPS_HOST:}" - # Port of http transport service. If empty default https port will be used. + # Port of http transport service. If empty, the default https port will be used. port: "${DEVICE_CONNECTIVITY_HTTPS_PORT:443}" mqtt: # If true mosquito command will be included to the list of all test commands using DEVICE_CONNECTIVITY_MQTT_HOST and DEVICE_CONNECTIVITY_MQTT_PORT enabled: "${DEVICE_CONNECTIVITY_MQTT_ENABLED:true}" - # Host of mqtt transport service. If empty base url host will be used. + # Host of mqtt transport service. If empty, the base url host will be used. host: "${DEVICE_CONNECTIVITY_MQTT_HOST:}" # Port of mqtt transport service port: "${DEVICE_CONNECTIVITY_MQTT_PORT:1883}" mqtts: - # If true mosquito command will be included to the list of all test commands using DEVICE_CONNECTIVITY_MQTTS_HOST and DEVICE_CONNECTIVITY_MQTTS_PORT< + # If true mosquito command will be included in the list of all test commands using DEVICE_CONNECTIVITY_MQTTS_HOST and DEVICE_CONNECTIVITY_MQTTS_PORT< enabled: "${DEVICE_CONNECTIVITY_MQTTS_ENABLED:false}" - # Host of mqtt transport service. If empty base url host will be used. + # Host of mqtt transport service. If empty, the base URL host will be used. host: "${DEVICE_CONNECTIVITY_MQTTS_HOST:}" - # Port of mqtt transport service. If empty default port for mqtts will be used. + # Port of mqtt transport service. If empty, the default port for mqtts will be used. port: "${DEVICE_CONNECTIVITY_MQTTS_PORT:8883}" # Path to the server certificate file pem_cert_file: "${DEVICE_CONNECTIVITY_MQTT_SSL_PEM_CERT:mqttserver.pem}" coap: - # If true coap command will be included to the list of all test commands using DEVICE_CONNECTIVITY_COAP_HOST and DEVICE_CONNECTIVITY_COAP_PORT. + # If true coap command will be included in the list of all test commands using DEVICE_CONNECTIVITY_COAP_HOST and DEVICE_CONNECTIVITY_COAP_PORT. enabled: "${DEVICE_CONNECTIVITY_COAP_ENABLED:true}" - # Host of coap transport service. If empty base url host will be used. + # Host of coap transport service. If empty, the base URL host will be used. host: "${DEVICE_CONNECTIVITY_COAP_HOST:}" - # Port of coap transport service. If empty default port for coap will be used. + # Port of coap transport service. If empty, the default port for coap will be used. port: "${DEVICE_CONNECTIVITY_COAP_PORT:5683}" coaps: - # If true coap command will be included to the list of all test commands using DEVICE_CONNECTIVITY_COAPS_HOST and DEVICE_CONNECTIVITY_COAPS_PORT. + # If true coap command will be included in the list of all test commands using DEVICE_CONNECTIVITY_COAPS_HOST and DEVICE_CONNECTIVITY_COAPS_PORT. enabled: "${DEVICE_CONNECTIVITY_COAPS_ENABLED:false}" - # Host of coap transport service. If empty base url host will be used. + # Host of coap transport service. If empty, the base URL host will be used. host: "${DEVICE_CONNECTIVITY_COAPS_HOST:}" - # Port of coap transport service. If empty default port for coaps will be used. + # Port of coap transport service. If empty, the default port for coaps will be used. port: "${DEVICE_CONNECTIVITY_COAPS_PORT:5684}" # Edges parameters @@ -1203,47 +1205,47 @@ edges: rpc: # RPC port bind port: "${EDGES_RPC_PORT:7070}" - # Maximum time of keep alive client RPC connection. Time in seconds + # Maximum time of keeping alive client RPC connection. Time in seconds client_max_keep_alive_time_sec: "${EDGES_RPC_CLIENT_MAX_KEEP_ALIVE_TIME_SEC:1}" - # Maximum time of keep alive connection. Time in seconds + # Maximum time of keep-alive connection. Time in seconds keep_alive_time_sec: "${EDGES_RPC_KEEP_ALIVE_TIME_SEC:10}" # Timeout of keep alive RPC connection. Time in seconds keep_alive_timeout_sec: "${EDGES_RPC_KEEP_ALIVE_TIMEOUT_SEC:5}" ssl: # Enable/disable SSL support enabled: "${EDGES_RPC_SSL_ENABLED:false}" - # Cert file to be used during TLS connectivity to cloud + # Cert file to be used during TLS connectivity to the cloud cert: "${EDGES_RPC_SSL_CERT:certChainFile.pem}" # Private key file associated with the Cert certificate. This key is used in the encryption process during a secure connection private_key: "${EDGES_RPC_SSL_PRIVATE_KEY:privateKeyFile.pem}" - # Maximum size (in bytes) of inbound messages that cloud can handle from edge. By default, it can handle messages up to 4 Megabytes + # Maximum size (in bytes) of inbound messages the cloud can handle from the edge. By default, it can handle messages up to 4 Megabytes max_inbound_message_size: "${EDGES_RPC_MAX_INBOUND_MESSAGE_SIZE:4194304}" storage: - # Max records of edge event to read from DB and sent to edge + # Max records of edge event to read from DB and sent to the edge max_read_records_count: "${EDGES_STORAGE_MAX_READ_RECORDS_COUNT:50}" - # Number of milliseconds to wait before next check of edge events in DB + # Number of milliseconds to wait before the next check of edge events in DB no_read_records_sleep: "${EDGES_NO_READ_RECORDS_SLEEP:1000}" - # Number of milliseconds to wait before resend failed batch of edge events to edge + # Number of milliseconds to wait before resending failed batch of edge events to edge sleep_between_batches: "${EDGES_SLEEP_BETWEEN_BATCHES:10000}" - # Number of threads that used to check DB for edge events + # Number of threads that are used to check DB for edge events scheduler_pool_size: "${EDGES_SCHEDULER_POOL_SIZE:1}" # Number of threads that used to send downlink messages to edge over gRPC send_scheduler_pool_size: "${EDGES_SEND_SCHEDULER_POOL_SIZE:1}" - # Number of threads that used to convert edge events from DB into downlink message and send them for delivery + # Number of threads that are used to convert edge events from DB into downlink messages and send them for delivery grpc_callback_thread_pool_size: "${EDGES_GRPC_CALLBACK_POOL_SIZE:1}" state: # Persist state of edge (active, last connect, last disconnect) into timeseries or attributes tables. 'false' means to store edge state into attributes table persistToTelemetry: "${EDGES_PERSIST_STATE_TO_TELEMETRY:false}" -# Swagger common properties +# Swagger common parameters swagger: - # If false swagger api docs will be unavailable + # If false swagger API docs will be unavailable enabled: "${SWAGGER_ENABLED:true}" - # General swagger match pattern of swaggerUI links + # General swagger match pattern of swagger UI links api_path_regex: "${SWAGGER_API_PATH_REGEX:/api/.*}" - # General swagger match pattern path of swaggerUI links + # General swagger match pattern path of swagger UI links security_path_regex: "${SWAGGER_SECURITY_PATH_REGEX:/api/.*}" - # Non security API path match pattern of swaggerUI links + # Nonsecurity API path match pattern of swagger UI links non_security_path_regex: "${SWAGGER_NON_SECURITY_PATH_REGEX:/api/(?:noauth|v1)/.*}" # The title on the API doc UI page title: "${SWAGGER_TITLE:ThingsBoard REST API}" @@ -1281,9 +1283,9 @@ queue: truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" - # The location of the key store file. This is optional for client and can be used for two-way authentication for client + # The location of the key store file. This is optional for the client and can be used for two-way authentication for the client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" - # The store password for the key store file. This is optional for client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format + # The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" @@ -1319,9 +1321,9 @@ queue: # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: - # The endpoint identification algorithm used by clients to validate server host name. The default value is https + # The endpoint identification algorithm used by clients to validate server hostname. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" - # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as transport layer to ensure that clear passwords are not transmitted on the wire without encryption + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" @@ -1344,7 +1346,7 @@ queue: # - key: max.poll.records # value: "${TB_QUEUE_KAFKA_SQ_MAX_POLL_RECORDS:1024}" other-inline: "${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}" # In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000" - other: # DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside + other: # DEPRECATED. In this section, you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside # - key: "request.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms # value: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms @@ -1372,7 +1374,7 @@ queue: # Time to wait for the stats-loading requests to Kafka to finis kafka-response-timeout-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS:1000}" aws_sqs: - # Use default credentials provider for AWS SQS + # Use the default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" @@ -1405,20 +1407,20 @@ queue: service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" # Message size for PubSub queue.Value in bytes max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" - # Number of messages per a consumer + # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: - # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" - # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" - # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consume again + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consumed again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" - # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consume again + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" # PubSub queue properties js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" - # Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consume again + # Pub/Sub properties for Transport Api subscribers, messages which will commit after ackDeadlineInSec period can be consumed again version-control: "${TB_QUEUE_PUBSUB_VC_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: # Azure namespace @@ -1447,7 +1449,7 @@ queue: exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" - # RabbitMQ host used to establish connection + # RabbitMQ host used to establish a connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" @@ -1503,11 +1505,11 @@ queue: ota: # Default topic name for OTA updates topic: "${TB_QUEUE_CORE_OTA_TOPIC:tb_ota_package}" - # The interval of processing the OTA updates for devices. Used to avoid any harm to network due to many parallel OTA updates + # The interval of processing the OTA updates for devices. Used to avoid any harm to the network due to many parallel OTA updates pack-interval-ms: "${TB_QUEUE_CORE_OTA_PACK_INTERVAL_MS:60000}" # The size of OTA updates notifications fetched from the queue. The queue stores pairs of firmware and device ids pack-size: "${TB_QUEUE_CORE_OTA_PACK_SIZE:100}" - # Default topic name for queue Kafka, RabbitMQ, etc. + # Stats topic name for queue Kafka, RabbitMQ, etc. usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" stats: # Enable/disable statistics for Core microservices @@ -1521,7 +1523,7 @@ queue: partitions: "${TB_QUEUE_VC_PARTITIONS:10}" # Interval in milliseconds between polling of the messages if no new messages arrive poll-interval: "${TB_QUEUE_VC_INTERVAL_MS:25}" - # Timeout before retry all failed and timed-out messages from processing pack + # Timeout before retrying all failed and timed-out messages from the processing pack pack-processing-timeout: "${TB_QUEUE_VC_PACK_PROCESSING_TIMEOUT_MS:180000}" # Timeout for a request to VC-executor (for a request for the version of the entity, for a commit charge, etc.) request-timeout: "${TB_QUEUE_VC_REQUEST_TIMEOUT:180000}" @@ -1543,7 +1545,7 @@ queue: # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" rule-engine: - # Deprecated. Will be removed in nearest releases + # Deprecated. It will be removed in the nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" @@ -1554,7 +1556,7 @@ queue: enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" - # Max length of error message that is printed by statistics + # Max length of the error message that is printed by statistics max-error-message-length: "${TB_QUEUE_RULE_ENGINE_MAX_ERROR_MESSAGE_LENGTH:4096}" queues: - name: "${TB_QUEUE_RE_MAIN_QUEUE_NAME:Main}" # queue name @@ -1571,7 +1573,7 @@ queue: type: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_TYPE:SKIP_ALL_FAILURES}" # SKIP_ALL_FAILURES, SKIP_ALL_FAILURES_AND_TIMED_OUT, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT # For RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT retries: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRIES:3}" # Number of retries, 0 is unlimited - failure-percentage: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less then X percentage of messages; + failure-percentage: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less than X percentage of messages; pause-between-retries: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_RETRY_PAUSE:3}" # Time in seconds to wait in consumer thread before retries; max-pause-between-retries: "${TB_QUEUE_RE_MAIN_PROCESSING_STRATEGY_MAX_RETRY_PAUSE:3}" # Max allowed time in seconds for pause between retries. - name: "${TB_QUEUE_RE_HP_QUEUE_NAME:HighPriority}" # queue name @@ -1588,7 +1590,7 @@ queue: type: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_TYPE:RETRY_FAILED_AND_TIMED_OUT}" # SKIP_ALL_FAILURES, SKIP_ALL_FAILURES_AND_TIMED_OUT, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT # For RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT retries: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRIES:0}" # Number of retries, 0 is unlimited - failure-percentage: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less then X percentage of messages; + failure-percentage: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less than X percentage of messages; pause-between-retries: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_RETRY_PAUSE:5}" # Time in seconds to wait in consumer thread before retries; max-pause-between-retries: "${TB_QUEUE_RE_HP_PROCESSING_STRATEGY_MAX_RETRY_PAUSE:5}" # Max allowed time in seconds for pause between retries. - name: "${TB_QUEUE_RE_SQ_QUEUE_NAME:SequentialByOriginator}" # queue name @@ -1605,13 +1607,13 @@ queue: type: "${TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_TYPE:RETRY_FAILED_AND_TIMED_OUT}" # SKIP_ALL_FAILURES, SKIP_ALL_FAILURES_AND_TIMED_OUT, RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT # For RETRY_ALL, RETRY_FAILED, RETRY_TIMED_OUT, RETRY_FAILED_AND_TIMED_OUT retries: "${TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRIES:3}" # Number of retries, 0 is unlimited - failure-percentage: "${TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less then X percentage of messages; + failure-percentage: "${TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_FAILURE_PERCENTAGE:0}" # Skip retry if failures or timeouts are less than X percentage of messages; pause-between-retries: "${TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_RETRY_PAUSE:5}" # Time in seconds to wait in consumer thread before retries; max-pause-between-retries: "${TB_QUEUE_RE_SQ_PROCESSING_STRATEGY_MAX_RETRY_PAUSE:5}" # Max allowed time in seconds for pause between retries. - # After a queue is deleted (or profile's isolation option was disabled), Rule Engine will continue reading related topics during this period, before deleting the actual topics + # After a queue is deleted (or the profile's isolation option was disabled), Rule Engine will continue reading related topics during this period before deleting the actual topics topic-deletion-delay: "${TB_QUEUE_RULE_ENGINE_TOPIC_DELETION_DELAY_SEC:30}" transport: - # For high priority notifications that require minimum latency and processing time + # For high-priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" @@ -1628,8 +1630,8 @@ service: # Unique id for this service (autogenerated if empty) id: "${TB_SERVICE_ID:}" rule_engine: - # Comma-separated list of tenant profiles ids assigned to this Rule Engine. - # This Rule Engine will only be responsible for tenants with these profiles (in case 'isolation' option is enabled in profile). + # Comma-separated list of tenant profile ids assigned to this Rule Engine. + # This Rule Engine will only be responsible for tenants with these profiles (in case 'isolation' option is enabled in the profile). assigned_tenant_profiles: "${TB_RULE_ENGINE_ASSIGNED_TENANT_PROFILES:}" # Metrics parameters diff --git a/tools/src/main/python/check_yml_file.py b/tools/src/main/python/check_yml_file.py index 606b456491..0aca5e41af 100644 --- a/tools/src/main/python/check_yml_file.py +++ b/tools/src/main/python/check_yml_file.py @@ -17,13 +17,14 @@ import sys import re + def extract_properties_with_comments(yaml_file_path): properties = {} with open(yaml_file_path, 'r') as file: lines = file.readlines() index = 0 - key_level_map = {0 : ''} + key_level_map = {0: ''} parse_line('', '', key_level_map, 0, index, lines, properties) return properties @@ -42,7 +43,7 @@ def parse_line(table_name, comment, key_level_map, parent_line_level, index, lin # if line is a comment - save comment and parse next line else: if line_level == 0: - key_level_map = {0 : ''} + key_level_map = {0: ''} if line.startswith('#'): if line_level == 0: table_name = line.lstrip('#') @@ -100,11 +101,7 @@ def check_descriptions(properties): return variables_without_description -if __name__ == '__main__': - sys. setrecursionlimit(10000) - # path to the YAML file - input_yaml_file = "application/src/main/resources/thingsboard.yml" - +def check_yml(total_list, input_yaml_file): # Parse yml file to map where key is property key path with '.' separator # and value is an object (env_name_with_default_value, comment, table_name) properties = extract_properties_with_comments(input_yaml_file) @@ -112,11 +109,25 @@ if __name__ == '__main__': # Extract property information (extract env name, default value and comment nearby property) property_info = extract_property_info(properties) - # Check all properies have descriptions - variables_without_desc = check_descriptions(property_info) + # Check all properties have descriptions + variables_without_description = check_descriptions(property_info) + total_list.extend(variables_without_description) + if len(variables_without_description) > 0: + print(f"Check {input_yaml_file}. There are some yml properties without valid description: (total {len(variables_without_description)}) {variables_without_description}.") + +if __name__ == '__main__': + sys.setrecursionlimit(10000) + files_to_check = ["application/src/main/resources/thingsboard.yml", + "transport/http/src/main/resources/tb-http-transport.yml", + "transport/mqtt/src/main/resources/tb-mqtt-transport.yml", + "transport/coap/src/main/resources/tb-coap-transport.yml", + "transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml", + "transport/snmp/src/main/resources/tb-snmp-transport.yml"] - if len(variables_without_desc) > 0: - print(f"There are some yml properties without valid description: (total {len(variables_without_desc)}) {variables_without_desc}.") + total_list = [] + for file in files_to_check: + check_yml(total_list, file) + if len(total_list) > 0: exit(1) else: print("All yml properties have valid description.") \ No newline at end of file diff --git a/transport/coap/src/main/resources/tb-coap-transport.yml b/transport/coap/src/main/resources/tb-coap-transport.yml index 082b6c0536..825b197e1d 100644 --- a/transport/coap/src/main/resources/tb-coap-transport.yml +++ b/transport/coap/src/main/resources/tb-coap-transport.yml @@ -14,13 +14,12 @@ # limitations under the License. # -# If you enabled process metrics you should also enable 'web-environment'. -spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" -# If you enabled process metrics you should set 'web-application-type' to 'servlet' value. -spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" - -spring.main.allow-circular-references: "true" +# Spring common parameters +spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" # If you enabled process metrics you should also enable 'web-environment'. +spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" # If you enabled process metrics you should set 'web-application-type' to 'servlet' value. +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed. +# Server common parameters server: # Server bind address (has no effect if web-environment is disabled). address: "${HTTP_BIND_ADDRESS:0.0.0.0}" @@ -41,18 +40,27 @@ zk: session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}" # Name of the directory in zookeeper 'filesystem' zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}" + # The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. + # This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. + # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" +# Cache parameters cache: + # caffeine or redis type: "${CACHE_TYPE:redis}" +# Redis configuration parameters redis: - # standalone or cluster or sentinel connection: + # standalone or cluster or sentinel type: "${REDIS_CONNECTION_TYPE:standalone}" standalone: + # Redis connection host host: "${REDIS_HOST:localhost}" + # Redis connection port port: "${REDIS_PORT:6379}" + # Use default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" # this value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" @@ -84,26 +92,43 @@ redis: password: "${REDIS_PASSWORD:}" # pool config pool_config: + # Maximum number of connections that can be allocated by the connection pool maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}" + # Maximum number of idle connections that can be maintained in the pool without being closed maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" + # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" + # Enable/Disable PING command send when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" + # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" + # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" + # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" + # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" + # Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" + # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" + # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" # COAP server parameters transport: coap: + # CoAP bind-address bind_address: "${COAP_BIND_ADDRESS:0.0.0.0}" + # CoAP bind port bind_port: "${COAP_BIND_PORT:5683}" + # CoaP processing timeout in milliseconds timeout: "${COAP_TIMEOUT:10000}" + # CoaP piggyback response timeout in milliseconds piggyback_timeout: "${COAP_PIGGYBACK_TIMEOUT:500}" + # Default PSM Activity Timer if not specified in device profile psm_activity_timer: "${COAP_PSM_ACTIVITY_TIMER:10000}" + # Default PSM Activity Timer if not specified in device profile paging_transmission_window: "${COAP_PAGING_TRANSMISSION_WINDOW:10000}" dtls: # Enable/disable DTLS 1.2 support @@ -141,10 +166,14 @@ transport: x509: # Skip certificate validity check for client certificates. skip_validity_check_for_client_cert: "${TB_COAP_X509_DTLS_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" + # Inactivity timeout of DTLS session. Used to clean cache dtls_session_inactivity_timeout: "${TB_COAP_X509_DTLS_SESSION_INACTIVITY_TIMEOUT:86400000}" + # Interval of periodic eviction of the timed-out DTLS sessions dtls_session_report_timeout: "${TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT:1800000}" sessions: + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if the device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" + # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" json: # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON @@ -152,44 +181,74 @@ transport: # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" log: + # Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update enabled: "${TB_TRANSPORT_LOG_ENABLED:true}" + # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" stats: + # Enable/Disable the collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" + # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" +# Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) kafka: + # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: + # Enable/Disable SSL Kafka communication enabled: "${TB_KAFKA_SSL_ENABLED:false}" + # The location of the trust store file truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" + # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" + # The location of the key store file. This is optional for the client and can be used for two-way authentication for the client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" + # The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" + # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all acks: "${TB_KAFKA_ACKS:all}" + # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" + # The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values none or gzip compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip + # Default batch size. This setting gives the upper bound of the batch size to be sent batch.size: "${TB_KAFKA_BATCH_SIZE:16384}" + # This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record linger.ms: "${TB_KAFKA_LINGER_MS:1}" + # The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}" + # The maximum number of unacknowledged requests the client will send on a single connection before blocking max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}" + # The total bytes of memory the producer can use to buffer records waiting to be sent to the server buffer.memory: "${TB_BUFFER_MEMORY:33554432}" + # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" + # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" + # The maximum number of records returned in a single call to poll() max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" + # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" + # The maximum amount of data the server will return. Records are fetched in batches by the consumer fetch_max_bytes: "${TB_QUEUE_KAFKA_FETCH_MAX_BYTES:134217728}" request.timeout.ms: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms session.timeout.ms: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms auto_offset_reset: "${TB_QUEUE_KAFKA_AUTO_OFFSET_RESET:earliest}" # earliest, latest or none + # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: + # The endpoint identification algorithm used by clients to validate server hostname. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" + # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" + # Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" other-inline: "${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}" # In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000" other: # DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside @@ -198,75 +257,130 @@ queue: # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms # value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) topic-properties: + # Kafka properties for Rule Engine rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Core topics core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Transport Api topics transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Notifications topics notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" aws_sqs: + # Use the default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" + # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" + # Secret access key from AWS IAM user secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}" + # Region from AWS account region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}" + # Number of threads per each AWS SQS queue in consumer threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}" queue-properties: + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" - # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: + # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + # API Credentials in JSON format service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" - max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes + # Message size for PubSub queue. Value in bytes + max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" + # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consumed again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: + # Azure namespace namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}" + # Azure Service Bus Shared Access Signatures key name sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}" + # Azure Service Bus Shared Access Signatures key sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}" queue-properties: + # Azure Service Bus properties for Rule Engine queues rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Core queues core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Transport Api queues transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Notification queues notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" rabbitmq: + # By default empty exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" + # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" + # RabbitMQ host used to establish a connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" + # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" + # Username for RabbitMQ user account username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}" + # User password for RabbitMQ user account password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}" + # Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}" + # The connection timeout for the RabbitMQ connection factory connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}" + # RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}" queue-properties: + # RabbitMQ properties for Rule Engine queues rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Core queues core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Transport API queues transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Notification queues notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" partitions: - hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" + hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 transport_api: + # Topic used to consume api requests from transport microservices requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}" + # Topic used to produce api responses to transport microservices responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}" + # Maximum pending api requests from transport microservices to be handled by server max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}" + # Maximum timeout in milliseconds to handle api request from transport microservice by server max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}" + # Amount of threads used to invoke callbacks max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}" + # Interval in milliseconds to poll api requests from transport microservices request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}" + # Interval in milliseconds to poll api response from transport microservices response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}" core: + # Default topic name of Kafka, RabbitMQ, etc. queue topic: "${TB_QUEUE_CORE_TOPIC:tb_core}" + # Interval in milliseconds to poll messages by Core microservices poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" + # Amount of partitions used by Core microservices partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" + # Timeout for processing a message pack by Core microservices pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:60000}" + # Default topic name for queue Kafka, RabbitMQ, etc. usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" stats: + # Enable/disable statistics for Core microservices enabled: "${TB_QUEUE_CORE_STATS_ENABLED:false}" + # Statistics printing interval for Core microservices print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:10000}" js: # JS Eval request topic @@ -280,19 +394,26 @@ queue: # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" rule-engine: + # Deprecated. It will be removed in the nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" + # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" + # Timeout for processing a message pack of Rule Engine pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:60000}" stats: + # Enable/disable statistics for Rule Engine enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" + # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" transport: # For high priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" + # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" +# Service common properties service: - type: "${TB_SERVICE_TYPE:tb-transport}" + type: "${TB_SERVICE_TYPE:tb-transport}" # service type # Unique id for this service (autogenerated if empty) id: "${TB_SERVICE_ID:}" @@ -300,14 +421,19 @@ service: usage: stats: report: + # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" + # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" + # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" +# Metrics parameters metrics: # Enable/disable actuator metrics. enabled: "${METRICS_ENABLED:false}" +# General management parameters management: endpoints: web: @@ -315,6 +441,7 @@ management: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). include: '${METRICS_ENDPOINTS_EXPOSE:info}' +# Notification system parameters notification_system: rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' diff --git a/transport/http/src/main/resources/tb-http-transport.yml b/transport/http/src/main/resources/tb-http-transport.yml index 6c5ddb9c52..315b138bfa 100644 --- a/transport/http/src/main/resources/tb-http-transport.yml +++ b/transport/http/src/main/resources/tb-http-transport.yml @@ -14,8 +14,7 @@ # limitations under the License. # -spring.main.allow-circular-references: "true" - +# Server common properties server: # Server bind address address: "${HTTP_BIND_ADDRESS:0.0.0.0}" @@ -54,6 +53,9 @@ server: # Enable/disable HTTP/2 support enabled: "${HTTP2_ENABLED:true}" +# Spring common parameters +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed. + # Zookeeper connection parameters. Used for service discovery. zk: # Enable/disable zookeeper discovery service. @@ -68,18 +70,28 @@ zk: session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}" # Name of the directory in zookeeper 'filesystem' zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}" + # The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. + # This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. + # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" +# Cache parameters cache: + # caffeine or redis type: "${CACHE_TYPE:redis}" +# Redis configuration parameters redis: # standalone or cluster or sentinel connection: + # Redis deployment type: Standalone (single Redis node deployment) OR Cluster type: "${REDIS_CONNECTION_TYPE:standalone}" standalone: + # Redis connection host host: "${REDIS_HOST:localhost}" + # Redis connection port port: "${REDIS_PORT:6379}" + # Use default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" # this value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" @@ -111,25 +123,40 @@ redis: password: "${REDIS_PASSWORD:}" # pool config pool_config: + # Maximum number of connections that can be allocated by the connection pool maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}" + # Maximum number of idle connections that can be maintained in the pool without being closed maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" + # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" + # Enable/Disable PING command send when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" + # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" + # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" + # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" + # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" + # Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" + # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" + # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" # HTTP server parameters transport: http: + # HTTP request processing timeout in milliseconds request_timeout: "${HTTP_REQUEST_TIMEOUT:60000}" + # HTTP maximum request processing timeout in milliseconds max_request_timeout: "${HTTP_MAX_REQUEST_TIMEOUT:300000}" sessions: + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" + # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" json: # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON @@ -137,44 +164,73 @@ transport: # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" log: + # Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update enabled: "${TB_TRANSPORT_LOG_ENABLED:true}" + # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" stats: + # Enable/Disable collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" + # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" +# Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) kafka: + # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: + # Enable/Disable SSL Kafka communication enabled: "${TB_KAFKA_SSL_ENABLED:false}" + # The location of the trust store file truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" + # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" + # The location of the key store file. This is optional for client and can be used for two-way authentication for client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" + # The store password for the key store file. This is optional for client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" + # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all acks: "${TB_KAFKA_ACKS:all}" + # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip + # Default batch size. This setting gives the upper bound of the batch size to be sent batch.size: "${TB_KAFKA_BATCH_SIZE:16384}" + # This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record linger.ms: "${TB_KAFKA_LINGER_MS:1}" + # The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}" + # The maximum number of unacknowledged requests the client will send on a single connection before blocking max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}" + # The total bytes of memory the producer can use to buffer records waiting to be sent to the server buffer.memory: "${TB_BUFFER_MEMORY:33554432}" + # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" + # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" + # The maximum number of records returned in a single call to poll() max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" + # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" + # The maximum amount of data the server will return. Records are fetched in batches by the consumer fetch_max_bytes: "${TB_QUEUE_KAFKA_FETCH_MAX_BYTES:134217728}" request.timeout.ms: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms session.timeout.ms: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms auto_offset_reset: "${TB_QUEUE_KAFKA_AUTO_OFFSET_RESET:earliest}" # earliest, latest or none + # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: + # The endpoint identification algorithm used by clients to validate server host name. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" + # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" + # Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" other-inline: "${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}" # In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000" other: # DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside @@ -183,75 +239,131 @@ queue: # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms # value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) topic-properties: + # Kafka properties for Rule Engine rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Core topics core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Transport Api topics transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Notifications topics notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" aws_sqs: + # Use default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" + # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" + # Secret access key from AWS IAM user secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}" + # Region from AWS account region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}" + # Number of threads per each AWS SQS queue in consumer threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}" queue-properties: + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" - transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds + transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: + # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + # API Credentials in JSON format service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" - max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes + # Message size for PubSub queue.Value in bytes + max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consume again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consume again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consume again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consume again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: + # Azure namespace namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}" + # Azure Service Bus Shared Access Signatures key name sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}" + # Azure Service Bus Shared Access Signatures key sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}" queue-properties: + # Azure Service Bus properties for Rule Engine queues rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Core queues core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Transport Api queues transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Notification queues notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" rabbitmq: + # By default empty exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" + # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" + # RabbitMQ host used to establish a connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" + # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" + # Username for RabbitMQ user account username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}" + # User password for RabbitMQ user account password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}" + # Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}" + # The connection timeout for the RabbitMQ connection factory connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}" + # RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}" queue-properties: + # RabbitMQ properties for Rule Engine queues rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Core queues core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Transport API queues transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Notification queues notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" partitions: - hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" + hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 transport_api: + # Topic used to consume api requests from transport microservices requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}" + # Topic used to produce api responses to transport microservices responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}" + # Maximum pending api requests from transport microservices to be handled by server max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}" + # Maximum timeout in milliseconds to handle api request from transport microservice by server max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}" + # Amount of threads used to invoke callbacks max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}" + # Interval in milliseconds to poll api requests from transport microservices request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}" + # Interval in milliseconds to poll api response from transport microservices response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}" core: + # Default topic name of Kafka, RabbitMQ, etc. queue topic: "${TB_QUEUE_CORE_TOPIC:tb_core}" + # Interval in milliseconds to poll messages by Core microservices poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" + # Amount of partitions used by Core microservices partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" + # Timeout for processing a message pack by Core microservices pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:60000}" + # Default topic name for queue Kafka, RabbitMQ, etc. usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" stats: + # Enable/disable statistics for Core microservices enabled: "${TB_QUEUE_CORE_STATS_ENABLED:false}" + # Statistics printing interval for Core microservices print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:10000}" js: # JS Eval request topic @@ -265,19 +377,26 @@ queue: # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" rule-engine: + # Deprecated. It will be removed in the nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" + # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" + # Timeout for processing a message pack of Rule Engine pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:60000}" stats: + # Enable/disable statistics for Rule Engine enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" + # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" transport: # For high priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" + # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" +# General service parameters service: - type: "${TB_SERVICE_TYPE:tb-transport}" + type: "${TB_SERVICE_TYPE:tb-transport}" # type of service # Unique id for this service (autogenerated if empty) id: "${TB_SERVICE_ID:}" @@ -285,14 +404,19 @@ service: usage: stats: report: + # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" + # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" + # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" +# Metrics parameters metrics: # Enable/disable actuator metrics. enabled: "${METRICS_ENABLED:false}" +# General management parameters management: endpoints: web: @@ -300,6 +424,7 @@ management: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). include: '${METRICS_ENDPOINTS_EXPOSE:info}' +# Notification system parameters notification_system: rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' diff --git a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml index 4c0a33929a..db4870e40b 100644 --- a/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml +++ b/transport/lwm2m/src/main/resources/tb-lwm2m-transport.yml @@ -14,13 +14,12 @@ # limitations under the License. # -# If you enabled process metrics you should also enable 'web-environment'. -spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" -# If you enabled process metrics you should set 'web-application-type' to 'servlet' value. -spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" - -spring.main.allow-circular-references: "true" +# Spring common parameters +spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" # If you enabled process metrics you should also enable 'web-environment'. +spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" # If you enabled process metrics you should set 'web-application-type' to 'servlet' value. +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed. +# Server common parameters server: # Server bind address (has no effect if web-environment is disabled). address: "${HTTP_BIND_ADDRESS:0.0.0.0}" @@ -41,18 +40,27 @@ zk: session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}" # Name of the directory in zookeeper 'filesystem' zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}" + # The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. + # This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. + # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" +# Cache parameters cache: + # caffeine or redis type: "${CACHE_TYPE:redis}" +# Redis configuration parameters redis: - # standalone or cluster or sentinel connection: + # standalone or cluster or sentinel type: "${REDIS_CONNECTION_TYPE:standalone}" standalone: + # Redis connection host host: "${REDIS_HOST:localhost}" + # Redis connection port port: "${REDIS_PORT:6379}" + # Use default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" # this value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" @@ -84,22 +92,35 @@ redis: password: "${REDIS_PASSWORD:}" # pool config pool_config: + # Maximum number of connections that can be allocated by the connection pool maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}" + # Maximum number of idle connections that can be maintained in the pool without being closed maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" + # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" + # Enable/Disable PING command send when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" + # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" + # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" + # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" + # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" + # Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" + # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" + # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" # LWM2M server parameters transport: sessions: + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if the device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" + # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" json: # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON @@ -107,11 +128,14 @@ transport: # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" client_side_rpc: + # Processing timeout interval of the RPC command on the CLIENT SIDE. Time in milliseconds timeout: "${CLIENT_SIDE_RPC_TIMEOUT:60000}" # Enable/disable http/mqtt/coap transport protocols (has higher priority than certain protocol's 'enabled' property) api_enabled: "${TB_TRANSPORT_API_ENABLED:true}" log: + # Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update enabled: "${TB_TRANSPORT_LOG_ENABLED:true}" + # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" # Local LwM2M transport parameters lwm2m: @@ -121,11 +145,16 @@ transport: # RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000 retransmission_timeout: "${LWM2M_DTLS_RETRANSMISSION_TIMEOUT_MS:9000}" server: + # LwM2M Server ID id: "${LWM2M_SERVER_ID:123}" + # LwM2M server bind address. Bind to all interfaces by default bind_address: "${LWM2M_BIND_ADDRESS:0.0.0.0}" + # LwM2M server bind port bind_port: "${LWM2M_BIND_PORT:5685}" security: + # LwM2M server bind address for DTLS. Bind to all interfaces by default bind_address: "${LWM2M_SECURITY_BIND_ADDRESS:0.0.0.0}" + # LwM2M server bind port for DTLS bind_port: "${LWM2M_SECURITY_BIND_PORT:5686}" # Server X509 Certificates support credentials: @@ -156,12 +185,18 @@ transport: # Only Certificate_x509: skip_validity_check_for_client_cert: "${TB_LWM2M_SERVER_SECURITY_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" bootstrap: + # Enable/disable Bootstrap Server enabled: "${LWM2M_ENABLED_BS:true}" + # Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) id: "${LWM2M_SERVER_ID_BS:111}" + # LwM2M bootstrap server bind address. Bind to all interfaces by default bind_address: "${LWM2M_BS_BIND_ADDRESS:0.0.0.0}" + # LwM2M bootstrap server bind port bind_port: "${LWM2M_BS_BIND_PORT:5687}" security: + # LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default bind_address: "${LWM2M_BS_SECURITY_BIND_ADDRESS:0.0.0.0}" + # LwM2M bootstrap server bind address for DTLS. Bind to all interfaces by default bind_port: "${LWM2M_BS_SECURITY_BIND_PORT:5688}" # Bootstrap server X509 Certificates support credentials: @@ -208,54 +243,91 @@ transport: store_file: "${LWM2M_TRUST_KEY_STORE:lwm2mtruststorechain.jks}" # Password used to access the key store store_password: "${LWM2M_TRUST_KEY_STORE_PASSWORD:server_ks_password}" + # Set usage of recommended cipher suites; true - allow only recommended cipher suites; false - allow not recommended cipher suites recommended_ciphers: "${LWM2M_RECOMMENDED_CIPHERS:false}" + # Set usage of recommended supported groups (curves); true - allow only recommended supported groups, false - allow not recommended supported groups recommended_supported_groups: "${LWM2M_RECOMMENDED_SUPPORTED_GROUPS:true}" + # Timeout of LwM2M operation timeout: "${LWM2M_TIMEOUT:120000}" + # Thread pool size for processing of the LwM2M uplinks uplink_pool_size: "${LWM2M_UPLINK_POOL_SIZE:10}" + # Thread pool size for processing of the LwM2M downlinks downlink_pool_size: "${LWM2M_DOWNLINK_POOL_SIZE:10}" + # Thread pool size for processing of the OTA updates ota_pool_size: "${LWM2M_OTA_POOL_SIZE:10}" + # Period of cleanup for the registrations in store clean_period_in_sec: "${LWM2M_CLEAN_PERIOD_IN_SEC:2}" + # PSM Activity Timer if not specified in the device profile psm_activity_timer: "${LWM2M_PSM_ACTIVITY_TIMER:10000}" + # Paging Transmission Window for eDRX support if not specified in the device profile paging_transmission_window: "${LWM2M_PAGING_TRANSMISSION_WINDOW:10000}" network_config: # In this section you can specify custom parameters for LwM2M network configuration and expose the env variables to configure outside # - key: "PROTOCOL_STAGE_THREAD_COUNT" # value: "${LWM2M_PROTOCOL_STAGE_THREAD_COUNT:4}" stats: + # Enable/Disable the collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" + # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" +# Queue configuration properties queue: type: "${TB_QUEUE_TYPE:kafka}" # kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) kafka: + # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: + # Enable/Disable SSL Kafka communication enabled: "${TB_KAFKA_SSL_ENABLED:false}" + # The location of the trust store file truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" + # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" + # The location of the key store file. This is optional for the client and can be used for two-way authentication for the client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" + # The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" + # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all acks: "${TB_KAFKA_ACKS:all}" + # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" + # The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values none or gzip compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip + # Default batch size. This setting gives the upper bound of the batch size to be sent batch.size: "${TB_KAFKA_BATCH_SIZE:16384}" + # This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record linger.ms: "${TB_KAFKA_LINGER_MS:1}" + # The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}" + # The maximum number of unacknowledged requests the client will send on a single connection before blocking max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}" + # The total bytes of memory the producer can use to buffer records waiting to be sent to the server buffer.memory: "${TB_BUFFER_MEMORY:33554432}" + # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" + # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" + # The maximum number of records returned in a single call to poll() max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" + # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" + # The maximum amount of data the server will return. Records are fetched in batches by the consumer fetch_max_bytes: "${TB_QUEUE_KAFKA_FETCH_MAX_BYTES:134217728}" request.timeout.ms: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms session.timeout.ms: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms auto_offset_reset: "${TB_QUEUE_KAFKA_AUTO_OFFSET_RESET:earliest}" # earliest, latest or none + # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: + # The endpoint identification algorithm used by clients to validate server hostname. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" + # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" + # Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" other-inline: "${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}" # In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000" other: # DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside @@ -264,74 +336,128 @@ queue: # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms # value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) topic-properties: + # Kafka properties for Rule Engine rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Core topics core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Transport Api topics transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Notifications topics notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" aws_sqs: + # Use the default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" + # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" + # Secret access key from AWS IAM user secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}" + # Region from AWS account region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}" + # Number of threads per each AWS SQS queue in consumer threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}" queue-properties: + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" - # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: + # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + # API Credentials in JSON format service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" - max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes + # Message size for PubSub queue. Value in bytes + max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" + # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consumed again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: + # Azure namespace namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}" + # Azure Service Bus Shared Access Signatures key name sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}" + # Azure Service Bus Shared Access Signatures key sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}" queue-properties: + # Azure Service Bus properties for Rule Engine queues rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Core queues core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Transport Api queues transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Notification queues notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" rabbitmq: + # By default empty exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" + # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" + # RabbitMQ host used to establish a connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" + # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" + # Username for RabbitMQ user account username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}" + # User password for RabbitMQ user account password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}" + # Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}" + # The connection timeout for the RabbitMQ connection factory connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}" + # RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}" queue-properties: + # RabbitMQ properties for Rule Engine queues rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Core queues core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Transport API queues transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Notification queues notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" partitions: - hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" + hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 transport_api: + # Topic used to consume api requests from transport microservices requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}" + # Topic used to produce api responses to transport microservices responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}" + # Maximum pending api requests from transport microservices to be handled by server max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}" + # Maximum timeout in milliseconds to handle api request from transport microservice by server max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}" + # Amount of threads used to invoke callbacks max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}" + # Interval in milliseconds to poll api requests from transport microservices request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}" + # Interval in milliseconds to poll api response from transport microservices response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}" core: + # Default topic name of Kafka, RabbitMQ, etc. queue topic: "${TB_QUEUE_CORE_TOPIC:tb_core}" + # Interval in milliseconds to poll messages by Core microservices poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" + # Amount of partitions used by Core microservices partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" + # Timeout for processing a message pack by Core microservices pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:60000}" stats: + # Enable/disable statistics for Core microservices enabled: "${TB_QUEUE_CORE_STATS_ENABLED:false}" + # Statistics printing interval for Core microservices print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:10000}" js: # JS Eval request topic @@ -347,19 +473,26 @@ queue: # JS response auto commit interval response_auto_commit_interval: "${REMOTE_JS_RESPONSE_AUTO_COMMIT_INTERVAL_MS:100}" rule-engine: + # Deprecated. It will be removed in the nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" + # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" + # Timeout for processing a message pack of Rule Engine pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:60000}" stats: + # Enable/disable statistics for Rule Engine enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" + # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" transport: # For high priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" + # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" +# Service common parameters service: - type: "${TB_SERVICE_TYPE:tb-transport}" + type: "${TB_SERVICE_TYPE:tb-transport}" # service type # Unique id for this service (autogenerated if empty) id: "${TB_SERVICE_ID:}" @@ -367,14 +500,19 @@ service: usage: stats: report: + # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" + # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" + # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" +# Metrics parameters metrics: # Enable/disable actuator metrics. enabled: "${METRICS_ENABLED:false}" +# General management parameters management: endpoints: web: @@ -382,6 +520,7 @@ management: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). include: '${METRICS_ENDPOINTS_EXPOSE:info}' +# Notification system parameters notification_system: rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' diff --git a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml index 67986e4bfc..ff26bb6e38 100644 --- a/transport/mqtt/src/main/resources/tb-mqtt-transport.yml +++ b/transport/mqtt/src/main/resources/tb-mqtt-transport.yml @@ -14,13 +14,12 @@ # limitations under the License. # -# If you enabled process metrics you should also enable 'web-environment'. -spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" -# If you enabled process metrics you should set 'web-application-type' to 'servlet' value. -spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" - -spring.main.allow-circular-references: "true" +# Spring common parameters +spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" # If you enabled process metrics you should also enable 'web-environment'. +spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" # If you enabled process metrics you should set 'web-application-type' to 'servlet' value. +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed. +# Server common parameters server: # Server bind address (has no effect if web-environment is disabled). address: "${HTTP_BIND_ADDRESS:0.0.0.0}" @@ -41,18 +40,28 @@ zk: session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}" # Name of the directory in zookeeper 'filesystem' zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}" + # The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. + # This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. + # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" +# Cache parameters cache: + # caffeine or redis type: "${CACHE_TYPE:redis}" +# Redis configuration parameters redis: # standalone or cluster or sentinel connection: + # Redis deployment type: Standalone (single Redis node deployment) OR Cluster type: "${REDIS_CONNECTION_TYPE:standalone}" standalone: + # Redis connection host host: "${REDIS_HOST:localhost}" + # Redis connection port port: "${REDIS_PORT:6379}" + # Use default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" # this value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" @@ -84,39 +93,58 @@ redis: password: "${REDIS_PASSWORD:}" # pool config pool_config: + # Maximum number of connections that can be allocated by the connection pool maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}" + # Maximum number of idle connections that can be maintained in the pool without being closed maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" + # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" + # Enable/Disable PING command send when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" + # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" + # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" + # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" + # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" + # Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" + # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" + # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" # MQTT server parameters transport: mqtt: + # MQTT bind-address bind_address: "${MQTT_BIND_ADDRESS:0.0.0.0}" + # MQTT bind port bind_port: "${MQTT_BIND_PORT:1883}" # Enable proxy protocol support. Disabled by default. If enabled, supports both v1 and v2. # Useful to get the real IP address of the client in the logs and for rate limits. proxy_enabled: "${MQTT_PROXY_PROTOCOL_ENABLED:false}" + # MQTT processing timeout in milliseconds timeout: "${MQTT_TIMEOUT:10000}" msg_queue_size_per_device_limit: "${MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT:100}" # messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism netty: + # Netty leak detector level leak_detector_level: "${NETTY_LEAK_DETECTOR_LVL:DISABLED}" + # Netty BOSS threads count boss_group_thread_count: "${NETTY_BOSS_GROUP_THREADS:1}" + # Netty worker threads count worker_group_thread_count: "${NETTY_WORKER_GROUP_THREADS:12}" + # Max payload size in bytes max_payload_size: "${NETTY_MAX_PAYLOAD_SIZE:65536}" + # Enables TCP keepalive. This means that TCP starts sending keepalive probes when a connection is idle for some time so_keep_alive: "${NETTY_SO_KEEPALIVE:false}" # MQTT SSL configuration ssl: # Enable/disable SSL support enabled: "${MQTT_SSL_ENABLED:false}" - # MQTT SSL bind address + # MQTT SSL bind-address bind_address: "${MQTT_SSL_BIND_ADDRESS:0.0.0.0}" # MQTT SSL bind port bind_port: "${MQTT_SSL_BIND_PORT:8883}" @@ -149,7 +177,9 @@ transport: # Skip certificate validity check for client certificates. skip_validity_check_for_client_cert: "${MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" sessions: + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if the device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" + # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" json: # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON @@ -157,12 +187,17 @@ transport: # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" log: + # Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update enabled: "${TB_TRANSPORT_LOG_ENABLED:true}" + # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" stats: + # Enable/Disable the collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" + # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" client_side_rpc: + # Processing timeout interval of the RPC command on the CLIENT SIDE. Time in milliseconds timeout: "${CLIENT_SIDE_RPC_TIMEOUT:60000}" rate_limits: # Enable or disable generic rate limits. Device and Tenant specific rate limits are controlled in Tenant Profile. @@ -172,39 +207,64 @@ transport: # Timeout to expire block IP addresses ip_block_timeout: "${TB_TRANSPORT_IP_BLOCK_TIMEOUT:60000}" - +# Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) kafka: + # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: + # Enable/Disable SSL Kafka communication enabled: "${TB_KAFKA_SSL_ENABLED:false}" + # The location of the trust store file truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" + # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" + # The location of the key store file. This is optional for the client and can be used for two-way authentication for the client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" + # The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" + # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all acks: "${TB_KAFKA_ACKS:all}" + # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" + # The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values none or gzip compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip + # Default batch size. This setting gives the upper bound of the batch size to be sent batch.size: "${TB_KAFKA_BATCH_SIZE:16384}" + # This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record linger.ms: "${TB_KAFKA_LINGER_MS:1}" + # The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}" + # The maximum number of unacknowledged requests the client will send on a single connection before blocking max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}" + # The total bytes of memory the producer can use to buffer records waiting to be sent to the server buffer.memory: "${TB_BUFFER_MEMORY:33554432}" + # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" + # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" + # The maximum number of records returned in a single call to poll() max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" + # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" + # The maximum amount of data the server will return. Records are fetched in batches by the consumer fetch_max_bytes: "${TB_QUEUE_KAFKA_FETCH_MAX_BYTES:134217728}" request.timeout.ms: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms session.timeout.ms: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms auto_offset_reset: "${TB_QUEUE_KAFKA_AUTO_OFFSET_RESET:earliest}" # earliest, latest or none + # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: + # The endpoint identification algorithm used by clients to validate server hostname. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" + # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" + # Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" other-inline: "${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}" # In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000" other: # DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside @@ -213,75 +273,130 @@ queue: # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms # value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) topic-properties: + # Kafka properties for Rule Engine rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Core topics core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Transport Api topics transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Notifications topics notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" aws_sqs: + # Use the default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" + # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" + # Secret access key from AWS IAM user secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}" + # Region from AWS account region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}" + # Number of threads per each AWS SQS queue in consumer threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}" queue-properties: + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" - # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: + # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + # API Credentials in JSON format service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" - max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes + # Message size for PubSub queue.Value in bytes + max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" + # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consumed again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: + # Azure namespace namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}" + # Azure Service Bus Shared Access Signatures key name sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}" + # Azure Service Bus Shared Access Signatures key sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}" queue-properties: + # Azure Service Bus properties for Rule Engine queues rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Core queues core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Transport Api queues transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Notification queues notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" rabbitmq: + # By default empty exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" + # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" + # RabbitMQ host used to establish a connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" + # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" + # Username for RabbitMQ user account username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}" + # User password for RabbitMQ user account password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}" + # Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}" + # The connection timeout for the RabbitMQ connection factory connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}" + # RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}" queue-properties: + # RabbitMQ properties for Rule Engine queues rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Core queues core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Transport API queues transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Notification queues notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" partitions: - hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" + hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 transport_api: + # Topic used to consume api requests from transport microservices requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}" + # Topic used to produce api responses to transport microservices responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}" + # Maximum pending api requests from transport microservices to be handled by server max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}" + # Maximum timeout in milliseconds to handle api request from transport microservice by server max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}" + # Amount of threads used to invoke callbacks max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}" + # Interval in milliseconds to poll api requests from transport microservices request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}" + # Interval in milliseconds to poll api response from transport microservices response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}" core: + # Default topic name of Kafka, RabbitMQ, etc. queue topic: "${TB_QUEUE_CORE_TOPIC:tb_core}" + # Interval in milliseconds to poll messages by Core microservices poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" + # Amount of partitions used by Core microservices partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" + # Timeout for processing a message pack by Core microservices pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:60000}" + # Default topic name for queue Kafka, RabbitMQ, etc. usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" stats: + # Enable/disable statistics for Core microservices enabled: "${TB_QUEUE_CORE_STATS_ENABLED:false}" + # Statistics printing interval for Core microservices print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:10000}" js: # JS Eval request topic @@ -295,19 +410,26 @@ queue: # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" rule-engine: + # Deprecated. It will be removed in the nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" + # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" + # Timeout for processing a message pack of Rule Engine pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:60000}" stats: + # Enable/disable statistics for Rule Engine enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" + # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" transport: # For high priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" + # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" +# Service common properties service: - type: "${TB_SERVICE_TYPE:tb-transport}" + type: "${TB_SERVICE_TYPE:tb-transport}" # service type # Unique id for this service (autogenerated if empty) id: "${TB_SERVICE_ID:}" @@ -315,14 +437,19 @@ service: usage: stats: report: + # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" + # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" + # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" +# Metrics parameters metrics: # Enable/disable actuator metrics. enabled: "${METRICS_ENABLED:false}" +# General management parameters management: endpoints: web: @@ -330,6 +457,7 @@ management: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). include: '${METRICS_ENDPOINTS_EXPOSE:info}' +# Notification system parameters notification_system: rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' diff --git a/transport/snmp/src/main/resources/tb-snmp-transport.yml b/transport/snmp/src/main/resources/tb-snmp-transport.yml index e141f80321..db883dcd30 100644 --- a/transport/snmp/src/main/resources/tb-snmp-transport.yml +++ b/transport/snmp/src/main/resources/tb-snmp-transport.yml @@ -14,13 +14,12 @@ # limitations under the License. # -# If you enabled process metrics you should also enable 'web-environment'. -spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" -# If you enabled process metrics you should set 'web-application-type' to 'servlet' value. -spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" - -spring.main.allow-circular-references: "true" +# Spring common parameters +spring.main.web-environment: "${WEB_APPLICATION_ENABLE:false}" # If you enabled process metrics you should also enable 'web-environment'. +spring.main.web-application-type: "${WEB_APPLICATION_TYPE:none}" # If you enabled process metrics you should set 'web-application-type' to 'servlet' value. +spring.main.allow-circular-references: "true" # Spring Boot configuration property that controls whether circular dependencies between beans are allowed. +# Server common parameters server: # Server bind address (has no effect if web-environment is disabled). address: "${HTTP_BIND_ADDRESS:0.0.0.0}" @@ -41,18 +40,27 @@ zk: session_timeout_ms: "${ZOOKEEPER_SESSION_TIMEOUT_MS:3000}" # Name of the directory in zookeeper 'filesystem' zk_dir: "${ZOOKEEPER_NODES_DIR:/thingsboard}" + # The recalculate_delay property is recommended in a microservices architecture setup for rule-engine services. + # This property provides a pause to ensure that when a rule-engine service is restarted, other nodes don't immediately attempt to recalculate their partitions. + # The delay is recommended because the initialization of rule chain actors is time-consuming. Avoiding unnecessary recalculations during a restart can enhance system performance and stability. recalculate_delay: "${ZOOKEEPER_RECALCULATE_DELAY_MS:0}" +# Cache parameters cache: + # caffeine or redis type: "${CACHE_TYPE:redis}" +# Redis configuration parameters redis: - # standalone or cluster or sentinel connection: + # standalone or cluster or sentinel type: "${REDIS_CONNECTION_TYPE:standalone}" standalone: + # Redis connection host host: "${REDIS_HOST:localhost}" + # Redis connection port port: "${REDIS_PORT:6379}" + # Use default Redis configuration file useDefaultClientConfig: "${REDIS_USE_DEFAULT_CLIENT_CONFIG:true}" # this value may be used only if you used not default ClientConfig clientName: "${REDIS_CLIENT_NAME:standalone}" @@ -84,32 +92,50 @@ redis: password: "${REDIS_PASSWORD:}" # pool config pool_config: + # Maximum number of connections that can be allocated by the connection pool maxTotal: "${REDIS_POOL_CONFIG_MAX_TOTAL:128}" + # Maximum number of idle connections that can be maintained in the pool without being closed maxIdle: "${REDIS_POOL_CONFIG_MAX_IDLE:128}" + # Minumum number of idle connections that can be maintained in the pool without being closed minIdle: "${REDIS_POOL_CONFIG_MIN_IDLE:16}" + # Enable/Disable PING command send when a connection is borrowed testOnBorrow: "${REDIS_POOL_CONFIG_TEST_ON_BORROW:true}" + # The property is used to specify whether to test the connection before returning it to the connection pool. testOnReturn: "${REDIS_POOL_CONFIG_TEST_ON_RETURN:true}" + # The property is used in the context of connection pooling in Redis testWhileIdle: "${REDIS_POOL_CONFIG_TEST_WHILE_IDLE:true}" + # Minimum amount of time that an idle connection should be idle before it can be evicted from the connection pool. Value set in milliseconds minEvictableMs: "${REDIS_POOL_CONFIG_MIN_EVICTABLE_MS:60000}" + # Specifies the time interval in milliseconds between two consecutive eviction runs evictionRunsMs: "${REDIS_POOL_CONFIG_EVICTION_RUNS_MS:30000}" + # Maximum time in milliseconds where a client is willing to wait for a connection from the pool when all connections are exhausted maxWaitMills: "${REDIS_POOL_CONFIG_MAX_WAIT_MS:60000}" + # Specifies the number of connections to test for eviction during each eviction run numberTestsPerEvictionRun: "${REDIS_POOL_CONFIG_NUMBER_TESTS_PER_EVICTION_RUN:3}" + # Determines the behavior when a thread requests a connection from the pool but there are no available connections and the pool cannot create more due to the maxTotal configuration blockWhenExhausted: "${REDIS_POOL_CONFIG_BLOCK_WHEN_EXHAUSTED:true}" +# Snmp server parameters transport: snmp: + # Enable/disable SNMP transport protocol enabled: "${SNMP_ENABLED:true}" + # Snmp bind port bind_port: "${SNMP_BIND_PORT:1620}" response_processing: # parallelism level for executor (workStealingPool) that is responsible for handling responses from SNMP devices parallelism_level: "${SNMP_RESPONSE_PROCESSING_PARALLELISM_LEVEL:20}" # to configure SNMP to work over UDP or TCP underlying_protocol: "${SNMP_UNDERLYING_PROTOCOL:udp}" + # Batch size to request OID mappings from the device (useful when the device profile has multiple hundreds of OID mappings) max_request_oids: "${SNMP_MAX_REQUEST_OIDS:100}" response: + # To ignore SNMP response values that do not match the data type of the configured OID mapping (by default false - will throw an error if any value of the response not match configured data types) ignore_type_cast_errors: "${SNMP_RESPONSE_IGNORE_TYPE_CAST_ERRORS:false}" sessions: + # Inactivity timeout for device session in transport service. The last activity time of the device session is updated if the device sends any message, including keepalive messages inactivity_timeout: "${TB_TRANSPORT_SESSIONS_INACTIVITY_TIMEOUT:300000}" + # Interval of periodic check for expired sessions and report of the changes to session last activity time report_timeout: "${TB_TRANSPORT_SESSIONS_REPORT_TIMEOUT:3000}" json: # Cast String data types to Numeric if possible when processing Telemetry/Attributes JSON @@ -117,44 +143,74 @@ transport: # Maximum allowed string value length when processing Telemetry/Attributes JSON (0 value disables string value length check) max_string_value_length: "${JSON_MAX_STRING_VALUE_LENGTH:0}" log: + # Enable/Disable log of transport messages to telemetry. For example, logging of LwM2M registration update enabled: "${TB_TRANSPORT_LOG_ENABLED:true}" + # Maximum length of the log message. The content will be truncated to the specified value if needed max_length: "${TB_TRANSPORT_LOG_MAX_LENGTH:1024}" stats: + # Enable/Disable collection of transport statistics enabled: "${TB_TRANSPORT_STATS_ENABLED:true}" + # Interval of transport statistics logging print-interval-ms: "${TB_TRANSPORT_STATS_PRINT_INTERVAL_MS:60000}" +# Queue configuration parameters queue: type: "${TB_QUEUE_TYPE:kafka}" # kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) kafka: + # Kafka Bootstrap Servers bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: + # Enable/Disable SSL Kafka communication enabled: "${TB_KAFKA_SSL_ENABLED:false}" + # The location of the trust store file truststore.location: "${TB_KAFKA_SSL_TRUSTSTORE_LOCATION:}" + # The password of trust store file if specified truststore.password: "${TB_KAFKA_SSL_TRUSTSTORE_PASSWORD:}" + # The location of the key store file. This is optional for the client and can be used for two-way authentication for the client keystore.location: "${TB_KAFKA_SSL_KEYSTORE_LOCATION:}" + # The store password for the key store file. This is optional for the client and only needed if ‘ssl.keystore.location’ is configured. Key store password is not supported for PEM format keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" + # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all acks: "${TB_KAFKA_ACKS:all}" + # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" + # The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values none or gzip compression.type: "${TB_KAFKA_COMPRESSION_TYPE:none}" # none or gzip + # Default batch size. This setting gives the upper bound of the batch size to be sent batch.size: "${TB_KAFKA_BATCH_SIZE:16384}" + # This variable creates a small amount of artificial delay—that is, rather than immediately sending out a record linger.ms: "${TB_KAFKA_LINGER_MS:1}" + # The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests max.request.size: "${TB_KAFKA_MAX_REQUEST_SIZE:1048576}" + # The maximum number of unacknowledged requests the client will send on a single connection before blocking max.in.flight.requests.per.connection: "${TB_KAFKA_MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION:5}" + # The total bytes of memory the producer can use to buffer records waiting to be sent to the server buffer.memory: "${TB_BUFFER_MEMORY:33554432}" + # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" + # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" + # The maximum number of records returned in a single call to poll() max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" + # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" + # The maximum amount of data the server will return. Records are fetched in batches by the consumer fetch_max_bytes: "${TB_QUEUE_KAFKA_FETCH_MAX_BYTES:134217728}" request.timeout.ms: "${TB_QUEUE_KAFKA_REQUEST_TIMEOUT_MS:30000}" # (30 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#producerconfigs_request.timeout.ms session.timeout.ms: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms auto_offset_reset: "${TB_QUEUE_KAFKA_AUTO_OFFSET_RESET:earliest}" # earliest, latest or none + # Enable/Disable using of Confluent Cloud use_confluent_cloud: "${TB_QUEUE_KAFKA_USE_CONFLUENT_CLOUD:false}" confluent: + # The endpoint identification algorithm used by clients to validate server hostname. The default value is https ssl.algorithm: "${TB_QUEUE_KAFKA_CONFLUENT_SSL_ALGORITHM:https}" + # The mechanism used to authenticate Schema Registry requests. SASL/PLAIN should only be used with TLS/SSL as a transport layer to ensure that clear passwords are not transmitted on the wire without encryption sasl.mechanism: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_MECHANISM:PLAIN}" + # Using JAAS Configuration for specifying multiple SASL mechanisms on a broker sasl.config: "${TB_QUEUE_KAFKA_CONFLUENT_SASL_JAAS_CONFIG:org.apache.kafka.common.security.plain.PlainLoginModule required username=\"CLUSTER_API_KEY\" password=\"CLUSTER_API_SECRET\";}" + # Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL security.protocol: "${TB_QUEUE_KAFKA_CONFLUENT_SECURITY_PROTOCOL:SASL_SSL}" other-inline: "${TB_QUEUE_KAFKA_OTHER_PROPERTIES:}" # In this section you can specify custom parameters (semicolon separated) for Kafka consumer/producer/admin # Example "metrics.recording.level:INFO;metrics.sample.window.ms:30000" other: # DEPRECATED. In this section you can specify custom parameters for Kafka consumer/producer and expose the env variables to configure outside @@ -163,79 +219,137 @@ queue: # - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms # value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds) topic-properties: + # Kafka properties for Rule Engine rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Core topics core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" + # Kafka properties for Transport Api topics transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}" + # Kafka properties for Notifications topics notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}" consumer-stats: + # Prints lag between consumer group offset and last messages offset in Kafka topics enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}" + # Statistics printing interval for Kafka's consumer-groups stats print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}" + # Time to wait for the stats-loading requests to Kafka to finis kafka-response-timeout-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS:1000}" aws_sqs: + # Use the default credentials provider for AWS SQS use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}" + # Access key ID from AWS IAM user access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}" + # Secret access key from AWS IAM user secret_access_key: "${TB_QUEUE_AWS_SQS_SECRET_ACCESS_KEY:YOUR_SECRET}" + # Region from AWS account region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}" + # Number of threads per each AWS SQS queue in consumer threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}" queue-properties: + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" + # AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" - # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: + # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" + # API Credentials in JSON format service_account: "${TB_QUEUE_PUBSUB_SERVICE_ACCOUNT:YOUR_SERVICE_ACCOUNT}" - max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes + # Message size for PubSub queue. Value in bytes + max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" + # Number of messages per consumer max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}" queue-properties: + # Pub/Sub properties for Rule Engine subscribers, messages which will commit after ackDeadlineInSec period can be consumed again rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Core subscribers, messages which will commit after ackDeadlineInSec period can be consumed again core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Transport API subscribers, messages which will commit after ackDeadlineInSec period can be consumed again transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" + # Pub/Sub properties for Version Control subscribers, messages which will commit after ackDeadlineInSec period can be consumed again notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}" service_bus: + # Azure namespace namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}" + # Azure Service Bus Shared Access Signatures key name sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}" + # Azure Service Bus Shared Access Signatures key sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}" + # Number of messages per a consumer max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}" queue-properties: + # Azure Service Bus properties for Rule Engine queues rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Core queues core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Transport Api queues transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" + # Azure Service Bus properties for Notification queues notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}" rabbitmq: + # By default empty exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}" + # RabbitMQ host used to establish connection host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}" + # RabbitMQ host used to establish a connection port: "${TB_QUEUE_RABBIT_MQ_PORT:5672}" + # Virtual hosts provide logical grouping and separation of resources virtual_host: "${TB_QUEUE_RABBIT_MQ_VIRTUAL_HOST:/}" + # Username for RabbitMQ user account username: "${TB_QUEUE_RABBIT_MQ_USERNAME:YOUR_USERNAME}" + # User password for RabbitMQ user account password: "${TB_QUEUE_RABBIT_MQ_PASSWORD:YOUR_PASSWORD}" + # Network connection between clients and RabbitMQ nodes can fail. RabbitMQ Java client supports automatic recovery of connections and topology (queues, exchanges, bindings, and consumers) automatic_recovery_enabled: "${TB_QUEUE_RABBIT_MQ_AUTOMATIC_RECOVERY_ENABLED:false}" + # The connection timeout for the RabbitMQ connection factory connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}" + # RabbitMQ has a timeout for connection handshake. When clients run in heavily constrained environments, it may be necessary to increase the timeout handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}" queue-properties: + # RabbitMQ properties for Rule Engine queues rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Core queues core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Transport API queues transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" + # RabbitMQ properties for Notification queues notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}" partitions: - hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" + hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256 transport_api: + # Topic used to consume api requests from transport microservices requests_topic: "${TB_QUEUE_TRANSPORT_API_REQUEST_TOPIC:tb_transport.api.requests}" + # Topic used to produce api responses to transport microservices responses_topic: "${TB_QUEUE_TRANSPORT_API_RESPONSE_TOPIC:tb_transport.api.responses}" + # Maximum pending api requests from transport microservices to be handled by server max_pending_requests: "${TB_QUEUE_TRANSPORT_MAX_PENDING_REQUESTS:10000}" + # Maximum timeout in milliseconds to handle api request from transport microservice by server max_requests_timeout: "${TB_QUEUE_TRANSPORT_MAX_REQUEST_TIMEOUT:10000}" + # Amount of threads used to invoke callbacks max_callback_threads: "${TB_QUEUE_TRANSPORT_MAX_CALLBACK_THREADS:100}" + # Interval in milliseconds to poll api requests from transport microservices request_poll_interval: "${TB_QUEUE_TRANSPORT_REQUEST_POLL_INTERVAL_MS:25}" + # Interval in milliseconds to poll api response from transport microservices response_poll_interval: "${TB_QUEUE_TRANSPORT_RESPONSE_POLL_INTERVAL_MS:25}" core: + # Default topic name of Kafka, RabbitMQ, etc. queue topic: "${TB_QUEUE_CORE_TOPIC:tb_core}" + # Interval in milliseconds to poll messages by Core microservices poll-interval: "${TB_QUEUE_CORE_POLL_INTERVAL_MS:25}" + # Amount of partitions used by Core microservices partitions: "${TB_QUEUE_CORE_PARTITIONS:10}" + # Timeout for processing a message pack by Core microservices pack-processing-timeout: "${TB_QUEUE_CORE_PACK_PROCESSING_TIMEOUT_MS:60000}" + # Stats topic name for queue Kafka, RabbitMQ, etc. usage-stats-topic: "${TB_QUEUE_US_TOPIC:tb_usage_stats}" stats: + # Enable/disable statistics for Core microservices enabled: "${TB_QUEUE_CORE_STATS_ENABLED:false}" + # Statistics printing interval for Core microservices print-interval-ms: "${TB_QUEUE_CORE_STATS_PRINT_INTERVAL_MS:10000}" js: # JS Eval request topic @@ -249,19 +363,26 @@ queue: # JS response poll interval response_poll_interval: "${REMOTE_JS_RESPONSE_POLL_INTERVAL_MS:25}" rule-engine: + # Deprecated. It will be removed in the nearest releases topic: "${TB_QUEUE_RULE_ENGINE_TOPIC:tb_rule_engine}" + # Interval in milliseconds to poll messages by Rule Engine poll-interval: "${TB_QUEUE_RULE_ENGINE_POLL_INTERVAL_MS:25}" + # Timeout for processing a message pack of Rule Engine pack-processing-timeout: "${TB_QUEUE_RULE_ENGINE_PACK_PROCESSING_TIMEOUT_MS:60000}" stats: + # Enable/disable statistics for Rule Engine enabled: "${TB_QUEUE_RULE_ENGINE_STATS_ENABLED:true}" + # Statistics printing interval for Rule Engine print-interval-ms: "${TB_QUEUE_RULE_ENGINE_STATS_PRINT_INTERVAL_MS:60000}" transport: # For high priority notifications that require minimum latency and processing time notifications_topic: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_TOPIC:tb_transport.notifications}" + # Interval in milliseconds to poll messages poll_interval: "${TB_QUEUE_TRANSPORT_NOTIFICATIONS_POLL_INTERVAL_MS:25}" +# Service common parameters service: - type: "${TB_SERVICE_TYPE:tb-transport}" + type: "${TB_SERVICE_TYPE:tb-transport}" # service type # Unique id for this service (autogenerated if empty) id: "${TB_SERVICE_ID:}" @@ -269,14 +390,19 @@ service: usage: stats: report: + # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" + # Enable/Disable collection of statistics about API usage on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" + # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds interval: "${USAGE_STATS_REPORT_INTERVAL:10}" +# Metrics parameters metrics: # Enable/disable actuator metrics. enabled: "${METRICS_ENABLED:false}" +# General management parameters management: endpoints: web: @@ -284,6 +410,7 @@ management: # Expose metrics endpoint (use value 'prometheus' to enable prometheus metrics). include: '${METRICS_ENDPOINTS_EXPOSE:info}' +# Notification system parameters notification_system: rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' From dd0cd79fa4a98a61fc652f1bb2d46f3d12d50c2b Mon Sep 17 00:00:00 2001 From: rusikv Date: Wed, 11 Oct 2023 18:56:24 +0300 Subject: [PATCH 047/117] UI: improved usability of alarm additional info --- .../components/profile/alarm/alarm-rule.component.html | 2 +- .../alarm/edit-alarm-details-dialog.component.html | 8 ++++---- ui-ngx/src/assets/locale/locale.constant-ca_ES.json | 8 ++++---- ui-ngx/src/assets/locale/locale.constant-cs_CZ.json | 6 +++--- ui-ngx/src/assets/locale/locale.constant-da_DK.json | 6 +++--- ui-ngx/src/assets/locale/locale.constant-en_US.json | 8 ++++---- ui-ngx/src/assets/locale/locale.constant-es_ES.json | 7 ++++--- ui-ngx/src/assets/locale/locale.constant-ko_KR.json | 6 +++--- ui-ngx/src/assets/locale/locale.constant-sl_SI.json | 6 +++--- ui-ngx/src/assets/locale/locale.constant-tr_TR.json | 6 +++--- ui-ngx/src/assets/locale/locale.constant-zh_CN.json | 8 ++++---- ui-ngx/src/assets/locale/locale.constant-zh_TW.json | 8 ++++---- 12 files changed, 40 insertions(+), 39 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.html b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.html index 5e7ca9b096..134651a1fd 100644 --- a/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.html +++ b/ui-ngx/src/app/modules/home/components/profile/alarm/alarm-rule.component.html @@ -22,7 +22,7 @@
- {{ alarmRuleFormGroup.get('alarmDetails').value ? ('device-profile.alarm-rule-details' | translate) + ': ' : ('device-profile.add-alarm-rule-details' | translate) }} + {{ ('device-profile.alarm-rule-additional-info' | translate) + ': ' }} -

{{ 'device-profile.alarm-rule-details' | translate }}

+

{{ 'device-profile.edit-alarm-rule-additional-info' | translate }}

\n
\n
", - "cardCss": ".card {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n\n.card > img {\n height: 0;\n}\n\n.card .content {\n flex: 1; \n padding: 13px 13px 0;\n display: flex;\n box-sizing: border-box;\n}\n\n.card .content .column {\n display: flex;\n flex-direction: column; \n justify-content: space-around;\n flex: 1;\n}\n\n.card .content .title-row {\n display: flex;\n flex-direction: row;\n padding-bottom: 10px;\n}\n\n.card .title {\n flex: 1;\n font-size: 20px;\n font-weight: 400;\n color: #666666;\n}\n\n.card .state {\n text-transform: uppercase;\n font-size: 20px;\n font-weight: bold;\n}\n\n.card.enabled .state {\n color: #00B260;\n}\n\n.card.warning .state {\n color: #FFAD6F;\n}\n\n.card.disabled .state {\n color: #F73243;\n}\n\n.card .bars-row {\n flex: 1;\n display: flex;\n flex-direction: row;\n}\n\n.card .bar-column {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.card .bar-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.card .bar {\n flex: 1;\n max-height: 30px;\n margin-top: 3.5px;\n margin-bottom: 4px;\n background-color: #F0F0F0;\n border: 1px solid #DADCDB;\n border-radius: 2px;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);\n}\n\n.card.enabled .bar {\n border-color: #00B260;\n background-color: #F0FBF7;\n}\n\n.card.warning .bar {\n border-color: #FFAD6F;\n background-color: #FFFAF6;\n}\n\n.card.disabled .bar {\n border-color: #F73243;\n background-color: #FFF0F0;\n}\n\n.card .bar .bar-fill {\n background-color: #F0F0F0;\n border-radius: 2px;\n height: 100%;\n width: 0%;\n}\n\n.card.enabled .bar-fill {\n background-color: #00C46C;\n}\n\n.card.warning .bar-fill {\n background-color: #FFD099;\n}\n\n.card.disabled .bar-fill {\n background-color: #FF9494;\n}\n\n.card .bar-labels {\n height: 20px;\n font-size: 16px;\n color: #666;\n display: flex;\n flex-direction: row;\n}\n\n.card .mat-mdc-button-base {\n text-transform: uppercase;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.card .mdc-button__label {\n pointer-events: none;\n}\n\n.card .action-row {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n padding: 8px 0;\n}\n\n\n@media screen and (min-width: 960px) and (max-width: 1279px) {\n .card .title {\n font-size: 12px;\n }\n .card .state {\n font-size: 12px;\n }\n .card .unit {\n font-size: 8px;\n }\n .card .bar-labels {\n font-size: 6px;\n }\n .card .mat-mdc-button-base {\n font-size: 8px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1280px) and (max-width: 1599px) {\n .card .title {\n font-size: 14px;\n }\n .card .state {\n font-size: 14px;\n }\n .card .unit {\n font-size: 10px;\n }\n .card .bar-labels {\n font-size: 8px;\n }\n .card .mat-mdc-button-base {\n font-size: 10px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1600px) and (max-width: 1919px) {\n .card .title {\n font-size: 16px;\n }\n .card .state {\n font-size: 16px;\n }\n .card .unit {\n font-size: 12px;\n }\n .card .bar-labels {\n font-size: 12px;\n }\n .card .mat-mdc-button-base {\n font-size: 12px;\n }\n .card .action-row {\n padding: 0;\n }\n} \n\n" + "cardHtml": "
\n \n \n
\n
\n
\n
${title}
\n
\n
\n
\n
\n
\n
${jsUnit}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
${tbelUnit}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
", + "cardCss": ".card {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n}\n\n.card > img {\n height: 0;\n}\n\n.card .content {\n flex: 1; \n padding: 13px 13px 0;\n display: flex;\n box-sizing: border-box;\n}\n\n.card .content .column {\n display: flex;\n flex-direction: column; \n justify-content: space-around;\n flex: 1;\n}\n\n.card .content .title-row {\n display: flex;\n flex-direction: row;\n padding-bottom: 10px;\n}\n\n.card .title {\n flex: 1;\n font-size: 20px;\n font-weight: 400;\n color: #666666;\n}\n\n.card .state {\n text-transform: uppercase;\n font-size: 20px;\n font-weight: bold;\n}\n\n.card.enabled .state {\n color: #00B260;\n}\n\n.card.warning .state {\n color: #FFAD6F;\n}\n\n.card.disabled .state {\n color: #F73243;\n}\n\n.card .bars-row {\n flex: 1;\n display: flex;\n flex-direction: row;\n}\n\n.card .bar-column {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.card .bar-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\n.card .bar {\n flex: 1;\n max-height: 30px;\n margin-top: 3.5px;\n margin-bottom: 4px;\n background-color: #F0F0F0;\n border: 1px solid #DADCDB;\n border-radius: 2px;\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);\n}\n\n.card.enabled .bar {\n border-color: #00B260;\n background-color: #F0FBF7;\n}\n\n.card.warning .bar {\n border-color: #FFAD6F;\n background-color: #FFFAF6;\n}\n\n.card.disabled .bar {\n border-color: #F73243;\n background-color: #FFF0F0;\n}\n\n.card .bar .bar-fill {\n background-color: #F0F0F0;\n border-radius: 2px;\n height: 100%;\n width: 0%;\n}\n\n.card.enabled .bar-fill {\n background-color: #00C46C;\n}\n\n.card.warning .bar-fill {\n background-color: #FFD099;\n}\n\n.card.disabled .bar-fill {\n background-color: #FF9494;\n}\n\n.card .bar-labels {\n height: 20px;\n font-size: 16px;\n color: #666;\n display: flex;\n flex-direction: row;\n}\n\n.card .mat-mdc-button-base {\n text-transform: uppercase;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.card .mdc-button__label {\n pointer-events: none;\n}\n\n.card .action-row {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n padding: 8px 0;\n}\n\n\n@media screen and (min-width: 960px) and (max-width: 1279px) {\n .card .title {\n font-size: 12px;\n }\n .card .state {\n font-size: 12px;\n }\n .card .unit {\n font-size: 8px;\n }\n .card .bar-labels {\n font-size: 6px;\n }\n .card .mat-mdc-button-base {\n font-size: 8px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1280px) and (max-width: 1599px) {\n .card .title {\n font-size: 14px;\n }\n .card .state {\n font-size: 14px;\n }\n .card .unit {\n font-size: 10px;\n }\n .card .bar-labels {\n font-size: 8px;\n }\n .card .mat-mdc-button-base {\n font-size: 10px;\n }\n .card .action-row {\n padding: 0;\n }\n}\n\n@media screen and (min-width: 1600px) and (max-width: 1919px) {\n .card .title {\n font-size: 16px;\n }\n .card .state {\n font-size: 16px;\n }\n .card .unit {\n font-size: 12px;\n }\n .card .bar-labels {\n font-size: 12px;\n }\n .card .mat-mdc-button-base {\n font-size: 12px;\n }\n .card .action-row {\n padding: 0;\n }\n} " }, "title": "JavaScript functions", "dropShadow": true, @@ -207,12 +207,12 @@ "actions": { "elementClick": [ { - "name": "user_defined_functions_details", + "name": "script_functions_details", "icon": "insert_chart", "useShowWidgetActionFunction": null, "showWidgetActionFunction": "return true;", "type": "openDashboardState", - "targetDashboardStateId": "user_defined_functions", + "targetDashboardStateId": "script_functions", "setEntityId": false, "stateEntityParamName": null, "openRightLayout": false, @@ -225,7 +225,8 @@ "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", - "titleTooltip": "" + "titleTooltip": "", + "displayTimewindow": true }, "row": 0, "col": 0, @@ -1341,9 +1342,9 @@ "name": "tbelExecutionCountHourly", "type": "timeseries", "label": "{i18n:api-usage.tbel-executions}", - "color": "#4CAF50", + "color": "#4caf50", "settings": {}, - "_hash": 0.9298950525272727, + "_hash": 0.6818645685001823, "aggregationType": null, "units": null, "decimals": null, @@ -1373,36 +1374,40 @@ "color": "rgba(0, 0, 0, 0.87)", "padding": "8px", "settings": { - "shadowSize": 4, - "fontColor": "#545454", + "stack": false, + "enableSelection": true, "fontSize": 10, + "fontColor": "#545454", + "showTooltip": true, + "tooltipIndividual": false, + "tooltipCumulative": false, + "hideZeros": false, + "grid": { + "verticalLines": true, + "horizontalLines": true, + "outlineWidth": 1, + "color": "#545454", + "backgroundColor": null, + "tickColor": "#DDDDDD" + }, "xaxis": { + "title": null, "showLabels": true, "color": "#545454" }, "yaxis": { - "showLabels": true, - "color": "#545454", - "ticksFormatter": "var rounder = Math.pow(10, 1);\nvar powers = [\n {key: 'Q', value: Math.pow(10, 15)},\n {key: 'T', value: Math.pow(10, 12)},\n {key: 'B', value: Math.pow(10, 9)},\n {key: 'M', value: Math.pow(10, 6)},\n {key: 'K', value: 1000}\n];\n\nvar key = '';\n\nfor (var i = 0; i < powers.length; i++) {\n var reduced = value / powers[i].value;\n reduced = Math.round(reduced * rounder) / rounder;\n if (reduced >= 1) {\n value = reduced;\n key = powers[i].key;\n break;\n }\n}\nreturn value + key;", "min": 0, - "tickDecimals": 0 - }, - "grid": { + "max": null, + "title": null, + "showLabels": true, "color": "#545454", - "tickColor": "#DDDDDD", - "verticalLines": true, - "horizontalLines": true, - "outlineWidth": 1 + "tickSize": null, + "tickDecimals": 0, + "ticksFormatter": "var rounder = Math.pow(10, 1);\nvar powers = [\n {key: 'Q', value: Math.pow(10, 15)},\n {key: 'T', value: Math.pow(10, 12)},\n {key: 'B', value: Math.pow(10, 9)},\n {key: 'M', value: Math.pow(10, 6)},\n {key: 'K', value: 1000}\n];\n\nvar key = '';\n\nfor (var i = 0; i < powers.length; i++) {\n var reduced = value / powers[i].value;\n reduced = Math.round(reduced * rounder) / rounder;\n if (reduced >= 1) {\n value = reduced;\n key = powers[i].key;\n break;\n }\n}\nreturn value + key;" }, - "stack": false, - "tooltipIndividual": false, "defaultBarWidth": 2400000, "barAlignment": "left", - "timeForComparison": "months", - "xaxisSecond": { - "axisPosition": "top", - "showLabels": true - }, + "comparisonEnabled": false, "showLegend": true, "legendConfig": { "direction": "column", @@ -1412,9 +1417,10 @@ "showMax": false, "showAvg": false, "showTotal": true - } + }, + "customLegendEnabled": false }, - "title": "{i18n:api-usage.user-defined-functions-hourly-activity}", + "title": "{i18n:api-usage.scripts-hourly-activity}", "dropShadow": true, "enableFullscreen": true, "titleStyle": { @@ -1431,7 +1437,7 @@ "useShowWidgetActionFunction": null, "showWidgetActionFunction": "return true;", "type": "openDashboardState", - "targetDashboardStateId": "user_defined_functions", + "targetDashboardStateId": "script_functions", "setEntityId": false, "stateEntityParamName": null, "openRightLayout": false, @@ -1445,7 +1451,11 @@ "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", - "titleTooltip": "" + "titleTooltip": "", + "widgetCss": "", + "pageSize": 1024, + "noDataDisplayMessage": "", + "configMode": "advanced" }, "row": 0, "col": 0, @@ -2239,6 +2249,20 @@ "funcBody": null, "usePostProcessing": null, "postFuncBody": null + }, + { + "name": "tbelExecutionCountHourly", + "type": "timeseries", + "label": "{i18n:api-usage.tbel-executions}", + "color": "#4caf50", + "settings": {}, + "_hash": 0.5212969314724616, + "aggregationType": null, + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null } ] } @@ -2304,7 +2328,7 @@ "showTotal": true } }, - "title": "{i18n:api-usage.javascript-functions-daily-activity}", + "title": "{i18n:api-usage.scripts-daily-activity}", "dropShadow": true, "enableFullscreen": true, "titleStyle": { @@ -2318,7 +2342,10 @@ "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", - "titleTooltip": "" + "titleTooltip": "", + "widgetCss": "", + "pageSize": 1024, + "noDataDisplayMessage": "" }, "row": 0, "col": 0, @@ -2371,6 +2398,20 @@ "funcBody": null, "usePostProcessing": null, "postFuncBody": null + }, + { + "name": "tbelExecutionCount", + "type": "timeseries", + "label": "{i18n:api-usage.tbel-executions}", + "color": "#4caf50", + "settings": {}, + "_hash": 0.49748239768082403, + "aggregationType": null, + "units": null, + "decimals": null, + "funcBody": null, + "usePostProcessing": null, + "postFuncBody": null } ] } @@ -2436,7 +2477,7 @@ "showTotal": true } }, - "title": "{i18n:api-usage.javascript-functions-monthly-activity}", + "title": "{i18n:api-usage.scripts-monthly-activity}", "dropShadow": true, "enableFullscreen": true, "titleStyle": { @@ -2450,7 +2491,10 @@ "showTitleIcon": false, "iconColor": "rgba(0, 0, 0, 0.87)", "iconSize": "24px", - "titleTooltip": "" + "titleTooltip": "", + "widgetCss": "", + "pageSize": 1024, + "noDataDisplayMessage": "" }, "row": 0, "col": 0, @@ -4465,288 +4509,6 @@ "col": 0, "id": "aa875b7f-e7c8-7529-1ae7-f456211b59cc", "typeFullFqn": "system.charts.timeseries_bars_flot" - }, - "16d469c0-b3f5-d8a6-c62c-5c245c2cc865": { - "type": "timeseries", - "sizeX": 8, - "sizeY": 5, - "config": { - "datasources": [ - { - "type": "entity", - "name": null, - "entityAliasId": "40193437-33ac-3172-eefd-0b08eb849062", - "filterId": null, - "dataKeys": [ - { - "name": "tbelExecutionCountHourly", - "type": "timeseries", - "label": "{i18n:api-usage.tbel-executions}", - "color": "#4CAF50", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": false, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "showSeparateAxis": false, - "axisPosition": "left", - "thresholds": [ - { - "thresholdValueSource": "predefinedValue" - } - ], - "comparisonSettings": { - "showValuesForComparison": true - } - }, - "_hash": 0.0661644137210089, - "units": null, - "decimals": null, - "funcBody": null, - "usePostProcessing": null, - "postFuncBody": null, - "aggregationType": null - } - ], - "alarmFilterConfig": { - "statusList": [ - "ACTIVE" - ] - } - } - ], - "timewindow": { - "hideInterval": false, - "hideAggregation": false, - "hideAggInterval": false, - "selectedTab": 1, - "history": { - "historyType": 0, - "timewindowMs": 2592000000, - "interval": 86400000 - }, - "aggregation": { - "type": "SUM", - "limit": 1000 - } - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "shadowSize": 4, - "fontColor": "#545454", - "fontSize": 10, - "xaxis": { - "showLabels": true, - "color": "#545454" - }, - "yaxis": { - "showLabels": true, - "color": "#545454", - "min": 0, - "tickDecimals": 0, - "ticksFormatter": "var rounder = Math.pow(10, 1);\nvar powers = [\n {key: 'Q', value: Math.pow(10, 15)},\n {key: 'T', value: Math.pow(10, 12)},\n {key: 'B', value: Math.pow(10, 9)},\n {key: 'M', value: Math.pow(10, 6)},\n {key: 'K', value: 1000}\n];\n\nvar key = '';\n\nfor (var i = 0; i < powers.length; i++) {\n var reduced = value / powers[i].value;\n reduced = Math.round(reduced * rounder) / rounder;\n if (reduced >= 1) {\n value = reduced;\n key = powers[i].key;\n break;\n }\n}\nreturn value + key;" - }, - "grid": { - "color": "#545454", - "tickColor": "#DDDDDD", - "verticalLines": true, - "horizontalLines": true, - "outlineWidth": 1 - }, - "stack": false, - "tooltipIndividual": false, - "defaultBarWidth": 1800000, - "barAlignment": "left", - "timeForComparison": "months", - "xaxisSecond": { - "axisPosition": "top", - "showLabels": true - }, - "showLegend": true, - "legendConfig": { - "direction": "column", - "position": "bottom", - "sortDataKeys": false, - "showMin": false, - "showMax": false, - "showAvg": false, - "showTotal": true - } - }, - "title": "{i18n:api-usage.tbel-functions-daily-activity}", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "widgetStyle": {}, - "useDashboardTimewindow": false, - "actions": {}, - "displayTimewindow": true, - "showTitleIcon": false, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "widgetCss": "", - "pageSize": 1024, - "noDataDisplayMessage": "" - }, - "row": 0, - "col": 0, - "id": "16d469c0-b3f5-d8a6-c62c-5c245c2cc865", - "typeFullFqn": "system.charts.timeseries_bars_flot" - }, - "70978475-c9d4-a54d-384a-851b4bba3917": { - "type": "timeseries", - "sizeX": 8, - "sizeY": 5, - "config": { - "datasources": [ - { - "type": "entity", - "name": null, - "entityAliasId": "40193437-33ac-3172-eefd-0b08eb849062", - "filterId": null, - "dataKeys": [ - { - "name": "tbelExecutionCount", - "type": "timeseries", - "label": "{i18n:api-usage.tbel-executions}", - "color": "#4CAF50", - "settings": { - "excludeFromStacking": false, - "hideDataByDefault": false, - "disableDataHiding": false, - "removeFromLegend": false, - "showLines": false, - "fillLines": false, - "showPoints": false, - "showPointShape": "circle", - "pointShapeFormatter": "", - "showPointsLineWidth": 5, - "showPointsRadius": 3, - "showSeparateAxis": false, - "axisPosition": "left", - "thresholds": [ - { - "thresholdValueSource": "predefinedValue" - } - ], - "comparisonSettings": { - "showValuesForComparison": true - } - }, - "_hash": 0.0661644137210089, - "units": null, - "decimals": null, - "funcBody": null, - "usePostProcessing": null, - "postFuncBody": null, - "aggregationType": null - } - ], - "alarmFilterConfig": { - "statusList": [ - "ACTIVE" - ] - } - } - ], - "timewindow": { - "hideInterval": false, - "hideAggregation": false, - "hideAggInterval": false, - "selectedTab": 1, - "history": { - "historyType": 0, - "timewindowMs": 31536000000, - "interval": 1000 - }, - "aggregation": { - "type": "NONE", - "limit": 1000 - } - }, - "showTitle": true, - "backgroundColor": "#fff", - "color": "rgba(0, 0, 0, 0.87)", - "padding": "8px", - "settings": { - "shadowSize": 4, - "fontColor": "#545454", - "fontSize": 10, - "xaxis": { - "showLabels": true, - "color": "#545454" - }, - "yaxis": { - "showLabels": true, - "color": "#545454", - "min": 0, - "tickDecimals": 0, - "ticksFormatter": "var rounder = Math.pow(10, 1);\nvar powers = [\n {key: 'Q', value: Math.pow(10, 15)},\n {key: 'T', value: Math.pow(10, 12)},\n {key: 'B', value: Math.pow(10, 9)},\n {key: 'M', value: Math.pow(10, 6)},\n {key: 'K', value: 1000}\n];\n\nvar key = '';\n\nfor (var i = 0; i < powers.length; i++) {\n var reduced = value / powers[i].value;\n reduced = Math.round(reduced * rounder) / rounder;\n if (reduced >= 1) {\n value = reduced;\n key = powers[i].key;\n break;\n }\n}\nreturn value + key;" - }, - "grid": { - "color": "#545454", - "tickColor": "#DDDDDD", - "verticalLines": true, - "horizontalLines": true, - "outlineWidth": 1 - }, - "stack": false, - "tooltipIndividual": false, - "defaultBarWidth": 900000000, - "barAlignment": "left", - "timeForComparison": "months", - "xaxisSecond": { - "axisPosition": "top", - "showLabels": true - }, - "showLegend": true, - "legendConfig": { - "direction": "column", - "position": "bottom", - "sortDataKeys": false, - "showMin": false, - "showMax": false, - "showAvg": false, - "showTotal": true - } - }, - "title": "{i18n:api-usage.tbel-functions-monthly-activity}", - "dropShadow": true, - "enableFullscreen": true, - "titleStyle": { - "fontSize": "16px", - "fontWeight": 400 - }, - "widgetStyle": {}, - "useDashboardTimewindow": false, - "actions": {}, - "displayTimewindow": true, - "showTitleIcon": false, - "iconColor": "rgba(0, 0, 0, 0.87)", - "iconSize": "24px", - "titleTooltip": "", - "widgetCss": "", - "pageSize": 1024, - "noDataDisplayMessage": "" - }, - "row": 0, - "col": 0, - "id": "70978475-c9d4-a54d-384a-851b4bba3917", - "typeFullFqn": "system.charts.timeseries_bars_flot" } }, "states": { @@ -5074,35 +4836,23 @@ } } }, - "user_defined_functions": { - "name": "{i18n:api-usage.user-defined-functions}", + "script_functions": { + "name": "{i18n:api-usage.scripts}", "root": false, "layouts": { "main": { "widgets": { "5f5ca59c-e507-5301-5910-7ad8cd34df40": { - "sizeX": 12, + "sizeX": 24, "sizeY": 6, "row": 0, "col": 0 }, "ada32ee9-44ed-48d1-c368-fd0c94b7607f": { - "sizeX": 12, + "sizeX": 24, "sizeY": 6, "row": 6, "col": 0 - }, - "16d469c0-b3f5-d8a6-c62c-5c245c2cc865": { - "sizeX": 12, - "sizeY": 6, - "row": 0, - "col": 12 - }, - "70978475-c9d4-a54d-384a-851b4bba3917": { - "sizeX": 12, - "sizeY": 6, - "row": 6, - "col": 12 } }, "gridSettings": { diff --git a/ui-ngx/src/assets/locale/locale.constant-ca_ES.json b/ui-ngx/src/assets/locale/locale.constant-ca_ES.json index 12b3412b8e..16b72c0700 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ca_ES.json +++ b/ui-ngx/src/assets/locale/locale.constant-ca_ES.json @@ -677,8 +677,6 @@ "executions": "Execucions", "javascript": "JavaScript", "javascript-executions": "Execucions JavaScript", - "javascript-functions-daily-activity": "Activitat diària de funcions JavaScript", - "javascript-functions-monthly-activity": "Activitat mensual de funcions JavaScript", "latest-error": "Últim error", "messages": "Missatges", "notifications": "Notificacions", diff --git a/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json b/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json index 87c5527c7b..1c31471928 100644 --- a/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json +++ b/ui-ngx/src/assets/locale/locale.constant-cs_CZ.json @@ -488,8 +488,6 @@ "executions": "Zpracování", "javascript": "JavaScript", "javascript-executions": "JavaScript výjimky", - "javascript-functions-daily-activity": "Denní aktivita JavaScript funkcí", - "javascript-functions-monthly-activity": "Měsíční aktivita JavaScript funkcí", "latest-error": "Poslední chyba", "messages": "Zprávy", "notifications": "Notifikace", diff --git a/ui-ngx/src/assets/locale/locale.constant-da_DK.json b/ui-ngx/src/assets/locale/locale.constant-da_DK.json index c2dc6c87f7..7c6da04280 100644 --- a/ui-ngx/src/assets/locale/locale.constant-da_DK.json +++ b/ui-ngx/src/assets/locale/locale.constant-da_DK.json @@ -493,8 +493,6 @@ "executions": "Udførelser", "javascript": "JavaScript", "javascript-executions": "JavaScript-udførelser", - "javascript-functions-daily-activity": "JavaScript-funktioners daglige aktivitet", - "javascript-functions-monthly-activity": "JavaScript-funktioners månedlige aktivitet", "latest-error": "Seneste fejl", "messages": "Beskeder", "permanent-failures": "${entityName} Permanente fejl", diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 9c28f42cd8..27e1177d28 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -770,17 +770,14 @@ "email-messages-monthly-activity": "Email messages monthly activity", "exceptions": "Exceptions", "executions": "Executions", - "udf-executions": "UDF executions", - "user-defined-functions": "User-defined functions", - "user-defined-functions-hourly-activity": "User-defined functions hourly activity", + "scripts": "Scripts", + "scripts-hourly-activity": "Scripts hourly activity", + "scripts-daily-activity": "Scripts daily activity", + "scripts-monthly-activity": "Scripts monthly activity", "javascript": "JavaScript", "javascript-executions": "JavaScript executions", - "javascript-functions-daily-activity": "JavaScript functions daily activity", - "javascript-functions-monthly-activity": "JavaScript functions monthly activity", "tbel": "TBEL", "tbel-executions": "TBEL executions", - "tbel-functions-daily-activity": "TBEL functions daily activity", - "tbel-functions-monthly-activity": "TBEL functions monthly activity", "latest-error": "Latest Error", "messages": "Messages", "notifications": "Notifications", diff --git a/ui-ngx/src/assets/locale/locale.constant-es_ES.json b/ui-ngx/src/assets/locale/locale.constant-es_ES.json index 679c60a220..6891156d75 100644 --- a/ui-ngx/src/assets/locale/locale.constant-es_ES.json +++ b/ui-ngx/src/assets/locale/locale.constant-es_ES.json @@ -772,8 +772,6 @@ "executions": "Ejecuciones", "javascript": "JavaScript", "javascript-executions": "Ejecuciones JavaScript", - "javascript-functions-daily-activity": "Actividad diaria de funciones JavaScript", - "javascript-functions-monthly-activity": "Actividad mensual de funciones JavaScript", "latest-error": "Último error", "messages": "Mensajes", "notifications": "Notificaciones", diff --git a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json index acf547354e..ec97ca6047 100644 --- a/ui-ngx/src/assets/locale/locale.constant-fr_FR.json +++ b/ui-ngx/src/assets/locale/locale.constant-fr_FR.json @@ -488,8 +488,6 @@ "email-messages-monthly-activity": "Activité menuselle de courriels", "executions": "Exécutions", "javascript-executions": "Exécutions JavaScript", - "javascript-functions-daily-activity": "Activité hebdomadaire de fonctions JavaScript", - "javascript-functions-monthly-activity": "Activité mensuelle de fonctions JavaScript", "latest-error": "Dernière erreur", "notifications-email-sms": "Notifications (Coourriel/SMS)", "notifications-hourly-activity": "Activité horaire de notifications", diff --git a/ui-ngx/src/assets/locale/locale.constant-ko_KR.json b/ui-ngx/src/assets/locale/locale.constant-ko_KR.json index 142ef1491d..a5660c5ceb 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ko_KR.json +++ b/ui-ngx/src/assets/locale/locale.constant-ko_KR.json @@ -447,8 +447,6 @@ "executions": "Executions", "javascript": "JavaScript", "javascript-executions": "JavaScript executions", - "javascript-functions-daily-activity": "JavaScript functions daily activity", - "javascript-functions-monthly-activity": "JavaScript functions monthly activity", "latest-error": "최근 오류", "messages": "메시지", "permanent-failures": "${entityName} Permanent Failures", diff --git a/ui-ngx/src/assets/locale/locale.constant-sl_SI.json b/ui-ngx/src/assets/locale/locale.constant-sl_SI.json index 2c9173b78d..f2943e6145 100644 --- a/ui-ngx/src/assets/locale/locale.constant-sl_SI.json +++ b/ui-ngx/src/assets/locale/locale.constant-sl_SI.json @@ -447,8 +447,6 @@ "executions": "Executions", "javascript": "JavaScript", "javascript-executions": "JavaScript executions", - "javascript-functions-daily-activity": "JavaScript functions daily activity", - "javascript-functions-monthly-activity": "JavaScript functions monthly activity", "latest-error": "Latest Error", "messages": "Messages", "permanent-failures": "${entityName} Permanent Failures", diff --git a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json index 5f05774d94..50758fb1eb 100644 --- a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json +++ b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json @@ -488,8 +488,6 @@ "executions": "Çalıştırmalar", "javascript": "JavaScript", "javascript-executions": "JavaScript çalıştırmaları", - "javascript-functions-daily-activity": "Günlük JavaScript fonksiyonları", - "javascript-functions-monthly-activity": "Aylık JavaScript fonksiyonları", "latest-error": "Son Hata", "messages": "Mesajlar", "notifications": "Bildirimler", diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json index 4003705a48..b8c0a36fe0 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json @@ -715,8 +715,6 @@ "executions": "执行数", "javascript": "JavaScript", "javascript-executions": "JavaScript 执行数", - "javascript-functions-daily-activity": "每天执行的JavaScript函数", - "javascript-functions-monthly-activity": "每月执行的JavaScript函数", "latest-error": "最新错误", "messages": "消息", "notifications": "通知", diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_TW.json b/ui-ngx/src/assets/locale/locale.constant-zh_TW.json index f3d3d13660..0091acbb61 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_TW.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_TW.json @@ -563,8 +563,6 @@ "executions": "執行", "javascript": "JavaScript", "javascript-executions": "JavaScript執行", - "javascript-functions-daily-activity": "JavaScript功能每日活動", - "javascript-functions-monthly-activity": "JavaScript功能每月活動", "latest-error": "最新錯誤", "messages": "訊息", "notifications": "通知", From 0079c6d3d002f153c55c9b05ebe889139fb2cd85 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 16 Oct 2023 12:42:39 +0300 Subject: [PATCH 058/117] renamed DeviceConnectivityUtil const --- .../DeviceConnectivityController.java | 6 ++-- .../src/main/resources/thingsboard.yml | 4 +-- .../DeviceConnectivityControllerTest.java | 32 +++++++++---------- .../dao/util/DeviceConnectivityUtil.java | 6 ++-- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java b/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java index dfd8109e75..83d4d16034 100644 --- a/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java +++ b/application/src/main/java/org/thingsboard/server/controller/DeviceConnectivityController.java @@ -50,7 +50,7 @@ import static org.thingsboard.server.controller.ControllerConstants.DEVICE_ID_PA import static org.thingsboard.server.controller.ControllerConstants.PROTOCOL; import static org.thingsboard.server.controller.ControllerConstants.PROTOCOL_PARAM_DESCRIPTION; import static org.thingsboard.server.controller.ControllerConstants.TENANT_OR_CUSTOMER_AUTHORITY_PARAGRAPH; -import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.CA_FILE_PEM; +import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.CA_ROOT_CERT_PEM; @RestController @TbCoreComponent @@ -129,8 +129,8 @@ public class DeviceConnectivityController extends BaseController { checkNotNull(deviceConnectivityService.getPemCertFile(protocol), protocol + " pem cert file is not found!"); return ResponseEntity.ok() - .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + CA_FILE_PEM) - .header("x-filename", CA_FILE_PEM) + .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + CA_ROOT_CERT_PEM) + .header("x-filename", CA_ROOT_CERT_PEM) .contentLength(pemCert.contentLength()) .contentType(MediaType.APPLICATION_OCTET_STREAM) .body(pemCert); diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index 9de4ea32f2..e8338a6a5c 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -1179,8 +1179,8 @@ device: host: "${DEVICE_CONNECTIVITY_MQTTS_HOST:}" # Port of mqtt transport service. If empty default port for mqtts will be used. port: "${DEVICE_CONNECTIVITY_MQTTS_PORT:8883}" - # Path to the mqtt certificate authority file - pem_cert_file: "${DEVICE_CONNECTIVITY_MQTT_SSL_PEM_CERT:cafile.pem}" + # Path to the MQTT CA root certificate file + pem_cert_file: "${DEVICE_CONNECTIVITY_MQTTS_CA_ROOT_CERT:cafile.pem}" coap: # If true coap command will be included to the list of all test commands using DEVICE_CONNECTIVITY_COAP_HOST and DEVICE_CONNECTIVITY_COAP_PORT. enabled: "${DEVICE_CONNECTIVITY_COAP_ENABLED:true}" diff --git a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java index 1a68d80753..1eaf719921 100644 --- a/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/DeviceConnectivityControllerTest.java @@ -62,14 +62,14 @@ import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.HTTP; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.HTTPS; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.MQTT; import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.MQTTS; -import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.CA_FILE_PEM; +import static org.thingsboard.server.dao.util.DeviceConnectivityUtil.CA_ROOT_CERT_PEM; @TestPropertySource(properties = { "device.connectivity.https.enabled=true", "device.connectivity.http.port=8080", "device.connectivity.https.port=444", "device.connectivity.mqtts.enabled=true", - "device.connectivity.mqtts.pem_cert_file=/tmp/" + CA_FILE_PEM, + "device.connectivity.mqtts.pem_cert_file=/tmp/" + CA_ROOT_CERT_PEM, "device.connectivity.coaps.enabled=true", }) @ContextConfiguration(classes = {DeviceConnectivityControllerTest.Config.class}) @@ -202,8 +202,8 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h localhost -p 1883 -t v1/devices/me/telemetry " + "-u %s -m \"{temperature:25}\"", credentials.getCredentialsId())); - assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o cafile.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); - assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile cafile.pem -h localhost -p 8883 " + + assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); + assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 " + "-t v1/devices/me/telemetry -u %s -m \"{temperature:25}\"", credentials.getCredentialsId())); JsonNode dockerMqttCommands = commands.get(MQTT).get(DOCKER); @@ -211,8 +211,8 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { " -p 1883 -t v1/devices/me/telemetry -u %s -m \"{temperature:25}\"", credentials.getCredentialsId())); assertThat(dockerMqttCommands.get(MQTTS).asText()).isEqualTo(String.format("docker run --rm -it thingsboard/mosquitto-clients " + - "/bin/sh -c \"curl -f -S -o cafile.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + - "mosquitto_pub -d -q 1 --cafile cafile.pem -h localhost -p 8883 -t v1/devices/me/telemetry -u %s -m \"{temperature:25}\"\"", + "/bin/sh -c \"curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + + "mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 -t v1/devices/me/telemetry -u %s -m \"{temperature:25}\"\"", credentials.getCredentialsId())); JsonNode linuxCoapCommands = commands.get(COAP); @@ -240,8 +240,8 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { JsonNode mqttCommands = commands.get(MQTT); assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h localhost -p 1883 -t %s " + "-u %s -m \"{temperature:25}\"", DEVICE_TELEMETRY_TOPIC, credentials.getCredentialsId())); - assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o cafile.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); - assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile cafile.pem -h localhost -p 8883 " + + assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); + assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 " + "-t %s -u %s -m \"{temperature:25}\"", DEVICE_TELEMETRY_TOPIC, credentials.getCredentialsId())); JsonNode dockerMqttCommands = commands.get(MQTT).get(DOCKER); @@ -249,8 +249,8 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { " -p 1883 -t %s -u %s -m \"{temperature:25}\"", DEVICE_TELEMETRY_TOPIC, credentials.getCredentialsId())); assertThat(dockerMqttCommands.get(MQTTS).asText()).isEqualTo(String.format("docker run --rm -it thingsboard/mosquitto-clients " + - "/bin/sh -c \"curl -f -S -o cafile.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + - "mosquitto_pub -d -q 1 --cafile cafile.pem -h localhost -p 8883 -t %s -u %s -m \"{temperature:25}\"\"", + "/bin/sh -c \"curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + + "mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 -t %s -u %s -m \"{temperature:25}\"\"", DEVICE_TELEMETRY_TOPIC, credentials.getCredentialsId())); } @@ -284,8 +284,8 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { JsonNode mqttCommands = commands.get(MQTT); assertThat(mqttCommands.get(MQTT).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 -h localhost -p 1883 -t %s " + "-i %s -u %s -P %s -m \"{temperature:25}\"", DEVICE_TELEMETRY_TOPIC, clientId, userName, password)); - assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o cafile.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); - assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile cafile.pem -h localhost -p 8883 " + + assertThat(mqttCommands.get(MQTTS).get(0).asText()).isEqualTo("curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download"); + assertThat(mqttCommands.get(MQTTS).get(1).asText()).isEqualTo(String.format("mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 " + "-t %s -i %s -u %s -P %s -m \"{temperature:25}\"", DEVICE_TELEMETRY_TOPIC, clientId, userName, password)); JsonNode dockerMqttCommands = commands.get(MQTT).get(DOCKER); @@ -293,8 +293,8 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { " -p 1883 -t %s -i %s -u %s -P %s -m \"{temperature:25}\"", DEVICE_TELEMETRY_TOPIC, clientId, userName, password)); assertThat(dockerMqttCommands.get(MQTTS).asText()).isEqualTo(String.format("docker run --rm -it thingsboard/mosquitto-clients " + - "/bin/sh -c \"curl -f -S -o cafile.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + - "mosquitto_pub -d -q 1 --cafile cafile.pem -h localhost -p 8883 -t %s -i %s -u %s -P %s -m \"{temperature:25}\"\"", + "/bin/sh -c \"curl -f -S -o ca-root.pem http://localhost:80/api/device-connectivity/mqtts/certificate/download && " + + "mosquitto_pub -d -q 1 --cafile ca-root.pem -h localhost -p 8883 -t %s -i %s -u %s -P %s -m \"{temperature:25}\"\"", DEVICE_TELEMETRY_TOPIC, clientId, userName, password)); } @@ -368,7 +368,7 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { @Test @DirtiesContext public void testDownloadMqttCert() throws Exception { - Path path = Files.createFile(Path.of("/tmp/" + CA_FILE_PEM)); + Path path = Files.createFile(Path.of("/tmp/" + CA_ROOT_CERT_PEM)); Files.writeString(path, CERT); try { @@ -382,7 +382,7 @@ public class DeviceConnectivityControllerTest extends AbstractControllerTest { @Test @DirtiesContext public void testDownloadMqttCertFromFileWithPrivateKey() throws Exception { - Path path = Files.createFile(Path.of("/tmp/" + CA_FILE_PEM)); + Path path = Files.createFile(Path.of("/tmp/" + CA_ROOT_CERT_PEM)); Files.writeString(path, CERT + P_KEY); try { diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java index a38d2bc2d8..d6315a2eca 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java +++ b/dao/src/main/java/org/thingsboard/server/dao/util/DeviceConnectivityUtil.java @@ -31,7 +31,7 @@ public class DeviceConnectivityUtil { public static final String MQTTS = "mqtts"; public static final String COAP = "coap"; public static final String COAPS = "coaps"; - public static final String CA_FILE_PEM = "cafile.pem"; + public static final String CA_ROOT_CERT_PEM = "ca-root.pem"; public static final String CHECK_DOCUMENTATION = "Check documentation"; public static final String JSON_EXAMPLE_PAYLOAD = "\"{temperature:25}\""; public static final String DOCKER_RUN = "docker run --rm -it "; @@ -47,7 +47,7 @@ public class DeviceConnectivityUtil { public static String getMqttPublishCommand(String protocol, String host, String port, String deviceTelemetryTopic, DeviceCredentials deviceCredentials) { StringBuilder command = new StringBuilder("mosquitto_pub -d -q 1"); if (MQTTS.equals(protocol)) { - command.append(" --cafile ").append(CA_FILE_PEM); + command.append(" --cafile ").append(CA_ROOT_CERT_PEM); } command.append(" -h ").append(host).append(port == null ? "" : " -p " + port); command.append(" -t ").append(deviceTelemetryTopic); @@ -151,7 +151,7 @@ public class DeviceConnectivityUtil { } public static String getCurlPemCertCommand(String baseUrl, String protocol) { - return String.format("curl -f -S -o %s %s/api/device-connectivity/%s/certificate/download", CA_FILE_PEM, baseUrl, protocol); + return String.format("curl -f -S -o %s %s/api/device-connectivity/%s/certificate/download", CA_ROOT_CERT_PEM, baseUrl, protocol); } public static String getCoapPublishCommand(String protocol, String host, String port, DeviceCredentials deviceCredentials) { From 7cd71983c9f0260b3054d1e210387f6d4cbfa84f Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Mon, 16 Oct 2023 13:51:46 +0300 Subject: [PATCH 059/117] updated yml parameters description --- .../src/main/resources/thingsboard.yml | 75 +++++++++---------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/application/src/main/resources/thingsboard.yml b/application/src/main/resources/thingsboard.yml index c7d5af8a5d..32b095b52a 100644 --- a/application/src/main/resources/thingsboard.yml +++ b/application/src/main/resources/thingsboard.yml @@ -34,7 +34,7 @@ server: pem: # Path to the server certificate file (holds server certificate or certificate chain, may include server private key) cert_file: "${SSL_PEM_CERT:server.pem}" - # Path to the server certificate private key file. Optional by default. Required if the private key is not present in the server certificate file; + # Path to the server certificate private key file (optional). Required if the private key is not present in the server certificate file key_file: "${SSL_PEM_KEY:server_key.pem}" # Server certificate private key password (optional) key_password: "${SSL_PEM_KEY_PASSWORD:server_key_password}" @@ -68,7 +68,7 @@ server: refresh_pool_size: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_REFRESH_POOL_SIZE:1}" # Maximum number of dynamic queries per refresh interval. For example, no more than 10 alarm queries are executed by the user simultaneously in all browsers. max_alarm_queries_per_refresh_interval: "${TB_SERVER_WS_MAX_ALARM_QUERIES_PER_REFRESH_INTERVAL:10}" - # Maximum number of dynamic queries per user. For example, no more than 10 alarm widgets opened by the user simultaneously in all browsers< + # Maximum number of dynamic queries per user. For example, no more than 10 alarm widgets opened by the user simultaneously in all browsers max_per_user: "${TB_SERVER_WS_DYNAMIC_PAGE_LINK_MAX_PER_USER:10}" # Maximum number of entities returned for single entity subscription. For example, no more than 10,000 entities on the map widget max_entities_per_data_subscription: "${TB_SERVER_WS_MAX_ENTITIES_PER_DATA_SUBSCRIPTION:10000}" @@ -79,7 +79,7 @@ server: rest: server_side_rpc: # Minimum value of the server-side RPC timeout. May override value provided in the REST API call. - # Since 2.5 migration to queues, the RPC delay depends on the size of the pending messages in the queue, + # Since 2.5 migration to queues, the RPC delay depends on the size of the pending messages in the queue. # So default UI parameter of 500ms may not be sufficient for loaded environments. min_timeout: "${MIN_SERVER_SIDE_RPC_TIMEOUT:5000}" # Default value of the server-side RPC timeout. @@ -93,7 +93,7 @@ app: # Application version version: "@project.version@" -# Zookeeper connection parameters. Used for service discovery. +# Zookeeper connection parameters zk: # Enable/disable zookeeper discovery service. enabled: "${ZOOKEEPER_ENABLED:false}" @@ -160,18 +160,18 @@ security: # Mail settings parameters mail: oauth2: - # Interval to check that the refresh token will expire in seconds(by default, 1 day). + # Interval for checking refresh token expiration in seconds(by default, 1 day). refreshTokenCheckingInterval: "${REFRESH_TOKEN_EXPIRATION_CHECKING_INTERVAL:86400}" # Usage statistics parameters usage: stats: report: - # Enable/Disable the collection of statistics about API usage. Collected on a system and tenant level by default + # Enable/Disable the collection of API usage statistics. Collected on a system and tenant level by default enabled: "${USAGE_STATS_REPORT_ENABLED:true}" - # Enable/Disable collection of statistics about API usage on a customer level + # Enable/Disable the collection of API usage statistics on a customer level enabled_per_customer: "${USAGE_STATS_REPORT_PER_CUSTOMER_ENABLED:false}" - # Interval of reporting the statistics. By default, the summarized statistics are sent every 10 seconds + # Statistics reporting interval, set to send summarized data every 10 seconds by default interval: "${USAGE_STATS_REPORT_INTERVAL:10}" check: # Interval of checking the start of the next cycle and re-enabling the blocked tenants/customers @@ -197,7 +197,7 @@ ui: database: ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by a single API call to fetch telemetry records ts: - type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra or timescale) + type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale) ts_latest: type: "${DATABASE_TS_LATEST_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale) @@ -276,7 +276,7 @@ cassandra: # Returns the hint to the size of the underlying buffers for outgoing network I/O. By default, this option is not set by the driver. The actual value will be the default from the underlying Netty transport send_buffer_size: "${CASSANDRA_SOCKET_SEND_BUFFER_SIZE:}" - # Cassandra cluster connection query parameters # + # Cassandra cluster connection query parameters query: # Consistency levels in Cassandra can be configured to manage availability versus data accuracy. The consistency level defaults to ONE for all write and read operations read_consistency_level: "${CASSANDRA_READ_CONSISTENCY_LEVEL:ONE}" @@ -374,12 +374,12 @@ sql: batch_threads: "${SQL_TIMESCALE_BATCH_THREADS:3}" # batch thread count has to be a prime number like 3 or 5 to gain perfect hash distribution ttl: ts: - # The parameter to specify whether to use TTL (Time To Live) for timeseries records + # Enable/disable TTL (Time To Live) for timeseries records enabled: "${SQL_TTL_TS_ENABLED:true}" execution_interval_ms: "${SQL_TTL_TS_EXECUTION_INTERVAL:86400000}" # Number of milliseconds. The current value corresponds to one day ts_key_value_ttl: "${SQL_TTL_TS_TS_KEY_VALUE_TTL:0}" # Number of seconds events: - # The parameter to specify whether to use TTL (Time To Live) for event records + # Enable/disable TTL (Time To Live) for event records enabled: "${SQL_TTL_EVENTS_ENABLED:true}" execution_interval_ms: "${SQL_TTL_EVENTS_EXECUTION_INTERVAL:3600000}" # Number of milliseconds (max random initial delay and fixed period). # Number of seconds. TTL is disabled by default. The accuracy of the cleanup depends on the sql.events.partition_size parameter. @@ -387,21 +387,21 @@ sql: # Number of seconds. The current value corresponds to one week. The accuracy of the cleanup depends on the sql.events.debug_partition_size parameter. debug_events_ttl: "${SQL_TTL_EVENTS_DEBUG_EVENTS_TTL:604800}" edge_events: - enabled: "${SQL_TTL_EDGE_EVENTS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for egde event records + enabled: "${SQL_TTL_EDGE_EVENTS_ENABLED:true}" # Enable/disable TTL (Time To Live) for edge event records execution_interval_ms: "${SQL_TTL_EDGE_EVENTS_EXECUTION_INTERVAL:86400000}" # Number of milliseconds. The current value corresponds to one day edge_events_ttl: "${SQL_TTL_EDGE_EVENTS_TTL:2628000}" # Number of seconds. The current value corresponds to one month alarms: checking_interval: "${SQL_ALARMS_TTL_CHECKING_INTERVAL:7200000}" # Number of milliseconds. The current value corresponds to two hours removal_batch_size: "${SQL_ALARMS_TTL_REMOVAL_BATCH_SIZE:3000}" # To delete outdated alarms not all at once but in batches rpc: - enabled: "${SQL_TTL_RPC_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for rpc call records + enabled: "${SQL_TTL_RPC_ENABLED:true}" # Enable/disable TTL (Time To Live) for rpc call records checking_interval: "${SQL_RPC_TTL_CHECKING_INTERVAL:7200000}" # Number of milliseconds. The current value corresponds to two hours audit_logs: - enabled: "${SQL_TTL_AUDIT_LOGS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for audit log records + enabled: "${SQL_TTL_AUDIT_LOGS_ENABLED:true}" # Enable/disable TTL (Time To Live) for audit log records ttl: "${SQL_TTL_AUDIT_LOGS_SECS:0}" # Disabled by default. The accuracy of the cleanup depends on the sql.audit_logs.partition_size checking_interval_ms: "${SQL_TTL_AUDIT_LOGS_CHECKING_INTERVAL_MS:86400000}" # Default value - 1 day notifications: - enabled: "${SQL_TTL_NOTIFICATIONS_ENABLED:true}" # The parameter to specify whether to use TTL (Time To Live) for notification center records + enabled: "${SQL_TTL_NOTIFICATIONS_ENABLED:true}" # Enable/disable TTL (Time To Live) for notification center records ttl: "${SQL_TTL_NOTIFICATIONS_SECS:2592000}" # Default value - 30 days checking_interval_ms: "${SQL_TTL_NOTIFICATIONS_CHECKING_INTERVAL_MS:86400000}" # Default value - 1 day relations: @@ -476,7 +476,7 @@ actors: # Actors statistic persistence frequency in milliseconds persist_frequency: "${ACTORS_STATISTICS_PERSIST_FREQUENCY:3600000}" -# Cache parameters +# Cache settings parameters cache: # caffeine or redis type: "${CACHE_TYPE:caffeine}" @@ -486,7 +486,7 @@ cache: enabled: "${CACHE_ATTRIBUTES_ENABLED:true}" specs: relations: - timeToLiveInMinutes: "${CACHE_SPECS_RELATIONS_TTL:1440}" # Relations cache max size + timeToLiveInMinutes: "${CACHE_SPECS_RELATIONS_TTL:1440}" # Relations cache TTL maxSize: "${CACHE_SPECS_RELATIONS_MAX_SIZE:10000}" # 0 means the cache is disabled deviceCredentials: timeToLiveInMinutes: "${CACHE_SPECS_DEVICE_CREDENTIALS_TTL:1440}" # Device credentials cache TTL @@ -516,7 +516,7 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_TENANTS_TTL:1440}" # Tenant cache TTL maxSize: "${CACHE_SPECS_TENANTS_MAX_SIZE:10000}" # 0 means the cache is disabled tenantsExist: - # environment variables are intentionally the same as in 'tenants' cache to be equal. + # Environment variables are intentionally the same as in 'tenants' cache to be equal. timeToLiveInMinutes: "${CACHE_SPECS_TENANTS_TTL:1440}" maxSize: "${CACHE_SPECS_TENANTS_MAX_SIZE:10000}" # 0 means the cache is disabled deviceProfiles: @@ -526,7 +526,7 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_ASSET_PROFILES_TTL:1440}" # Asset profile cache TTL maxSize: "${CACHE_SPECS_ASSET_PROFILES_MAX_SIZE:10000}" # 0 means the cache is disabled notificationSettings: - timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_SETTINGS_TTL:10}" # Noification settings cache TTL + timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_SETTINGS_TTL:10}" # Notification settings cache TTL maxSize: "${CACHE_SPECS_NOTIFICATION_SETTINGS_MAX_SIZE:1000}" # 0 means the cache is disabled sentNotifications: timeToLiveInMinutes: "${CACHE_SPECS_SENT_NOTIFICATIONS_TTL:1440}" # Sent notifications cache TTL @@ -554,7 +554,7 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_AUTO_COMMIT_SETTINGS_TTL:1440}" # Autocommit settings cache TTL maxSize: "${CACHE_SPECS_AUTO_COMMIT_SETTINGS_MAX_SIZE:10000}" # 0 means the cache is disabled twoFaVerificationCodes: - timeToLiveInMinutes: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_TTL:60}" # Two fa carification codes cache TTL + timeToLiveInMinutes: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_TTL:60}" # Two factor verification codes cache TTL maxSize: "${CACHE_SPECS_TWO_FA_VERIFICATION_CODES_MAX_SIZE:100000}" # 0 means the cache is disabled versionControlTask: timeToLiveInMinutes: "${CACHE_SPECS_VERSION_CONTROL_TASK_TTL:20}" # Version control task cache TTL @@ -575,9 +575,9 @@ cache: timeToLiveInMinutes: "${CACHE_SPECS_ALARM_TYPES_TTL:60}" # Alarm types cache TTL maxSize: "${CACHE_SPECS_ALARM_TYPES_MAX_SIZE:10000}" # 0 means the cache is disabled - # deliberately placed outside the 'specs' group above + # Deliberately placed outside the 'specs' group above notificationRules: - timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_RULES_TTL:30}" # notification rules cache TTL + timeToLiveInMinutes: "${CACHE_SPECS_NOTIFICATION_RULES_TTL:30}" # Notification rules cache TTL maxSize: "${CACHE_SPECS_NOTIFICATION_RULES_MAX_SIZE:1000}" # 0 means the cache is disabled rateLimits: timeToLiveInMinutes: "${CACHE_SPECS_RATE_LIMITS_TTL:120}" # Rate limits cache TTL @@ -896,7 +896,7 @@ transport: proxy_enabled: "${MQTT_PROXY_PROTOCOL_ENABLED:false}" # MQTT processing timeout in milliseconds timeout: "${MQTT_TIMEOUT:10000}" - msg_queue_size_per_device_limit: "${MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT:100}" # messages await in the queue before device connected state. This limit works on low level before TenantProfileLimits mechanism + msg_queue_size_per_device_limit: "${MQTT_MSG_QUEUE_SIZE_PER_DEVICE_LIMIT:100}" # messages await in the queue before the device connected state. This limit works on the low level before TenantProfileLimits mechanism netty: # Netty leak detector level leak_detector_level: "${NETTY_LEAK_DETECTOR_LVL:DISABLED}" @@ -938,7 +938,7 @@ transport: store_file: "${MQTT_SSL_KEY_STORE:mqttserver.jks}" # Password used to access the key store store_password: "${MQTT_SSL_KEY_STORE_PASSWORD:server_ks_password}" - # Optional alias of the private key; If not set, the platform will load the first private key from the keystore; + # Optional alias of the private key. If not set, the platform will load the first private key from the keystore key_alias: "${MQTT_SSL_KEY_ALIAS:}" # Optional password to access the private key. If not set, the platform will attempt to load the private keys that are not protected with the password; key_password: "${MQTT_SSL_KEY_PASSWORD:server_key_password}" @@ -946,7 +946,7 @@ transport: skip_validity_check_for_client_cert: "${MQTT_SSL_SKIP_VALIDITY_CHECK_FOR_CLIENT_CERT:false}" # Local CoAP transport parameters coap: - # Enable/disable coap transport protocol. + # Enable/disable CoAP transport protocol. enabled: "${COAP_ENABLED:true}" # CoAP bind-address bind_address: "${COAP_BIND_ADDRESS:0.0.0.0}" @@ -1002,7 +1002,7 @@ transport: dtls_session_report_timeout: "${TB_COAP_X509_DTLS_SESSION_REPORT_TIMEOUT:1800000}" # Local LwM2M transport parameters lwm2m: - # Enable/disable lvm2m transport protocol. + # Enable/disable LwM2M transport protocol. enabled: "${LWM2M_ENABLED:true}" dtls: # RFC7925_RETRANSMISSION_TIMEOUT_IN_MILLISECONDS = 9000 @@ -1050,7 +1050,7 @@ transport: bootstrap: # Enable/disable Bootstrap Server enabled: "${LWM2M_ENABLED_BS:true}" - # Default value in Lwm2mClient after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) + # Default value in LwM2M client after start in mode Bootstrap for the object : name "LWM2M Security" field: "Short Server ID" (deviceProfile: Bootstrap.BOOTSTRAP SERVER.Short ID) id: "${LWM2M_SERVER_ID_BS:111}" # LwM2M bootstrap server bind address. Bind to all interfaces by default bind_address: "${LWM2M_BS_BIND_ADDRESS:0.0.0.0}" @@ -1071,7 +1071,7 @@ transport: pem: # Path to the server certificate file (holds server certificate or certificate chain, may include server private key) cert_file: "${LWM2M_BS_PEM_CERT:lwm2mserver.pem}" - # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file; + # Path to the server certificate private key file. Optional by default. Required if the private key is not present in server certificate file key_file: "${LWM2M_BS_PEM_KEY:lwm2mserver_key.pem}" # Server certificate private key password (optional) key_password: "${LWM2M_BS_PEM_KEY_PASSWORD:server_key_password}" @@ -1229,7 +1229,7 @@ edges: sleep_between_batches: "${EDGES_SLEEP_BETWEEN_BATCHES:10000}" # Number of threads that are used to check DB for edge events scheduler_pool_size: "${EDGES_SCHEDULER_POOL_SIZE:1}" - # Number of threads that used to send downlink messages to edge over gRPC + # Number of threads that are used to send downlink messages to edge over gRPC send_scheduler_pool_size: "${EDGES_SEND_SCHEDULER_POOL_SIZE:1}" # Number of threads that are used to convert edge events from DB into downlink messages and send them for delivery grpc_callback_thread_pool_size: "${EDGES_GRPC_CALLBACK_POOL_SIZE:1}" @@ -1271,10 +1271,10 @@ queue: type: "${TB_QUEUE_TYPE:in-memory}" # in-memory or kafka (Apache Kafka) or aws-sqs (AWS SQS) or pubsub (PubSub) or service-bus (Azure Service Bus) or rabbitmq (RabbitMQ) in_memory: stats: - # For debug lvl + # For debug level print-interval-ms: "${TB_QUEUE_IN_MEMORY_STATS_PRINT_INTERVAL_MS:60000}" kafka: - # Kafka Bootstrap Servers + # Kafka Bootstrap nodes in "host:port" format bootstrap.servers: "${TB_KAFKA_SERVERS:localhost:9092}" ssl: # Enable/Disable SSL Kafka communication @@ -1289,7 +1289,7 @@ queue: keystore.password: "${TB_KAFKA_SSL_KEYSTORE_PASSWORD:}" # The password of the private key in the key store file or the PEM key specified in ‘keystore.key’ key.password: "${TB_KAFKA_SSL_KEY_PASSWORD:}" - # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0,1 and all + # The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed:0, 1 and all acks: "${TB_KAFKA_ACKS:all}" # Number of retries. Resend any record whose send fails with a potentially transient error retries: "${TB_KAFKA_RETRIES:1}" @@ -1307,9 +1307,9 @@ queue: buffer.memory: "${TB_BUFFER_MEMORY:33554432}" # The multiple copies of data over the multiple brokers of Kafka replication_factor: "${TB_QUEUE_KAFKA_REPLICATION_FACTOR:1}" - # The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records + # The maximum delay between invocations of poll() method when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records max_poll_interval_ms: "${TB_QUEUE_KAFKA_MAX_POLL_INTERVAL_MS:300000}" - # The maximum number of records returned in a single call to poll() + # The maximum number of records returned in a single call of poll() method max_poll_records: "${TB_QUEUE_KAFKA_MAX_POLL_RECORDS:8192}" # The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer max_partition_fetch_bytes: "${TB_QUEUE_KAFKA_MAX_PARTITION_FETCH_BYTES:16777216}" @@ -1371,7 +1371,7 @@ queue: enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}" # Statistics printing interval for Kafka's consumer-groups stats print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}" - # Time to wait for the stats-loading requests to Kafka to finis + # Time to wait for the stats-loading requests to Kafka to finish kafka-response-timeout-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_RESPONSE_TIMEOUT_MS:1000}" aws_sqs: # Use the default credentials provider for AWS SQS @@ -1399,7 +1399,6 @@ queue: ota-updates: "${TB_QUEUE_AWS_SQS_OTA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds version-control: "${TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}" - # VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds pubsub: # Project ID from Google Cloud project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}" @@ -1659,7 +1658,7 @@ vc: # Notification system parameters notification_system: - # Specify thread pool size for Notification System processing notification rules and notification sending. Recommend value < =10 + # Specify thread pool size for Notification System processing notification rules and notification sending. Recommend value <= 10 thread_pool_size: "${TB_NOTIFICATION_SYSTEM_THREAD_POOL_SIZE:10}" rules: # Semicolon-separated deduplication durations (in millis) for trigger types. Format: 'NotificationRuleTriggerType1:123;NotificationRuleTriggerType2:456' From ce8eba2137e31a0ba722e21398d065782c9ba523 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Mon, 16 Oct 2023 17:39:47 +0300 Subject: [PATCH 060/117] Ability to sort widget types by createdTime --- .../dao/model/sql/AbstractWidgetTypeEntity.java | 2 +- .../dao/model/sql/WidgetTypeInfoEntity.java | 16 ++++++++++++---- .../server/dao/sql/widget/JpaWidgetTypeDao.java | 9 +++++---- .../dao/sql/widget/JpaWidgetTypeDaoTest.java | 13 +++++++------ 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AbstractWidgetTypeEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AbstractWidgetTypeEntity.java index 08b2ebed77..fa700315d0 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/AbstractWidgetTypeEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/AbstractWidgetTypeEntity.java @@ -31,7 +31,7 @@ import java.util.UUID; @Data @EqualsAndHashCode(callSuper = true) @MappedSuperclass -public abstract class AbstractWidgetTypeEntity extends BaseSqlEntity implements BaseEntity { +public abstract class AbstractWidgetTypeEntity extends BaseSqlEntity { @Column(name = ModelConstants.WIDGET_TYPE_TENANT_ID_PROPERTY) private UUID tenantId; diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java index fa6fd895cd..47d965a382 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/WidgetTypeInfoEntity.java @@ -18,7 +18,6 @@ package org.thingsboard.server.dao.model.sql; import io.hypersistence.utils.hibernate.type.array.StringArrayType; import lombok.Data; import lombok.EqualsAndHashCode; -import org.hibernate.annotations.Immutable; import org.hibernate.annotations.Type; import org.hibernate.annotations.TypeDef; import org.thingsboard.server.common.data.widget.BaseWidgetType; @@ -28,14 +27,23 @@ import org.thingsboard.server.dao.model.ModelConstants; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import java.util.HashMap; +import java.util.Map; @Data @EqualsAndHashCode(callSuper = true) @Entity -@Immutable @TypeDef(name = "string-array", typeClass = StringArrayType.class) @Table(name = ModelConstants.WIDGET_TYPE_INFO_VIEW_TABLE_NAME) -public final class WidgetTypeInfoEntity extends AbstractWidgetTypeEntity { +public class WidgetTypeInfoEntity extends AbstractWidgetTypeEntity { + + public static final Map SEARCH_COLUMNS_MAP = new HashMap<>(); + + static { + SEARCH_COLUMNS_MAP.put("createdTime", "created_time"); + SEARCH_COLUMNS_MAP.put("tenantId", "tenant_id"); + SEARCH_COLUMNS_MAP.put("widgetType", "widget_type"); + } @Column(name = ModelConstants.WIDGET_TYPE_IMAGE_PROPERTY) private String image; @@ -43,7 +51,7 @@ public final class WidgetTypeInfoEntity extends AbstractWidgetTypeEntity(); WidgetsBundle widgetsBundle = new WidgetsBundle(); @@ -74,6 +74,7 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { this.widgetsBundle = widgetsBundleDao.save(TenantId.SYS_TENANT_ID, widgetsBundle); for (int i = 0; i < WIDGET_TYPE_COUNT; i++) { + Thread.sleep(2); var widgetType = createAndSaveWidgetType(TenantId.SYS_TENANT_ID, i); widgetTypeList.add(widgetType); widgetTypeDao.saveWidgetsBundleWidget(new WidgetsBundleWidget(this.widgetsBundle.getId(), widgetType.getId(), i)); @@ -112,12 +113,12 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { @Test public void testFindSystemWidgetTypes() { PageData widgetTypes = widgetTypeDao.findSystemWidgetTypes(TenantId.SYS_TENANT_ID, true, DeprecatedFilter.ALL, Collections.singletonList("static"), - new PageLink(1024, 0, "TYPE_DESCRIPTION", new SortOrder("name"))); + new PageLink(1024, 0, "TYPE_DESCRIPTION", new SortOrder("createdTime"))); assertEquals(1, widgetTypes.getData().size()); assertEquals(new WidgetTypeInfo(widgetTypeList.get(1)), widgetTypes.getData().get(0)); widgetTypes = widgetTypeDao.findSystemWidgetTypes(TenantId.SYS_TENANT_ID, true, DeprecatedFilter.ALL, Collections.emptyList(), - new PageLink(1024, 0, "hfgfd tag2_2 ghg", new SortOrder("name"))); + new PageLink(1024, 0, "hfgfd tag2_2 ghg", new SortOrder("createdTime"))); assertEquals(1, widgetTypes.getData().size()); assertEquals(new WidgetTypeInfo(widgetTypeList.get(2)), widgetTypes.getData().get(0)); } @@ -130,7 +131,7 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { widgetTypeList.add(widgetType); } PageData widgetTypes = widgetTypeDao.findTenantWidgetTypesByTenantId(tenantId, true, DeprecatedFilter.ALL, null, - new PageLink(10, 0, "", new SortOrder("name"))); + new PageLink(10, 0, "", new SortOrder("createdTime"))); assertEquals(WIDGET_TYPE_COUNT, widgetTypes.getData().size()); assertEquals(new WidgetTypeInfo(widgetTypeList.get(3)), widgetTypes.getData().get(0)); assertEquals(new WidgetTypeInfo(widgetTypeList.get(4)), widgetTypes.getData().get(1)); @@ -140,13 +141,13 @@ public class JpaWidgetTypeDaoTest extends AbstractJpaDaoTest { @Test public void testFindByWidgetTypeInfosByBundleId() { PageData widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(),true, DeprecatedFilter.ALL, Collections.singletonList("latest"), - new PageLink(1024, 0, "TYPE_DESCRIPTION", new SortOrder("name"))); + new PageLink(1024, 0, "TYPE_DESCRIPTION", new SortOrder("createdTime"))); assertEquals(2, widgetTypes.getData().size()); assertEquals(new WidgetTypeInfo(widgetTypeList.get(0)), widgetTypes.getData().get(0)); assertEquals(new WidgetTypeInfo(widgetTypeList.get(2)), widgetTypes.getData().get(1)); widgetTypes = widgetTypeDao.findWidgetTypesInfosByWidgetsBundleId(TenantId.SYS_TENANT_ID.getId(), widgetsBundle.getUuidId(), true, DeprecatedFilter.ALL, Collections.emptyList(), - new PageLink(1024, 0, "hfgfd TEST_0 ghg", new SortOrder("name"))); + new PageLink(1024, 0, "hfgfd TEST_0 ghg", new SortOrder("createdTime"))); assertEquals(1, widgetTypes.getData().size()); assertEquals(new WidgetTypeInfo(widgetTypeList.get(0)), widgetTypes.getData().get(0)); } From f97350cd8a97dd2ec1b2309e0142fae8ecbbcf9e Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 17 Oct 2023 10:00:34 +0300 Subject: [PATCH 061/117] UI: Implement 'Simple Value and chart card' widget. --- .../json/system/widget_bundles/cards.json | 1 + .../simple_value_and_chart_card.json | 27 ++ .../basic/basic-widget-config.module.ts | 12 +- ...lue-chart-card-basic-config.component.html | 134 ++++++++++ ...value-chart-card-basic-config.component.ts | 250 ++++++++++++++++++ .../timewindow-config-panel.component.ts | 2 +- .../value-chart-card-widget.component.html | 25 ++ .../value-chart-card-widget.component.scss | 58 ++++ .../value-chart-card-widget.component.ts | 247 +++++++++++++++++ .../cards/value-chart-card-widget.models.ts | 77 ++++++ ...-chart-card-widget-settings.component.html | 54 ++++ ...ue-chart-card-widget-settings.component.ts | 98 +++++++ .../lib/settings/widget-settings.module.ts | 12 +- .../widget/widget-components.module.ts | 7 +- .../assets/locale/locale.constant-en_US.json | 10 + .../widget/value-chart-card/left-layout.svg | 21 ++ .../widget/value-chart-card/right-layout.svg | 30 +++ 17 files changed, 1056 insertions(+), 9 deletions(-) create mode 100644 application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.models.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.ts create mode 100644 ui-ngx/src/assets/widget/value-chart-card/left-layout.svg create mode 100644 ui-ngx/src/assets/widget/value-chart-card/right-layout.svg diff --git a/application/src/main/data/json/system/widget_bundles/cards.json b/application/src/main/data/json/system/widget_bundles/cards.json index f07f1e858e..d49db3581d 100644 --- a/application/src/main/data/json/system/widget_bundles/cards.json +++ b/application/src/main/data/json/system/widget_bundles/cards.json @@ -11,6 +11,7 @@ "cards.value_card", "cards.horizontal_value_card", "cards.aggregated_value_card", + "simple_value_and_chart_card", "cards.label_widget", "cards.dashboard_state_widget", "cards.qr_code", diff --git a/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json b/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json new file mode 100644 index 0000000000..7fa97f4a52 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json @@ -0,0 +1,27 @@ +{ + "fqn": "simple_value_and_chart_card", + "name": "Simple Value and chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a single entity historical telemetry values as a simplified chart. Optionally may display the corresponding latest telemetry value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgb(63, 82, 221)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}],\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgb(63, 82, 221)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Simple Value and chart card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":false,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": null +} \ No newline at end of file diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts index 639ede30f4..fd0e48322d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts @@ -64,6 +64,9 @@ import { import { SignalStrengthBasicConfigComponent } from '@home/components/widget/config/basic/indicator/signal-strength-basic-config.component'; +import { + ValueChartCardBasicConfigComponent +} from '@home/components/widget/config/basic/cards/value-chart-card-basic-config.component'; @NgModule({ declarations: [ @@ -83,7 +86,8 @@ import { EntityCountBasicConfigComponent, BatteryLevelBasicConfigComponent, WindSpeedDirectionBasicConfigComponent, - SignalStrengthBasicConfigComponent + SignalStrengthBasicConfigComponent, + ValueChartCardBasicConfigComponent ], imports: [ CommonModule, @@ -107,7 +111,8 @@ import { EntityCountBasicConfigComponent, BatteryLevelBasicConfigComponent, WindSpeedDirectionBasicConfigComponent, - SignalStrengthBasicConfigComponent + SignalStrengthBasicConfigComponent, + ValueChartCardBasicConfigComponent ] }) export class BasicWidgetConfigModule { @@ -125,5 +130,6 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type + + + + + +
+
widget-config.appearance
+ + + {{ valueChartCardLayoutTranslationMap.get(layout) | translate }} + + +
+ + {{ 'widgets.value-chart-card.auto-scale' | translate }} + +
+
+ + {{ 'widget-config.title' | translate }} + +
+ + + + + + + +
+
+
+ + {{ 'widgets.value-chart-card.icon' | translate }} + +
+ + + + + + + + +
+
+
+ + {{ 'widgets.value-chart-card.value' | translate }} + +
+ + + +
widget-config.decimals-suffix
+
+ + + + +
+
+
+
{{ 'widgets.value-chart-card.chart' | translate }}
+ + +
+
+
+
widget-config.card-appearance
+
+
{{ 'widgets.background.background' | translate }}
+ + +
+
+
widget-config.show-card-buttons
+ + {{ 'fullscreen.fullscreen' | translate }} + +
+
+
{{ 'widget-config.card-border-radius' | translate }}
+ + + +
+
+ + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts new file mode 100644 index 0000000000..f2c3a853a0 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts @@ -0,0 +1,250 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { DataKey, Datasource, WidgetConfig, } from '@shared/models/widget.models'; +import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { + getTimewindowConfig, + setTimewindowConfig +} from '@home/components/widget/config/timewindow-config-panel.component'; +import { formatValue, isUndefined } from '@core/utils'; +import { cssSizeToStrSize, getDataKey, resolveCssSize } from '@shared/models/widget-settings.models'; +import { + valueCartCardLayouts, + valueChartCardDefaultSettings, + valueChartCardLayoutImages, + valueChartCardLayoutTranslations, + ValueChartCardWidgetSettings +} from '@home/components/widget/lib/cards/value-chart-card-widget.models'; + +@Component({ + selector: 'tb-value-chart-card-basic-config', + templateUrl: './value-chart-card-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class ValueChartCardBasicConfigComponent extends BasicWidgetConfigComponent { + + public get datasource(): Datasource { + const datasources: Datasource[] = this.valueChartCardWidgetConfigForm.get('datasources').value; + if (datasources && datasources.length) { + return datasources[0]; + } else { + return null; + } + } + + valueChartCardLayouts = valueCartCardLayouts; + + valueChartCardLayoutTranslationMap = valueChartCardLayoutTranslations; + valueChartCardLayoutImageMap = valueChartCardLayoutImages; + + valueChartCardWidgetConfigForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + private fb: UntypedFormBuilder) { + super(store, widgetConfigComponent); + } + + protected configForm(): UntypedFormGroup { + return this.valueChartCardWidgetConfigForm; + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + this.setupDefaultDatasource(configData, [ + { name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, color: 'rgba(63, 82, 221, 1)'} + ], + [{ name: 'temperature', label: 'Latest', type: DataKeyType.timeseries}] + ); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + const settings: ValueChartCardWidgetSettings = {...valueChartCardDefaultSettings, ...(configData.config.settings || {})}; + const dataKey = getDataKey(configData.config.datasources); + const iconSize = resolveCssSize(configData.config.iconSize); + this.valueChartCardWidgetConfigForm = this.fb.group({ + timewindowConfig: [getTimewindowConfig(configData.config), []], + datasources: [configData.config.datasources, []], + + layout: [settings.layout, []], + autoScale: [settings.autoScale, []], + + showTitle: [configData.config.showTitle, []], + title: [configData.config.title, []], + titleFont: [configData.config.titleFont, []], + titleColor: [configData.config.titleColor, []], + + showIcon: [configData.config.showTitleIcon, []], + iconSize: [iconSize[0], [Validators.min(0)]], + iconSizeUnit: [iconSize[1], []], + icon: [configData.config.titleIcon, []], + iconColor: [configData.config.iconColor, []], + + showValue: [settings.showValue, []], + units: [configData.config.units, []], + decimals: [configData.config.decimals, []], + valueFont: [settings.valueFont, []], + valueColor: [settings.valueColor, []], + + chartColor: [dataKey?.color, []], + + background: [settings.background, []], + + cardButtons: [this.getCardButtons(configData.config), []], + borderRadius: [configData.config.borderRadius, []], + + actions: [configData.config.actions || {}, []] + }); + } + + protected prepareOutputConfig(config: any): WidgetConfigComponentData { + setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); + this.widgetConfig.config.datasources = config.datasources; + + this.widgetConfig.config.showTitle = config.showTitle; + this.widgetConfig.config.title = config.title; + this.widgetConfig.config.titleFont = config.titleFont; + this.widgetConfig.config.titleColor = config.titleColor; + + this.widgetConfig.config.showTitleIcon = config.showIcon; + this.widgetConfig.config.iconSize = cssSizeToStrSize(config.iconSize, config.iconSizeUnit); + this.widgetConfig.config.titleIcon = config.icon; + this.widgetConfig.config.iconColor = config.iconColor; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + + this.widgetConfig.config.settings.layout = config.layout; + this.widgetConfig.config.settings.autoScale = config.autoScale; + + this.widgetConfig.config.settings.showValue = config.showValue; + this.widgetConfig.config.units = config.units; + this.widgetConfig.config.decimals = config.decimals; + this.widgetConfig.config.settings.valueFont = config.valueFont; + this.widgetConfig.config.settings.valueColor = config.valueColor; + + const dataKey = getDataKey(this.widgetConfig.config.datasources); + if (dataKey) { + dataKey.color = config.chartColor; + this.updateLatestValues(dataKey, this.widgetConfig.config.datasources); + } + + this.widgetConfig.config.settings.background = config.background; + + this.setCardButtons(config.cardButtons, this.widgetConfig.config); + this.widgetConfig.config.borderRadius = config.borderRadius; + + this.widgetConfig.config.actions = config.actions; + return this.widgetConfig; + } + + protected validatorTriggers(): string[] { + return ['showTitle', 'showIcon', 'showValue']; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const showTitle: boolean = this.valueChartCardWidgetConfigForm.get('showTitle').value; + const showIcon: boolean = this.valueChartCardWidgetConfigForm.get('showIcon').value; + const showValue: boolean = this.valueChartCardWidgetConfigForm.get('showValue').value; + + if (showTitle) { + this.valueChartCardWidgetConfigForm.get('title').enable(); + this.valueChartCardWidgetConfigForm.get('titleFont').enable(); + this.valueChartCardWidgetConfigForm.get('titleColor').enable(); + this.valueChartCardWidgetConfigForm.get('showIcon').enable({emitEvent: false}); + if (showIcon) { + this.valueChartCardWidgetConfigForm.get('iconSize').enable(); + this.valueChartCardWidgetConfigForm.get('iconSizeUnit').enable(); + this.valueChartCardWidgetConfigForm.get('icon').enable(); + this.valueChartCardWidgetConfigForm.get('iconColor').enable(); + } else { + this.valueChartCardWidgetConfigForm.get('iconSize').disable(); + this.valueChartCardWidgetConfigForm.get('iconSizeUnit').disable(); + this.valueChartCardWidgetConfigForm.get('icon').disable(); + this.valueChartCardWidgetConfigForm.get('iconColor').disable(); + } + } else { + this.valueChartCardWidgetConfigForm.get('title').disable(); + this.valueChartCardWidgetConfigForm.get('titleFont').disable(); + this.valueChartCardWidgetConfigForm.get('titleColor').disable(); + this.valueChartCardWidgetConfigForm.get('showIcon').disable({emitEvent: false}); + this.valueChartCardWidgetConfigForm.get('iconSize').disable(); + this.valueChartCardWidgetConfigForm.get('iconSizeUnit').disable(); + this.valueChartCardWidgetConfigForm.get('icon').disable(); + this.valueChartCardWidgetConfigForm.get('iconColor').disable(); + } + + if (showValue) { + this.valueChartCardWidgetConfigForm.get('units').enable(); + this.valueChartCardWidgetConfigForm.get('decimals').enable(); + this.valueChartCardWidgetConfigForm.get('valueFont').enable(); + this.valueChartCardWidgetConfigForm.get('valueColor').enable(); + } else { + this.valueChartCardWidgetConfigForm.get('units').disable(); + this.valueChartCardWidgetConfigForm.get('decimals').disable(); + this.valueChartCardWidgetConfigForm.get('valueFont').disable(); + this.valueChartCardWidgetConfigForm.get('valueColor').disable(); + } + } + + private updateLatestValues(sourceDataKey: DataKey, datasources?: Datasource[]) { + if (datasources && datasources.length) { + let latestDataKeys = datasources[0].latestDataKeys; + if (!latestDataKeys) { + latestDataKeys = []; + datasources[0].latestDataKeys = latestDataKeys; + } + let dataKey: DataKey; + if (!latestDataKeys.length) { + dataKey = {...sourceDataKey}; + latestDataKeys.push(dataKey); + } else { + dataKey = latestDataKeys[0]; + dataKey = {...dataKey, ...sourceDataKey}; + latestDataKeys[0] = dataKey; + } + dataKey.label = 'Latest'; + dataKey.units = null; + dataKey.decimals = null; + } + } + + private getCardButtons(config: WidgetConfig): string[] { + const buttons: string[] = []; + if (isUndefined(config.enableFullscreen) || config.enableFullscreen) { + buttons.push('fullscreen'); + } + return buttons; + } + + private setCardButtons(buttons: string[], config: WidgetConfig) { + config.enableFullscreen = buttons.includes('fullscreen'); + } + + private _valuePreviewFn(): string { + const units: string = this.widgetConfig.config.units; + const decimals: number = this.widgetConfig.config.decimals; + return formatValue(22, decimals, units, true); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/config/timewindow-config-panel.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/timewindow-config-panel.component.ts index 93fc304b7a..556d6e283c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/timewindow-config-panel.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/timewindow-config-panel.component.ts @@ -92,7 +92,7 @@ export class TimewindowConfigPanelComponent implements ControlValueAccessor, OnI timewindowStyle: [null, []] }); this.timewindowConfig.valueChanges.subscribe( - (val) => this.propagateChange(val) + () => this.propagateChange(this.timewindowConfig.getRawValue()) ); this.timewindowConfig.get('useDashboardTimewindow').valueChanges.subscribe(() => { this.updateTimewindowConfigEnabledState(); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.html new file mode 100644 index 0000000000..b1789800eb --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.html @@ -0,0 +1,25 @@ + +
+
+ +
+
{{ valueText }}
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.scss new file mode 100644 index 0000000000..3ea61fdcec --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.scss @@ -0,0 +1,58 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.tb-value-chart-card-panel { + width: 100%; + height: 100%; + position: relative; + display: flex; + flex-direction: column; + gap: 8px; + padding: 20px 24px 24px 24px; + > div:not(.tb-value-chart-card-overlay) { + z-index: 1; + } + div.tb-widget-title { + padding: 0; + } + .tb-value-chart-card-overlay { + position: absolute; + top: 12px; + left: 12px; + bottom: 12px; + right: 12px; + } + .tb-value-chart-card-content { + min-height: 0; + flex: 1; + display: flex; + align-items: flex-end; + gap: 16px; + position: relative; + &.left { + flex-direction: row; + } + &.right { + flex-direction: row-reverse; + } + .tb-value-chart-card-value { + white-space: nowrap; + } + .tb-value-chart-card-chart { + flex: 1; + height: 100%; + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts new file mode 100644 index 0000000000..7cd58e3c13 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts @@ -0,0 +1,247 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + AfterViewInit, + ChangeDetectorRef, + Component, + ElementRef, + Input, + OnDestroy, + OnInit, + Renderer2, + TemplateRef, + ViewChild, + ViewEncapsulation +} from '@angular/core'; +import { WidgetContext } from '@home/models/widget-component.models'; +import { formatValue, isDefinedAndNotNull } from '@core/utils'; +import { + backgroundStyle, + ColorProcessor, + ComponentStyle, + getDataKey, + overlayStyle, resolveCssSize, + textStyle +} from '@shared/models/widget-settings.models'; +import { WidgetComponent } from '@home/components/widget/widget.component'; +import { ResizeObserver } from '@juggle/resize-observer'; +import { + valueChartCardDefaultSettings, + ValueChartCardLayout, + ValueChartCardWidgetSettings +} from '@home/components/widget/lib/cards/value-chart-card-widget.models'; +import { TbFlot } from '@home/components/widget/lib/flot-widget'; +import { DataKey } from '@shared/models/widget.models'; +import { TbFlotKeySettings, TbFlotSettings } from '@home/components/widget/lib/flot-widget.models'; +import { getTsValueByLatestDataKey } from '@home/components/widget/lib/cards/aggregated-value-card.models'; + +const layoutWidth = 218; +const layoutValueWidth = 68; +const valueRelativeWidth = layoutValueWidth / layoutWidth; + +@Component({ + selector: 'tb-value-chart-card-widget', + templateUrl: './value-chart-card-widget.component.html', + styleUrls: ['./value-chart-card-widget.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ValueChartCardWidgetComponent implements OnInit, AfterViewInit, OnDestroy { + + @ViewChild('chartElement', {static: false}) + chartElement: ElementRef; + + @ViewChild('valueChartCardContent', {static: false}) + valueChartCardContent: ElementRef; + + @ViewChild('valueChartCardValue', {static: false}) + valueChartCardValue: ElementRef; + + settings: ValueChartCardWidgetSettings; + + @Input() + ctx: WidgetContext; + + @Input() + widgetTitlePanel: TemplateRef; + + layout: ValueChartCardLayout; + + showValue = true; + valueText = 'N/A'; + valueStyle: ComponentStyle = {}; + valueColor: ColorProcessor; + + backgroundStyle: ComponentStyle = {}; + overlayStyle: ComponentStyle = {}; + + private flot: TbFlot; + private flotDataKey: DataKey; + + private valueKey: DataKey; + + private contentResize$: ResizeObserver; + + private decimals = 0; + private units = ''; + + constructor(private renderer: Renderer2, + private widgetComponent: WidgetComponent, + private cd: ChangeDetectorRef) { + } + + ngOnInit(): void { + this.ctx.$scope.valueChartCardWidget = this; + this.settings = {...valueChartCardDefaultSettings, ...this.ctx.settings}; + + if (this.showValue) { + this.decimals = this.ctx.decimals; + this.units = this.ctx.units; + const dataKey = getDataKey(this.ctx.datasources); + if (dataKey?.name && this.ctx.defaultSubscription.firstDatasource?.latestDataKeys?.length) { + const dataKeys = this.ctx.defaultSubscription.firstDatasource?.latestDataKeys; + this.valueKey = dataKeys?.find(k => k.name === dataKey.name); + if (isDefinedAndNotNull(this.valueKey?.decimals)) { + this.decimals = this.valueKey.decimals; + } + if (this.valueKey?.units) { + this.units = dataKey.units; + } + } + } + + this.layout = this.settings.layout; + + this.showValue = this.settings.showValue; + this.valueStyle = textStyle(this.settings.valueFont, '0.25px'); + this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); + + this.backgroundStyle = backgroundStyle(this.settings.background); + this.overlayStyle = overlayStyle(this.settings.background.overlay); + + if (this.ctx.defaultSubscription.firstDatasource?.dataKeys?.length) { + this.flotDataKey = this.ctx.defaultSubscription.firstDatasource?.dataKeys[0]; + this.flotDataKey.settings = { + fillLines: false, + showLines: true, + lineWidth: 2 + } as TbFlotKeySettings; + } + } + + public ngAfterViewInit() { + const settings = { + shadowSize: 0, + enableSelection: false, + smoothLines: true, + grid: { + tickColor: 'rgba(0,0,0,0.12)', + horizontalLines: false, + verticalLines: false, + outlineWidth: 0, + minBorderMargin: 0, + margin: 0 + }, + yaxis: { + showLabels: false, + tickGenerator: 'return [(axis.max + axis.min) / 2];' + }, + xaxis: { + showLabels: false + } + } as TbFlotSettings; + this.flot = new TbFlot(this.ctx, 'line', $(this.chartElement.nativeElement), settings); + + this.contentResize$ = new ResizeObserver(() => { + this.onResize(); + }); + this.contentResize$.observe(this.valueChartCardContent.nativeElement); + this.onResize(); + } + + ngOnDestroy() { + if (this.contentResize$) { + this.contentResize$.disconnect(); + } + } + + public onInit() { + const borderRadius = this.ctx.$widgetElement.css('borderRadius'); + this.overlayStyle = {...this.overlayStyle, ...{borderRadius}}; + this.cd.detectChanges(); + } + + public onDataUpdated() { + this.flot.update(); + } + + public onLatestDataUpdated() { + if (this.showValue && this.valueKey) { + const tsValue = getTsValueByLatestDataKey(this.ctx.latestData, this.valueKey); + let value; + if (tsValue) { + value = tsValue[1]; + this.valueText = formatValue(value, this.decimals, this.units, true); + } else { + this.valueText = 'N/A'; + } + this.valueColor.update(value); + this.cd.detectChanges(); + setTimeout(() => { + this.onResize(false); + }, 0); + } + } + + public onEditModeChanged() { + this.flot.checkMouseEvents(); + } + + public onDestroy() { + this.flot.destroy(); + } + + private onResize(fitMaxWidth = true) { + if (this.settings.autoScale && this.showValue) { + const contentWidth = this.valueChartCardContent.nativeElement.getBoundingClientRect().width; + const contentHeight = this.valueChartCardContent.nativeElement.getBoundingClientRect().height; + const targetValueWidth = valueRelativeWidth * contentWidth; + this.setValueFontSize(targetValueWidth, contentHeight, fitMaxWidth); + } + this.flot.resize(); + } + + private setValueFontSize(maxWidth: number, maxHeight: number, fitMaxWidth = true) { + const fontSize = getComputedStyle(this.valueChartCardValue.nativeElement).fontSize; + let valueFontSize = resolveCssSize(fontSize)[0]; + this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'fontSize', valueFontSize + 'px'); + this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'lineHeight', '1'); + let valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; + while (fitMaxWidth && valueWidth < maxWidth) { + valueFontSize++; + this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'fontSize', valueFontSize + 'px'); + valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; + } + let valueHeight = this.valueChartCardValue.nativeElement.getBoundingClientRect().height; + while ((valueWidth > maxWidth || valueHeight > maxHeight) && valueFontSize > 6) { + valueFontSize--; + this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'fontSize', valueFontSize + 'px'); + valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; + valueHeight = this.valueChartCardValue.nativeElement.getBoundingClientRect().height; + } + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.models.ts new file mode 100644 index 0000000000..e7a4a6d356 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.models.ts @@ -0,0 +1,77 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + BackgroundSettings, + BackgroundType, + ColorSettings, + constantColor, + Font +} from '@shared/models/widget-settings.models'; + +export enum ValueChartCardLayout { + left = 'left', + right = 'right' +} + +export const valueCartCardLayouts = Object.keys(ValueChartCardLayout) as ValueChartCardLayout[]; + +export const valueChartCardLayoutTranslations = new Map( + [ + [ValueChartCardLayout.left, 'widgets.value-chart-card.layout-left'], + [ValueChartCardLayout.right, 'widgets.value-chart-card.layout-right'] + ] +); + +export const valueChartCardLayoutImages = new Map( + [ + [ValueChartCardLayout.left, 'assets/widget/value-chart-card/left-layout.svg'], + [ValueChartCardLayout.right, 'assets/widget/value-chart-card/right-layout.svg'] + ] +); + +export interface ValueChartCardWidgetSettings { + layout: ValueChartCardLayout; + autoScale: boolean; + showValue: boolean; + valueFont: Font; + valueColor: ColorSettings; + background: BackgroundSettings; +} + +export const valueChartCardDefaultSettings: ValueChartCardWidgetSettings = { + layout: ValueChartCardLayout.left, + autoScale: true, + showValue: true, + valueFont: { + family: 'Roboto', + size: 28, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '32px' + }, + valueColor: constantColor('rgba(0, 0, 0, 0.87)'), + background: { + type: BackgroundType.color, + color: '#fff', + overlay: { + enabled: false, + color: 'rgba(255,255,255,0.72)', + blur: 3 + } + } +}; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.html new file mode 100644 index 0000000000..5b4a671772 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.html @@ -0,0 +1,54 @@ + + +
+
widgets.value-chart-card.value-chart-card-style
+ + + {{ valueChartCardLayoutTranslationMap.get(layout) | translate }} + + +
+ + {{ 'widgets.value-chart-card.auto-scale' | translate }} + +
+
+ + {{ 'widgets.value-chart-card.value' | translate }} + +
+ + + + +
+
+
+
{{ 'widgets.background.background' | translate }}
+ + +
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.ts new file mode 100644 index 0000000000..88db47b3ad --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component.ts @@ -0,0 +1,98 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component, Injector } from '@angular/core'; +import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { formatValue } from '@core/utils'; +import { + valueCartCardLayouts, + valueChartCardDefaultSettings, + valueChartCardLayoutImages, + valueChartCardLayoutTranslations +} from '@home/components/widget/lib/cards/value-chart-card-widget.models'; + +@Component({ + selector: 'tb-value-chart-card-widget-settings', + templateUrl: './value-chart-card-widget-settings.component.html', + styleUrls: [] +}) +export class ValueChartCardWidgetSettingsComponent extends WidgetSettingsComponent { + + valueChartCardLayouts = valueCartCardLayouts; + + valueChartCardLayoutTranslationMap = valueChartCardLayoutTranslations; + valueChartCardLayoutImageMap = valueChartCardLayoutImages; + + valueChartCardWidgetSettingsForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + constructor(protected store: Store, + private $injector: Injector, + private fb: UntypedFormBuilder) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.valueChartCardWidgetSettingsForm; + } + + protected defaultSettings(): WidgetSettings { + return {...valueChartCardDefaultSettings}; + } + + protected onSettingsSet(settings: WidgetSettings) { + this.valueChartCardWidgetSettingsForm = this.fb.group({ + layout: [settings.layout, []], + autoScale: [settings.autoScale, []], + + showValue: [settings.showValue, []], + valueFont: [settings.valueFont, []], + valueColor: [settings.valueColor, []], + + background: [settings.background, []] + }); + } + + protected validatorTriggers(): string[] { + return ['showValue']; + } + + protected updateValidators(emitEvent: boolean) { + const showValue: boolean = this.valueChartCardWidgetSettingsForm.get('showValue').value; + + if (showValue) { + this.valueChartCardWidgetSettingsForm.get('valueFont').enable(); + this.valueChartCardWidgetSettingsForm.get('valueColor').enable(); + } else { + this.valueChartCardWidgetSettingsForm.get('valueFont').disable(); + this.valueChartCardWidgetSettingsForm.get('valueColor').disable(); + } + + this.valueChartCardWidgetSettingsForm.get('valueFont').updateValueAndValidity({emitEvent}); + this.valueChartCardWidgetSettingsForm.get('valueColor').updateValueAndValidity({emitEvent}); + } + + private _valuePreviewFn(): string { + const units: string = this.widgetConfig.config.units; + const decimals: number = this.widgetConfig.config.decimals; + return formatValue(22, decimals, units, true); + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts index 595b2bdc41..c4d2a1edc5 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts @@ -294,6 +294,9 @@ import { import { SignalStrengthWidgetSettingsComponent } from '@home/components/widget/lib/settings/indicator/signal-strength-widget-settings.component'; +import { + ValueChartCardWidgetSettingsComponent +} from '@home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component'; @NgModule({ declarations: [ @@ -402,7 +405,8 @@ import { EntityCountWidgetSettingsComponent, BatteryLevelWidgetSettingsComponent, WindSpeedDirectionWidgetSettingsComponent, - SignalStrengthWidgetSettingsComponent + SignalStrengthWidgetSettingsComponent, + ValueChartCardWidgetSettingsComponent ], imports: [ CommonModule, @@ -516,7 +520,8 @@ import { EntityCountWidgetSettingsComponent, BatteryLevelWidgetSettingsComponent, WindSpeedDirectionWidgetSettingsComponent, - SignalStrengthWidgetSettingsComponent + SignalStrengthWidgetSettingsComponent, + ValueChartCardWidgetSettingsComponent ] }) export class WidgetSettingsModule { @@ -595,5 +600,6 @@ export const widgetSettingsComponentsMap: {[key: string]: Type + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/value-chart-card/right-layout.svg b/ui-ngx/src/assets/widget/value-chart-card/right-layout.svg new file mode 100644 index 0000000000..662b62d47a --- /dev/null +++ b/ui-ngx/src/assets/widget/value-chart-card/right-layout.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f03751366b7686b337d25f5bcb1e53a3eeceee7f Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Tue, 17 Oct 2023 10:29:57 +0300 Subject: [PATCH 062/117] UI: Added breadcrumbs when navigate to editing widgets from the widget bundle --- .../widget/widget-library-routing.module.ts | 159 ++++++++---------- .../widgets-bundle-widgets.component.ts | 2 +- 2 files changed, 75 insertions(+), 86 deletions(-) diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts index 4c3c933f82..8519b9d4d0 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-library-routing.module.ts @@ -14,14 +14,13 @@ /// limitations under the License. /// -import { Injectable, NgModule } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, RouterModule, Routes } from '@angular/router'; +import { inject, NgModule } from '@angular/core'; +import { ActivatedRouteSnapshot, ResolveFn, RouterModule, Routes } from '@angular/router'; import { EntitiesTableComponent } from '../../components/entity/entities-table.component'; import { Authority } from '@shared/models/authority.enum'; import { WidgetsBundlesTableConfigResolver } from '@modules/home/pages/widget/widgets-bundles-table-config.resolver'; import { BreadCrumbConfig, BreadCrumbLabelFunction } from '@shared/components/breadcrumb'; -import { Observable } from 'rxjs'; import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; import { WidgetService } from '@core/http/widget.service'; import { WidgetEditorComponent } from '@home/pages/widget/widget-editor.component'; @@ -38,64 +37,43 @@ export interface WidgetEditorData { widget: WidgetInfo; } -@Injectable() -export class WidgetsBundleResolver implements Resolve { +const widgetsBundleResolver: ResolveFn = (route: ActivatedRouteSnapshot) => { + const widgetsBundleId = route.params.widgetsBundleId; + return inject(WidgetService).getWidgetsBundle(widgetsBundleId); +}; - constructor(private widgetsService: WidgetService) { - } - - resolve(route: ActivatedRouteSnapshot): Observable { - const widgetsBundleId = route.params.widgetsBundleId; - return this.widgetsService.getWidgetsBundle(widgetsBundleId); - } -} - -@Injectable() -export class WidgetsBundleWidgetsResolver implements Resolve> { - - constructor(private widgetsService: WidgetService) { - } - - resolve(route: ActivatedRouteSnapshot): Observable> { - const widgetsBundleId = route.params.widgetsBundleId; - return this.widgetsService.getBundleWidgetTypeInfosList(widgetsBundleId); - } -} - -@Injectable() -export class WidgetEditorDataResolver implements Resolve { +const widgetsBundleWidgetsResolver: ResolveFn> = (route: ActivatedRouteSnapshot) => { + const widgetsBundleId = route.params.widgetsBundleId; + return inject(WidgetService).getBundleWidgetTypeInfosList(widgetsBundleId); +}; - constructor(private widgetsService: WidgetService) { - } - - resolve(route: ActivatedRouteSnapshot): Observable { - const widgetTypeId = route.params.widgetTypeId; - if (!widgetTypeId || Object.keys(widgetType).includes(widgetTypeId)) { - let widgetTypeParam = widgetTypeId as widgetType; - if (!widgetTypeParam) { - widgetTypeParam = widgetType.timeseries; - } - return this.widgetsService.getWidgetTemplate(widgetTypeParam).pipe( - map((widget) => { - widget.widgetName = null; - return { - widgetTypeDetails: null, - widget - }; - }) - ); - } else { - return this.widgetsService.getWidgetTypeById(widgetTypeId).pipe( - map((result) => ({ - widgetTypeDetails: result, - widget: detailsToWidgetInfo(result) - })) - ); +const widgetEditorDataResolver: ResolveFn = (route: ActivatedRouteSnapshot) => { + const widgetTypeId = route.params.widgetTypeId; + if (!widgetTypeId || Object.keys(widgetType).includes(widgetTypeId)) { + let widgetTypeParam = widgetTypeId as widgetType; + if (!widgetTypeParam) { + widgetTypeParam = widgetType.timeseries; } + return inject(WidgetService).getWidgetTemplate(widgetTypeParam).pipe( + map((widget) => { + widget.widgetName = null; + return { + widgetTypeDetails: null, + widget + }; + }) + ); + } else { + return inject(WidgetService).getWidgetTypeById(widgetTypeId).pipe( + map((result) => ({ + widgetTypeDetails: result, + widget: detailsToWidgetInfo(result) + })) + ); } -} +}; -export const widgetsBundleWidgetsBreadcumbLabelFunction: BreadCrumbLabelFunction = ((route, translate) => +export const widgetsBundleWidgetsBreadcumbLabelFunction: BreadCrumbLabelFunction = ((route) => route.data.widgetsBundle.title); export const widgetEditorBreadcumbLabelFunction: BreadCrumbLabelFunction = @@ -103,6 +81,26 @@ export const widgetEditorBreadcumbLabelFunction: BreadCrumbLabelFunction, + hideTabs: true + }, + resolve: { + widgetEditorData: widgetEditorDataResolver + } + } +]; + const widgetTypesRoutes: Routes = [ { path: 'widget-types', @@ -124,23 +122,7 @@ const widgetTypesRoutes: Routes = [ entitiesTableConfig: WidgetTypesTableConfigResolver } }, - { - path: ':widgetTypeId', - component: WidgetEditorComponent, - canDeactivate: [ConfirmOnExitGuard], - data: { - auth: [Authority.SYS_ADMIN, Authority.TENANT_ADMIN], - title: 'widget.editor', - breadcrumb: { - labelFunction: widgetEditorBreadcumbLabelFunction, - icon: 'insert_chart' - } as BreadCrumbConfig, - hideTabs: true - }, - resolve: { - widgetEditorData: WidgetEditorDataResolver - } - } + ...widgetEditorRouter ] }, ]; @@ -168,21 +150,31 @@ const widgetsBundlesRoutes: Routes = [ }, { path: ':widgetsBundleId', - component: WidgetsBundleWidgetsComponent, - canDeactivate: [ConfirmOnExitGuard], data: { - auth: [Authority.SYS_ADMIN, Authority.TENANT_ADMIN], - title: 'widgets-bundle.widgets-bundle-widgets', breadcrumb: { labelFunction: widgetsBundleWidgetsBreadcumbLabelFunction, icon: 'now_widgets' } as BreadCrumbConfig, - hideTabs: true }, resolve: { - widgetsBundle: WidgetsBundleResolver, - widgets: WidgetsBundleWidgetsResolver - } + widgetsBundle: widgetsBundleResolver + }, + children: [ + { + path: '', + component: WidgetsBundleWidgetsComponent, + canDeactivate: [ConfirmOnExitGuard], + data: { + auth: [Authority.SYS_ADMIN, Authority.TENANT_ADMIN], + title: 'widgets-bundle.widgets-bundle-widgets', + hideTabs: true + }, + resolve: { + widgets: widgetsBundleWidgetsResolver + } + }, + ...widgetEditorRouter + ] } ] }, @@ -261,10 +253,7 @@ const routes: Routes = [ exports: [RouterModule], providers: [ WidgetTypesTableConfigResolver, - WidgetsBundlesTableConfigResolver, - WidgetsBundleResolver, - WidgetsBundleWidgetsResolver, - WidgetEditorDataResolver + WidgetsBundlesTableConfigResolver ] }) export class WidgetLibraryRoutingModule { } diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts index 58403ad9b2..77d7cb6c2e 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts @@ -119,7 +119,7 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn if ($event) { $event.stopPropagation(); } - this.router.navigateByUrl(`resources/widgets-library/widget-types/${widgetType.id.id}`); + this.router.navigate([widgetType.id.id], {relativeTo: this.route}).then(()=> {}); } exportWidgetType($event: Event, widgetType: WidgetTypeInfo) { From f23b249abcc8caf1306aa8192d2a28b212940d77 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Tue, 17 Oct 2023 17:15:23 +0300 Subject: [PATCH 063/117] UI: Improvement default widget bundle in attributes/timeseries tables --- .../home/components/attribute/attribute-table.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts index 119c7a829f..8bd711b175 100644 --- a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts +++ b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.ts @@ -501,7 +501,7 @@ export class AttributeTableComponent extends PageComponent implements AfterViewI this.widgetsLoaded = false; this.widgetBundleSet = false; this.widgetsCarouselIndex = 0; - this.selectedWidgetsBundleAlias = 'cards'; + this.selectedWidgetsBundleAlias = 'tables'; const entityAlias: EntityAlias = { id: this.utils.guid(), From 1320881a19fcd52ea12d1180aead6f1cd9054642 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 17 Oct 2023 18:30:17 +0300 Subject: [PATCH 064/117] UI: Implement 'Progress bar' widget. --- .../json/system/widget_bundles/cards.json | 1 + .../widget_bundles/status_indicators.json | 3 +- .../system/widget_types/progress_bar.json | 26 ++ .../basic/basic-widget-config.module.ts | 12 +- .../progress-bar-basic-config.component.html | 171 ++++++++++++ .../progress-bar-basic-config.component.ts | 262 ++++++++++++++++++ .../cards/progress-bar-widget.component.html | 42 +++ .../cards/progress-bar-widget.component.scss | 84 ++++++ .../cards/progress-bar-widget.component.ts | 221 +++++++++++++++ .../lib/cards/progress-bar-widget.models.ts | 98 +++++++ .../battery-level-widget.component.scss | 5 +- .../battery-level-widget.component.ts | 1 + ...rogress-bar-widget-settings.component.html | 94 +++++++ .../progress-bar-widget-settings.component.ts | 133 +++++++++ .../lib/settings/widget-settings.module.ts | 12 +- ...wind-speed-direction-widget.component.scss | 5 +- .../widget/widget-components.module.ts | 7 +- .../assets/locale/locale.constant-en_US.json | 16 ++ .../widget/progress-bar/default-layout.svg | 38 +++ .../widget/progress-bar/simplified-layout.svg | 36 +++ ui-ngx/src/form.scss | 7 + 21 files changed, 1263 insertions(+), 11 deletions(-) create mode 100644 application/src/main/data/json/system/widget_types/progress_bar.json create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.scss create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.models.ts create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.html create mode 100644 ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.ts create mode 100644 ui-ngx/src/assets/widget/progress-bar/default-layout.svg create mode 100644 ui-ngx/src/assets/widget/progress-bar/simplified-layout.svg diff --git a/application/src/main/data/json/system/widget_bundles/cards.json b/application/src/main/data/json/system/widget_bundles/cards.json index d49db3581d..c1420e6549 100644 --- a/application/src/main/data/json/system/widget_bundles/cards.json +++ b/application/src/main/data/json/system/widget_bundles/cards.json @@ -12,6 +12,7 @@ "cards.horizontal_value_card", "cards.aggregated_value_card", "simple_value_and_chart_card", + "progress_bar", "cards.label_widget", "cards.dashboard_state_widget", "cards.qr_code", diff --git a/application/src/main/data/json/system/widget_bundles/status_indicators.json b/application/src/main/data/json/system/widget_bundles/status_indicators.json index e175ffa5bb..429d3fe016 100644 --- a/application/src/main/data/json/system/widget_bundles/status_indicators.json +++ b/application/src/main/data/json/system/widget_bundles/status_indicators.json @@ -9,6 +9,7 @@ }, "widgetTypeFqns": [ "battery_level", - "signal_strength" + "signal_strength", + "progress_bar" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/progress_bar.json b/application/src/main/data/json/system/widget_types/progress_bar.json new file mode 100644 index 0000000000..df3dcf6268 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/progress_bar.json @@ -0,0 +1,26 @@ +{ + "fqn": "progress_bar", + "name": "Progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAeFBMVEXg4ODf39/g4ODg4OAAAAD////g4OD19fUhISE/Ut3j4+OsrKzHx8eQkJB0dHQ8PDzx8fEvLy+6urrV1dWCgoJYWFienp5KSkrv7++GhoZmZmaXl5f39/epqanLy8vCwsL29vZtfORiceJ+fn7m5ubU1NTn6fve4fIbcz38AAAABXRSTlPvIL+vAC9A4IoAAASZSURBVHja7d0NT9swEIDhMji4nb/jxEk/NmCM7f//w/niQLtJyxamtdfiF6EmDkh+1Di0IojVzdWH1e25d311s7paDXD2+cy49nABDfm0gotodSmQ2woRVoVIq0KkVSHSqhBpVYi0KkRaFSKtGUijctrDv6XQwEzHgDjkXLoAiKaoAurzhxAAGGxBm2gMgE+25SHeUNE0QKbRNo/otlWQo2QNQa6xrdpD1DSqW6vyBhmtrD86RKHNGIcOyOUHZJDDEEIe1xgQdT487gGF0CNmgUXnsH+BhPzhCKDFfNh50OgQ6dgQv0HFEB2hw8QYDQo3HlqGZFf0066GDiNQFmvcMEZNEMdH2zza8WhivopwVEjX9QF7yBCVSbwFCc04YdBoy4xhkw3QYAsWjQciiNhH8OT3a8RnXo4ooRm/M3dMSN91m+QnCM+6zN9h2ShTyq4xy08X9mpcVxgswR4yfktymDsJhICbIPEA4n+GJJXTfNS48atIWQzxABKQl0YEJQDiQ/Dl1LeoDyHtONWYj41TDtDYvJMwTZA2w7ADwwNJAAQS9sqgY4NLyb1CKGCrGNeh0QY7Pq6bHvUEQaMcKh5VJkiAgAmIHfGGw7B5hQD1iMHkR4vlC5TLA+l1jeS9dlo5LdojQeYj/7rBp8xrnvz+kSOCg349WjolpES9itphBEm9BeI3OJ46omLI8qhppP2e6z28sTqvKkRaFSKtCpFWhUirQqRVIdKqEGlViLQqRFoVIq0KkVaFSKtCpFUh0qoQaVWItCpEWhUirQqR1jzER609HEbSbhT4G4g3AXOWYKrpAnYgszlIjyVXJNTl7XOEJMQ+ArXT5L3LpBQJZDYD6RGJAQED5DKoBbnN3uTfvIAAgBB7EFyBzBbQlXsTNV/EQGh/hPgWUZW7e1PglR+hJOw6PA/RfCs2Gsg5nApFYvtO1L2A8xC1n3ne6DWQRewKEfQGSM7FeB5CSrUOUY0QN13D0DPEQuzANiAlhsxHAYNnSA9ci6gZ5Jq2VRbEVCCzWcRYrl2cKRAgk6gT9NPx9xBvbTqYeofBTyz9IlTaiDm3Zp6RckoxAePIScxzGKBEPTnVK5DRDMS+vtZyLMguBbTZv1BxpAw0UpbJDMQ7LAWCXIMl52EsGVAtKCmvv2YgQNYxY0PTbs97xh9SN07KemfITFHHw4nzntA3jO/kPfsZVSHSqhBpVYi0KkRaFSKtCpHWO4B8e/y4rC/f7/5/D8shXz4u7fHuCO0WQz4u7+4YLYY8LnZ8uTtCu+VrZOm59XiMNbJ7x1etM6tCpFUh0qoQac1A7s325L+P2t1/AoBhu90O04SWQ4b1ANsTP10Pa7XOD5/u4fMWbte74WlYDnlOAM3Jn5KBIesBHp7gXmXS5+WQz5/EQOz42TQVIgWyHgDyqfVGyPD0AOkZThxD+JrznBf7NpO+LodAszZbOHEF8nW9ZYEyZvnll9vtQErDNKH3/ZP9vKoQaVWItCpEWhUirQqRVoVIq0KkVSHSqhBpVYi0LgiygovodvXhAv71NIC/Xl2txPzpxNsbMuPm6vr23Ft9uLr5AdpbpSAPQyy7AAAAAElFTkSuQmCC", + "description": "Displays any value 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": "\n", + "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 };\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\":\"humidity\",\"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\":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\":\"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';\"},\"tickMin\":0,\"tickMax\":100,\"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}}},\"title\":\"Progress bar\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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" + ] +} \ No newline at end of file diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts index fd0e48322d..c26cf43542 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/basic-widget-config.module.ts @@ -67,6 +67,9 @@ import { import { ValueChartCardBasicConfigComponent } from '@home/components/widget/config/basic/cards/value-chart-card-basic-config.component'; +import { + ProgressBarBasicConfigComponent +} from '@home/components/widget/config/basic/cards/progress-bar-basic-config.component'; @NgModule({ declarations: [ @@ -87,7 +90,8 @@ import { BatteryLevelBasicConfigComponent, WindSpeedDirectionBasicConfigComponent, SignalStrengthBasicConfigComponent, - ValueChartCardBasicConfigComponent + ValueChartCardBasicConfigComponent, + ProgressBarBasicConfigComponent ], imports: [ CommonModule, @@ -112,7 +116,8 @@ import { BatteryLevelBasicConfigComponent, WindSpeedDirectionBasicConfigComponent, SignalStrengthBasicConfigComponent, - ValueChartCardBasicConfigComponent + ValueChartCardBasicConfigComponent, + ProgressBarBasicConfigComponent ] }) export class BasicWidgetConfigModule { @@ -131,5 +136,6 @@ export const basicWidgetConfigComponentsMap: {[key: string]: Type + + + + + +
+
widget-config.appearance
+ + + {{ progressBarLayoutTranslationMap.get(layout) | translate }} + + +
+ + {{ 'widgets.progress-bar.auto-scale' | translate }} + +
+
+ + {{ 'widget-config.title' | translate }} + +
+ + + + + + + +
+
+
+ + {{ 'widgets.progress-bar.icon' | translate }} + +
+ + + + + + + + +
+
+
+ + {{ 'widgets.progress-bar.value' | translate }} + +
+ + + +
widget-config.decimals-suffix
+
+ + + + +
+
+
+
{{ 'widgets.progress-bar.range' | translate }}
+
+
widgets.progress-bar.min
+ + + +
widgets.progress-bar.max
+ + + +
+
+
+ + {{ 'widgets.progress-bar.range-ticks' | translate }} + +
+ + + + +
+
+
+
+
widgets.progress-bar.bar
+
+
{{ 'widgets.progress-bar.bar-color' | translate }}
+ + +
+
+
{{ 'widgets.progress-bar.bar-background' | translate }}
+ + +
+
+
+
widget-config.card-appearance
+
+
{{ 'widgets.background.background' | translate }}
+ + +
+
+
widget-config.show-card-buttons
+ + {{ 'fullscreen.fullscreen' | translate }} + +
+
+
{{ 'widget-config.card-border-radius' | translate }}
+ + + +
+
+ + +
diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts new file mode 100644 index 0000000000..ef54d64861 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts @@ -0,0 +1,262 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; +import { WidgetConfigComponentData } from '@home/models/widget-component.models'; +import { + datasourcesHasAggregation, + datasourcesHasOnlyComparisonAggregation, + WidgetConfig, +} from '@shared/models/widget.models'; +import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; +import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; +import { + getTimewindowConfig, + setTimewindowConfig +} from '@home/components/widget/config/timewindow-config-panel.component'; +import { formatValue, isUndefined } from '@core/utils'; +import { cssSizeToStrSize, resolveCssSize } from '@shared/models/widget-settings.models'; +import { + progressBarDefaultSettings, + ProgressBarLayout, + progressBarLayoutImages, + progressBarLayouts, + progressBarLayoutTranslations, + ProgressBarWidgetSettings +} from '@home/components/widget/lib/cards/progress-bar-widget.models'; + +@Component({ + selector: 'tb-progress-bar-basic-config', + templateUrl: './progress-bar-basic-config.component.html', + styleUrls: ['../basic-config.scss'] +}) +export class ProgressBarBasicConfigComponent extends BasicWidgetConfigComponent { + + public get displayTimewindowConfig(): boolean { + const datasources = this.progressBarWidgetConfigForm.get('datasources').value; + return datasourcesHasAggregation(datasources); + } + + public onlyHistoryTimewindow(): boolean { + const datasources = this.progressBarWidgetConfigForm.get('datasources').value; + return datasourcesHasOnlyComparisonAggregation(datasources); + } + + progressBarLayout = ProgressBarLayout; + + progressBarLayouts = progressBarLayouts; + + progressBarLayoutTranslationMap = progressBarLayoutTranslations; + progressBarLayoutImageMap = progressBarLayoutImages; + + progressBarWidgetConfigForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + constructor(protected store: Store, + protected widgetConfigComponent: WidgetConfigComponent, + private fb: UntypedFormBuilder) { + super(store, widgetConfigComponent); + } + + protected configForm(): UntypedFormGroup { + return this.progressBarWidgetConfigForm; + } + + protected setupDefaults(configData: WidgetConfigComponentData) { + this.setupDefaultDatasource(configData, [{ name: 'humidity', label: 'humidity', type: DataKeyType.timeseries }]); + } + + protected onConfigSet(configData: WidgetConfigComponentData) { + const settings: ProgressBarWidgetSettings = {...progressBarDefaultSettings, ...(configData.config.settings || {})}; + const iconSize = resolveCssSize(configData.config.iconSize); + this.progressBarWidgetConfigForm = this.fb.group({ + timewindowConfig: [getTimewindowConfig(configData.config), []], + datasources: [configData.config.datasources, []], + + layout: [settings.layout, []], + autoScale: [settings.autoScale, []], + + showTitle: [configData.config.showTitle, []], + title: [configData.config.title, []], + titleFont: [configData.config.titleFont, []], + titleColor: [configData.config.titleColor, []], + + showIcon: [configData.config.showTitleIcon, []], + iconSize: [iconSize[0], [Validators.min(0)]], + iconSizeUnit: [iconSize[1], []], + icon: [configData.config.titleIcon, []], + iconColor: [configData.config.iconColor, []], + + showValue: [settings.showValue, []], + units: [configData.config.units, []], + decimals: [configData.config.decimals, []], + valueFont: [settings.valueFont, []], + valueColor: [settings.valueColor, []], + + tickMin: [settings.tickMin, []], + tickMax: [settings.tickMax, []], + + showTicks: [settings.showTicks, []], + ticksFont: [settings.ticksFont, []], + ticksColor: [settings.ticksColor, []], + + barColor: [settings.barColor, []], + barBackground: [settings.barBackground, []], + + background: [settings.background, []], + + cardButtons: [this.getCardButtons(configData.config), []], + borderRadius: [configData.config.borderRadius, []], + + actions: [configData.config.actions || {}, []] + }); + } + + protected prepareOutputConfig(config: any): WidgetConfigComponentData { + setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); + this.widgetConfig.config.datasources = config.datasources; + + this.widgetConfig.config.showTitle = config.showTitle; + this.widgetConfig.config.title = config.title; + this.widgetConfig.config.titleFont = config.titleFont; + this.widgetConfig.config.titleColor = config.titleColor; + + this.widgetConfig.config.showTitleIcon = config.showIcon; + this.widgetConfig.config.iconSize = cssSizeToStrSize(config.iconSize, config.iconSizeUnit); + this.widgetConfig.config.titleIcon = config.icon; + this.widgetConfig.config.iconColor = config.iconColor; + + this.widgetConfig.config.settings = this.widgetConfig.config.settings || {}; + + this.widgetConfig.config.settings.layout = config.layout; + this.widgetConfig.config.settings.autoScale = config.autoScale; + + this.widgetConfig.config.settings.showValue = config.showValue; + this.widgetConfig.config.units = config.units; + this.widgetConfig.config.decimals = config.decimals; + this.widgetConfig.config.settings.valueFont = config.valueFont; + this.widgetConfig.config.settings.valueColor = config.valueColor; + + this.widgetConfig.config.settings.tickMin = config.tickMin; + this.widgetConfig.config.settings.tickMax = config.tickMax; + + this.widgetConfig.config.settings.showTicks = config.showTicks; + this.widgetConfig.config.settings.ticksFont = config.ticksFont; + this.widgetConfig.config.settings.ticksColor = config.ticksColor; + + this.widgetConfig.config.settings.barColor = config.barColor; + this.widgetConfig.config.settings.barBackground = config.barBackground; + + this.widgetConfig.config.settings.background = config.background; + + this.setCardButtons(config.cardButtons, this.widgetConfig.config); + this.widgetConfig.config.borderRadius = config.borderRadius; + + this.widgetConfig.config.actions = config.actions; + return this.widgetConfig; + } + + protected validatorTriggers(): string[] { + return ['showTitle', 'showIcon', 'showValue', 'showTicks', 'layout']; + } + + protected updateValidators(emitEvent: boolean, trigger?: string) { + const showTitle: boolean = this.progressBarWidgetConfigForm.get('showTitle').value; + const showIcon: boolean = this.progressBarWidgetConfigForm.get('showIcon').value; + const showValue: boolean = this.progressBarWidgetConfigForm.get('showValue').value; + const showTicks: boolean = this.progressBarWidgetConfigForm.get('showTicks').value; + const layout: ProgressBarLayout = this.progressBarWidgetConfigForm.get('layout').value; + + const ticksEnabled = layout === ProgressBarLayout.default; + + if (showTitle) { + this.progressBarWidgetConfigForm.get('title').enable(); + this.progressBarWidgetConfigForm.get('titleFont').enable(); + this.progressBarWidgetConfigForm.get('titleColor').enable(); + this.progressBarWidgetConfigForm.get('showIcon').enable({emitEvent: false}); + if (showIcon) { + this.progressBarWidgetConfigForm.get('iconSize').enable(); + this.progressBarWidgetConfigForm.get('iconSizeUnit').enable(); + this.progressBarWidgetConfigForm.get('icon').enable(); + this.progressBarWidgetConfigForm.get('iconColor').enable(); + } else { + this.progressBarWidgetConfigForm.get('iconSize').disable(); + this.progressBarWidgetConfigForm.get('iconSizeUnit').disable(); + this.progressBarWidgetConfigForm.get('icon').disable(); + this.progressBarWidgetConfigForm.get('iconColor').disable(); + } + } else { + this.progressBarWidgetConfigForm.get('title').disable(); + this.progressBarWidgetConfigForm.get('titleFont').disable(); + this.progressBarWidgetConfigForm.get('titleColor').disable(); + this.progressBarWidgetConfigForm.get('showIcon').disable({emitEvent: false}); + this.progressBarWidgetConfigForm.get('iconSize').disable(); + this.progressBarWidgetConfigForm.get('iconSizeUnit').disable(); + this.progressBarWidgetConfigForm.get('icon').disable(); + this.progressBarWidgetConfigForm.get('iconColor').disable(); + } + + if (showValue) { + this.progressBarWidgetConfigForm.get('units').enable(); + this.progressBarWidgetConfigForm.get('decimals').enable(); + this.progressBarWidgetConfigForm.get('valueFont').enable(); + this.progressBarWidgetConfigForm.get('valueColor').enable(); + } else { + this.progressBarWidgetConfigForm.get('units').disable(); + this.progressBarWidgetConfigForm.get('decimals').disable(); + this.progressBarWidgetConfigForm.get('valueFont').disable(); + this.progressBarWidgetConfigForm.get('valueColor').disable(); + } + + if (ticksEnabled) { + this.progressBarWidgetConfigForm.get('showTicks').enable({emitEvent: false}); + if (showTicks) { + this.progressBarWidgetConfigForm.get('ticksFont').enable(); + this.progressBarWidgetConfigForm.get('ticksColor').enable(); + } else { + this.progressBarWidgetConfigForm.get('ticksFont').disable(); + this.progressBarWidgetConfigForm.get('ticksColor').disable(); + } + } else { + this.progressBarWidgetConfigForm.get('showTicks').disable({emitEvent: false}); + this.progressBarWidgetConfigForm.get('ticksFont').disable(); + this.progressBarWidgetConfigForm.get('ticksColor').disable(); + } + } + + private getCardButtons(config: WidgetConfig): string[] { + const buttons: string[] = []; + if (isUndefined(config.enableFullscreen) || config.enableFullscreen) { + buttons.push('fullscreen'); + } + return buttons; + } + + private setCardButtons(buttons: string[], config: WidgetConfig) { + config.enableFullscreen = buttons.includes('fullscreen'); + } + + private _valuePreviewFn(): string { + const units: string = this.widgetConfig.config.units; + const decimals: number = this.widgetConfig.config.decimals; + return formatValue(78, decimals, units, true); + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.html new file mode 100644 index 0000000000..3f788aaf82 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.html @@ -0,0 +1,42 @@ + +
+
+
+ + + +
+
+ + + +
{{ valueText }}
+
+
+
+
+
+
+
{{ settings.tickMin }}
+
{{ settings.tickMax }}
+
+
+
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.scss new file mode 100644 index 0000000000..7f83997987 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.scss @@ -0,0 +1,84 @@ +/** + * Copyright © 2016-2023 The Thingsboard Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +.tb-progress-bar-panel { + width: 100%; + height: 100%; + position: relative; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 20px 24px 24px 24px; + > div:not(.tb-progress-bar-overlay) { + z-index: 1; + } + .tb-progress-bar-overlay { + position: absolute; + top: 12px; + left: 12px; + bottom: 12px; + right: 12px; + } + div.tb-widget-title { + padding: 0; + } + .tb-progress-bar-container { + width: 100%; + height: 100%; + position: relative; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + &.simplified { + justify-content: center; + } + } + .tb-progress-bar-content { + display: flex; + flex-direction: column; + align-self: stretch; + gap: 4px; + .tb-progress-bar-title-value-row { + display: flex; + flex-direction: row; + justify-content: space-between; + &.flex-end { + justify-content: flex-end; + } + .tb-progress-bar-value { + white-space: nowrap; + } + } + .tb-progress-bar { + display: flex; + flex-direction: column; + .tb-progress-bar-background { + border-radius: 12px; + .tb-progress-bar-progress { + height: 5px; + border-radius: 8px; + transition: background-color .2s, width .2s; + } + } + .tb-progress-bar-ticks { + display: flex; + flex-direction: row; + justify-content: space-between; + } + } + } +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts new file mode 100644 index 0000000000..fe1ac58ab4 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts @@ -0,0 +1,221 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + AfterViewInit, + ChangeDetectorRef, + Component, + ElementRef, + Input, + OnDestroy, + OnInit, + Renderer2, + TemplateRef, + ViewChild, + ViewEncapsulation +} from '@angular/core'; +import { WidgetContext } from '@home/models/widget-component.models'; +import { formatValue, isDefinedAndNotNull, isNumeric } from '@core/utils'; +import { DatePipe } from '@angular/common'; +import { + backgroundStyle, + ColorProcessor, + ComponentStyle, + getDataKey, + getSingleTsValue, + overlayStyle, + resolveCssSize, + textStyle +} from '@shared/models/widget-settings.models'; +import { WidgetComponent } from '@home/components/widget/widget.component'; +import { progressBarDefaultSettings, ProgressBarLayout, ProgressBarWidgetSettings } from './progress-bar-widget.models'; +import { ResizeObserver } from '@juggle/resize-observer'; + +const defaultLayoutHeight = 80; +const simplifiedLayoutHeight = 75; +const defaultAspect = defaultLayoutHeight / 150; +const simplifiedAspect = simplifiedLayoutHeight / 150; + +@Component({ + selector: 'tb-progress-bar-widget', + templateUrl: './progress-bar-widget.component.html', + styleUrls: ['./progress-bar-widget.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ProgressBarWidgetComponent implements OnInit, OnDestroy, AfterViewInit { + + @ViewChild('progressBarPanel', {static: true}) + progressBarPanel: ElementRef; + + @ViewChild('progressBarContainer', {static: true}) + progressBarContainer: ElementRef; + + progressBarLayout = ProgressBarLayout; + + settings: ProgressBarWidgetSettings; + + @Input() + ctx: WidgetContext; + + @Input() + widgetTitlePanel: TemplateRef; + + layout: ProgressBarLayout; + + layoutClass = ''; + + showTitleValueRow = true; + titleValueRowClass = ''; + + showValue = true; + valueText = 'N/A'; + valueStyle: ComponentStyle = {}; + valueColor: ColorProcessor; + + barWidth = '0%'; + barColor: ColorProcessor; + + showTicks = true; + ticksStyle: ComponentStyle = {}; + + value: number; + + backgroundStyle: ComponentStyle = {}; + overlayStyle: ComponentStyle = {}; + + progressBarPanelResize$: ResizeObserver; + + private decimals = 0; + private units = ''; + + constructor(private date: DatePipe, + private widgetComponent: WidgetComponent, + private renderer: Renderer2, + private cd: ChangeDetectorRef) { + } + + ngOnInit(): void { + this.ctx.$scope.progressBarWidget = this; + this.settings = {...progressBarDefaultSettings, ...this.ctx.settings}; + + this.decimals = this.ctx.decimals; + this.units = this.ctx.units; + const dataKey = getDataKey(this.ctx.datasources); + if (isDefinedAndNotNull(dataKey?.decimals)) { + this.decimals = dataKey.decimals; + } + if (dataKey?.units) { + this.units = dataKey.units; + } + + this.layout = this.settings.layout; + + this.showValue = this.settings.showValue; + this.valueStyle = textStyle(this.settings.valueFont, '0.1px'); + this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); + + this.showTitleValueRow = this.showValue || + (this.layout === ProgressBarLayout.simplified && this.widgetComponent.dashboardWidget.showWidgetTitlePanel); + + this.layoutClass = (this.layout === ProgressBarLayout.simplified || !this.widgetComponent.dashboardWidget.showWidgetTitlePanel) + ? 'simplified' : ''; + + this.titleValueRowClass = (this.layout === ProgressBarLayout.simplified && + !this.widgetComponent.dashboardWidget.showWidgetTitlePanel) ? 'flex-end' : ''; + + this.barColor = ColorProcessor.fromSettings(this.settings.barColor); + + this.showTicks = this.settings.showTicks && this.layout === ProgressBarLayout.default; + if (this.showTicks) { + this.ticksStyle = textStyle(this.settings.ticksFont, '0.1px'); + this.ticksStyle.color = this.settings.ticksColor; + } + + this.backgroundStyle = backgroundStyle(this.settings.background); + this.overlayStyle = overlayStyle(this.settings.background.overlay); + } + + ngAfterViewInit() { + if (this.settings.autoScale) { + this.renderer.setStyle(this.progressBarContainer.nativeElement, 'overflow', 'visible'); + this.renderer.setStyle(this.progressBarContainer.nativeElement, 'position', 'absolute'); + this.progressBarPanelResize$ = new ResizeObserver(() => { + this.onResize(); + }); + this.progressBarPanelResize$.observe(this.progressBarPanel.nativeElement); + this.onResize(); + } + } + + ngOnDestroy() { + } + + public onInit() { + const borderRadius = this.ctx.$widgetElement.css('borderRadius'); + this.overlayStyle = {...this.overlayStyle, ...{borderRadius}}; + this.cd.detectChanges(); + } + + public onDataUpdated() { + const tsValue = getSingleTsValue(this.ctx.data); + this.value = 0; + if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { + this.value = tsValue[1]; + this.valueText = formatValue(this.value, this.decimals, this.units, true); + } else { + this.valueText = 'N/A'; + } + this.valueColor.update(this.value); + this.barColor.update(this.value); + const range = this.settings.tickMax - this.settings.tickMin; + this.barWidth = `${(this.value / range) * 100}%`; + this.cd.detectChanges(); + } + + private onResize() { + const paddingLeft = getComputedStyle(this.progressBarPanel.nativeElement).paddingLeft; + const paddingRight = getComputedStyle(this.progressBarPanel.nativeElement).paddingRight; + const paddingTop = getComputedStyle(this.progressBarPanel.nativeElement).paddingTop; + const paddingBottom = getComputedStyle(this.progressBarPanel.nativeElement).paddingBottom; + const pLeft = resolveCssSize(paddingLeft)[0]; + const pRight = resolveCssSize(paddingRight)[0]; + const pTop = resolveCssSize(paddingTop)[0]; + const pBottom = resolveCssSize(paddingBottom)[0]; + const panelWidth = this.progressBarPanel.nativeElement.getBoundingClientRect().width - (pLeft + pRight); + const panelHeight = this.progressBarPanel.nativeElement.getBoundingClientRect().height - (pTop + pBottom); + const defaultLayout = this.layout === ProgressBarLayout.default && this.widgetComponent.dashboardWidget.showWidgetTitlePanel; + let minAspect = defaultLayout ? defaultAspect : simplifiedAspect; + let layoutHeight = defaultLayout ? defaultLayoutHeight : simplifiedLayoutHeight; + if (!this.showTitleValueRow) { + minAspect -= (40 / 150); + layoutHeight -= 40; + } + if (!this.showTicks) { + minAspect -= (10 / 150); + layoutHeight -= 10; + } + const aspect = Math.min(panelHeight / panelWidth, minAspect); + const targetWidth = panelWidth; + const targetHeight = targetWidth * aspect; + const scale = targetHeight / layoutHeight; + const width = targetWidth / scale; + const height = panelHeight / scale; + this.renderer.setStyle(this.progressBarContainer.nativeElement, 'width', width + 'px'); + this.renderer.setStyle(this.progressBarContainer.nativeElement, 'height', height + 'px'); + this.renderer.setStyle(this.progressBarContainer.nativeElement, 'transform', `scale(${scale})`); + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.models.ts new file mode 100644 index 0000000000..d0aff79ba5 --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.models.ts @@ -0,0 +1,98 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { + BackgroundSettings, + BackgroundType, + ColorSettings, + constantColor, + Font +} from '@shared/models/widget-settings.models'; + +export enum ProgressBarLayout { + default = 'default', + simplified = 'simplified' +} + +export const progressBarLayouts = Object.keys(ProgressBarLayout) as ProgressBarLayout[]; + +export const progressBarLayoutTranslations = new Map( + [ + [ProgressBarLayout.default, 'widgets.progress-bar.layout-default'], + [ProgressBarLayout.simplified, 'widgets.progress-bar.layout-simplified'] + ] +); + +export const progressBarLayoutImages = new Map( + [ + [ProgressBarLayout.default, 'assets/widget/progress-bar/default-layout.svg'], + [ProgressBarLayout.simplified, 'assets/widget/progress-bar/simplified-layout.svg'] + ] +); + +export interface ProgressBarWidgetSettings { + layout: ProgressBarLayout; + autoScale: boolean; + showValue: boolean; + valueFont: Font; + valueColor: ColorSettings; + showTicks: boolean; + tickMin: number; + tickMax: number; + ticksFont: Font; + ticksColor: string; + barColor: ColorSettings; + barBackground: string; + background: BackgroundSettings; +} + +export const progressBarDefaultSettings: ProgressBarWidgetSettings = { + layout: ProgressBarLayout.default, + autoScale: true, + showValue: true, + valueFont: { + family: 'Roboto', + size: 24, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '32px' + }, + valueColor: constantColor('rgba(0, 0, 0, 0.87)'), + showTicks: true, + tickMin: 0, + tickMax: 100, + ticksFont: { + family: 'Roboto', + size: 11, + sizeUnit: 'px', + style: 'normal', + weight: '400', + lineHeight: '16px' + }, + ticksColor: 'rgba(0,0,0,0.54)', + barColor: constantColor('rgba(63, 82, 221, 1)'), + barBackground: 'rgba(0, 0, 0, 0.04)', + background: { + type: BackgroundType.color, + color: '#fff', + overlay: { + enabled: false, + color: 'rgba(255,255,255,0.72)', + blur: 3 + } + } +}; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.scss index 441391d95a..fbf244a383 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.scss @@ -20,7 +20,7 @@ display: flex; flex-direction: column; gap: 16px; - padding: 24px; + padding: 20px 24px 24px 24px; &.tb-battery-level-pointer { cursor: pointer; } @@ -34,6 +34,9 @@ bottom: 12px; right: 12px; } + div.tb-widget-title { + padding: 0; + } .tb-battery-level-content { min-height: 0; flex: 1; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts index 9161764223..a2793234f4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts @@ -263,6 +263,7 @@ export class BatteryLevelWidgetComponent implements OnInit, OnDestroy, AfterView if (this.autoScaleValueSize) { const valueFontSize = ratios.valueFontSizeRatio * boxSize; const valueLineHeight = ratios.valueLineHeightRaio * boxSize; + this.renderer.setStyle(this.batteryLevelValue.nativeElement, 'minWidth', '0'); this.setValueFontSize(valueFontSize, valueLineHeight, boxWidth); } const fontSize = parseInt(window.getComputedStyle(this.batteryLevelValue.nativeElement).fontSize, 10) || 10; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.html new file mode 100644 index 0000000000..bb7089991d --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.html @@ -0,0 +1,94 @@ + + +
+
widgets.progress-bar.progress-bar-card-style
+ + + {{ progressBarLayoutTranslationMap.get(layout) | translate }} + + +
+ + {{ 'widgets.progress-bar.auto-scale' | translate }} + +
+
+ + {{ 'widgets.progress-bar.value' | translate }} + +
+ + + + +
+
+
+
{{ 'widgets.progress-bar.range' | translate }}
+
+
widgets.progress-bar.min
+ + + +
widgets.progress-bar.max
+ + + +
+
+
+ + {{ 'widgets.progress-bar.range-ticks' | translate }} + +
+ + + + +
+
+
+
{{ 'widgets.progress-bar.bar-color' | translate }}
+ + +
+
+
{{ 'widgets.progress-bar.bar-background' | translate }}
+ + +
+
+
{{ 'widgets.background.background' | translate }}
+ + +
+
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.ts new file mode 100644 index 0000000000..b56d8bff3b --- /dev/null +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/cards/progress-bar-widget-settings.component.ts @@ -0,0 +1,133 @@ +/// +/// Copyright © 2016-2023 The Thingsboard Authors +/// +/// Licensed under the Apache License, Version 2.0 (the "License"); +/// you may not use this file except in compliance with the License. +/// You may obtain a copy of the License at +/// +/// http://www.apache.org/licenses/LICENSE-2.0 +/// +/// Unless required by applicable law or agreed to in writing, software +/// distributed under the License is distributed on an "AS IS" BASIS, +/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +/// See the License for the specific language governing permissions and +/// limitations under the License. +/// + +import { Component, Injector } from '@angular/core'; +import { WidgetSettings, WidgetSettingsComponent } from '@shared/models/widget.models'; +import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { Store } from '@ngrx/store'; +import { AppState } from '@core/core.state'; +import { formatValue } from '@core/utils'; +import { + progressBarDefaultSettings, + ProgressBarLayout, + progressBarLayoutImages, + progressBarLayouts, + progressBarLayoutTranslations +} from '@home/components/widget/lib/cards/progress-bar-widget.models'; + +@Component({ + selector: 'tb-progress-bar-widget-settings', + templateUrl: './progress-bar-widget-settings.component.html', + styleUrls: [] +}) +export class ProgressBarWidgetSettingsComponent extends WidgetSettingsComponent { + + progressBarLayout = ProgressBarLayout; + + progressBarLayouts = progressBarLayouts; + + progressBarLayoutTranslationMap = progressBarLayoutTranslations; + progressBarLayoutImageMap = progressBarLayoutImages; + + progressBarWidgetSettingsForm: UntypedFormGroup; + + valuePreviewFn = this._valuePreviewFn.bind(this); + + constructor(protected store: Store, + private $injector: Injector, + private fb: UntypedFormBuilder) { + super(store); + } + + protected settingsForm(): UntypedFormGroup { + return this.progressBarWidgetSettingsForm; + } + + protected defaultSettings(): WidgetSettings { + return {...progressBarDefaultSettings}; + } + + protected onSettingsSet(settings: WidgetSettings) { + this.progressBarWidgetSettingsForm = this.fb.group({ + layout: [settings.layout, []], + autoScale: [settings.autoScale, []], + + showValue: [settings.showValue, []], + valueFont: [settings.valueFont, []], + valueColor: [settings.valueColor, []], + + tickMin: [settings.tickMin, []], + tickMax: [settings.tickMax, []], + + showTicks: [settings.showTicks, []], + ticksFont: [settings.ticksFont, []], + ticksColor: [settings.ticksColor, []], + + barColor: [settings.barColor, []], + barBackground: [settings.barBackground, []], + + background: [settings.background, []] + }); + } + + protected validatorTriggers(): string[] { + return ['showValue', 'showTicks', 'layout']; + } + + protected updateValidators(emitEvent: boolean) { + const showValue: boolean = this.progressBarWidgetSettingsForm.get('showValue').value; + const showTicks: boolean = this.progressBarWidgetSettingsForm.get('showTicks').value; + const layout: ProgressBarLayout = this.progressBarWidgetSettingsForm.get('layout').value; + + const ticksEnabled = layout === ProgressBarLayout.default; + + if (showValue) { + this.progressBarWidgetSettingsForm.get('valueFont').enable(); + this.progressBarWidgetSettingsForm.get('valueColor').enable(); + } else { + this.progressBarWidgetSettingsForm.get('valueFont').disable(); + this.progressBarWidgetSettingsForm.get('valueColor').disable(); + } + + if (ticksEnabled) { + this.progressBarWidgetSettingsForm.get('showTicks').enable({emitEvent: false}); + if (showTicks) { + this.progressBarWidgetSettingsForm.get('ticksFont').enable(); + this.progressBarWidgetSettingsForm.get('ticksColor').enable(); + } else { + this.progressBarWidgetSettingsForm.get('ticksFont').disable(); + this.progressBarWidgetSettingsForm.get('ticksColor').disable(); + } + } else { + this.progressBarWidgetSettingsForm.get('showTicks').disable({emitEvent: false}); + this.progressBarWidgetSettingsForm.get('ticksFont').disable(); + this.progressBarWidgetSettingsForm.get('ticksColor').disable(); + } + + this.progressBarWidgetSettingsForm.get('valueFont').updateValueAndValidity({emitEvent}); + this.progressBarWidgetSettingsForm.get('valueColor').updateValueAndValidity({emitEvent}); + this.progressBarWidgetSettingsForm.get('showTicks').updateValueAndValidity({emitEvent: false}); + this.progressBarWidgetSettingsForm.get('ticksFont').updateValueAndValidity({emitEvent}); + this.progressBarWidgetSettingsForm.get('ticksColor').updateValueAndValidity({emitEvent}); + } + + private _valuePreviewFn(): string { + const units: string = this.widgetConfig.config.units; + const decimals: number = this.widgetConfig.config.decimals; + return formatValue(78, decimals, units, true); + } + +} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts index c4d2a1edc5..33b4323fdf 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/widget-settings.module.ts @@ -297,6 +297,9 @@ import { import { ValueChartCardWidgetSettingsComponent } from '@home/components/widget/lib/settings/cards/value-chart-card-widget-settings.component'; +import { + ProgressBarWidgetSettingsComponent +} from '@home/components/widget/lib/settings/cards/progress-bar-widget-settings.component'; @NgModule({ declarations: [ @@ -406,7 +409,8 @@ import { BatteryLevelWidgetSettingsComponent, WindSpeedDirectionWidgetSettingsComponent, SignalStrengthWidgetSettingsComponent, - ValueChartCardWidgetSettingsComponent + ValueChartCardWidgetSettingsComponent, + ProgressBarWidgetSettingsComponent ], imports: [ CommonModule, @@ -521,7 +525,8 @@ import { BatteryLevelWidgetSettingsComponent, WindSpeedDirectionWidgetSettingsComponent, SignalStrengthWidgetSettingsComponent, - ValueChartCardWidgetSettingsComponent + ValueChartCardWidgetSettingsComponent, + ProgressBarWidgetSettingsComponent ] }) export class WidgetSettingsModule { @@ -601,5 +606,6 @@ export const widgetSettingsComponentsMap: {[key: string]: Type + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/assets/widget/progress-bar/simplified-layout.svg b/ui-ngx/src/assets/widget/progress-bar/simplified-layout.svg new file mode 100644 index 0000000000..2e5f60f77c --- /dev/null +++ b/ui-ngx/src/assets/widget/progress-bar/simplified-layout.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui-ngx/src/form.scss b/ui-ngx/src/form.scss index 82794cbbc5..93272af3ca 100644 --- a/ui-ngx/src/form.scss +++ b/ui-ngx/src/form.scss @@ -225,6 +225,13 @@ margin-left: 12px; } } + .tb-small-label { + height: 40px; + font-size: 14px; + line-height: 40px; + letter-spacing: 0.2px; + color: rgba(0, 0, 0, 0.38); + } } .tb-form-row:not(.tb-standard-fields) .mat-mdc-form-field:not(.tb-not-inline-field), .mat-mdc-form-field.tb-inline-field { From 6701ef46f533e5a9632d40542caf7f4fce1dd768 Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Wed, 18 Oct 2023 11:00:20 +0300 Subject: [PATCH 065/117] fixed upgrade script for rule nodes --- .../update/DefaultDataUpdateService.java | 101 ++++++++++-------- .../server/dao/rule/RuleChainService.java | 4 + .../server/dao/rule/BaseRuleChainService.java | 18 ++++ .../server/dao/rule/RuleNodeDao.java | 5 + .../server/dao/sql/rule/JpaRuleNodeDao.java | 16 +++ .../dao/sql/rule/RuleNodeRepository.java | 5 + .../dao/sql/rule/JpaRuleNodeDaoTest.java | 39 ++++++- 7 files changed, 140 insertions(+), 48 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java index 8c3b78040b..d16b8c362b 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/update/DefaultDataUpdateService.java @@ -17,7 +17,7 @@ package org.thingsboard.server.service.install.update; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; @@ -84,6 +84,7 @@ import org.thingsboard.server.dao.tenant.TenantProfileService; import org.thingsboard.server.dao.tenant.TenantService; import org.thingsboard.server.dao.timeseries.TimeseriesService; import org.thingsboard.server.service.component.ComponentDiscoveryService; +import org.thingsboard.server.service.component.RuleNodeClassInfo; import org.thingsboard.server.service.install.InstallScripts; import org.thingsboard.server.service.install.SystemDataLoaderService; @@ -102,7 +103,8 @@ import static org.thingsboard.server.common.data.StringUtils.isBlank; @Slf4j public class DefaultDataUpdateService implements DataUpdateService { - private static final int MAX_PENDING_SAVE_RULE_NODE_FUTURES = 100; + private static final int MAX_PENDING_SAVE_RULE_NODE_FUTURES = 256; + private static final int DEFAULT_PAGE_SIZE = 1024; @Autowired private TenantService tenantService; @@ -231,67 +233,77 @@ public class DefaultDataUpdateService implements DataUpdateService { @Override public void upgradeRuleNodes() { try { - var futures = new ArrayList>(100); int totalRuleNodesUpgraded = 0; log.info("Starting rule nodes upgrade ..."); var nodeClassToVersionMap = componentDiscoveryService.getVersionedNodes(); log.debug("Found {} versioned nodes to check for upgrade!", nodeClassToVersionMap.size()); for (var ruleNodeClassInfo : nodeClassToVersionMap) { - var ruleNodeType = ruleNodeClassInfo.getClassName(); var ruleNodeTypeForLogs = ruleNodeClassInfo.getSimpleName(); var toVersion = ruleNodeClassInfo.getCurrentVersion(); log.debug("Going to check for nodes with type: {} to upgrade to version: {}.", ruleNodeTypeForLogs, toVersion); - var ruleNodesToUpdate = new PageDataIterable<>( - pageLink -> ruleChainService.findAllRuleNodesByTypeAndVersionLessThan(ruleNodeType, toVersion, pageLink), 1024 - ); - if (Iterables.isEmpty(ruleNodesToUpdate)) { - log.debug("There are no active nodes with type: {}, or all nodes with this type already set to latest version!", ruleNodeTypeForLogs); - } else { - for (var ruleNode : ruleNodesToUpdate) { - var ruleNodeId = ruleNode.getId(); - var oldConfiguration = ruleNode.getConfiguration(); - int fromVersion = ruleNode.getConfigurationVersion(); - log.debug("Going to upgrade rule node with id: {} type: {} fromVersion: {} toVersion: {}", - ruleNodeId, ruleNodeTypeForLogs, fromVersion, toVersion); - try { - var tbVersionedNode = (TbNode) ruleNodeClassInfo.getClazz().getDeclaredConstructor().newInstance(); - TbPair upgradeRuleNodeConfigurationResult = tbVersionedNode.upgrade(fromVersion, oldConfiguration); - if (upgradeRuleNodeConfigurationResult.getFirst()) { - ruleNode.setConfiguration(upgradeRuleNodeConfigurationResult.getSecond()); - } - ruleNode.setConfigurationVersion(toVersion); - futures.add(jpaExecutorService.submit(() -> { - ruleChainService.saveRuleNode(TenantId.SYS_TENANT_ID, ruleNode); - log.debug("Successfully upgrade rule node with id: {} type: {} fromVersion: {} toVersion: {}", - ruleNodeId, ruleNodeTypeForLogs, fromVersion, toVersion); - })); - if (futures.size() >= MAX_PENDING_SAVE_RULE_NODE_FUTURES) { - log.info("{} upgraded rule nodes so far ...", - totalRuleNodesUpgraded += awaitFuturesToCompleteAndGetCount(futures)); - futures.clear(); - } - } catch (Exception e) { - log.warn("Failed to upgrade rule node with id: {} type: {} fromVersion: {} toVersion: {} due to: ", - ruleNodeId, ruleNodeTypeForLogs, fromVersion, toVersion, e); - } - } + var ruleNodesIdsToUpgrade = getRuleNodesIdsWithTypeAndVersionLessThan(ruleNodeClassInfo.getClassName(), toVersion); + if (ruleNodesIdsToUpgrade.isEmpty()) { + log.debug("There are no active nodes with type {}, or all nodes with this type already set to latest version!", ruleNodeTypeForLogs); + continue; + } + var ruleNodeIdsPartitions = Lists.partition(ruleNodesIdsToUpgrade, MAX_PENDING_SAVE_RULE_NODE_FUTURES); + for (var ruleNodePack : ruleNodeIdsPartitions) { + totalRuleNodesUpgraded += processRuleNodePack(ruleNodePack, ruleNodeClassInfo); + log.info("{} upgraded rule nodes so far ...", totalRuleNodesUpgraded); } } - log.info("Finished rule nodes upgrade. Upgraded rule nodes count: {}", - totalRuleNodesUpgraded + awaitFuturesToCompleteAndGetCount(futures)); + log.info("Finished rule nodes upgrade. Upgraded rule nodes count: {}", totalRuleNodesUpgraded); } catch (Exception e) { log.error("Unexpected error during rule nodes upgrade: ", e); } } - private int awaitFuturesToCompleteAndGetCount(List> futures) { + private int processRuleNodePack(List ruleNodeIdsBatch, RuleNodeClassInfo ruleNodeClassInfo) { + var saveFutures = new ArrayList>(MAX_PENDING_SAVE_RULE_NODE_FUTURES); + String ruleNodeType = ruleNodeClassInfo.getSimpleName(); + int toVersion = ruleNodeClassInfo.getCurrentVersion(); + var ruleNodesPack = ruleChainService.findAllRuleNodesByIds(ruleNodeIdsBatch); + for (var ruleNode : ruleNodesPack) { + if (ruleNode == null) { + continue; + } + var ruleNodeId = ruleNode.getId(); + var oldConfiguration = ruleNode.getConfiguration(); + int fromVersion = ruleNode.getConfigurationVersion(); + log.debug("Going to upgrade rule node with id: {} type: {} fromVersion: {} toVersion: {}", + ruleNodeId, ruleNodeType, fromVersion, toVersion); + try { + var tbVersionedNode = (TbNode) ruleNodeClassInfo.getClazz().getDeclaredConstructor().newInstance(); + TbPair upgradeRuleNodeConfigurationResult = tbVersionedNode.upgrade(fromVersion, oldConfiguration); + if (upgradeRuleNodeConfigurationResult.getFirst()) { + ruleNode.setConfiguration(upgradeRuleNodeConfigurationResult.getSecond()); + } + ruleNode.setConfigurationVersion(toVersion); + saveFutures.add(jpaExecutorService.submit(() -> { + ruleChainService.saveRuleNode(TenantId.SYS_TENANT_ID, ruleNode); + log.debug("Successfully upgrade rule node with id: {} type: {} fromVersion: {} toVersion: {}", + ruleNodeId, ruleNodeType, fromVersion, toVersion); + })); + } catch (Exception e) { + log.warn("Failed to upgrade rule node with id: {} type: {} fromVersion: {} toVersion: {} due to: ", + ruleNodeId, ruleNodeType, fromVersion, toVersion, e); + } + } try { - return Futures.allAsList(futures).get().size(); + return Futures.allAsList(saveFutures).get().size(); } catch (ExecutionException | InterruptedException e) { throw new RuntimeException("Failed to process save rule nodes requests due to: ", e); } } + private List getRuleNodesIdsWithTypeAndVersionLessThan(String type, int toVersion) { + var ruleNodeIds = new ArrayList(); + new PageDataIterable<>(pageLink -> + ruleChainService.findAllRuleNodeIdsByTypeAndVersionLessThan(type, toVersion, pageLink), DEFAULT_PAGE_SIZE + ).forEach(ruleNodeIds::add); + return ruleNodeIds; + } + private final PaginatedUpdater deviceProfileEntityDynamicConditionsUpdater = new PaginatedUpdater<>() { @@ -373,12 +385,11 @@ public class DefaultDataUpdateService implements DataUpdateService { private void updateNestedRuleChains() { try { - var packSize = 1024; var updated = 0; boolean hasNext = true; while (hasNext) { - List relations = relationService.findRuleNodeToRuleChainRelations(TenantId.SYS_TENANT_ID, RuleChainType.CORE, packSize); - hasNext = relations.size() == packSize; + List relations = relationService.findRuleNodeToRuleChainRelations(TenantId.SYS_TENANT_ID, RuleChainType.CORE, DEFAULT_PAGE_SIZE); + hasNext = relations.size() == DEFAULT_PAGE_SIZE; for (EntityRelation relation : relations) { try { RuleNodeId sourceNodeId = new RuleNodeId(relation.getFrom().getId()); diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java index 95cdc0e02d..532da4ac00 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/rule/RuleChainService.java @@ -102,6 +102,10 @@ public interface RuleChainService extends EntityDaoService { PageData findAllRuleNodesByTypeAndVersionLessThan(String type, int version, PageLink pageLink); + PageData findAllRuleNodeIdsByTypeAndVersionLessThan(String type, int version, PageLink pageLink); + + List findAllRuleNodesByIds(List ruleNodeIds); + RuleNode saveRuleNode(TenantId tenantId, RuleNode ruleNode); void deleteRuleNodes(TenantId tenantId, RuleChainId ruleChainId); diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java index 5e6b1e8009..956e4b83f6 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rule/BaseRuleChainService.java @@ -78,6 +78,7 @@ import java.util.stream.Collectors; import static org.thingsboard.server.common.data.DataConstants.TENANT; import static org.thingsboard.server.dao.service.Validator.validateId; +import static org.thingsboard.server.dao.service.Validator.validateIds; import static org.thingsboard.server.dao.service.Validator.validatePageLink; import static org.thingsboard.server.dao.service.Validator.validatePositiveNumber; import static org.thingsboard.server.dao.service.Validator.validateString; @@ -726,6 +727,23 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC return ruleNodeDao.findAllRuleNodesByTypeAndVersionLessThan(type, version, pageLink); } + @Override + public PageData findAllRuleNodeIdsByTypeAndVersionLessThan(String type, int version, PageLink pageLink) { + log.trace("Executing findAllRuleNodeIdsByTypeAndVersionLessThan, type {}, pageLink {}, version {}", type, pageLink, version); + validateString(type, "Incorrect type of the rule node"); + validatePositiveNumber(version, "Incorrect version to compare with. Version should be greater than 0!"); + validatePageLink(pageLink); + return ruleNodeDao.findAllRuleNodeIdsByTypeAndVersionLessThan(type, version, pageLink); + } + + @Override + public List findAllRuleNodesByIds(List ruleNodeIds) { + log.trace("Executing findAllRuleNodesByIds, ruleNodeIds {}", ruleNodeIds); + validateIds(ruleNodeIds, "Incorrect ruleNodeIds " + ruleNodeIds); + assert ruleNodeIds.size() <= 1024; + return ruleNodeDao.findAllRuleNodeByIds(ruleNodeIds); + } + @Override public RuleNode saveRuleNode(TenantId tenantId, RuleNode ruleNode) { return ruleNodeDao.save(tenantId, ruleNode); diff --git a/dao/src/main/java/org/thingsboard/server/dao/rule/RuleNodeDao.java b/dao/src/main/java/org/thingsboard/server/dao/rule/RuleNodeDao.java index cd8fbb0a3c..b6f2dd097e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/rule/RuleNodeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/rule/RuleNodeDao.java @@ -36,7 +36,12 @@ public interface RuleNodeDao extends Dao { PageData findAllRuleNodesByTypeAndVersionLessThan(String type, int version, PageLink pageLink); + PageData findAllRuleNodeIdsByTypeAndVersionLessThan(String type, int version, PageLink pageLink); + + List findAllRuleNodeByIds(List ruleNodeIds); + List findByExternalIds(RuleChainId ruleChainId, List externalIds); void deleteByIdIn(List ruleNodeIds); + } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java index 827b73a0c1..de5ff109d3 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDao.java @@ -79,6 +79,22 @@ public class JpaRuleNodeDao extends JpaAbstractDao imp DaoUtil.toPageable(pageLink))); } + @Override + public PageData findAllRuleNodeIdsByTypeAndVersionLessThan(String type, int version, PageLink pageLink) { + return DaoUtil.pageToPageData(ruleNodeRepository + .findAllRuleNodeIdsByTypeAndVersionLessThan( + type, + version, + DaoUtil.toPageable(pageLink))) + .mapData(RuleNodeId::new); + } + + @Override + public List findAllRuleNodeByIds(List ruleNodeIds) { + return DaoUtil.convertDataList(ruleNodeRepository.findAllById( + ruleNodeIds.stream().map(RuleNodeId::getId).collect(Collectors.toList()))); + } + @Override public List findByExternalIds(RuleChainId ruleChainId, List externalIds) { return DaoUtil.convertDataList(ruleNodeRepository.findRuleNodesByRuleChainIdAndExternalIdIn(ruleChainId.getId(), diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java index c8ecb8000b..f02072b356 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/rule/RuleNodeRepository.java @@ -50,6 +50,11 @@ public interface RuleNodeRepository extends JpaRepository @Param("searchText") String searchText, Pageable pageable); + @Query("SELECT r.id FROM RuleNodeEntity r WHERE r.type = :ruleType AND r.configurationVersion < :version") + Page findAllRuleNodeIdsByTypeAndVersionLessThan(@Param("ruleType") String ruleType, + @Param("version") int version, + Pageable pageable); + List findRuleNodesByRuleChainIdAndExternalIdIn(UUID ruleChainId, List externalIds); @Transactional diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDaoTest.java index 6e77927233..2f1c73da01 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaRuleNodeDaoTest.java @@ -22,6 +22,7 @@ import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.RuleNodeId; import org.thingsboard.server.common.data.id.TenantId; @@ -36,10 +37,10 @@ import org.thingsboard.server.dao.rule.RuleNodeDao; import java.util.ArrayList; import java.util.List; import java.util.UUID; +import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; public class JpaRuleNodeDaoTest extends AbstractJpaDaoTest { @@ -124,7 +125,39 @@ public class JpaRuleNodeDaoTest extends AbstractJpaDaoTest { assertEquals(10, ruleNodes.getData().size()); } + @Test + public void testFindRuleNodeIdsByTypeAndVersionLessThan() { + PageData ruleNodeIds = ruleNodeDao.findAllRuleNodeIdsByTypeAndVersionLessThan( "A", 1, new PageLink(10, 0, PREFIX_FOR_RULE_NODE_NAME)); + assertEquals(20, ruleNodeIds.getTotalElements()); + assertEquals(2, ruleNodeIds.getTotalPages()); + assertEquals(10, ruleNodeIds.getData().size()); + + ruleNodeIds = ruleNodeDao.findAllRuleNodeIdsByTypeAndVersionLessThan( "A", 1, new PageLink(10, 0)); + assertEquals(20, ruleNodeIds.getTotalElements()); + assertEquals(2, ruleNodeIds.getTotalPages()); + assertEquals(10, ruleNodeIds.getData().size()); + + // test - search text ignored + ruleNodeIds = ruleNodeDao.findAllRuleNodeIdsByTypeAndVersionLessThan( "A", 1, new PageLink(10, 0, StringUtils.randomAlphabetic(5))); + assertEquals(20, ruleNodeIds.getTotalElements()); + assertEquals(2, ruleNodeIds.getTotalPages()); + assertEquals(10, ruleNodeIds.getData().size()); + } + + @Test + public void testFindAllRuleNodeByIds() { + var fromUUIDs = ruleNodeIds.stream().map(RuleNodeId::new).collect(Collectors.toList()); + var ruleNodes = ruleNodeDao.findAllRuleNodeByIds(fromUUIDs); + assertEquals(40, ruleNodes.size()); + } + private List createRuleNodes(TenantId tenantId1, TenantId tenantId2, RuleChainId ruleChainId1, RuleChainId ruleChainId2, int count) { + return createRuleNodes(tenantId1, tenantId2, ruleChainId1, ruleChainId2, "A", "B", count); + } + + private List createRuleNodes(TenantId tenantId1, TenantId tenantId2, + RuleChainId ruleChainId1, RuleChainId ruleChainId2, + String typeA, String typeB, int count) { var chain1 = new RuleChain(ruleChainId1); chain1.setTenantId(tenantId1); chain1.setName(ruleChainId1.toString()); @@ -135,8 +168,8 @@ public class JpaRuleNodeDaoTest extends AbstractJpaDaoTest { ruleChainDao.save(tenantId2, chain2); List savedRuleNodeIds = new ArrayList<>(); for (int i = 0; i < count / 2; i++) { - savedRuleNodeIds.add(ruleNodeDao.save(tenantId1, getRuleNode(ruleChainId1, "A", Integer.toString(i))).getUuidId()); - savedRuleNodeIds.add(ruleNodeDao.save(tenantId2, getRuleNode(ruleChainId2, "B", Integer.toString(i + count / 2))).getUuidId()); + savedRuleNodeIds.add(ruleNodeDao.save(tenantId1, getRuleNode(ruleChainId1, typeA, Integer.toString(i))).getUuidId()); + savedRuleNodeIds.add(ruleNodeDao.save(tenantId2, getRuleNode(ruleChainId2, typeB, Integer.toString(i + count / 2))).getUuidId()); } return savedRuleNodeIds; } From 0abe2f24521e9587febf4dd6590c61b72458d685 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 18 Oct 2023 11:10:15 +0300 Subject: [PATCH 066/117] UI: Disabled line height --- .../lib/settings/common/font-settings-panel.component.ts | 6 +++++- .../widget/lib/settings/common/font-settings.component.ts | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.ts index c99efa8931..562001e3c4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.ts @@ -69,6 +69,10 @@ export class FontSettingsPanelComponent extends PageComponent implements OnInit @coerceBoolean() autoScale = false; + @Input() + @coerceBoolean() + disabledLineHeight = false; + @Input() popover: TbPopoverComponent; @@ -106,7 +110,7 @@ export class FontSettingsPanelComponent extends PageComponent implements OnInit family: [this.font?.family, []], weight: [this.font?.weight, []], style: [this.font?.style, []], - lineHeight: [{ value: this.font?.lineHeight, disabled: this.autoScale }, []] + lineHeight: [{ value: this.font?.lineHeight, disabled: this.autoScale || this.disabledLineHeight }, []] } ); this.updatePreviewStyle(this.font); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings.component.ts index 2c3780f1fe..0fc3b20da1 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings.component.ts @@ -54,6 +54,10 @@ export class FontSettingsComponent implements OnInit, ControlValueAccessor { @coerceBoolean() autoScale = false; + @Input() + @coerceBoolean() + disabledLineHeight = false; + private modelValue: Font; private propagateChange = null; @@ -92,7 +96,8 @@ export class FontSettingsComponent implements OnInit, ControlValueAccessor { font: this.modelValue, initialPreviewStyle: this.initialPreviewStyle, clearButton: this.clearButton, - autoScale: this.autoScale + autoScale: this.autoScale, + disabledLineHeight: this.disabledLineHeight }; if (isDefinedAndNotNull(this.previewText)) { const previewText = typeof this.previewText === 'string' ? this.previewText : this.previewText(); From 954961f064ec509e9e8eb0df7bae2d77b7ffc236 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Wed, 18 Oct 2023 12:51:14 +0300 Subject: [PATCH 067/117] UI: Hide line height --- .../lib/settings/common/font-settings-panel.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html index ac103fe395..44163fae26 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/font-settings-panel.component.html @@ -73,7 +73,7 @@
-
+
widgets.widget-font.line-height
From 8d9f5f925e72a0866094adaf1475bc194ab484a6 Mon Sep 17 00:00:00 2001 From: rusikv Date: Wed, 18 Oct 2023 12:59:28 +0300 Subject: [PATCH 068/117] UI: fixed message 'No data to display on widget' not showing when there is no data for timeseries and value chart widgets --- .../lib/cards/aggregated-value-card-widget.component.ts | 4 ++-- .../home/components/widget/lib/flot-widget.component.ts | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts index 5380874811..e81cb270e7 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts @@ -116,7 +116,7 @@ export class AggregatedValueCardWidgetComponent implements OnInit, AfterViewInit ngOnInit(): void { this.ctx.$scope.aggregatedValueCardWidget = this; this.settings = {...aggregatedValueCardDefaultSettings, ...this.ctx.settings}; - this.showSubtitle = this.settings.showSubtitle; + this.showSubtitle = this.settings.showSubtitle && this.ctx.datasources?.length > 0; const subtitle = this.settings.subtitle; this.subtitle$ = this.ctx.registerLabelPattern(subtitle, this.subtitle$); this.subtitleStyle = textStyle(this.settings.subtitleFont, '0.25px'); @@ -156,7 +156,7 @@ export class AggregatedValueCardWidgetComponent implements OnInit, AfterViewInit } ngAfterViewInit(): void { - if (this.showChart) { + if (this.showChart && this.ctx.datasources?.length) { const settings = { shadowSize: 0, enableSelection: false, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/flot-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/flot-widget.component.ts index 9272295a27..1494e987ce 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/flot-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/flot-widget.component.ts @@ -60,7 +60,9 @@ export class FlotWidgetComponent implements OnInit { this.settings = this.ctx.settings; this.chartType = this.chartType || 'line'; this.configureLegend(); - this.flot = new TbFlot(this.ctx, this.chartType, $(this.flotElement.nativeElement)); + if (this.ctx.datasources?.length) { + this.flot = new TbFlot(this.ctx, this.chartType, $(this.flotElement.nativeElement)); + } } private configureLegend(): void { From 114419775391c974f8ab09b75c75c6c216ec154b Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 18 Oct 2023 15:14:16 +0300 Subject: [PATCH 069/117] UI: Add default data keys/latest data keys functions to widget type parameters. --- .../system/widget_types/battery_level.json | 2 +- .../system/widget_types/entities_table.json | 5 +- .../system/widget_types/progress_bar.json | 2 +- .../system/widget_types/signal_strength.json | 2 +- .../json/system/widget_types/simple_card.json | 5 +- .../simple_value_and_chart_card.json | 2 +- .../json/system/widget_types/state_chart.json | 5 +- .../widget_types/timeseries_bar_chart.json | 5 +- .../widget_types/timeseries_line_chart.json | 5 +- .../system/widget_types/timeseries_table.json | 5 +- .../widget_types/value_and_chart_card.json | 5 +- .../json/system/widget_types/value_card.json | 5 +- .../wind_speed_and_direction.json | 2 +- ...gated-value-card-basic-config.component.ts | 99 +++++++++++++++++-- .../progress-bar-basic-config.component.ts | 5 +- .../simple-card-basic-config.component.ts | 5 +- ...timeseries-table-basic-config.component.ts | 5 +- .../value-card-basic-config.component.ts | 5 +- ...value-chart-card-basic-config.component.ts | 14 +-- .../chart/flot-basic-config.component.ts | 5 +- .../entities-table-basic-config.component.ts | 4 +- .../battery-level-basic-config.component.ts | 5 +- .../signal-strength-basic-config.component.ts | 5 +- ...-speed-direction-basic-config.component.ts | 8 +- .../config/widget-config.component.models.ts | 29 +++++- .../lib/cards/aggregated-value-card.models.ts | 69 ------------- .../widget/widget-component.service.ts | 6 ++ ui-ngx/src/app/shared/models/widget.models.ts | 2 + 28 files changed, 188 insertions(+), 128 deletions(-) diff --git a/application/src/main/data/json/system/widget_types/battery_level.json b/application/src/main/data/json/system/widget_types/battery_level.json index 695a0dc525..1a9bdd1afd 100644 --- a/application/src/main/data/json/system/widget_types/battery_level.json +++ b/application/src/main/data/json/system/widget_types/battery_level.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.batteryLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.batteryLevelWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '200px',\n previewHeight: '200px',\n embedTitlePanel: true\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.batteryLevelWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.batteryLevelWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '200px',\n previewHeight: '200px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'batteryLevel', label: 'batteryLevel', type: 'timeseries' }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-battery-level-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/entities_table.json b/application/src/main/data/json/system/widget_types/entities_table.json index f7dbf57972..ec137f81cb 100644 --- a/application/src/main/data/json/system/widget_types/entities_table.json +++ b/application/src/main/data/json/system/widget_types/entities_table.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.entitiesTableWidget.onDataUpdated();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n hasDataPageLink: true,\n warnOnPageDataOverflow: false,\n dataKeysOptional: true\n };\n}\n\nself.actionSources = function() {\n return {\n 'actionCellButton': {\n name: 'widget-action.action-cell-button',\n multiple: true,\n hasShowCondition: true\n },\n 'rowClick': {\n name: 'widget-action.row-click',\n multiple: false\n },\n 'rowDoubleClick': {\n name: 'widget-action.row-double-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.entitiesTableWidget.onDataUpdated();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n hasDataPageLink: true,\n warnOnPageDataOverflow: false,\n dataKeysOptional: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'name', type: 'entityField' }];\n }\n };\n}\n\nself.actionSources = function() {\n return {\n 'actionCellButton': {\n name: 'widget-action.action-cell-button',\n multiple: true,\n hasShowCondition: true\n },\n 'rowClick': {\n name: 'widget-action.row-click',\n multiple: false\n },\n 'rowDoubleClick': {\n name: 'widget-action.row-double-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n}\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-entities-table-widget-settings", @@ -20,5 +20,6 @@ "basicModeDirective": "tb-entities-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\":{\"enableSearch\":true,\"enableSelectColumnDisplay\":true,\"enableStickyHeader\":true,\"enableStickyAction\":true,\"reserveSpaceForHiddenAction\":\"true\",\"displayEntityName\":false,\"displayEntityLabel\":false,\"displayEntityType\":false,\"displayPagination\":true,\"defaultPageSize\":10,\"defaultSortOrder\":\"name\",\"useRowStyleFunction\":false,\"entitiesTitle\":\"Entities\"},\"title\":\"Entities table\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400,\"padding\":\"5px 10px 5px 10px\"},\"useDashboardTimewindow\":false,\"showLegend\":false,\"datasources\":[{\"type\":\"function\",\"name\":\"Simulated\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Entity name\",\"color\":\"#2196f3\",\"settings\":{\"columnWidth\":\"0px\",\"useCellStyleFunction\":false,\"cellStyleFunction\":\"\",\"useCellContentFunction\":false,\"cellContentFunction\":\"\"},\"_hash\":0.472295003170325,\"funcBody\":\"return 'Simulated';\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Entity type\",\"color\":\"#607d8b\",\"settings\":{},\"_hash\":0.782057645776538,\"funcBody\":\"return 'Device';\",\"decimals\":null,\"aggregationType\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Sin\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.904797781901171,\"funcBody\":\"return Math.round(1000*Math.sin(time/5000));\",\"decimals\":0},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Cos\",\"color\":\"#f44336\",\"settings\":{},\"_hash\":0.1961430898042078,\"funcBody\":\"return Math.round(1000*Math.cos(time/5000));\",\"decimals\":0},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Random\",\"color\":\"#ffc107\",\"settings\":{},\"_hash\":0.7678057538205878,\"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;\",\"decimals\":2}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]}}],\"displayTimewindow\":false,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":false,\"titleIcon\":\"list\",\"iconColor\":null}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/progress_bar.json b/application/src/main/data/json/system/widget_types/progress_bar.json index df3dcf6268..cd22b4b73e 100644 --- a/application/src/main/data/json/system/widget_types/progress_bar.json +++ b/application/src/main/data/json/system/widget_types/progress_bar.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "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 };\n};\n\n\nself.onDestroy = function() {\n};\n", + "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: 'humidity', label: 'humidity', type: 'timeseries' }];\n }\n };\n};\n\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-progress-bar-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/signal_strength.json b/application/src/main/data/json/system/widget_types/signal_strength.json index 90c051c803..a24a00edd5 100644 --- a/application/src/main/data/json/system/widget_types/signal_strength.json +++ b/application/src/main/data/json/system/widget_types/signal_strength.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.signalStrengthWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.signalStrengthWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '200px',\n previewHeight: '200px',\n embedTitlePanel: true\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.signalStrengthWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.signalStrengthWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '200px',\n previewHeight: '200px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rssi', label: 'rssi', type: 'timeseries' }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-signal-strength-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/simple_card.json b/application/src/main/data/json/system/widget_types/simple_card.json index 063454ee6f..b43f4a12af 100644 --- a/application/src/main/data/json/system/widget_types/simple_card.json +++ b/application/src/main/data/json/system/widget_types/simple_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "", "templateCss": "#container {\n overflow: auto;\n}\n\n.tbDatasource-container {\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.tbDatasource-table {\n width: 100%;\n height: 100%;\n border-collapse: collapse;\n white-space: nowrap;\n font-weight: 100;\n text-align: right;\n}\n\n.tbDatasource-table td {\n padding: 12px;\n position: relative;\n box-sizing: border-box;\n}\n\n.tbDatasource-data-key {\n opacity: 0.7;\n font-weight: 400;\n font-size: 3.500rem;\n}\n\n.tbDatasource-value {\n font-size: 5.000rem;\n}", - "controllerScript": "self.onInit = function() {\n\n self.ctx.labelPosition = self.ctx.settings.labelPosition || 'left';\n \n if (self.ctx.datasources.length > 0) {\n var tbDatasource = self.ctx.datasources[0];\n var datasourceId = 'tbDatasource' + 0;\n self.ctx.$container.append(\n \"
\"\n );\n \n self.ctx.datasourceContainer = $('#' + datasourceId,\n self.ctx.$container);\n \n var tableId = 'table' + 0;\n self.ctx.datasourceContainer.append(\n \"
\"\n );\n var table = $('#' + tableId, self.ctx.$container);\n if (self.ctx.labelPosition === 'top') {\n table.css('text-align', 'left');\n }\n \n if (tbDatasource.dataKeys.length > 0) {\n var dataKey = tbDatasource.dataKeys[0];\n var labelCellId = 'labelCell' + 0;\n var cellId = 'cell' + 0;\n if (self.ctx.labelPosition === 'left') {\n table.append(\n \"\" +\n dataKey.label +\n \"\");\n } else {\n table.append(\n \"\" +\n dataKey.label +\n \"\");\n }\n self.ctx.labelCell = $('#' + labelCellId, table);\n self.ctx.valueCell = $('#' + cellId, table);\n self.ctx.valueCell.html(0 + ' ' + self.ctx.units);\n }\n }\n \n $.fn.textWidth = function(){\n var html_org = $(this).html();\n var html_calc = '' + html_org + '';\n $(this).html(html_calc);\n var width = $(this).find('span:first').width();\n $(this).html(html_org);\n return width;\n }; \n \n self.onResize();\n};\n\nself.onDataUpdated = function() {\n \n function isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n if (self.ctx.valueCell && self.ctx.data.length > 0) {\n var cellData = self.ctx.data[0];\n if (cellData.data.length > 0) {\n var tvPair = cellData.data[cellData.data.length -\n 1];\n var value = tvPair[1];\n var txtValue;\n if (isNumber(value)) {\n var decimals = self.ctx.decimals;\n var units = self.ctx.units;\n if (self.ctx.datasources.length > 0 && self.ctx.datasources[0].dataKeys.length > 0) {\n dataKey = self.ctx.datasources[0].dataKeys[0];\n if (dataKey.decimals || dataKey.decimals === 0) {\n decimals = dataKey.decimals;\n }\n if (dataKey.units) {\n units = dataKey.units;\n }\n }\n txtValue = self.ctx.utils.formatValue(value, decimals, units, true);\n } else {\n txtValue = value;\n }\n self.ctx.valueCell.html(txtValue);\n var targetWidth;\n var minDelta;\n if (self.ctx.labelPosition === 'left') {\n targetWidth = self.ctx.datasourceContainer.width() - self.ctx.labelCell.width();\n minDelta = self.ctx.width/16 + self.ctx.padding;\n } else {\n targetWidth = self.ctx.datasourceContainer.width();\n minDelta = self.ctx.padding;\n }\n var delta = targetWidth - self.ctx.valueCell.textWidth();\n var fontSize = self.ctx.valueFontSize;\n if (targetWidth > minDelta) {\n while (delta < minDelta && fontSize > 6) {\n fontSize--;\n self.ctx.valueCell.css('font-size', fontSize+'px');\n delta = targetWidth - self.ctx.valueCell.textWidth();\n }\n }\n }\n } \n \n};\n\nself.onResize = function() {\n var labelFontSize;\n if (self.ctx.labelPosition === 'top') {\n self.ctx.padding = self.ctx.height/20;\n labelFontSize = self.ctx.height/4;\n self.ctx.valueFontSize = self.ctx.height/2;\n } else {\n self.ctx.padding = self.ctx.width/50;\n labelFontSize = self.ctx.height/2.5;\n self.ctx.valueFontSize = self.ctx.height/2;\n if (self.ctx.width/self.ctx.height <= 2.7) {\n labelFontSize = self.ctx.width/7;\n self.ctx.valueFontSize = self.ctx.width/6;\n }\n }\n self.ctx.padding = Math.min(12, self.ctx.padding);\n \n if (self.ctx.labelCell) {\n self.ctx.labelCell.css('font-size', labelFontSize+'px');\n self.ctx.labelCell.css('padding', self.ctx.padding+'px');\n }\n if (self.ctx.valueCell) {\n self.ctx.valueCell.css('font-size', self.ctx.valueFontSize+'px');\n self.ctx.valueCell.css('padding', self.ctx.padding+'px');\n } \n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true\n };\n};\n\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n\n self.ctx.labelPosition = self.ctx.settings.labelPosition || 'left';\n \n if (self.ctx.datasources.length > 0) {\n var tbDatasource = self.ctx.datasources[0];\n var datasourceId = 'tbDatasource' + 0;\n self.ctx.$container.append(\n \"
\"\n );\n \n self.ctx.datasourceContainer = $('#' + datasourceId,\n self.ctx.$container);\n \n var tableId = 'table' + 0;\n self.ctx.datasourceContainer.append(\n \"
\"\n );\n var table = $('#' + tableId, self.ctx.$container);\n if (self.ctx.labelPosition === 'top') {\n table.css('text-align', 'left');\n }\n \n if (tbDatasource.dataKeys.length > 0) {\n var dataKey = tbDatasource.dataKeys[0];\n var labelCellId = 'labelCell' + 0;\n var cellId = 'cell' + 0;\n if (self.ctx.labelPosition === 'left') {\n table.append(\n \"\" +\n dataKey.label +\n \"\");\n } else {\n table.append(\n \"\" +\n dataKey.label +\n \"\");\n }\n self.ctx.labelCell = $('#' + labelCellId, table);\n self.ctx.valueCell = $('#' + cellId, table);\n self.ctx.valueCell.html(0 + ' ' + self.ctx.units);\n }\n }\n \n $.fn.textWidth = function(){\n var html_org = $(this).html();\n var html_calc = '' + html_org + '';\n $(this).html(html_calc);\n var width = $(this).find('span:first').width();\n $(this).html(html_org);\n return width;\n }; \n \n self.onResize();\n};\n\nself.onDataUpdated = function() {\n \n function isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n if (self.ctx.valueCell && self.ctx.data.length > 0) {\n var cellData = self.ctx.data[0];\n if (cellData.data.length > 0) {\n var tvPair = cellData.data[cellData.data.length -\n 1];\n var value = tvPair[1];\n var txtValue;\n if (isNumber(value)) {\n var decimals = self.ctx.decimals;\n var units = self.ctx.units;\n if (self.ctx.datasources.length > 0 && self.ctx.datasources[0].dataKeys.length > 0) {\n dataKey = self.ctx.datasources[0].dataKeys[0];\n if (dataKey.decimals || dataKey.decimals === 0) {\n decimals = dataKey.decimals;\n }\n if (dataKey.units) {\n units = dataKey.units;\n }\n }\n txtValue = self.ctx.utils.formatValue(value, decimals, units, true);\n } else {\n txtValue = value;\n }\n self.ctx.valueCell.html(txtValue);\n var targetWidth;\n var minDelta;\n if (self.ctx.labelPosition === 'left') {\n targetWidth = self.ctx.datasourceContainer.width() - self.ctx.labelCell.width();\n minDelta = self.ctx.width/16 + self.ctx.padding;\n } else {\n targetWidth = self.ctx.datasourceContainer.width();\n minDelta = self.ctx.padding;\n }\n var delta = targetWidth - self.ctx.valueCell.textWidth();\n var fontSize = self.ctx.valueFontSize;\n if (targetWidth > minDelta) {\n while (delta < minDelta && fontSize > 6) {\n fontSize--;\n self.ctx.valueCell.css('font-size', fontSize+'px');\n delta = targetWidth - self.ctx.valueCell.textWidth();\n }\n }\n }\n } \n \n};\n\nself.onResize = function() {\n var labelFontSize;\n if (self.ctx.labelPosition === 'top') {\n self.ctx.padding = self.ctx.height/20;\n labelFontSize = self.ctx.height/4;\n self.ctx.valueFontSize = self.ctx.height/2;\n } else {\n self.ctx.padding = self.ctx.width/50;\n labelFontSize = self.ctx.height/2.5;\n self.ctx.valueFontSize = self.ctx.height/2;\n if (self.ctx.width/self.ctx.height <= 2.7) {\n labelFontSize = self.ctx.width/7;\n self.ctx.valueFontSize = self.ctx.width/6;\n }\n }\n self.ctx.padding = Math.min(12, self.ctx.padding);\n \n if (self.ctx.labelCell) {\n self.ctx.labelCell.css('font-size', labelFontSize+'px');\n self.ctx.labelCell.css('padding', self.ctx.padding+'px');\n }\n if (self.ctx.valueCell) {\n self.ctx.valueCell.css('font-size', self.ctx.valueFontSize+'px');\n self.ctx.valueCell.css('padding', self.ctx.padding+'px');\n } \n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries' }];\n }\n };\n};\n\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-simple-card-widget-settings", @@ -19,5 +19,6 @@ "basicModeDirective": "tb-simple-card-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"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\":\"#ff5722\",\"color\":\"rgba(255, 255, 255, 0.87)\",\"padding\":\"16px\",\"settings\":{\"labelPosition\":\"top\"},\"title\":\"Simple card\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"°C\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"configMode\":\"basic\",\"displayTimewindow\":true}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json b/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json index 7fa97f4a52..e19ff918be 100644 --- a/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_value_and_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(63, 82, 221, 1)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/state_chart.json b/application/src/main/data/json/system/widget_types/state_chart.json index 2b04282d17..25a3130d48 100644 --- a/application/src/main/data/json/system/widget_types/state_chart.json +++ b/application/src/main/data/json/system/widget_types/state_chart.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.flotWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.flotWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.flotWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.flotWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.flotWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n stateData: true,\n hasAdditionalLatestDataKeys: true\n };\n}\n\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.flotWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.flotWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.flotWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.flotWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.flotWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n stateData: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries', units: '°C', decimals: 0 }];\n }\n };\n}\n\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "settingsDirective": "tb-flot-line-widget-settings", @@ -21,5 +21,6 @@ "basicModeDirective": "tb-flot-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Switch 1\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false,\"axisPosition\":\"left\",\"showSeparateAxis\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"return Math.random() > 0.5 ? 1 : 0;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Switch 2\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":true,\"fillLines\":false,\"showPoints\":false,\"axisPosition\":\"left\"},\"_hash\":0.12775350966079668,\"funcBody\":\"return Math.random() <= 0.5 ? 1 : 0;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"tooltipValueFormatter\":\"if (value > 0 && value <= 1) {\\n return 'On';\\n} else if (value === 0) {\\n return 'Off';\\n} else {\\n return '';\\n}\",\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":0,\"max\":1.2,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"if (value > 0 && value <= 1) {\\n return 'On';\\n} else if (value === 0) {\\n return 'Off';\\n} else {\\n return '';\\n}\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"timeForComparison\":\"previousInterval\",\"comparisonCustomIntervalValue\":7200000,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"right\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":false,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"dataKeysListForLabels\":[]},\"title\":\"State Chart\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"widgetStyle\":{},\"useDashboardTimewindow\":true,\"showLegend\":true,\"actions\":{},\"legendConfig\":{\"direction\":\"column\",\",position\":\"bottom\",\"showMin\":false,\"showMax\":false,\"showAvg\":false,\"showTotal\":false},\"configMode\":\"basic\",\"showTitleIcon\":false,\"titleIcon\":\"waterfall_chart\",\"iconColor\":\"#1F6BDD\"}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json b/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json index baf662a9de..ff9c7971f0 100644 --- a/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json +++ b/application/src/main/data/json/system/widget_types/timeseries_bar_chart.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.flotWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.flotWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.flotWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.flotWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.flotWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n hasAdditionalLatestDataKeys: true\n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.flotWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.flotWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.flotWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.flotWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.flotWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries', units: '°C', decimals: 0 }];\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "settingsDirective": "tb-flot-bar-widget-settings", @@ -21,5 +21,6 @@ "basicModeDirective": "tb-flot-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"First\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":false,\"fillLines\":false,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Second\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":false,\"fillLines\":false,\"showPoints\":false},\"_hash\":0.12775350966079668,\"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 > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000},\"aggregation\":{\"limit\":200,\"type\":\"AVG\"}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"stack\":true,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"defaultBarWidth\":600,\"barAlignment\":\"left\",\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false},\"title\":\"Timeseries Bar Chart\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"widgetStyle\":{},\"useDashboardTimewindow\":true,\"showLegend\":true,\"actions\":{},\"configMode\":\"basic\",\"showTitleIcon\":false,\"titleIcon\":\"thermostat\",\"iconColor\":\"#1F6BDD\"}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/timeseries_line_chart.json b/application/src/main/data/json/system/widget_types/timeseries_line_chart.json index 27d2b8881e..e83b213ae0 100644 --- a/application/src/main/data/json/system/widget_types/timeseries_line_chart.json +++ b/application/src/main/data/json/system/widget_types/timeseries_line_chart.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.flotWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.flotWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.flotWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.flotWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.flotWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n hasAdditionalLatestDataKeys: true\n };\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.flotWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.flotWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.flotWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.flotWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.flotWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries', units: '°C', decimals: 0 }];\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", @@ -22,5 +22,6 @@ "basicModeDirective": "tb-flot-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"First\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -1000) {\\n\\tvalue = -1000;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Second\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":true,\"fillLines\":false,\"showPoints\":false},\"_hash\":0.12775350966079668,\"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\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false},\"title\":\"Timeseries Line Chart\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":false,\"titleIcon\":\"thermostat\",\"iconColor\":\"#1F6BDD\"}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/timeseries_table.json b/application/src/main/data/json/system/widget_types/timeseries_table.json index b16672a942..d267d42763 100644 --- a/application/src/main/data/json/system/widget_types/timeseries_table.json +++ b/application/src/main/data/json/system/widget_types/timeseries_table.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.timeseriesTableWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.timeseriesTableWidget.onLatestDataUpdated();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n hasAdditionalLatestDataKeys: true\n };\n}\n\nself.actionSources = function() {\n return {\n 'actionCellButton': {\n name: 'widget-action.action-cell-button',\n multiple: true,\n hasShowCondition: true\n },\n 'rowClick': {\n name: 'widget-action.row-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n}\n", + "controllerScript": "self.onInit = function() {\n}\n\nself.onDataUpdated = function() {\n self.ctx.$scope.timeseriesTableWidget.onDataUpdated();\n}\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.timeseriesTableWidget.onLatestDataUpdated();\n}\n\nself.typeParameters = function() {\n return {\n ignoreDataUpdateOnIntervalTick: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: 'Temperature', type: 'timeseries', units: '°C', decimals: 0 }];\n }\n };\n}\n\nself.actionSources = function() {\n return {\n 'actionCellButton': {\n name: 'widget-action.action-cell-button',\n multiple: true,\n hasShowCondition: true\n },\n 'rowClick': {\n name: 'widget-action.row-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n}\n", "settingsSchema": "", "dataKeySettingsSchema": "", "latestDataKeySettingsSchema": "", @@ -22,5 +22,6 @@ "basicModeDirective": "tb-timeseries-table-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"entityAliasId\":null,\"filterId\":null,\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature °C\",\"color\":\"#2196f3\",\"settings\":{\"useCellStyleFunction\":true,\"cellStyleFunction\":\"if (value) {\\n var percent = (value + 60)/120 * 100;\\n var color = tinycolor.mix('blue', 'red', percent);\\n color.setAlpha(.5);\\n return {\\n paddingLeft: '20px',\\n color: '#ffffff',\\n background: color.toRgbString(),\\n fontSize: '18px'\\n };\\n} else {\\n return {};\\n}\",\"useCellContentFunction\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nvar multiplier = Math.pow(10, 1 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity, %\",\"color\":\"#ffc107\",\"settings\":{\"useCellStyleFunction\":true,\"cellStyleFunction\":\"if (value) {\\n var percent = value;\\n var backgroundColor = tinycolor('blue');\\n backgroundColor.setAlpha(value/100);\\n var color = 'blue';\\n if (value > 50) {\\n color = 'white';\\n }\\n \\n return {\\n paddingLeft: '20px',\\n color: color,\\n background: backgroundColor.toRgbString(),\\n fontSize: '18px'\\n };\\n} else {\\n return {};\\n}\",\"useCellContentFunction\":false},\"_hash\":0.12775350966079668,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nvar multiplier = Math.pow(10, 1 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\"}],\"latestDataKeys\":null}],\"timewindow\":{\"realtime\":{\"interval\":1000,\"timewindowMs\":60000},\"aggregation\":{\"type\":\"NONE\",\"limit\":200}},\"showTitle\":true,\"backgroundColor\":\"rgb(255, 255, 255)\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"showTimestamp\":true,\"displayPagination\":true,\"defaultPageSize\":10},\"title\":\"Timeseries table\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400,\"padding\":\"5px 10px 5px 10px\"},\"useDashboardTimewindow\":false,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{},\"showTitleIcon\":false,\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"displayTimewindow\":true,\"configMode\":\"basic\"}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/value_and_chart_card.json b/application/src/main/data/json/system/widget_types/value_and_chart_card.json index 3efb2c3b44..aa8e6b31ee 100644 --- a/application/src/main/data/json/system/widget_types/value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/value_and_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'watermeter', label: 'Watermeter', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys('watermeter', 'm³');\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", @@ -22,5 +22,6 @@ "basicModeDirective": "tb-aggregated-value-card-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"watermeter\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 80) {\\n\\tvalue = 80;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 80) {\\n\\tvalue = 80;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 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;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Value and chart card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"water_drop\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, - "externalId": null + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/value_card.json b/application/src/main/data/json/system/widget_types/value_card.json index c2fb6dd274..eb676a517f 100644 --- a/application/src/main/data/json/system/widget_types/value_card.json +++ b/application/src/main/data/json/system/widget_types/value_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'Temperature', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", @@ -19,5 +19,6 @@ "basicModeDirective": "tb-value-card-basic-config", "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"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\":{\"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\":\"constant\",\"color\":\"#5469FF\",\"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\":\"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';\"},\"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}}},\"title\":\"Value 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 + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json index 1c4f7ecb7c..dff8b3cacc 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'winddirection', label: 'windDirection', type: 'timeseries' },\n { name: 'windspeed', label: 'centerValue', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-wind-speed-direction-widget-settings", diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts index 90a020cac8..ad88ee79a0 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts @@ -20,7 +20,7 @@ import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; -import { DataKey, Datasource, WidgetConfig, } from '@shared/models/widget.models'; +import { ComparisonResultType, DataKey, Datasource, WidgetConfig, } from '@shared/models/widget.models'; import { WidgetConfigComponent } from '@home/components/widget/widget-config.component'; import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; import { @@ -29,15 +29,19 @@ import { } from '@home/components/widget/config/timewindow-config-panel.component'; import { isUndefined } from '@core/utils'; import { + ColorType, + constantColor, cssSizeToStrSize, DateFormatProcessor, - DateFormatSettings, getDataKey, + DateFormatSettings, + getDataKey, resolveCssSize } from '@shared/models/widget-settings.models'; import { aggregatedValueCardDefaultSettings, - AggregatedValueCardWidgetSettings, - createDefaultAggregatedValueLatestDataKeys + AggregatedValueCardKeyPosition, + AggregatedValueCardKeySettings, + AggregatedValueCardWidgetSettings } from '@home/components/widget/lib/cards/aggregated-value-card.models'; import { AggregationType, @@ -89,11 +93,7 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo } protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [ - { name: 'watermeter', label: 'Watermeter', type: DataKeyType.timeseries, color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 } - ], - createDefaultAggregatedValueLatestDataKeys('watermeter', 'm³') - ); + super.setupDefaults(configData); configData.config.useDashboardTimewindow = false; configData.config.displayTimewindow = true; configData.config.timewindow = { @@ -110,6 +110,87 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo }; } + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [ + { name: 'watermeter', label: 'Watermeter', type: DataKeyType.timeseries, color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 } + ]; + } + + protected defaultLatestDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return this.createDefaultAggregatedValueLatestDataKeys('watermeter', 'm³'); + } + + createDefaultAggregatedValueLatestDataKeys(keyName: string, units): DataKey[] { + return [ + { + name: keyName, label: 'Latest', type: DataKeyType.timeseries, units, decimals: 0, + aggregationType: AggregationType.NONE, + settings: { + position: AggregatedValueCardKeyPosition.center, + font: { + family: 'Roboto', + size: 52, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '1' + }, + color: constantColor('rgba(0, 0, 0, 0.87)'), + showArrow: false + } as AggregatedValueCardKeySettings + }, + { + name: keyName, label: 'Delta percent', type: DataKeyType.timeseries, units: '%', decimals: 0, + aggregationType: AggregationType.AVG, + comparisonEnabled: true, + timeForComparison: 'previousInterval', + comparisonResultType: ComparisonResultType.DELTA_PERCENT, + settings: { + position: AggregatedValueCardKeyPosition.rightTop, + font: { + family: 'Roboto', + size: 14, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '1' + }, + color: { + color: 'rgba(0, 0, 0, 0.87)', + type: ColorType.range, + rangeList: [ + {to: 0, color: '#198038'}, + {from: 0, to: 0, color: 'rgba(0, 0, 0, 0.87)'}, + {from: 0, color: '#D12730'} + ], + colorFunction: '' + }, + showArrow: true + } as AggregatedValueCardKeySettings + }, + { + name: keyName, label: 'Delta absolute', type: DataKeyType.timeseries, units, decimals: 1, + aggregationType: AggregationType.AVG, + comparisonEnabled: true, + timeForComparison: 'previousInterval', + comparisonResultType: ComparisonResultType.DELTA_ABSOLUTE, + settings: { + position: AggregatedValueCardKeyPosition.rightBottom, + font: { + family: 'Roboto', + size: 11, + sizeUnit: 'px', + style: 'normal', + weight: '400', + lineHeight: '1' + }, + color: constantColor('rgba(0, 0, 0, 0.38)'), + showArrow: false + } as AggregatedValueCardKeySettings + } + ]; + } + protected onConfigSet(configData: WidgetConfigComponentData) { const settings: AggregatedValueCardWidgetSettings = {...aggregatedValueCardDefaultSettings, ...(configData.config.settings || {})}; const dataKey = getDataKey(configData.config.datasources); diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts index ef54d64861..7a2a1d7291 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/progress-bar-basic-config.component.ts @@ -21,6 +21,7 @@ import { AppState } from '@core/core.state'; import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; import { + DataKey, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, WidgetConfig, @@ -80,8 +81,8 @@ export class ProgressBarBasicConfigComponent extends BasicWidgetConfigComponent return this.progressBarWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'humidity', label: 'humidity', type: DataKeyType.timeseries }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'humidity', label: 'humidity', type: DataKeyType.timeseries }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/simple-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/simple-card-basic-config.component.ts index 9b2a6a764b..55f56466af 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/simple-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/simple-card-basic-config.component.ts @@ -21,6 +21,7 @@ import { AppState } from '@core/core.state'; import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; import { + DataKey, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, WidgetConfig, @@ -63,8 +64,8 @@ export class SimpleCardBasicConfigComponent extends BasicWidgetConfigComponent { return this.simpleCardWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/timeseries-table-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/timeseries-table-basic-config.component.ts index dc2a41b816..b99c005da0 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/timeseries-table-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/timeseries-table-basic-config.component.ts @@ -57,9 +57,8 @@ export class TimeseriesTableBasicConfigComponent extends BasicWidgetConfigCompon return this.timeseriesTableWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, - [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, units: '°C', decimals: 0 }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, units: '°C', decimals: 0 }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-card-basic-config.component.ts index 629fce4081..19eeb2e301 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-card-basic-config.component.ts @@ -21,6 +21,7 @@ import { AppState } from '@core/core.state'; import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; import { + DataKey, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, WidgetConfig, @@ -106,8 +107,8 @@ export class ValueCardBasicConfigComponent extends BasicWidgetConfigComponent { super.setupConfig(widgetConfig); } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts index f2c3a853a0..8980a3ced4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/value-chart-card-basic-config.component.ts @@ -72,12 +72,14 @@ export class ValueChartCardBasicConfigComponent extends BasicWidgetConfigCompone return this.valueChartCardWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [ - { name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, color: 'rgba(63, 82, 221, 1)'} - ], - [{ name: 'temperature', label: 'Latest', type: DataKeyType.timeseries}] - ); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [ + { name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, color: 'rgba(63, 82, 221, 1)'} + ]; + } + + protected defaultLatestDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'temperature', label: 'Latest', type: DataKeyType.timeseries}]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/flot-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/flot-basic-config.component.ts index 050d362868..2b2618e25f 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/flot-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/chart/flot-basic-config.component.ts @@ -57,9 +57,8 @@ export class FlotBasicConfigComponent extends BasicWidgetConfigComponent { return this.flotWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, - [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, units: '°C', decimals: 0 }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'temperature', label: 'Temperature', type: DataKeyType.timeseries, units: '°C', decimals: 0 }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/entity/entities-table-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/entity/entities-table-basic-config.component.ts index 228879e2ef..416c5ba404 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/entity/entities-table-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/entity/entities-table-basic-config.component.ts @@ -72,8 +72,8 @@ export class EntitiesTableBasicConfigComponent extends BasicWidgetConfigComponen return this.entitiesTableWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'name', type: DataKeyType.entityField }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'name', type: DataKeyType.entityField }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts index bb6af9d5ad..5ad6ca4fb4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/battery-level-basic-config.component.ts @@ -21,6 +21,7 @@ import { AppState } from '@core/core.state'; import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; import { + DataKey, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, WidgetConfig, @@ -83,8 +84,8 @@ export class BatteryLevelBasicConfigComponent extends BasicWidgetConfigComponent return this.batteryLevelWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'batteryLevel', label: 'batteryLevel', type: DataKeyType.timeseries }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'batteryLevel', label: 'batteryLevel', type: DataKeyType.timeseries }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/signal-strength-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/signal-strength-basic-config.component.ts index 9dd0325b75..86fe727447 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/signal-strength-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/indicator/signal-strength-basic-config.component.ts @@ -21,6 +21,7 @@ import { AppState } from '@core/core.state'; import { BasicWidgetConfigComponent } from '@home/components/widget/config/widget-config.component.models'; import { WidgetConfigComponentData } from '@home/models/widget-component.models'; import { + DataKey, datasourcesHasAggregation, datasourcesHasOnlyComparisonAggregation, WidgetConfig, @@ -85,8 +86,8 @@ export class SignalStrengthBasicConfigComponent extends BasicWidgetConfigCompone return this.signalStrengthWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'rssi', label: 'rssi', type: DataKeyType.timeseries }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'rssi', label: 'rssi', type: DataKeyType.timeseries }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts index 8435170ed3..45344aba84 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts @@ -107,10 +107,10 @@ export class WindSpeedDirectionBasicConfigComponent extends BasicWidgetConfigCom return this.windSpeedDirectionWidgetConfigForm; } - protected setupDefaults(configData: WidgetConfigComponentData) { - this.setupDefaultDatasource(configData, [{ name: 'winddirection', label: windDirectionLabel, type: DataKeyType.timeseries }, - { name: 'windspeed', label: centerValueLabel, type: DataKeyType.timeseries, - units: 'm/s', decimals: 1 }]); + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return [{ name: 'winddirection', label: windDirectionLabel, type: DataKeyType.timeseries }, + { name: 'windspeed', label: centerValueLabel, type: DataKeyType.timeseries, + units: 'm/s', decimals: 1 }]; } protected onConfigSet(configData: WidgetConfigComponentData) { diff --git a/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts b/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts index 75112d7cfa..cfa0cedbee 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/widget-config.component.models.ts @@ -97,7 +97,34 @@ export abstract class BasicWidgetConfigComponent extends PageComponent implement }); } - protected setupDefaults(configData: WidgetConfigComponentData) {} + protected setupDefaults(configData: WidgetConfigComponentData) { + const params = configData.typeParameters; + let dataKeys: DataKey[]; + let latestDataKeys: DataKey[]; + if (params.defaultDataKeysFunction) { + dataKeys = params.defaultDataKeysFunction(this, configData); + } + if (params.defaultLatestDataKeysFunction) { + latestDataKeys = params.defaultLatestDataKeysFunction(this, configData); + } + if (!dataKeys) { + dataKeys = this.defaultDataKeys(configData); + } + if (!latestDataKeys) { + latestDataKeys = this.defaultLatestDataKeys(configData); + } + if (dataKeys || latestDataKeys) { + this.setupDefaultDatasource(configData, dataKeys, latestDataKeys); + } + } + + protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return null; + } + + protected defaultLatestDataKeys(configData: WidgetConfigComponentData): DataKey[] { + return null; + } protected updateValidators(emitEvent: boolean, trigger?: string) { } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts index c27fe9df96..b199aaa9c6 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts @@ -161,72 +161,3 @@ export const aggregatedValueCardDefaultKeySettings: AggregatedValueCardKeySettin color: constantColor('rgba(0, 0, 0, 0.87)'), showArrow: false }; - -export const createDefaultAggregatedValueLatestDataKeys = (keyName: string, units): DataKey[] => [ - { - name: keyName, label: 'Latest', type: DataKeyType.timeseries, units, decimals: 0, - aggregationType: AggregationType.NONE, - settings: { - position: AggregatedValueCardKeyPosition.center, - font: { - family: 'Roboto', - size: 52, - sizeUnit: 'px', - style: 'normal', - weight: '500', - lineHeight: '1' - }, - color: constantColor('rgba(0, 0, 0, 0.87)'), - showArrow: false - } as AggregatedValueCardKeySettings - }, - { - name: keyName, label: 'Delta percent', type: DataKeyType.timeseries, units: '%', decimals: 0, - aggregationType: AggregationType.AVG, - comparisonEnabled: true, - timeForComparison: 'previousInterval', - comparisonResultType: ComparisonResultType.DELTA_PERCENT, - settings: { - position: AggregatedValueCardKeyPosition.rightTop, - font: { - family: 'Roboto', - size: 14, - sizeUnit: 'px', - style: 'normal', - weight: '500', - lineHeight: '1' - }, - color: { - color: 'rgba(0, 0, 0, 0.87)', - type: ColorType.range, - rangeList: [ - {to: 0, color: '#198038'}, - {from: 0, to: 0, color: 'rgba(0, 0, 0, 0.87)'}, - {from: 0, color: '#D12730'} - ], - colorFunction: '' - }, - showArrow: true - } as AggregatedValueCardKeySettings - }, - { - name: keyName, label: 'Delta absolute', type: DataKeyType.timeseries, units, decimals: 1, - aggregationType: AggregationType.AVG, - comparisonEnabled: true, - timeForComparison: 'previousInterval', - comparisonResultType: ComparisonResultType.DELTA_ABSOLUTE, - settings: { - position: AggregatedValueCardKeyPosition.rightBottom, - font: { - family: 'Roboto', - size: 11, - sizeUnit: 'px', - style: 'normal', - weight: '400', - lineHeight: '1' - }, - color: constantColor('rgba(0, 0, 0, 0.38)'), - showArrow: false - } as AggregatedValueCardKeySettings - } - ]; diff --git a/ui-ngx/src/app/modules/home/components/widget/widget-component.service.ts b/ui-ngx/src/app/modules/home/components/widget/widget-component.service.ts index f8023008f1..313993167d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/widget-component.service.ts +++ b/ui-ngx/src/app/modules/home/components/widget/widget-component.service.ts @@ -552,6 +552,12 @@ export class WidgetComponentService { if (isUndefined(result.typeParameters.hideDataSettings)) { result.typeParameters.hideDataSettings = false; } + if (!isFunction(result.typeParameters.defaultDataKeysFunction)) { + result.typeParameters.defaultDataKeysFunction = null; + } + if (!isFunction(result.typeParameters.defaultLatestDataKeysFunction)) { + result.typeParameters.defaultLatestDataKeysFunction = null; + } if (isFunction(widgetTypeInstance.actionSources)) { result.actionSources = widgetTypeInstance.actionSources(); } else { diff --git a/ui-ngx/src/app/shared/models/widget.models.ts b/ui-ngx/src/app/shared/models/widget.models.ts index d10bbc433d..fd99eb37ee 100644 --- a/ui-ngx/src/app/shared/models/widget.models.ts +++ b/ui-ngx/src/app/shared/models/widget.models.ts @@ -180,6 +180,8 @@ export interface WidgetTypeParameters { previewHeight?: string; embedTitlePanel?: boolean; hideDataSettings?: boolean; + defaultDataKeysFunction?: (configComponent: any, configData: any) => DataKey[]; + defaultLatestDataKeysFunction?: (configComponent: any, configData: any) => DataKey[]; } export interface WidgetControllerDescriptor { From 9b5bea618c6b3b9fa7e4efe9d074b991342f944a Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Wed, 18 Oct 2023 17:04:42 +0300 Subject: [PATCH 070/117] UI: Rename widget type to widget --- .../import-export/import-export.service.ts | 6 +-- .../save-widget-type-as-dialog.component.html | 4 +- .../pages/widget/widget-type.component.html | 6 +-- .../widget-types-table-config.resolver.ts | 22 ++++----- .../widgets-bundle-widgets.component.html | 4 +- .../app/shared/models/entity-type.models.ts | 14 +++--- .../assets/locale/locale.constant-ca_ES.json | 4 -- .../assets/locale/locale.constant-cs_CZ.json | 4 -- .../assets/locale/locale.constant-da_DK.json | 4 -- .../assets/locale/locale.constant-de_DE.json | 4 -- .../assets/locale/locale.constant-el_GR.json | 4 -- .../assets/locale/locale.constant-en_US.json | 46 ++++++++----------- .../assets/locale/locale.constant-es_ES.json | 30 +++++------- .../assets/locale/locale.constant-fa_IR.json | 4 -- .../assets/locale/locale.constant-fr_FR.json | 4 -- .../assets/locale/locale.constant-it_IT.json | 4 -- .../assets/locale/locale.constant-ja_JP.json | 4 -- .../assets/locale/locale.constant-ka_GE.json | 4 -- .../assets/locale/locale.constant-ko_KR.json | 4 -- .../assets/locale/locale.constant-lv_LV.json | 4 -- .../assets/locale/locale.constant-pt_BR.json | 4 -- .../assets/locale/locale.constant-ro_RO.json | 4 -- .../assets/locale/locale.constant-ru_RU.json | 4 -- .../assets/locale/locale.constant-sl_SI.json | 4 -- .../assets/locale/locale.constant-tr_TR.json | 4 -- .../assets/locale/locale.constant-uk_UA.json | 4 -- .../assets/locale/locale.constant-zh_CN.json | 4 -- .../assets/locale/locale.constant-zh_TW.json | 4 -- 28 files changed, 58 insertions(+), 154 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts index e91375e75e..f279972101 100644 --- a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts +++ b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts @@ -298,13 +298,13 @@ export class ImportExportService { } public importWidgetType(): Observable { - return this.openImportDialog('widget-type.import', 'widget-type.widget-type-file').pipe( + return this.openImportDialog('widget.import', 'widget-type.widget-file').pipe( mergeMap((widgetTypeDetails: WidgetTypeDetails) => { if (!this.validateImportedWidgetTypeDetails(widgetTypeDetails)) { this.store.dispatch(new ActionNotificationShow( - {message: this.translate.instant('widget-type.invalid-widget-type-file-error'), + {message: this.translate.instant('widget-type.invalid-widget-file-error'), type: 'error'})); - throw new Error('Invalid widget type file'); + throw new Error('Invalid widget file'); } else { return this.widgetService.saveImportedWidgetTypeDetails(widgetTypeDetails); } diff --git a/ui-ngx/src/app/modules/home/pages/widget/save-widget-type-as-dialog.component.html b/ui-ngx/src/app/modules/home/pages/widget/save-widget-type-as-dialog.component.html index 2ce7acd7e1..7588d1d8f5 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/save-widget-type-as-dialog.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/save-widget-type-as-dialog.component.html @@ -17,7 +17,7 @@ --> -

widget.save-widget-type-as

+

widget.save-widget-as

- widget.save-widget-type-as-text + widget.save-widget-as-text widget.title diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html index 19309e8660..9db9780b70 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-type.component.html @@ -20,19 +20,19 @@ [disabled]="(isLoading$ | async)" (click)="onEntityAction($event, 'edit')" [fxShow]="!isEdit"> - {{'widget.edit-widget-type' | translate }} + {{ 'widget.edit' | translate }}
diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-types-table-config.resolver.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-types-table-config.resolver.ts index 8fcf76f1fe..0363aa6117 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-types-table-config.resolver.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-types-table-config.resolver.ts @@ -87,13 +87,13 @@ export class WidgetTypesTableConfigResolver implements Resolve true, onAction: ($event) => this.addWidgetType($event) }, { - name: this.translate.instant('widget-type.import'), + name: this.translate.instant('widget.import'), icon: 'file_upload', isEnabled: () => true, onAction: ($event) => this.importWidgetType($event) @@ -102,13 +102,13 @@ export class WidgetTypesTableConfigResolver implements Resolve true, onAction: ($event, entity) => this.exportWidgetType($event, entity) }, { - name: this.translate.instant('widget.widget-type-details'), + name: this.translate.instant('widget.widget-details'), icon: 'edit', isEnabled: () => true, onAction: ($event, entity) => this.config.toggleEntityDetails($event, entity) @@ -117,18 +117,18 @@ export class WidgetTypesTableConfigResolver implements Resolve this.exportWidgetTypes($event, entities) } ); - this.config.deleteEntityTitle = widgetType => this.translate.instant('widget.delete-widget-type-title', - { widgetTypeName: widgetType.name }); - this.config.deleteEntityContent = () => this.translate.instant('widget.delete-widget-type-text'); - this.config.deleteEntitiesTitle = count => this.translate.instant('widget.delete-widget-types-title', {count}); - this.config.deleteEntitiesContent = () => this.translate.instant('widget.delete-widget-types-text'); + this.config.deleteEntityTitle = widgetType => this.translate.instant('widget.delete-widget-title', + { widgetName: widgetType.name }); + this.config.deleteEntityContent = () => this.translate.instant('widget.delete-widget-text'); + this.config.deleteEntitiesTitle = count => this.translate.instant('widget.delete-widgets-title', {count}); + this.config.deleteEntitiesContent = () => this.translate.instant('widget.delete-widgets-text'); this.config.loadEntity = id => this.widgetsService.getWidgetTypeById(id.id); @@ -147,7 +147,7 @@ export class WidgetTypesTableConfigResolver implements Resolve { - this.config.tableTitle = this.translate.instant('widget.widget-types'); + this.config.tableTitle = this.translate.instant('widget.widgets'); const authUser = getCurrentAuthUser(this.store); this.config.deleteEnabled = (widgetType) => this.isWidgetTypeEditable(widgetType, authUser.authority); this.config.entitySelectionEnabled = (widgetType) => this.isWidgetTypeEditable(widgetType, authUser.authority); diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html index 2d95fd1fdb..bf1818faf1 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html @@ -54,14 +54,14 @@ diff --git a/ui-ngx/src/app/shared/models/entity-type.models.ts b/ui-ngx/src/app/shared/models/entity-type.models.ts index d7858965d7..5c9390f80f 100644 --- a/ui-ngx/src/app/shared/models/entity-type.models.ts +++ b/ui-ngx/src/app/shared/models/entity-type.models.ts @@ -271,14 +271,14 @@ export const entityTypeTranslations = new Map Le type de widget associé a probablement été supprimé.", "no-data": "Aucune donnée à afficher sur le widget" }, diff --git a/ui-ngx/src/assets/locale/locale.constant-it_IT.json b/ui-ngx/src/assets/locale/locale.constant-it_IT.json index 24555cc332..f2e1ffa240 100644 --- a/ui-ngx/src/assets/locale/locale.constant-it_IT.json +++ b/ui-ngx/src/assets/locale/locale.constant-it_IT.json @@ -1488,11 +1488,7 @@ "settings-schema": "Impostazioni schema", "datakey-settings-schema": "Impostazioni Data key schema", "javascript": "Javascript", - "remove-widget-type-title": "Sei sicuro di voler rimuovere il tipo di widget '{{widgetName}}'?", - "remove-widget-type-text": "Dopo la conferma il tipo di widget e tutti i suoi dati non saranno più recuperabili.", - "remove-widget-type": "Rimuovi tipo widget", "add-widget-type": "Aggiungi nuovo tipo widget", - "widget-type-load-failed-error": "Caricamento tipo widget fallito!", "widget-template-load-failed-error": "Caricamento template widget fallito!", "add": "Aggiungi Widget", "undo": "Annulla modifiche widget", diff --git a/ui-ngx/src/assets/locale/locale.constant-ja_JP.json b/ui-ngx/src/assets/locale/locale.constant-ja_JP.json index 875b0a8266..c65928e452 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ja_JP.json +++ b/ui-ngx/src/assets/locale/locale.constant-ja_JP.json @@ -1331,11 +1331,7 @@ "settings-schema": "設定スキーマ", "datakey-settings-schema": "データキー設定のスキーマ", "javascript": "Javascript", - "remove-widget-type-title": "'{{widgetName}}'?", - "remove-widget-type-text": "確認後、ウィジェットのタイプと関連するすべてのデータは回復不能になります。", - "remove-widget-type": "ウィジェットタイプを削除", "add-widget-type": "新しいウィジェットタイプを追加する", - "widget-type-load-failed-error": "ウィジェットタイプの読み込みに失敗しました!", "widget-template-load-failed-error": "ウィジェットテンプレートを読み込めませんでした!", "add": "ウィジェットを追加", "undo": "ウィジェットの変更を元に戻す", diff --git a/ui-ngx/src/assets/locale/locale.constant-ka_GE.json b/ui-ngx/src/assets/locale/locale.constant-ka_GE.json index b401c3b594..28458f0a70 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ka_GE.json +++ b/ui-ngx/src/assets/locale/locale.constant-ka_GE.json @@ -1578,11 +1578,7 @@ "datakey-settings-schema": "მონაცემტა გასაღები პარამეტრების სქემა", "javascript": "javascript", "js": "JS", - "remove-widget-type-title": "დარწმუნებული ხართ რომ გსურთ ვიჯეტის ტიპი '{{widgetName}}'?", - "remove-widget-type-text": "დასტურის შემთხვევაში ვიჯეტი და მასთან ასოცირებული მონაცემები დაიკარგება.", - "remove-widget-type": "ვიჯეტის ტიპის ამოღება", "add-widget-type": "ახალი ვიჯეტის ტიპი", - "widget-type-load-failed-error": "ვიჯეტის ტიპის ჩატვირთვა ვერ მოხერხდა!", "widget-template-load-failed-error": "ვიჯეტის შაბლონი ჩატვირთვა ვერ მოხერხდა!", "add": "ვიჯეტის დამატება", "undo": "ვიჯეტის ცვლილების გაუქმება", diff --git a/ui-ngx/src/assets/locale/locale.constant-ko_KR.json b/ui-ngx/src/assets/locale/locale.constant-ko_KR.json index a5660c5ceb..09cea16190 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ko_KR.json +++ b/ui-ngx/src/assets/locale/locale.constant-ko_KR.json @@ -2213,11 +2213,7 @@ "datakey-settings-schema": "데이터 키 설정 스키마", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "'{{widgetName}}' 위젯 타입을 삭제하시겠습니까?", - "remove-widget-type-text": "위젯 타입 및 관련된 모든 데이터를 복구할 수 없으므로 주의하십시오.", - "remove-widget-type": "위젯 타입 삭제", "add-widget-type": "새로운 위젯 타입 추가", - "widget-type-load-failed-error": "위젯 타입을 로드하지 못했습니다!", "widget-template-load-failed-error": "위젯 템플릿을 로드하지 못했습니다!", "add": "위젯 추가", "undo": "위젯 변경사항 취소", diff --git a/ui-ngx/src/assets/locale/locale.constant-lv_LV.json b/ui-ngx/src/assets/locale/locale.constant-lv_LV.json index c489cd3402..63e7fb6db2 100644 --- a/ui-ngx/src/assets/locale/locale.constant-lv_LV.json +++ b/ui-ngx/src/assets/locale/locale.constant-lv_LV.json @@ -1493,11 +1493,7 @@ "settings-schema": "Iestatījumu shēma", "datakey-settings-schema": "Datu atslēgas iestatījumu shēma", "javascript": "Javascript", - "remove-widget-type-title": "Vai esat pārliecināts, ka vēlaties noņemt logrīka tipu '{{widgetName}}'?", - "remove-widget-type-text": "Pēc apstiprinājuma logrīka tips un tā saistītie dati nebūs atjaunojami.", - "remove-widget-type": "Noņemt logrīka tipu", "add-widget-type": "Pievienot jaunu logrīka tipu", - "widget-type-load-failed-error": "Neveiksme ielādēt logrīka tipu!", "widget-template-load-failed-error": "Neveiksme ielādēt logrīka paraugu!", "add": "Pievienot logrīku", "undo": "Atcelt logrīka izmaiņas", diff --git a/ui-ngx/src/assets/locale/locale.constant-pt_BR.json b/ui-ngx/src/assets/locale/locale.constant-pt_BR.json index e8a105bcc2..51c8579980 100644 --- a/ui-ngx/src/assets/locale/locale.constant-pt_BR.json +++ b/ui-ngx/src/assets/locale/locale.constant-pt_BR.json @@ -1803,11 +1803,7 @@ "datakey-settings-schema": "Esquema de configuração de chave de dados", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "Tem certeza de que deseja remover o tipo de widget '{{widgetName}}'?", - "remove-widget-type-text": "Após confirmar, não será possível recuperar o tipo de widget e nenhum dado associado.", - "remove-widget-type": "Remover tipo de widget", "add-widget-type": "Adicionar novo tipo de widget", - "widget-type-load-failed-error": "Erro ao carregar tipo de widget!", "widget-template-load-failed-error": "Erro ao carregar modelo de widget!", "add": "Adicionar widget", "undo": "Desfazer alterações de widget", diff --git a/ui-ngx/src/assets/locale/locale.constant-ro_RO.json b/ui-ngx/src/assets/locale/locale.constant-ro_RO.json index 8ea796cbc3..67f8d839be 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ro_RO.json +++ b/ui-ngx/src/assets/locale/locale.constant-ro_RO.json @@ -1561,11 +1561,7 @@ "datakey-settings-schema": "Schemă setări chei date", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "Sigur vrei să ștergi tip widget '{{widgetName}}'?", - "remove-widget-type-text": "ATENŢIE! După confirmare, tipul de widget şi toate datele aferente acestuia, vor fi șterse IREVERSIBIL!", - "remove-widget-type": "Şterge Tip Widget", "add-widget-type": "Adaugă Tip Nou Widget", - "widget-type-load-failed-error": "Eroare încărcare tip widget!", "widget-template-load-failed-error": "Eroare încarcare şablon widget!", "add": "Adaugă Widget Nou", "undo": "Anulează Modificări Widget", diff --git a/ui-ngx/src/assets/locale/locale.constant-ru_RU.json b/ui-ngx/src/assets/locale/locale.constant-ru_RU.json index 70aa4b3a23..5e15a3496e 100644 --- a/ui-ngx/src/assets/locale/locale.constant-ru_RU.json +++ b/ui-ngx/src/assets/locale/locale.constant-ru_RU.json @@ -1599,11 +1599,7 @@ "settings-schema": "Схема конфигурации", "datakey-settings-schema": "Схема конфигурации ключа данных", "javascript": "Javascript", - "remove-widget-type-title": "Вы точно хотите удалить виджет '{{widgetName}}'?", - "remove-widget-type-text": "Внимание, после подтверждения тип виджета и все связанные с ним данные будут безвозвратно утеряны.", - "remove-widget-type": "Удалить тип виджета", "add-widget-type": "Добавить новый тип виджета", - "widget-type-load-failed-error": "Не удалось загрузить тип виджета!", "widget-template-load-failed-error": "Не удалось загрузить шаблон виджета!", "add": "Добавить виджет", "undo": "Откатить изменения в виджете", diff --git a/ui-ngx/src/assets/locale/locale.constant-sl_SI.json b/ui-ngx/src/assets/locale/locale.constant-sl_SI.json index f2943e6145..4fded7d020 100644 --- a/ui-ngx/src/assets/locale/locale.constant-sl_SI.json +++ b/ui-ngx/src/assets/locale/locale.constant-sl_SI.json @@ -2214,11 +2214,7 @@ "datakey-settings-schema": "Shema nastavitev podatkovnega ključa", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "Ali ste prepričani, da želite odstraniti vrsto pripomočka '{{widgetName}}'?", - "remove-widget-type-text": "Po potrditvi bodo vrsta pripomočka in vsi povezani podatki nepopravljivi.", - "remove-widget-type": "Odstrani vrsto pripomočka", "add-widget-type": "Dodaj novo vrsto pripomočka", - "widget-type-load-failed-error": "Vrste pripomočka ni bilo mogoče naložiti!", "widget-template-load-failed-error": "Predloge pripomočka ni bilo mogoče naložiti!", "add": "Dodaj pripomoček", "undo": "Razveljavi spremembe pripomočka", diff --git a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json index 50758fb1eb..e9be2e691a 100644 --- a/ui-ngx/src/assets/locale/locale.constant-tr_TR.json +++ b/ui-ngx/src/assets/locale/locale.constant-tr_TR.json @@ -2831,11 +2831,7 @@ "image-preview": "Resim Önizleme", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "'{{widgetName}}' isimli gösterge türünü kaldırmak istediğinizden emin misiniz?", - "remove-widget-type-text": "UYARI: Onaylandıktan sonra, gösterge türü ve ilgili tüm veriler geri yüklenemez şekilde silinecektir.", - "remove-widget-type": "Gösterge türünü kaldır", "add-widget-type": "Yeni gösterge türü ekle", - "widget-type-load-failed-error": "Gösterge türü yüklenemedi!", "widget-template-load-failed-error": "Gösterge şablonu yüklenemedi!", "add": "Gösterge ekle", "undo": "Gösterge değişikliklerini geri al", diff --git a/ui-ngx/src/assets/locale/locale.constant-uk_UA.json b/ui-ngx/src/assets/locale/locale.constant-uk_UA.json index 10d998d031..da3b6ecaee 100644 --- a/ui-ngx/src/assets/locale/locale.constant-uk_UA.json +++ b/ui-ngx/src/assets/locale/locale.constant-uk_UA.json @@ -2170,11 +2170,7 @@ "settings-schema": "Схема налаштувань", "datakey-settings-schema": "Схема налаштувань ключів даних", "javascript": "Javascript", - "remove-widget-type-title": "Ви впевнені, що хочете видалити тип віджета '{{widgetName}}'?", - "remove-widget-type-text": "Будьте обережні, після підтвердження, тип віджета і всі пов'язані з ним дані стануть недоступними.", - "remove-widget-type": "Видалити тип віджета", "add-widget-type": "Додати новий тип віджета", - "widget-type-load-failed-error": "Не вдалося завантажити тип віджета!", "widget-template-load-failed-error": "Не вдалося завантажити шаблон віджета!", "add": "Додати віджет", "undo": "Скасувати зміни віджета", diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json index b8c0a36fe0..5df0238594 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_CN.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_CN.json @@ -3965,11 +3965,7 @@ "latest-data-key-settings-form-selector": "最新值数据键设置表单选择器", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "确定要删除部件类型 '{{widgetName}}'吗?", - "remove-widget-type-text": "确认后,窗口部件类型和所有相关数据将不可恢复。", - "remove-widget-type": "删除部件类型", "add-widget-type": "添加部件类型", - "widget-type-load-failed-error": "无法加载部件类型!", "widget-template-load-failed-error": "无法加载部件模板!", "add": "添加部件", "undo": "撤消部件更改", diff --git a/ui-ngx/src/assets/locale/locale.constant-zh_TW.json b/ui-ngx/src/assets/locale/locale.constant-zh_TW.json index 0091acbb61..85c9181ae8 100644 --- a/ui-ngx/src/assets/locale/locale.constant-zh_TW.json +++ b/ui-ngx/src/assets/locale/locale.constant-zh_TW.json @@ -3390,11 +3390,7 @@ "latest-data-key-settings-form-selector": "最新資料鍵設置表單選擇器", "javascript": "Javascript", "js": "JS", - "remove-widget-type-title": "您確定要刪除部件類型 '{{widgetName}}'嗎?", - "remove-widget-type-text": "確認後,窗口部件類型和所有相關資料將無法恢復。", - "remove-widget-type": "刪除部件類型", "add-widget-type": "增加新的部件類型", - "widget-type-load-failed-error": "無法加載部件類型!", "widget-template-load-failed-error": "無法加載部件模板!", "add": "增加部件", "undo": "復原部件更改", From 84f27b1d456006fc4e711755e94590391e1c500e Mon Sep 17 00:00:00 2001 From: rusikv Date: Wed, 18 Oct 2023 17:50:38 +0300 Subject: [PATCH 071/117] UI: Fixed position of help icon in custom date config of card widgets --- .../settings/common/date-format-settings-panel.component.html | 2 +- .../settings/common/date-format-settings-panel.component.scss | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html index ee332924f0..3a2d9f78b9 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html @@ -21,7 +21,7 @@
date.format
-
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss index ec6a762966..784b4fbeb4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss @@ -51,7 +51,6 @@ .mat-mdc-form-field-icon-suffix { display: flex; align-items: center; - line-height: normal; } } } From e1f034500fa9ada62a7f142d2e712e1a8706d3e5 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 18 Oct 2023 18:02:49 +0300 Subject: [PATCH 072/117] UI: Outdoor Environment: Temperature widgets --- .../widget_bundles/outdoor_environment.json | 20 +++ .../horizontal_temperature_card.json | 28 ++++ ...ntal_temperature_card_with_background.json | 28 ++++ .../simple_temperature_chart_card.json | 31 +++++ ...emperature_chart_card_with_background.json | 31 +++++ .../system/widget_types/temperature_card.json | 28 ++++ .../temperature_card_with_background.json | 28 ++++ .../widget_types/temperature_chart_card.json | 31 +++++ ...emperature_chart_card_with_background.json | 31 +++++ .../widget_types/value_and_chart_card.json | 2 +- .../DefaultSystemDataLoaderService.java | 1 + ...gated-value-card-basic-config.component.ts | 121 ++++++++++-------- .../pages/widget/widget-editor.component.ts | 4 +- 13 files changed, 332 insertions(+), 52 deletions(-) create mode 100644 application/src/main/data/json/system/widget_bundles/outdoor_environment.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_temperature_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/temperature_card.json create mode 100644 application/src/main/data/json/system/widget_types/temperature_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/temperature_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json new file mode 100644 index 0000000000..a21eaf65f0 --- /dev/null +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -0,0 +1,20 @@ +{ + "widgetsBundle": { + "alias": "outdoor_environment", + "title": "Outdoor Environment", + "image": null, + "description": null, + "externalId": null, + "name": "Outdoor Environment" + }, + "widgetTypeFqns": [ + "temperature_card", + "temperature_card_with_background", + "horizontal_temperature_card", + "horizontal_temperature_card_with_background", + "temperature_chart_card", + "temperature_chart_card_with_background", + "simple_temperature_chart_card", + "simple_temperature_chart_card_with_background" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json b/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json new file mode 100644 index 0000000000..153195a499 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_temperature_card", + "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.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true\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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json new file mode 100644 index 0000000000..1c711e7e1f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_temperature_card_with_background", + "name": "Horizontal temperature card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest temperature telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true\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\":\"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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card with background\",\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json new file mode 100644 index 0000000000..f89e7ec47b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_temperature_chart_card", + "name": "Simple temperature chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical temperature values as a simplified chart. Optionally may display the corresponding latest temperature value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}],\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json new file mode 100644 index 0000000000..9c8d069c8e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_temperature_chart_card_with_background", + "name": "Simple temperature chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical temperature values as a simplified chart with background. Optionally may display the corresponding latest temperature value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}],\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/temperature_card.json b/application/src/main/data/json/system/widget_types/temperature_card.json new file mode 100644 index 0000000000..8986d46d23 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/temperature_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "temperature_card", + "name": "Temperature card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest temperature telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: '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\":\"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\":{\"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\":{\"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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/temperature_card_with_background.json new file mode 100644 index 0000000000..e6743fbe8a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/temperature_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "temperature_card_with_background", + "name": "Temperature card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest temperature telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: '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\":\"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\":{\"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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature card with background\",\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card.json b/application/src/main/data/json/system/widget_types/temperature_chart_card.json new file mode 100644 index 0000000000..3f23b0e277 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "temperature_chart_card", + "name": "Temperature chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a temperature data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C');\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json new file mode 100644 index 0000000000..9d5ebe5911 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "temperature_chart_card_with_background", + "name": "Temperature chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a temperature data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C');\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/value_and_chart_card.json b/application/src/main/data/json/system/widget_types/value_and_chart_card.json index aa8e6b31ee..10cfba9105 100644 --- a/application/src/main/data/json/system/widget_types/value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/value_and_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'watermeter', label: 'Watermeter', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys('watermeter', 'm³');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'watermeter', label: 'Watermeter', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'watermeter', 'm³');\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 0bb9d67c07..19d7780a79 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -534,6 +534,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("count_widgets"); this.deleteSystemWidgetBundle("weather_widgets"); this.deleteSystemWidgetBundle("status_indicators"); + this.deleteSystemWidgetBundle("outdoor_environment"); installScripts.loadSystemWidgets(); } diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts index ad88ee79a0..b8794b37fc 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts @@ -117,27 +117,81 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo } protected defaultLatestDataKeys(configData: WidgetConfigComponentData): DataKey[] { - return this.createDefaultAggregatedValueLatestDataKeys('watermeter', 'm³'); + return this.createDefaultAggregatedValueLatestDataKeys(configData, 'watermeter', 'm³'); } - createDefaultAggregatedValueLatestDataKeys(keyName: string, units): DataKey[] { + createDefaultAggregatedValueLatestDataKeys(configData: WidgetConfigComponentData, keyName: string, units): DataKey[] { + let centerKeySettings: AggregatedValueCardKeySettings = { + position: AggregatedValueCardKeyPosition.center, + font: { + family: 'Roboto', + size: 52, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '1' + }, + color: constantColor('rgba(0, 0, 0, 0.87)'), + showArrow: false + }; + let rightTopKeySettings: AggregatedValueCardKeySettings = { + position: AggregatedValueCardKeyPosition.rightTop, + font: { + family: 'Roboto', + size: 14, + sizeUnit: 'px', + style: 'normal', + weight: '500', + lineHeight: '1' + }, + color: { + color: 'rgba(0, 0, 0, 0.87)', + type: ColorType.range, + rangeList: [ + {to: 0, color: '#198038'}, + {from: 0, to: 0, color: 'rgba(0, 0, 0, 0.87)'}, + {from: 0, color: '#D12730'} + ], + colorFunction: '' + }, + showArrow: true + }; + let rightBottomKeySettings: AggregatedValueCardKeySettings = { + position: AggregatedValueCardKeyPosition.rightBottom, + font: { + family: 'Roboto', + size: 11, + sizeUnit: 'px', + style: 'normal', + weight: '400', + lineHeight: '1' + }, + color: constantColor('rgba(0, 0, 0, 0.38)'), + showArrow: false + }; + const datasources: Datasource[] = configData.config.datasources; + if (datasources?.length) { + const latestDataKeys = datasources[0].latestDataKeys; + if (latestDataKeys) { + const center = latestDataKeys.find(dataKey => dataKey.settings?.position === AggregatedValueCardKeyPosition.center); + if (center) { + centerKeySettings = {...centerKeySettings, ...center.settings}; + } + const rightTop = latestDataKeys.find(dataKey => dataKey.settings?.position === AggregatedValueCardKeyPosition.rightTop); + if (rightTop) { + rightTopKeySettings = {...rightTopKeySettings, ...rightTop.settings}; + } + const rightBottom = latestDataKeys.find(dataKey => dataKey.settings?.position === AggregatedValueCardKeyPosition.rightBottom); + if (rightBottom) { + rightBottomKeySettings = {...rightBottomKeySettings, ...rightBottom.settings}; + } + } + } return [ { name: keyName, label: 'Latest', type: DataKeyType.timeseries, units, decimals: 0, aggregationType: AggregationType.NONE, - settings: { - position: AggregatedValueCardKeyPosition.center, - font: { - family: 'Roboto', - size: 52, - sizeUnit: 'px', - style: 'normal', - weight: '500', - lineHeight: '1' - }, - color: constantColor('rgba(0, 0, 0, 0.87)'), - showArrow: false - } as AggregatedValueCardKeySettings + settings: centerKeySettings }, { name: keyName, label: 'Delta percent', type: DataKeyType.timeseries, units: '%', decimals: 0, @@ -145,28 +199,7 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo comparisonEnabled: true, timeForComparison: 'previousInterval', comparisonResultType: ComparisonResultType.DELTA_PERCENT, - settings: { - position: AggregatedValueCardKeyPosition.rightTop, - font: { - family: 'Roboto', - size: 14, - sizeUnit: 'px', - style: 'normal', - weight: '500', - lineHeight: '1' - }, - color: { - color: 'rgba(0, 0, 0, 0.87)', - type: ColorType.range, - rangeList: [ - {to: 0, color: '#198038'}, - {from: 0, to: 0, color: 'rgba(0, 0, 0, 0.87)'}, - {from: 0, color: '#D12730'} - ], - colorFunction: '' - }, - showArrow: true - } as AggregatedValueCardKeySettings + settings: rightTopKeySettings }, { name: keyName, label: 'Delta absolute', type: DataKeyType.timeseries, units, decimals: 1, @@ -174,19 +207,7 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo comparisonEnabled: true, timeForComparison: 'previousInterval', comparisonResultType: ComparisonResultType.DELTA_ABSOLUTE, - settings: { - position: AggregatedValueCardKeyPosition.rightBottom, - font: { - family: 'Roboto', - size: 11, - sizeUnit: 'px', - style: 'normal', - weight: '400', - lineHeight: '1' - }, - color: constantColor('rgba(0, 0, 0, 0.38)'), - showArrow: false - } as AggregatedValueCardKeySettings + settings: rightBottomKeySettings } ]; } diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts index d3ba1d1daa..ea9a6bbcb2 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts @@ -607,7 +607,9 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe this.gotError = false; this.iframeWidgetEditModeInited = false; const config: WidgetConfig = JSON.parse(this.widget.defaultConfig); - config.title = this.widget.widgetName; + if (!config.title) { + config.title = this.widget.widgetName; + } this.widget.defaultConfig = JSON.stringify(config); this.iframe.attr('data-widget', JSON.stringify(this.widget)); // @ts-ignore From 2a4b34893139bf40876fd3ef5ff0d4722732f06a Mon Sep 17 00:00:00 2001 From: rusikv Date: Wed, 18 Oct 2023 18:44:25 +0300 Subject: [PATCH 073/117] UI: added decibel-milliwatts unit to dictionary --- ui-ngx/src/assets/locale/locale.constant-en_US.json | 1 + ui-ngx/src/assets/metadata/units.json | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index b4c0f07c85..0326633be4 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -4388,6 +4388,7 @@ "volt": "Volt", "kilovolts": "Kilovolts", "dbmV": "dBmV", + "dbm": "dBm", "volt-meter": "Volt-Meter", "kilovolt-meter": "Kilovolt-Meter", "megavolt-meter": "Megavolt-Meter", diff --git a/ui-ngx/src/assets/metadata/units.json b/ui-ngx/src/assets/metadata/units.json index 988c3f34ce..5d680c6e2c 100644 --- a/ui-ngx/src/assets/metadata/units.json +++ b/ui-ngx/src/assets/metadata/units.json @@ -938,6 +938,11 @@ "symbol": "dBmV", "tags": ["decibels millivolt","voltage level","signal","dBmV"] }, +{ + "name": "unit.dbm", + "symbol": "dBm", + "tags": ["decibel milliwatts","output power","signal","dBm"] +}, { "name": "unit.volt-meter", "symbol": "V·m", From 9cb16b1c14812f67891bb06d825648468d796b63 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 18 Oct 2023 18:47:10 +0300 Subject: [PATCH 074/117] UI: Update temperature widgets preview images --- .../json/system/widget_types/simple_temperature_chart_card.json | 2 +- .../data/json/system/widget_types/temperature_chart_card.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json index f89e7ec47b..6645b0e427 100644 --- a/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/simple_temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "simple_temperature_chart_card", "name": "Simple temperature chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAe1BMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMchISHHx8c8PDzj4+Px8fGQkJCsrKx0dHRaedXk6fhYWFgvLy8+Ys7I0vGCgoKsvOry9PuRpeN1j9yenp5KSkrV1dWfsedohNkwV8tmZma6urqDmt+RpuNMbtLW3fW6x+65ubn1i4vJAAAABXRSTlMA7yC/r1EOHTEAAATQSURBVHja7M9JAcAgDAAwytEX/vUOGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh979q7qOAxFYbhasPZFEkjgxnJhV3n/JxwfJwzKSQwDw3iUg34wEtuNvsJg0ID01oD01oD01oD01oD01oD01inEpohP6hSSkzYSD0cbuu0UorGGBpJSZUoRf5yo4crOIbcc0BZ4iOJmgJhE27eAy7EA+wCwRQQeo8Fn3twFMIHLsgESBW2XQbZ3ECtV1UHdl5qZIdTMBKwlc0YqXE3zSlkq6xIJBEVkqQgl64SmyyCpvoHkDJQABmzcMBPCBYG+0RAUSQ1LAGqC0PAbYjDGY9R0DcQLmV4hqjmXhONUgkjIcUgJJWclUgYwr1q+QQBhzpWCpmsgiXvyCllFxL5BFkqg7B2QSPH8BhJFxNF0DYRfpRfIpIb5GRKR1IUzZD4goZhperxffL1DvEzwgLZrIIV70wvEV1KfIcoyA4Esd4gpS81wZfSv7R2Cm5L/42OfSRbDa/48FJr5fe54ZP5Y7k8zbrsIgpgmw2ktBF10QP4iC53cSvz8v99Pa0B6a0B6a0B6a0B6a0B6a0D+cb7Ns/jHQ36xa25LjoJAAH3qAgFFvBITo1k35v//cMHWwR3NxBqtmVjleZjh9tAnDaSpCpfUEmdi3yIli31PCE9SxvcswtkQfxkzsWMRGXP3kva3EkmLMKyu6qPbmG6u3HxehTn06GuFs6vgNHOdKBabiKiQdNR9sH+xm7SA4ECD7Wvdz17XJYRyQDAlW4joxDhUlflL0iHs0HZr3YuSRKs7aYfJ+t6ZrzJhEhCXknUiGFuiAEyopOq9bGoqQk7QkdqY824wtwLGT5+c51LEWUYZx3ZAPRjh0fMGIkmfidQIAcDD5AMMrQkVOlorWHSLkg+7EFvL4YyyiOImEozBf0RsvYgmhIBFYaMxEQ6Cagg6ScgdXYexnJiR53g3xm4BIH3snrHJqPR4wGj5aTn9sz4jSmFsKYYWdjsLG4/etajrRtuTbrOFqKIovjrLsbyx8c3kU97/N1inzynhK0UcBZ7fEHcaGk2XNLCADHeQ70w4lYAILyhhQhkzvokIHhH1QmTZwcCoUUgAwhh/WbHI0mpKRulF8uUiqkN/dPGy2kTkTPs4BM2GkWBRDWkkYun7t5hKvlSEdIQjjwY2ErlE0JPhverFtyWJDDLpe9j0mVH5hoi+E1LAS5FikUjpPn4R0cj3I1fgLgRVskUiaUeLncpdptXk1nI0VhfRSqmnR30UdnChlPkCHMtVzq9FpgEmenx5We6YmjG5WefuhhrmYRFsjxN5XaQgV0KK4YsS5Ry6Rjn0rWAWz+2sHxZxHr1ArVAonE2dGsqA/NlLQ8AKVhWNpDghDzwbySO1o/lspZyc8rypJ5pzNfnPioTEUeBNjJxggpskoZ73GD9cf1cEVPHFy0mdkk5jflZk9PIDv0VZTtsqeIpKWw2zeIxmAhy/L/ItRDYpa3cpMpeOPYr4c+nYo8htLh17FJnhEDlE9sIh8m4cIu/GIfJuHCLvxiHyr507NwIghIEgKJ6TdfnHSxA4ArozWH9rqjGkmoz2XSFjFDm37/nnPRGk6DNP10YPAAAAAACA1yz9maqJM0bCeAAAAABJRU5ErkJggg==", "description": "Displays historical temperature values as a simplified chart. Optionally may display the corresponding latest temperature value.", "descriptor": { "type": "timeseries", diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card.json b/application/src/main/data/json/system/widget_types/temperature_chart_card.json index 3f23b0e277..4aecc59cdf 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card.json @@ -2,7 +2,7 @@ "fqn": "temperature_chart_card", "name": "Temperature chart card", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "data:image/png;base64,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", "description": "Displays a temperature data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", "descriptor": { "type": "timeseries", From a0505ee0e4353ef23bb272dad705ba766d8f82ce Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 12:42:45 +0300 Subject: [PATCH 075/117] UI: Outdoor environment: Humidity widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../horizontal_humidity_card.json | 28 +++++++++++++++++ ...izontal_humidity_card_with_background.json | 28 +++++++++++++++++ .../system/widget_types/humidity_card.json | 28 +++++++++++++++++ .../humidity_card_with_background.json | 28 +++++++++++++++++ .../widget_types/humidity_chart_card.json | 31 +++++++++++++++++++ .../humidity_chart_card_with_background.json | 31 +++++++++++++++++++ .../widget_types/humidity_progress_bar.json | 29 +++++++++++++++++ ...humidity_progress_bar_with_background.json | 29 +++++++++++++++++ .../simple_humidity_chart_card.json | 31 +++++++++++++++++++ ...e_humidity_chart_card_with_background.json | 31 +++++++++++++++++++ 11 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_humidity_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/humidity_card.json create mode 100644 application/src/main/data/json/system/widget_types/humidity_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/humidity_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/humidity_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index a21eaf65f0..71c148d22c 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -15,6 +15,16 @@ "temperature_chart_card", "temperature_chart_card_with_background", "simple_temperature_chart_card", - "simple_temperature_chart_card_with_background" + "simple_temperature_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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json b/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json new file mode 100644 index 0000000000..105929125d --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_humidity_card", + "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.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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 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", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json new file mode 100644 index 0000000000..14882ac7e6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_humidity_card_with_background", + "name": "Horizontal humidity card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest humidity telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"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\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal humidity card with background\",\"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", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_card.json b/application/src/main/data/json/system/widget_types/humidity_card.json new file mode 100644 index 0000000000..bf034c0bbf --- /dev/null +++ b/application/src/main/data/json/system/widget_types/humidity_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "humidity_card", + "name": "Humidity card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest humidity telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":\"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\":\"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\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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\":{\"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\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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\":\"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", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/humidity_card_with_background.json new file mode 100644 index 0000000000..bd7c696405 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/humidity_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "humidity_card_with_background", + "name": "Humidity card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest humidity telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":\"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\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity card with background\",\"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", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card.json b/application/src/main/data/json/system/widget_types/humidity_chart_card.json new file mode 100644 index 0000000000..3cfeaa2c90 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "humidity_chart_card", + "name": "Humidity chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a humidity data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%');\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json new file mode 100644 index 0000000000..571f299340 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "humidity_chart_card_with_background", + "name": "Humidity chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a humidity data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%');\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_progress_bar.json b/application/src/main/data/json/system/widget_types/humidity_progress_bar.json new file mode 100644 index 0000000000..12b81e5be7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/humidity_progress_bar.json @@ -0,0 +1,29 @@ +{ + "fqn": "humidity_progress_bar", + "name": "Humidity progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4ODg4OAAAAD///8jTMfg4OD29vYhISHHx8fj4+M9PT10dHSQkJDx8fHk6fitra3I0vG6urpYWFjy9Pvv7++svOo+Ys5aedWGhoZ1j9y6x+7V1dWpqamenp6Xl5eCgoIvLy+Dmt9LbdEwV8vX3vSRpeOesefLy8tmZmbCwsJohNmOjo6RpuPY2Nh+fn7l5eVXdtJKSkrm5uZgoBxmAAAABXRSTlPvIL+vAC9A4IoAAAQhSURBVHja7M/BEQBABAPAOIynn/5LvTbCZDtYhD3Udm4Bw+R6DYN3HjAPlSfgSqQUIaMIG0XYKMJGETaKsFGEjSKf3TrWcRAGoihaveJ5xjNCoWUtu3Sb//+3JVgrlA2KqYBIuUg2yNURU/hqvYHcBl+37czQigyQGHBCfYhSMDe2bSsnfYUk5pltgn1dCYJpwgpB8Payq3MgwSZgsgCxEHKesCyAJQCS8xAZlnO7M/5MdgOQzNHpeIhxAAYaApWFrI8lAFRACh9PWM61UKuzAEJFp+MgNc7pP4ggtyU2yEiDKBukjda4fGV0Og6ij/gMiUBgBYRjg7AAiE+QRFt+ZK8zR6tB4gqZ9xeIU513vO9qEKe+QDAy8QedzoAkJiBtQqB0oD5DbizdyToFEqgp6TbEqINxhdQb4IUjOp0CgZGlbkOQSc1/kEkXQjx0slZIPxd/cwasiS8Qwc6ufPuVwIpenwAZWQS9PgESBke3T4Ds6Av5Qn7Zn2MUAGEgAIJVUocDwWBrxMr/P09DsI3tCjs/mL8wQmOExgiNERojNEZojNAYoTFCY4TGCI0RGiM0RmiM0BihMUJjhOYjckSU9FoiYklQ08jZ8qOOSqm526CVWeTKQyv9seZhT0iTSLnZL3sVh2EgCFczpMtiEJKwO8s/hau8/8Od8JokBG6PwIE3RB8ujCt/jGYlkewQRjIDyOQYMFedCI8YIgPZAwgTJ2BWHf3oEUMkkhGaxS6wHDFleMQQ6cgRlcQEBJFw/+gRQ6QaTMNe+QV3erLDjrPpZYlIIqdJS/HozXYYlTzDEZZI0Pk7xWe1SXTdZXQbxE9fLJFSw4hrIteniAaoSI85ox/gBXtqLQBCTSFoQup0vA/jGB1NYkMkk4LKeozhUNRMkWWVLHCDLRI0Gc1hU48HfewWN2vLENmOSdtrMcbXHUSKpFi8HFjsjiQ9a6WwbyelUwQ7SeKCwUtNDBH0PBgA4QMNYV0QR0Qv+7wlgphYyR1eRQ5C2pKXvv95Q5wDDMTNQeVb7uyfQxPxRhPxRhPxRhPxRhPxRhPxxheISOYZlPli8r5I4TncLjZvi/AsLpXrr8/7IpnnUOrv/msiUngGN+2IylxfXipfPLU+jCbijSby094dqzgMwwAYdtr+1MtxBIMGQVKtwYSkcO//bFdK5kK6WE31g3d9eNAobwXEWy8gdbZC43IdATEz2QbaDxEVbKFpWXsFxspkLJpllf2Q4Qal+ZeIAirkldrDOO2HTKMbyM/zlRIQLxAVWKlvQmTN3AaatkFsYTAWA/3bD6HobLRtg9zV9A79PBfegJAzXpJtoO/e7J9VQLwVEG8FxFsB8VZAvBUQbwXEWwHxVkC8FRBvHQiSOETXdDrA6Wn4PacuHeD4tDwYl+58/fTSqbv8A8IwqxFwwnsYAAAAAElFTkSuQmCC", + "description": "Displays humidity 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": "\n", + "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: 'humidity', label: 'humidity', 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\":\"humidity\",\"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\":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\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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';\"},\"tickMin\":0,\"tickMax\":100,\"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\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"to\":100,\"color\":\"#234CC7\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json new file mode 100644 index 0000000000..e5b42cce70 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "humidity_progress_bar_with_background", + "name": "Humidity progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays humidity reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'humidity', label: 'humidity', 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\":\"humidity\",\"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\":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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"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\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json new file mode 100644 index 0000000000..e3870774cd --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_humidity_chart_card", + "name": "Simple humidity chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADg4ODf39/g4ODg4OD////g4OAhISEjTMfj4+PHx8c8PDysrKzx8fGQkJAvLy/k6fhYWFg+Ys50dHSsvOqenp6CgoLV1dXy9Pt1j9wwV8tohNlmZmZKSkqDmt9aedXI0vGRpeO5ublMbtK6urq6x+6eseeRpuNaeNXW3fXW3vTW3fS+UfxxAAAABXRSTlMA7yC/r1EOHTEAAAR+SURBVHja7M9JAcAgDAAwytEf/u0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh/79bIiNwxEYXh1OFSVLohG1ka9MX7/Z8zIYdJm3EFhIMJm9CPjonYfeGFNyNWakKs1IVdrQq7WD4Dc7JryV4g8Aw5pbrsgOCV1JyvF14LB9SFi5FESDIBScapU+YQkRU4YWR/y5Ef5DcQJvPMfxznxbgPEeXwMjuKdaI2uLdrTaQxk4Z6eIXQQqtCS2TMxQSlIMUWK0AVj8sxwFHQaAhFajrEyvSBsHSAZGwuW2CDKDdsO2cEptdNrCGThA6kUsvyBRFXNB4hrAgS2lyOgL0iObeo0BlJJKyWS6+nTeg/xR4iPlR6dxkAejKU8VlJPkPhA/grxDAgvCBIrug2BKG2LS6HhBMlk+gpBaEv5vSSgdOg2BILKPYdzXt4uj9MWMaY+BAtJW/GtFlvQbRQEEME3C8Hj35t/vxNy7Sbkak3I1ZqQqzUhV2tC/k+aQ8h6e0iO3LNwa4g8mZwAfq00uS9ELK6f82omt4VYlKPK/E0hv9gxtx1VYSgMX630Ly20tIgcRtFxO8f3f7/NdKYeCFqICcGE78YGuFhf1gmRTF5//kieVESkdIVV/ClFZPdDP1f2KUXEhjokLHoKkbX8F/V2iCdW6ROI/K4+IX3QQhD1pGQ+ItHK5iveE2Mq+VpuWB7/rcI1UU9K5iLCU8aUYszyrkfiDyKXMldKBgbAAyJ6V1ycdc+dIFypJG5/8s4bB2f2dHxhrWvOqZeN4I+KvFcAGn0+m8xrNADeBnkIH8f6qkhifz34aZarqydjHo8V2QLmA6j0+YwjOUpsdwYF0U4HRBJ2iuL1cijlviHCrJWfB3Fk1U/ybDRGRAMlka6wJcqAvTs35DCHn2tZezCh1WAviiS9qPxk1BuxsCu5ai2U+xVMyOEiR+CLiBociEqYvxxdi7xDj9jVryw5FxyNoZsJ2arkfLCIi7LGB1G2d92x9yJNpVuro0ZJ90nFdZ1Z7uJQIxq4vzci6+dgUKRwRaWBjDwGNTkymAMMNSaQEM5kp2NYaq1iKaeH4VZshjV7VsE0FWryvAHf/l5d7wvXJXexrBMxz1MhfIU8ShwPEylqtFSnYD9dx5/RpqRwq09AqLQMTLYrgczHjQNdUkJ/1k2tA60+If0iGaBduNXJo6ALdthrVLWpbpsEZ9MUIm5ceR/n0elsY2iLr9ZnSzfIgwmZQsTvjjcnUhw6Hm6FNCC6PYLz8NKbQMQZvP9mwq3FTgW5+EsU9H0jI9FmIo9wsx+AygA4/kh5Si+y1UQZ6mONrHfIM/FK0xAev6UB8LFzK70r4nDX9z0DPnHv7tMR/j+iC7pL0fdAJEav7jl+jecpExENY84iK6WGN/mcRV7siOaYs8gYFpFF5FlYRObGIjI3FpG5sYjMjUXkfzv3UQAACANBMLT88G8XAwigzDg4AbenMeQ0GWU8IaNd9mXdm/2dCFLUnrcrrQYAAAAAAMBvFtRAowTiuzzYAAAAAElFTkSuQmCC", + "description": "Displays historical humidity values as a simplified chart. Optionally may display the corresponding latest humidity value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'humidity', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "humidity" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json new file mode 100644 index 0000000000..bd2a4181b4 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_humidity_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_humidity_chart_card_with_background", + "name": "Simple humidity chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical humidity values as a simplified chart with background. Optionally may display the corresponding latest humidity value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'humidity', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "humidity" + ] +} \ No newline at end of file From ec907c66bad9387c6d8aac5b3970a037ea91a7bd Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 15:05:01 +0300 Subject: [PATCH 076/117] UI: Fix progress bar widget percent value calculation. --- .../widget/lib/cards/progress-bar-widget.component.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts index fe1ac58ab4..22d3cb6f4d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts @@ -181,7 +181,9 @@ export class ProgressBarWidgetComponent implements OnInit, OnDestroy, AfterViewI this.valueColor.update(this.value); this.barColor.update(this.value); const range = this.settings.tickMax - this.settings.tickMin; - this.barWidth = `${(this.value / range) * 100}%`; + let barWidthValue = ((this.value - this.settings.tickMin) / range) * 100; + barWidthValue = Math.max(0, Math.min(100, barWidthValue)); + this.barWidth = `${barWidthValue}%`; this.cd.detectChanges(); } From 357428749905cca6d8aca705dcdbe675fe93eb44 Mon Sep 17 00:00:00 2001 From: rusikv Date: Thu, 19 Oct 2023 15:05:25 +0300 Subject: [PATCH 077/117] UI: fix for help icon in custom date of card widgets --- .../common/date-format-settings-panel.component.html | 2 +- .../common/date-format-settings-panel.component.scss | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html index 3a2d9f78b9..279b48fb3a 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.html @@ -21,7 +21,7 @@
date.format
-
+
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss index 784b4fbeb4..7ca3237b5d 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/common/date-format-settings-panel.component.scss @@ -48,9 +48,12 @@ } .mat-mdc-form-field.tb-date-format-input { .mat-mdc-text-field-wrapper.mdc-text-field--outlined { - .mat-mdc-form-field-icon-suffix { - display: flex; - align-items: center; + .mat-mdc-form-field-flex { + .mat-mdc-form-field-icon-suffix { + display: flex; + align-items: center; + line-height: normal; + } } } } From b258a11ce35e47272dde125c5b02a02c60748f9b Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 15:23:37 +0300 Subject: [PATCH 078/117] UI: Outdoor Environment: Pressure widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../horizontal_pressure_card.json | 28 +++++++++++++++++ ...izontal_pressure_card_with_background.json | 28 +++++++++++++++++ ...humidity_progress_bar_with_background.json | 2 +- .../system/widget_types/pressure_card.json | 28 +++++++++++++++++ .../pressure_card_with_background.json | 28 +++++++++++++++++ .../widget_types/pressure_chart_card.json | 31 +++++++++++++++++++ .../pressure_chart_card_with_background.json | 31 +++++++++++++++++++ .../widget_types/pressure_progress_bar.json | 29 +++++++++++++++++ ...pressure_progress_bar_with_background.json | 29 +++++++++++++++++ .../simple_pressure_chart_card.json | 31 +++++++++++++++++++ ...e_pressure_chart_card_with_background.json | 31 +++++++++++++++++++ 12 files changed, 306 insertions(+), 2 deletions(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_pressure_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/pressure_card.json create mode 100644 application/src/main/data/json/system/widget_types/pressure_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/pressure_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/pressure_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 71c148d22c..298437107d 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -25,6 +25,16 @@ "simple_humidity_chart_card", "simple_humidity_chart_card_with_background", "humidity_progress_bar", - "humidity_progress_bar_with_background" + "humidity_progress_bar_with_background", + "pressure_card", + "pressure_card_with_background", + "horizontal_pressure_card", + "horizontal_pressure_card_with_background", + "pressure_chart_card", + "pressure_chart_card_with_background", + "simple_pressure_chart_card", + "simple_pressure_chart_card_with_background", + "pressure_progress_bar", + "pressure_progress_bar_with_background" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json b/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json new file mode 100644 index 0000000000..c96757cebf --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_pressure_card", + "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.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pressure', label: 'Pressure', 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\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\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\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"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\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"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 pressure card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"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", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json new file mode 100644 index 0000000000..58d63484ae --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_pressure_card_with_background", + "name": "Horizontal pressure card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEUAAACbr7dqg5eruMFIXXDNzsWHnrL9/PTj4NTNzsKZsbyetb/l4dFIYnpFYXjr5NeIp7yfs7dHYHjeI0Pm7PDq7u7j6u7O1NjT2d7p7fDR19vU29/n7vHh5+zv8fHh6e3f5urc4+jZ3+Pa4ebX3uLS2N3p7/LV3ODb4ufa4OTs7+/f5+vT2uDr8fPk6/DN09fd5enX3eHQ1trx8/LL0NXd5uzP1drM0dXFy8/r7/DP1djX3+Tl6u3u8vTU3OLN0tbGzNHV3uOWrb3g5unJztJAVWXs8PHj6Ovb4+nY4ObLz9OYsMHf5Oju8PCRqbnIz9Tc4uWSrL+TrLr09fSPqb2UrsGKpLeks7HagZSNprmgpqmas8M9UmJlgZZdd46huMiwurWcsLPc29GlusqqtrRgdoXHztOrsLTZ3+LW2dOfsrSGobRQZnjR2N2dtMWsu7qGmKXx9Paitblxj6RccoK1yNRXcIZLZn5EWWnT1MzEyMGMo7R6nLNohZp3iJXV18/ByMypvcu/xL6Ama1gfZNke4lPa4NUanyvw8/Zr7uFnrGOoKt6k6l8jptYbn9BXHNIXW/N09Chs8GKp72AkaBviZ1bc4pMYXLcOVa3v7+csLx1hZJHYniyuby8wbi3vbVpip++xceZr7N2jqLVeozTp7Kan6LY18zRucGnuL+0vrqRp7Wirq2Rlpltgo/j4+Dk3dDM0MrR0MJ/oLittrfni5s/VWrk4tiuwMl0l7CaqK6LnKbkcISrwM3IzMbJy8CVmp5lfI9LTU+2xMmWo6ft8fPc3tfExrqEo7mFlqDs5tjkztbbytOmq67Vmafhg5Y2TmLdLkzno7DUkJ/dUmtYW13fME3N3ePr19zW0NXWxM3lvMZqj6jcdYnr6uOSo67aW3JjZ2ndRWDfPFgnQlZNT1Fcg53caX/aT2i6z9jMxcvYZXswMTL39uzF1t7jmqncjZ5Pd5F9gYRwdHdAQkPu5eiKj5HjY3nXY3ksRVzc193hVW7z7+TiVm54cVsVAAAAE3RSTlMAICAgICAgICD9QN9ISN+/v7+/oJ7ZJAAAE6BJREFUeNrswYEAAAAAgKD9qRepAgAAAAAAAACYPbpnbRyG4zh+T9xwR497TVr/IJCRDEK4GjwKtJhLBseDsQnBGAIpzlA6BDxmPDjo4KFb30rfxf0qNw0tpWMnfSDBth6sL46iKIqiKIqiKPpIX1/6PDtdfj/D3Wl4vj8J169WB0+rv7zp9Pi8zzvTw/vwO0/4dhYyfvw03uZ5Xk+bzWbK7c56YkJK470hUkLqNE2d61yqObve7a4ZCI6nOkkSRsSSpCxLTcZi9eQZCSYEeWuMz3Ns5Nzf1er2cDhkbYb/KquyrBqGseHlOGTZ4BjjxyPnCS+7ph/HYaiyu7vLZ22L6UXfdPca53CYU2Cr/WK9Xi5vtsGvC3QIIRQO7a1FS40ihAitpSL0YAwpocSl5REl6MAAk8AhwSkk46nrONmptrUXpAiUwra2NuTJGFL3t0VxQEA1l7RtO3RMNzjzWEIHIWJu2O8XT/YIeewo+r5voO+LYqjay8Ua5o5/2+3N8uLT76srqQIyFD6NNTgDYhCB0z6W6DlEa44ShDCgPFehhHMtBcY1ha9gwjhCBBhr7ebPw4OdrFwV/+kolxelwjAO+zdEmHjBux6xTIVcjA2RbRRbpKggUi6iVRcmTBlwDGQih3KmGOcC1WLAVcxSiIaY/QTtz2agXTCbgbatet7v85xkoIeZ8104o+/zvb9vOEk8Oh3qgFe74zG1S3kM0ghx2HuxtTUaPRk9UYx6e3iICALTDuxyBsrT9vgkvLvkmE1saro1BKqF0DN8EJlMdLLePEaj2e9TO+DTbpeJXbPZR7BS6zcr1Uaj0FJJQw+TWq0u6To+M81z0+y2apPHa0cdIBjAQRMvOoGIjtNebwuB/f33mn3lAbhYIKEcSJUEi4fyYOKYnZyczGY8+RUViRIltEkYtTQnSIgGIn1g1hcOC9VCixebDblBlXq1WSkXGs1Kq1yQLlUXRLrn5m2zdPv8/Ky7cdyu0xkaIyoPYDClGePxlGY86o2e4LC6+kVYFY8R0Vqgp/ug0eO8Ka/vjx1IcBWPjib6lnDjh0OeXdgAFg/b7W2bD1x3+PxwONw4HmqO5dUufJXnxldgrSBWZqlYTN+AIjKmaZ7xH+WZtO2w/3bl2yH85Oftt5Wdzc2XHy1ebu7sfF9ZYGfOJlgz2Hr3qTcYn9TbDjQQWevesEj6fD6/3+8EPfiTgaARLoUiQiiUCIcNI3wvmA74fMlAOh1I+ngrlbpscdMJasMbi127trz8XLO8fI2Vesa8KT42GC7lI8AnZ+IeV9SdW1q6AktL2azb7Y66XB6FyxWNRmWDHYiyBBZXr3ri2wdrjXr52UMtMsPDhsL+gYcvmTbkK+PxTAYPIxi8GzQMLZJWIsrkstcySbHSYt7/iGByOeULBMP5fCiEByJ4ZPHQImICqlrAAlgzBTfrp1HxRCSy3eEW12oOidXabO5QvJGemzjnHrAgEkkY1K87gYHVEXA6lYPXa+vYImCL2MRoih+TcCmBihLJKg1tArmcJSNDLqfmepHNIapbEo9E1ju74/WpA4/T0wkO/CgwUdGyoCWBItmSLzTSHH6KM8cumVRGiCCktkE8LpqIykURbaJCiwsmcZcbkQuIjqo7hxYzLaHBEhUPh7v74NVgMHCcnh78+rVuGNpCDfTEL+ikk2aqDgTSwbt3fJKgGDXIroBJIAmYIKIgVdphoScWIgB68HJR5CTkkLTI3OTWdYEJv9jMtzHBwoIlTUEkEpr2HgzWGw40fv/ulP4RNlChMjFBRCpzWqSIDqdODfNd39zEakmK7ZvOmym7OYjAooeXv1cw423dlVDGE81iIhoabLSPRQ6skYl4eDKRfCLxpvO4Wq46xOP1wW2bfL5U+vMDFVUctVvZj4EyQM62k5aAvExPQLb+Ul02rU1EURjOfzhBU2Mxk4ntFD+aytgURqK1IRp1oaIlTZcuZqVbNwpxI2bdzVhwISQyUMSFFix0UQaEQmtCP6bUxkBTiSltoDWJWurG99zrYPqkpelAwn3m3PfcM93XpAtMROOSKp88D9CDFyPKjZqo4UgQJYGJ9IhdPsJRH1EWeJyNhNFyRkLPxCHs+/r9x/PHT+PgrCQ+PFynRY2bP1bHKrKTShE/Virz43kg72yC31PeJe4HXmj4g0eS0YHfE9H6Il7bYg0PHcR0WEkR+HAlIMxZ7zW0UDfKf+zB2BjGWd8MTLgiQiTAjaCYrlMunUJsonDBit40m5fPyx0lAwNBCRYtgQ33Y06NaGW3bo2cQaCOmMhgAL7oxUl6qJ7I8X5o6B43ALvEYNAvYI+HDznlkZTSfcnPPBrl0RVhR9yfpAzDgMxZlrFoCa+CoeKwQF3OnKn9+tB4rUfC/n54JALR6NDp0OkQfgJXQqevSAtFE0cLJGV8b+M/LpE0OYeXgDUEZViA8n4pxx7ISMBeKaAeMb2QzxdgIMhTHiK8tworoGhfgEOQI65FT/n9PT1dXV0Prt6cREZmZnAg3tOAmkoJlw2LiNLx4ZSqqqKb1cyom6m1X7XcWrBVbb9sVhtm1RyqDTXaQzW3FYWH+HSfqihRoGBhQFOwxaSJx0nAFpU1EiErEbAWwzjY7W2iXWjYlri2818kJkR2SWBtYBIw+pQRlAPfyyIvxifvIiP370/MT4xfl2gprgtM0oiKkRIqquq0HUervbzSmHPnatXM8WY1M1g1s062pjXduYbCGjgxwzy+aADRHUB/D8MLu1g2io5cvNsiwFlboG+5coVWewMBe4l2V2z9RmKbDuzCFuUTnkjME9ksFve3yDpUlJEQNLq6epLwYBEeVH135p+8nx+/GMXpAaTKxj4yDxOAfmw4Jv462WzDzAyapvPmlem+rWYg4mitqmnCFtUwMGfgZjGR3qAsP7yisiYSWY+Fb6U9IoSpu0IVpe/LEn05ccGilRg0EgnL2kkkimQJDx0iO8WifXzwxC6lwyjEGu0h4QvL5fVkMomCgI+TPIL67k1g2roDB8FiuoNCfFjgfIaTkzVartPfctuvm66TedtwIaJm224VuhExLnlgzAPBXq4Km5zvmFxk414g4kN2lQroV1tkDxbpIGbbCY8CbcuY52nTIloqBAfqlB5BX5+lkn/hD4FpWQ+IXIXIlO/O2Pzo6Lg3a+Wog3ocNzbO9MYFOtarY6U67n0M71khNsAGQY8A8282RVUG+rC7OkdjBFzsKeIesUo5HIXQuVChzSUEQKjs8NZa0UU28khrcZNWb9+qU4m30x/a6/lNpfLyGq17IuKZwMePguPPTnXDAhk5zHWwwS1ZAh+BWDFWCLBKwLdfTnI8kOKdBCKyKoYqmtd5CQecOzREuNNBBE8HEDmBpB/kLdpmkTz3GvbAqZGnSuT2IdEl/yzNlsu5WVpb/zQ9/TOZ/E3LHSJTU3/JsL+XpsIwDuD7Hx6Xv+hUbmWnH8z9YJ2trUYb2yxtIyHsdBESdKQYkbfdLLqp6KqrNjgXEz0kcehmAy92MRi7sikqyDQE0YvCLvRGCyLo+7znTBt+xTk2kPPZc573ed85XtVxcHtz5szly+m0a7izIjxcjiMMPGva5wGR8zlfsL3F8yH2HlxssgFxu1CS/0eoGDRfiXiFAERmyFtAZgK3d7Hoo8dnZ34vL8+iHN19PeO0lIo4iUKhKomsLUgN6WBvqbpDK6EQGE70yDS6xHHr4YcPdx7z9m8offFiZ4+gP7gM/ccYvvAcNm8ifRwoMMQ4PH9tkg8QhqMigBwfcJjBgwYQFwLCgNuGzKLXf9MqOgOZpW1Pt69nUF6iJWcyShSVqvRrZWXlG3Zs0h6tbf9hCCQhZ299Dply3EOrPHiEj+poTA+lv+5j7eKgCQRFEHKIheCLtzYMrMAViPBNjeDlcNCXswaXF5AhSNqx99GADMvy9e+06PZ60ex9W7SKj2KLFndXF/nfEIX7+gdGUktU8Y+NEfmjVTxDJEk6IMKSVWUIUxgyNTXleIDcfRzh8ykeIvg9s7BD4y4Q7NwIAAIGCDCE+eJx9fkSbmMEioRIqQSLwHiskrDDjf1BmneVdpiBuQMIHwz3acs7uEEfe86P0w+PB7Pw0y4tf+ru/oTX3Nl4JFShypiA+C2IhLRoLSl6RDCczvoU8tRx/z6+znnUxcEdx++1drjbMFB4OHIMFCST8ynBkg4EFDEloOhqopQo6AklkYjph3osr2mJhKLcVpSbN5Wg5Rh0XweEpz0sSHs34wKEF7v1j/R9HNO3vwfPfs5s089weIs+zmwu07g8koqEJAHxtyGSSHKHqpW/JCBOBBDE8e4+vqSaZ8QFOBuN6MEOreFnDwdqu9lrV66Uy5quqk3T4zGuGWWjppiG2mwaqllQzbyiqHrJNLVYSeU3mk3VyPGK5YVD5h0bMmQFDhsi1r8NHhKbvHxvbBHR5npP/zq2L7S2H0+lIr2SvwNiO5K4Y+hPFd0DhwV5OjHteP/62ed781wMdvCptFKp0rdfXy6nIbEhubJWU9RmoXktYGQMrdDUVF1tqoe6ptYMASlrGiAGYPlmzacmLAd2RcMum8IIjrVHFA48rG+sD3pF8AwDNJuNpxYWIkhXb0hCf8BhxWKMjo4mR0dbLVTjEhAWpDgxPe24i1X41hEEEv/Yiyq1rvZGTg9dHBYSE9XQappq5M1AxlBrmmGWTPxVDwumbqgKQ/KoSEKvHeZNFUpVONwsAQQUYbEdgIhtgBdhj9frnhzgyHJ2JJ6CAMHDCYjtSMLAcdqZB2NiwqHk5+c+1EV3JBGJvyg4aL2INpJMObq90Os4YHquBTKZjFZ48iSGKP8nFkPDY+VCrXw50ei2REZRbAoz2CG7YcB1y5MCNMkEBIx4SkDQsBbED4aVTobtaN9az5+XHfP1uWKxzpOFMYLij/r9UZZ0nTrLnQILhhtWraBHSJQ8HMgJRwarVkIJY+0VEoS3kWgUxMKwA5ABvJ49dy4LETIpwzACRfwsQ6DAnQWKMwlIx20FyCWbcQzJP+c4isXi55dzopwisCAYn41G8kIXisInDTfKAkkQEi4JCsI5UQ84eO39R5fdtCgRxwEc9yoE0UF6giALogiCCiqLCEq6FBt0EKKDitYqG8qyxDYHlQkREq2FQuzBxS5ShDkhK8zAWiSGnnwF7aU3EXTo+/v/Z3Y2q29Ozm5tOx9/82A7BzjUgZAeS5gUBQT5ECSLOIDA0F1HooISOnFojoFA5yFkra0h/AT2yeOXrmKOc2E/EvUfvouXD3oQJEB0LmJ7HMoRkTcoUEhRiKNAUejWcQovLoY5L98QCQNREAiaQpoTCt08JI4z/4WodQVJBa6U2l/ffA3RBVXIlRBPDJmrsexgx5Cc3utPZGf37i241/VTQE5rCKHxJ8NUvIAcZQyHbygJazsgPgYJM6E5h4zhHxN5cPDgeDw+RGqIshdqERBJrvXXleTkvgN610LiE2hh4az/RisCBAltW3hAOepTwkyEEbH5IjmuIL5ErcOg0ImbOyDeNOZq5nLvlnOBTAZH5vttN2+n5MuYjh4P+5eWyEjO6ZF4oRAHiogOiJKIxdcg8U+yYSAEhG7d8iHkQUAQkLl5/E05lWIeXNnHgzENQiD8BONpLnCoXLp+9fAR+bEmZ+Czeib8IsUQB5sveRASjK+RkxgQNxh8JDsUEmJNH+csLiTkQuYd85TIcnY5S4HBr+lAmn5Xffyjxcj5Uun8lYVzkXucpbfyzwuvut1uOS2tSOlyucxnuC8jt2UmE/dWTaFQkKXAmk7+2KluVbdznLyztSzvv7MJ205k371pX1lTWaXza9f0aoaKa17WmkWPOp1OsVh8RNZmqZ3LZhPElb1YTGaSyYwqOea3CIv6i0WrnbKr8v1tvs+7t9X8i4evn3JbbPaTfnj9nM1mG88alRVo9SVunUWj0Y2NqOpuVLe62liqp8tfvpTTZZKXgVue6VoefK2mXoZR3zQNYzg0hoZhmKxvklptNd+7xePrrW/UWteltAIHENliymBBQuJAB2Wzb9u8iI6y2FXK17485P6jcGaquzzubqzCUNtXr7gQzdguuvpMIDgIRB3H0tJKQSCOM2FxRnETRnAYDAbRABkKxMTRWvcY8VQq3k9JsVhKPoxlMegCu6fJwXQ6HYx7yV6vJ5IeiI6sW0b/g804cqbB62Pxz77vx5xat15ho9mv2B62ii1iGl1iOyuNZ0DmGECiQFb0V4mBGo1GumAn7NEHe0Sf76x/Gw4/fQryANJqmQbBwBF362tCTD9RlhLE057AroGCJIvE7geDOp3edApl02ySaViP+GTRwmKYzZQda77p99/fH00mI+d57VWX44TjQCT1xk4JD38iosZeUfduG7L8ZtfeVRCGwTAM11bxeH8FJ4c6uHbSSRDESSdnxVUCHgbdnAoFL6J30Dvo4PsnrVTQwf1/aNPQDM3XHKaM1yF/KjImGQ4TghDCBZHJs1ukqY1R5YjK/hvjQnC5GASJ457nDbqsIFAQhJtCqmdxJQkOj5lMO/aErMhRnCbzZ55n9/nheLwswoRVbreBDd2UyTWlsMggNdbIivlEqyS90Uy05dYYRsRKzCi9iirIfif2qI1HCHJEFI4bj7hPDrR+6IBHIGdk3i/adbTbt0HDd5r/8H05RsMtDz5RE3zVKFH55CmllFJKKaWUUq/24JAAAAAAQND/174wAQAAAAAAAAAwCqCi5ZfRKSZBAAAAAElFTkSuQmCC", + "description": "Displays a latest pressure telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pressure', label: 'Pressure', 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\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\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\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal pressure card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"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", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json index e5b42cce70..697d527eea 100644 --- a/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json +++ b/application/src/main/data/json/system/widget_types/humidity_progress_bar_with_background.json @@ -17,7 +17,7 @@ "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\":\"humidity\",\"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\":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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"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\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"humidity\",\"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\":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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"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\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.1)\"},\"title\":\"Humidity\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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": [ diff --git a/application/src/main/data/json/system/widget_types/pressure_card.json b/application/src/main/data/json/system/widget_types/pressure_card.json new file mode 100644 index 0000000000..db557728f5 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pressure_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "pressure_card", + "name": "Pressure card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest pressure telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pressure', label: 'Pressure', 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\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\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\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"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\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"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\":\"Pressure card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"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", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/pressure_card_with_background.json b/application/src/main/data/json/system/widget_types/pressure_card_with_background.json new file mode 100644 index 0000000000..b7d75d7426 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pressure_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "pressure_card_with_background", + "name": "Pressure card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest pressure telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pressure', label: 'Pressure', 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\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\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\":\"compress\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure card with background\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"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", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card.json b/application/src/main/data/json/system/widget_types/pressure_chart_card.json new file mode 100644 index 0000000000..055e80730d --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "pressure_chart_card", + "name": "Pressure chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a pressure data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'hPa', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pressure', 'hPa');\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json new file mode 100644 index 0000000000..b0477cc2e1 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "pressure_chart_card_with_background", + "name": "Pressure chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a pressure data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'hPa', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pressure', 'hPa');\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/pressure_progress_bar.json b/application/src/main/data/json/system/widget_types/pressure_progress_bar.json new file mode 100644 index 0000000000..1c7c5fce59 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pressure_progress_bar.json @@ -0,0 +1,29 @@ +{ + "fqn": "pressure_progress_bar", + "name": "Pressure progress bar", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays pressure 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": "\n", + "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: 'pressure', label: 'Pressure', 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\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"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\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"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\":870,\"tickMax\":1085,\"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\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"to\":null,\"color\":\"#D81838\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"compress\",\"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", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json new file mode 100644 index 0000000000..ac4fd7fd6b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/pressure_progress_bar_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "pressure_progress_bar_with_background", + "name": "Pressure progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays pressure reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'pressure', label: 'Pressure', 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\":\"Pressure\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"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\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":870,\"tickMax\":1085,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.1)\"},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"hPa\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"compress\",\"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", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json new file mode 100644 index 0000000000..5813b377cd --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_pressure_chart_card", + "name": "Simple pressure chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEUAAADg4ODf39/g4ODg4OD////g4ODYGDghISHj4+M8PDziUmnHx8eQkJDsi5tYWFjx8fH1xc3dNVH64uZ0dHQvLy/nb4LwqbRKSkraJkSenp6CgoL98fKsrKzumqj409rV1dXzt8HpfY+rq6tmZmbkYHbgRF26urq5ubnfQ1398fNuhph/AAAABXRSTlMA7yC/r1EOHTEAAAS8SURBVHja7M9JAcAgDAAwytE3/tUOGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh87dqzqMAxDYXg6IAkJebDBJBgMDSTv/4Q3bUNDB8OdgkP9D0YaPzAkeEB6a0B6a0B6a0B66wcgy4o71YJUz7OHc1czmxj91oKwEBnOLMUopOi2FgQsBpyZAHDHVreKUAoD0LIC+7LyfgRwCVz4Nay4tDakquqqe/wFWTI8pYklOSnmFMVR05KFmRRKrJSEV8qScWVtSJSj7bxapRgZ3ANmCfAFMkPjSxj1A5kAiXiuF9aGFDuqHwiJZAM8Ap7cRWDkM6OKRMUH8hyzOxkurA2Z4pF+XS28IYuoagX4IQJgi6RfEFNVxjW1ISem4uwLMlGFPgJN+xQWR0hToBn2hsAzB+sHYpRqA4KZKG0wEjKwpOQMI/IDwrLP3UA0SRa0Cvw+A/b4WPCJL2e0IWAvPX/I/w9Bvdeb8A/8/d6sAemtAemtAemtAemtAemtAemtriHmRCny3SGcyWeLQo+bQ5weh0dvDfljx9yWk4WBAHy1syGRBIKcEX7w0Nr3f8CfZWOpI6XWC0Y6fhdkXaKz3yQbGN9EwUEgzapFDhIchfDWLBJvwREIf8UiG/E+dku2QhEv4LEUHPDe2qxNpIiFOHgUZQYY3lsrE9kJs/NjGQC8Xz09jHx6kX+74su2kdnQHdIvYy593FvPLRIY0WO8zwXZD3JGxGUAcLW3nltkK3wv2McZMJmEbzCx97BI1QAT1rod003aXNJ1CA6FCTiqcKC574gtaHgXb+7jHr7Bi6VHQymlKbzfiIQq11yYwh7rCtM5oh58LKdvREJkbAo/4rsjNja8PnKml6QwWyPiQ3+Ru3tFoi5HVzB0mOvaoq24YDwnLc3I8VT36byaEDkrpSxiDT9hzEWooOtsI3ilkZkfUCRFGdwhwsUoyyIfiGl/zbFmqRCcHplFdPNWJKLvnUlynkCULsiE3GbCwJ34Qnr3rUhdgULt6qJ6EjyOdVM6bWkgWycSJkqlowi0iA1ApY+UnmYzHqp7I80e7mYjs7ub3YnUmNOg8UyxqtKx8Qez1k22SKSjSIMYQsRpBRPwW8iDBMFvRTRaN1DqRL1jIyCasD3h6TIZddRYVKNI3Y8kWFHUzrTIwzwuckZUtc4p5OJRVeDio1s9EmnDsNVIqTZteAPOtcjyIhYVN0FIqTo5InZfj98UkW47FO+wVGsSmWuR5UU45QY+hNMJkWOSJN0gGykkpkW2MSwoknKzd6gmROCIyYRIBBcsnkL+qakFKZcUaaguV2nCxw8tw9F2rjfmRD54F06KbGIZLCbCZXeDTst9DKCp0g7zaEincyIRoqbMhMheZB4sKlIj2pN7FHT9eBrKiiyHFma3luJZdPeaQmQBLCsCqUXMuwoITXFNUZRgH+pqToRn5brD8807xiGAJUSuiaLqS3wTzlIN373x2MLIev/E9ofz6g+IHHy6/gER4iXyElkLL5Fn4yXybLxEno2XyLPxEvnfzn0TAAACQRB80tf4V4sCesKMgxNwexpDTpNRxhMy2l33io3Z34kgRe15u9JqAAAAAAAA/GYBBOmvbsxu/swAAAAASUVORK5CYII=", + "description": "Displays historical pressure values as a simplified chart. Optionally may display the corresponding latest pressure value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'pressure', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"hPa\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "pressure" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json new file mode 100644 index 0000000000..817dd610e2 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_pressure_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_pressure_chart_card_with_background", + "name": "Simple pressure chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical pressure values as a simplified chart with background. Optionally may display the corresponding latest pressure value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'pressure', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEW/ydSTqLy4xNHBy9W1wtCZrMGVqb6QprrP1t6brsKWq7+GnbKOpLfDzdektceOpLqwvs66xtTJ0tqzwM+nt8qywM3N1dyJoLWfsMGLobdgfJCjs8WRqsCer8WCm69/ma2wvcvR2OCXq8GFn7agscS7yNS+yNLH0NmYrsOpucuUq8Fsh5ugssbL09uKo7WZrL6HobjFz9ipuceLpLyNp7p6lKmCnbOhs8Ocrr8tQVOrusutvc1zjqKmt8eftcqOp751kKR4kqaLo7mWr79SbH+TqL8oPU+GobRsip2Xq7xnhJldeo5BWGoiNkZif5Osu8iltsSQprw3TF1IY3i8x9Ges8eTrLxZdYo9VWiyw9Gtv85Yc4aKprk0SFkdMUCqvMycscZ9nbklOkuUrcSatcO6xdCascGturmIpLmDoLOvwM9cd4utvcprhZd6mKutu8ubrsRAWm+Sqrk7UWSQp7eitMhwi55ngpXU2+JWb4GluMxkgZZFXG6Rr8BEXnOkt8qAm7GVscJ9l6q3xtOmushxjKBtiqA5TmEVKztUcYULJDScuMVNZHaht8uQqLx2l7Zoh5wySl4vRVd6mriYssZ2laigu8hOcYqPq71LaYC9yNamvsqCobyou8+oub+Go71ObYVLZXtGYHWwvbxheopykKMNKTx8m66Xs8KBn7hRaHqFpLepwc2mt7tujqK5xMR0k6dFZn22xM1JYHK0wcG/yteiuMyjuMVNaXzCzM2ftsQvR1u/xcCarrqPqcN/n7HAyMd5m7Odsr2tvcJddYSywccmQFVxlK1Sdo9YeI4eOk4ZNUmatcl7kp+0ydJsj6hIbIW5zNVefpWKpsBngJA1UGWtxM6jtb+Lqry3v7s8XXRgg5yvxtGAl6OgsrXd5OnJ19/a3+N1mLCGnKhmiqMUMEOot7ZCYXjY2tW6yMyZrLXk6u5YfJU3V27D09u/0NjHzMjO0s3O3OKis7nV3+Z1jJmJoa7Iz84+Ynvc3dePpbHT19Ls8fTN1daWp6/i4dgmsrFsAABOSUlEQVR42lSXzWrrZhCGbf24kcGKZMnOCYrAUezYEjKNY2hBQjEERJep4WTRbuJiCiUUpI0hdJNF1qddpCuR0nUvwNtA993lAsq5h15An5FJejq2Zcm/mud7551R4/Hp6btd/PHdH78vno/Wq+vrVbmOougoD1ar1XW82Vzcf1hNgkkQlNf395t4YxKu6ya3mqaF7IaOpqVZ5mbecOhxvJmUE0Nfzvf3l/lSIs/zQDcM3Y89b+P78cbzEsccmlaRaIpid6r3jVl/2p12+/3pTFXVTqejVrYtd7Wjqo0te4rGRxVNcfhSalkW36s6W5snzSqK1NIeHmzOQw7TMDQ3mzC9TS2ObVtz+Ph2tnd89/Hu7vhOguc9jo+JPR5sG4/f7Vg8PgqN319enqNoTSbR4ijPo0kZTEBz/WGzmkwm6/VkdeHexzHZZmYWJhYnZ1mh6RaWprnwGcae60LJ14N2tNyfz/fzJTyWOdFut/LAgENsbuJh7Dr8ClkpDVuz1dl42t/bm0770/4YDBKNqtpWij2qKpsAguNoCuydIkksciPHLSjql9JU4PC+8HJA4Zob8yZNbx3lwbZ5obBsddy/+/vvj0IDApAAxe4BCHYaEAAGJP58fHyEBTCOSBkU0eJnWcxgVXJDHatgHQBm425iDyG4YQJzm/XqZaabOlpqeuZwyDscxobeboECVYgsRBx5m19rBXqJJmIjMMyB62ZFUihVw26onel0DxT9fhcU6nsI1KJQJDm5EWQvW0QRJpK3XSGKyq4JCYtv0/p9xVYsIcE5Wd/eOg/2g5amhaPZjW4fVRB3d6/Z98ddFmAXtSp2LH755ZeaxRwUVMn6KFosyGCRowYUUZariBAWscgCEGlP0+xZd7xNOCxqdWQgSpBHrJclskAROxSCpCUo2kGJcuMg0L3wPDFRkGMrowblIec2Pe5Pj8eqqg0cEbYIwemRtbMjwQ5bUITFwFKq7Za7Im9SEil8HIUje6tYrkSYfnv7jfZgjxDuABTjPrhFEzUEaLBFjDy/oiBAITB2LOYvz8SvUQSK+WKBLiZRDgJeyPMjdsprWHgZKyMoOt1+RwNBIacoIMIQ9/B1oxRhtJbL9pKQGhEYbV0v440UkO4Pw8QzY5MfOYUEJzeta2RvpjasYtBzaldANgV5CwOCjQT/wTJ3tiMbUQCAdQ9JHSiwG80qK01CSNQV8zCqlJ5j9R62s/GsW6sBJH3+CVtSVVTBKzsUlIYAAAUsaiy/vzwvEMZzebSABIrGQ2W3JnMURSKQEhaFLMeoGo+3dmgmLF8CCAwEFN7G0I1J6ZfGsgmKtwCFoZfirHpAicT+0M8Gg17VQVvjbq3WMaJoKL0r0FqDIpHVFWuQox0KNrxS9BQUoeDWIobwHt9JHMshtrNKQ6F1EYklj2xFYoT/zkAAbPkfbrPO6WkHUbyhQA2E1AhP6II97GLxvD6aCICIRVxFORh+mJ+dzRGJ6ML3y6GZWIiiAnbluGbCGiZuWIiLYJyeXwLDN/QWKJCE3PcvhYWh6waGgq/STnyfnyGrxq5ndDhVNCEozvmtItzVPLtCgpuEZg2gUzj8tQYX/i25MVfYV5imkGBxqIg0RBQcQGKE52JHI3UqOVMefUjgzt3GaKT28c9XFo0XWOwQ1CjY++MJ71xEu3YalZuffoIFKM6IeY4qaha+F/YU6hXWo172ZWY5hYjU8zy2bgwJmmcZtHJQEELiEudoQ6CMgYVz6sAauqDQlFNa5ul7dTxrNBqnNL/BOQT4nQ3GBAzxhtRKB4NBaokphsB52FZOepPSNO/NjW/EZhgiGFwTFTg7FJCopA1VjUaldo8xTKyCwuhTItPZ+/cqZCDxhgIWOxRsJaREar+IntdRPikvwt/uV9FiPkcVyALrkCYQk3KqVdsOLLYpE0J4Tt2LHjgnl07il5Aodb3dzPfBICQuD/eX1EXp8wk+p7dan/uemyQ9hWVTT7/XnJ6jfP+9Ij0g8zwTDoQvLGhWBBseBYzEIysbKPcbIi5xIIAhkrrhgiJJ6hED6WCuiG68J0l/5IEzw6Lbwa2nx28kBAXVIDZBvKKAxYugWNNTo6C8/+23m/vJYrlYQGI+zxmzZKk8jNOpZuMOoZiUf8x4xWThDb160qI4cBlDSmS5vDw83D88PDu7XObNFrXFipNj0GoZppecD7CcxkjRQFGQCShsJ/HiIdKLWW+2ZnjraG+WWdtH2qseCpMSgznGI2Yc7oYLxQEYuzQPe4RsVe7du3/u9rpTMhfXhMRYHZ3OXkesV6/YsZAqkXgtkQV2AQvK4eKnm5sPZbQ+mguKZc7IhSJB8fW5pajj8XjWUc7ffTl8Zxi+BwpOXDxgWKPwh+ygC1gcnJ0dXO4vm83AF/X4PiiaARlcOYOeUikwcLBQWVV2E3Eb1joWy2HFSS2VDEMoIhJRh62EgNKDKMfApEDqnkFYEs6rKlRiNt37+BEUqICcsehpdzbbWSZBO92p4unphcfTfyj+rNsIVYIwJrTOi59++3DNZLE4Y1kX0WSFatEF+RSaTYeabbVMMg9oD0ybMVGWPBsEJLyhrzcpjpODk4PDy/1mSxcUMauNYJrtYTIYnFt2Ax6DYvCjAwuNuyuqgAU/CwuAJWg+lMLiBgmCDwEqkMEl131EIfbwPxQgldKTUfbu77tpF78k7y72Nu4y5AsJHm8j1vMLLvk6V7yGwJi/vIACDXy4+CAoymh+doJvBquYaxQ5O/fcsTsgHlmZb6D2z5pG7PMOJAy25AIHEgqCCBQHJyeHh7BAFRT/RtfrsYMSMbMrrid6ybmZnV8Vg4HjYI8uH/H1dtDOacAl3xAM9zgM1uBajkjktpBP5EQgw0qYQOITFARYGd9mdZdGE1N2GCc6DdhApyZRb7gJivXzy++woIf+h+JPWPwh3hlRI6uLi9Vqsi6vo9o4qRC/nEwMGb6zosM0MKsG2TtZYUof2RtlLJYJBmmDdIp2G0oHZ4cnJyfiGftNfegxeLRa8pV2S3/HiNLrWYk5/PLqChZazxJrdGszqYd1Q5wTQeAvYhyCgkgTF8w1CR9CgEAGKEpYFFYd2PCoM9uDwYxOPQYAPGjcckT+dFLZsCcwGn+9sfhEFhSJXJpRIc/zxWQFimh1wfR5WbdTuUIt8YUsS0ZjKlEp3FhvkhfnJD1USNQswiLJTJ8m8tny8uDwqy++2G+CAhaUjQEIfCMAxdDMkuSKInuXXRW9esZOQOH5gQztDOuGaMEUEKWIzq3dEWXQswWFXqP61q64bqm/nRYFd+TFuL2V7JlZuKts2KdgxDwI8VA2RK2Ki1cWT5+yeJ07eWt+tPq1nHBVsjpaiC5wzqhdlvgFq2kpTJtVL/F0yoNz3tW28DCwzix0s4wBotncJw6+OOEzLWqkZYAC0/zss6aO29J4qI36+v58AAoq5FxUgCpqFBP6LwQQG1UFi9o1ud/QSg1BQf0kqdKZdbZyQS6QwlDqBRKVSn0IhYY64lKHjteQeQ4ShAwYn1yO/cul+bQ2DYdx3OiSmvSf02lTsoJmrbajkjYdS1hJB0IPO9mCPSjCBl6kCN1ll1568KxedhLFsy9AjwNPXvoqfCV+vr+GgT5qm21l7vfp9/k+f7IPhoWqSK6LP59+SxZGGLgnTnKMV77Zxzfbu8dj6ml16ti0zyr3izv3buCb9yqSBQNG26PtCLnggARVJsNQHYOiV6xXOXytVi+ELpXSlrvgqbYbBJQecVgs7iBw9dtE4HpSBQkAYWDwSroyU1pVSzRnrLqoQqJhMn6vyt76AQqJSiY6pDCRDHdF4nGL+RcWjHjbjzV5aBxjQ4J9cmm43Pjw8wMsrqgi+XyaZ0g+nClUTOgx3ly1R2ez8ZTOcWyMkdYiRtCtcnk7ThoeHQenhkXoMXj6lcy4fUDO6P2vFur1kmXVS8XDWtUBlY8pWo4sw24mgrFYYBSU00W2o8EXuvxfmmmVkaolWIe3Ka2d0yNtZ0iakC9pfaLG40e5/JmJI88v3iacgmzol2+hhPKt7Rdmm4GRPoGD4jYoWBblCrlBeZAwrh3jutECxy+EksM4fnPeVo+xaluMEl6btO3yrmcPaXN/lFtz7BHXZAATDFoerJHaR89IBXFxCwfzrFquWyrWisWqg6x8HS20PdRkFJQtVEJwl1grMly04RkxSRf7WCMvVzUh8bRBQxLsTVSdQveCMosIGMR+cFZQIBheYRpv8PT7SAO3fLytPnb7RvnJprXS+dEFKaILUKzX6w2Mq2sYIqFAFfTjBgXCYFptn31dXrSnH5kkaJ5WAcnN5gUSW4ud5MzDKyDEE4EB6GxBM/EbDfkCx6b5aBSKe8WiGnAAKTwPxTh26rrJJABtHDd9UmUICteZam4xLKyxigkoxMJsjliYgViaaqiiMKsOt3AK07UvlCC0m5pBMIa7hOY8UoQcKfcfbCYPpJFD4EEoLi8v1yNCjkFsYCg2itD4Lha9b4MBY+p8vpyNB3qf1Dk0NJ62+nc/b9ECk9mW1704byNjoeBAWdJUUE7wUr+BbmyLRgsWJct2FY5H8tB2RU7kpn6FlKv4frAgUTqooiAUgpGHUKjjwmdXDRvAqrSY5hAWD49OTauKbw4XR2awVzKIhLaEGMPdMiQQBfubfMEpHCKRo3hDQOPnz/XllWBglMDIUZAZyGHwRbKQLvaH71+ehlPVEI/sBQfTeevJD1Bgcs507HbtBgrgqw0zj6AI3zcFFiS206z4hbpQ1Ksqor7rRY6DlRYcK0qdNAgwGJqOuLOIVUsLjHBGGOIhdTigUA2hxQjJMYdPYKRBNtzaQgoo4yEsuEQUjKmQUH48AQWHZj+RkwCDOChyWWxQXBGikQvDVFVis9ySYzKMHKuQvB0MdsPV/OVp2zELKaYJUpcUX7zfnjOWnlP6rJDmi10N2cBQMEkaDd+X8Xs2RFLcsZI4tJwqJTQXYpRiI1gq+FJfCZcpgh38wnfp1+s0ZaIhcUxJMlSkYtI07Reu5KhqMyNrBtOYtqCVYJ+XyTSVHmortUAmMIsXWtVoRM1JgELxHwpiPVpfGhjfxUIoJAbD4mpAfrDDaneGLzvnYTi2WMUQ9M1BfDS8t8i6TTJjWmBUoVemfUAW6rwh0HRDT9U1CWLE73tIABal6omfpi6gaDp5PZ/1Ex/lT+KjDCSBarAmWlDwCIgC7B0ZrTRmSnGoC40ABsVwh1io+TrCStiC3Ntu3cg3V4DAIPvlJ5DQepO4JnHdYQiFYcENEJnGegMDGiZFJAszsYvE7m57efr+lPsB3lgg6BwLIcqvdJC1a4Oi6rXZT4yRvKM1P4WUkDdSXJPKxOe0qCNyCjQXns/XErKGBsyKMIsUbAGRZU1KCgXGqj7jdUQPHIb8WD4pKVCpPLlV0OWBBJlvqYBq86V+XJWUFby5ifKEQ7Ky6t/dBGAe/UMid00iRyEWoJit1zmM6/tEgsGMeszD7v5sefpyfsFo5jEPDnr8gFbbUy3snoXUAv2whWr1ABT0W21hCE2ZAAwM3OjETZNJEllWqU6GRHYKGCpIyTqJogiVqCuj8xQQMarWawp41AwMJlDbImx1Ga7Z6gQEd2Qessegs5VbaNkMk/tyUO1sTB91i/abJw2kOjs08tlcoHIa2OZ17GIZlNa8+yS+X8NgtynXPB/OX847Z+0ZNdOavu3taRdToB1UuaQh6vW0rRpsWKAFiVkNgTTSlBpsnziJ3FK9zvHtKE2jE4mCSOmz/ERuAYok8F2nUNI4u3doRlozvIQmnyyS75xvSAZ2DYoKCz9tMpQXCzyTPoPKSrQkiz6dBWPjU0j0RYJbcLkaiLzjzIup4mx9eflmVyxGH36OjGUQGximxcoTZPVqMeysZg0GtPH0dY9Zk6hiZrTIlD5+aAzu4IA3UFMnSoGB63FlBhPHcoMKp4wSq14vOBzfhoQuwOQ3kwl/g2ySBUmSYBXVOiiKe4eHe1zIaUMbtyT4LpJD1/T2XGedO1sbFMQRYTyTuKktlhwDBoDo9yHylJMzpHIFjk2TJRJqsWQQs9loBAAzkv/8+lUwpAwDYxM9w6I9W652lp2L7uxiptVvb48/PdrPj2aNC5o9GchU/8RC7gkKDygReaK3PqajfP48KHAyCmlEspwglCCNUpwCBoCoTIJJ4Ms1axTew8NibYNCldNDZnQzO0LRaPqgIJhsh2bJDAtyRfdPpYjN1l/bQmlDK3Uqq7Z5T5EJlSVnwEOOQp03IPh3JnkIxdclWbJ/dXxsaOQsKKaMZRer1Wq5Wo1Wo3B8fMDhid6z6sGA+d18wKpqCgscHxqc1W3bPHEGuKR2msbxu3fvnk9wiILKBhniBwlWCgoakcRFNElC15k16L0gQdSKfNcaKEJaei1K5ltHIqC1oUkRzYWgyKSJh3fuP5RPaNeNLO7fZ2ex3WLlDRshMbLo97XlMyxySfDMOKbQI903d0ZHH0CBMABj/OPYtOO975xUbsG95AttmTur9v5HyYKQMCChq0OpGeMkWw40hnp6Iy2ZqENQQJLJJInjiU9elKolSyhSPuU7KSh24iCl6eTNzt7dzyJqFPlRrJElh6hiasuS7C5GQFsuZ1VApgKKTmzuZ1NBtLsSCG4j6DYAKOg6gSLrEAsFM+yGhWIjDYNiuTSHXy6BMYPF11evzEcjfrlAPHYxDgUoSBEWOfySwehixtZEKPLgQiQI/KMKhWfVAo8e4XgYI1Gw0gQBnJxM2E2kJ1EJv4hSLiZx/DxLQBFngU8OUXEnoPDwiiIg1J7CV3NPQ4UjZtmX5SQIkx9H8JBd6gYjNxBaNz5rLdFSfhDKE00nLW4ClTWfSRVgEYpcGgST6V+mza+n7TKK4y12VEo3nBsWJra4UQTRdqsUCLSz7S5KMdkwQRNIk5IYCDRlmoUV42KopXBn44VLFhMvFy9MFkOCS0y88dobX4H6BjAxvgA/3/M8Nh76jxb/PB++53vOeZ4fRsJ4AOMDoajXl7790eI2cPCNd63F2hGL61McE7L5O8WO5ZhPix6QuVarNYdIZJ4GpF8kQBENa0yPDFA7R4cWVi0jwrFoMA0LbeM1MvOoI0+C8D1V9dXx8Xw6GhuVTYCCx7BmPRb+2siE1Q7CqeISakAkZAeasNxIgkEkAu6MUAwEgmD3xp/DcfKkLU4CFi7kFT+CwXAQX94mQ+obUDl0MGQkm+QJJHZgMcahKR0lN06Tu++8UyrtCEdPEy2+HAxwuAZRghiKwiXMyoPpcDSMUS5UgqODQxXWPY8olDJQAQL9hzCN0HMu9EOBxIDHIE9Unwk4aCP9E9TBdg6CAAVqgATT6fg4xsCSkT7JYSeExoGTQ14zj2j/JnAGDCKwJhRGAk0YjcDXsk2fIkhDauDg41sQwMhCeTPF8ZimEB2tQwMc2lSEjwUwBMJQSBfoRLJg9V1u7z8I0xNE94NwCZMT2ARa6I8ODkYrC3jkqoKsULuZxjNkK+l53gAF2z3RmEItmQAw8LvmGyJvXcU5hSJPZ8FGILaguYNqAYtJqcDEABY7NEUMAQUMeFjjbNJI+PJK4/3Fr6ya5ffShJiukSrE4Y/65MfP2Pz/+iP807FAGcBAE7zsseiRcCyAAQ0iDAvuapGCjKHRFJUgGkUd0RiDSDhYWQCAv2GhQOBOga1U0pUoWrCGE8eIhgWARj5o7ZuGfjaamUAe5kGRzywNXxnGJySKWxTOF0AxCYIkQfVIcukOucFuxeTkpJKE0SyAVXgWL1vQbd4WC4PhQNS+rS3VlCyHvId7EjiGztVxCwIUXJvEt2OweH9Wb1mGCIBnIfOkVZZfVEVDv9pwmlqCDw6OajHhGJpIg4TuKrj/IA0RNZ5BpZFlFZO7siOKUxDqyCIModev6wcYQkgV7fuyQwSKzNXMS8PDnKC4ZhsS5EJyEr9g1aJA8PhNAC52d6Yp1+SBsKoScCOpVouBShW1Wo3LVWrT07Vp40EhoQHjUqwxWOAYsJBjiAfvQILwbmHaMBS7sepsqZRSlMI4BWpgY5OFxfUbHk2loqAIIoGf+f1Ho9EHSo7gUJifkMOCYsgbhVCYKmg20UU/pNCH7YFzaky7pU6djpvssKppC8UWJyEBCq2duKyawnu6w8i80zkFIQ7gc1s3BOt1eVLTZU3r9Xp9Y+lbjwIrpc2Yknnu9MyTAIcpRYTEwluGUNwsVUuYZ6pc1vTA4lmYpB6HRQptQEZ5QDoEoxgCiUJtsYiSVhhsUABGGUMGLaJDECAv+k0zOo4d0XkpJyo2ttBaYRTWQLDei8QLcoS1pBKCPNFzQGHfBVxJNQ4ehax2bMyz2Ny8DQwcVKpYXwfGkq8pLmgyZJ7WankW1xFFaeemULBwY8EjKOBRmi2NmkqAUWKBsGArr9WKx1IQYZnhKMHCSAH9zjFTOKhS6INwJCwAqMJ+FiYRDh2tWxPCCO0Fo6vOXxn+88zmiw15pkPxgrYmbkkYDoSABHzwrVDAgrFEFEwSHgXhWdiv3+fIBklCSZUsXGP+I5iMhZb+rk8Q+k0QoAuI7AgDj76m3iA/yjd2ZRupVFX+SfdcbiUSrUFFYjCcIhlgEOWL5YsIliJNCEcw6vLCUIgEW0SLE2kNNkLBxXGv9ss1MAu67sWPGzIKYlKlQS2UKkWA7y47z/Ch0mFmAQlAIA2CR/lsb0jftKZbTYaLw+lajUcCFMQhpeQDazAQhVAQFBEcAQBVtNGLMjRMDby059Qow2p3tsyiWolWIk6SsFBRwDPCFlFWHB+MpUbhg0UG3TuuwaKroKngDHHp1QuQ0O65josHNOUwpNJqZjLuMjYFIjDjVJ5AwNULh8Ilie6kkDYwNKJJII5EgOnchSSBW3zplXD48PDq4W29pztADskVCgnC8PmhAoIqsARk0WNhrafrs2I4xeCNVAl9wAIS8XiCiKOCC1ZK91mwLRtHiCeEQs1ULIXRQkKBSuSeYU6Nni91JoQioplfZythje0jpAdXPQpFn2cBCi1frikNvGDrNYVs9a2tCYREocTgAyPBEy15QFMYBUQYFMoPY+Hs4QNiU5AeQoO3rawKA1+gIKo0EIZiByQ8gME5Z/kG35MjGGgVFineHywDI17uHxiZSLNoMoLTMra80YhQxG3xOIVKDuT0hjwXmYyMXBi4lJlAEJSRCOdAENHu8MB8PsMh9b1hd9WzR2EUvBDUU1pvtba2FerbWpMoeE9hPRfZIVKa3jR5qIj2ggJCavRQbBJmIqSKIaL3/AQWVj64IQuKRQlVlByK3TmPory7ewNdlFM75bnd3d1W4ru51NBQKjX6gM3udExrV5ZgnORGvCVKcUPh+hBI6Fu5JKP+BY4TO3nb1tRWafB9Cq92tThQY6umsbVlKDR/aq0s2CgIAY/qqNb6QqTQmquxUgoAPBR7lRQKHxs+6gTFAwUopAppAxqHLvhgkx4DGgSNxSyVFE1oEpEQSA9gqONUpGAhoRCJRDur9GCxNEv9o7F2O9GOKwMG8dK4Tx7yBocVCYcmhjXaxmCFhttO6Eci0FG1YTNHKFa5VCV0+YpxmCTMGlmykeBpTSFU9B1b+pibs48eEyuyhmKjFygCFOuKDaShlRsRnybs2zzkzkhiVzK6fnMWGNZY7oDCQLgScrNawkFTmOfuXCtB3M8WC8VilvVJCbFyvM13WQTRhlFbHOIGisAfDE1caOgz1Wr303r3p7W3CQoNJnyCVazOX8p8bCO4BKE+k4WDggWLhChs2YOGdVOLL61wsBwxEtZ3GAJoCAhqUFMBiyP6CmBYSAegAAdbNrINEucT+adEoTBlcCc7XMwJx26pukOWKObEIZvN5U5OcolWu6VfOQDahUKhmG0XswQSgQPvwyI1SIiE3sJQIPcgciEYxjDxWOqytaJMvro4Yd6u2REKDVhUDi52ZOEszQRhGLgZECNBS+7TRn7p5fGNZFGvOz3wZSgICePoCBoERHjPsgVBwOLL26AgzD4diq7VFMaR6g7K0JdNJDuzN+d2yzEsY+67+6D4IXeyvNwsZIvxeEvJkc0Wc4VcwUURGHCQc6YEChJtRGF2oYrreyu18FINAREOXicopjaGKSFEggvezR0dhC1hcSACFnQZk8JgPwwYkTAWmIUWXucuHDwKxZJj4WNdLTgwtMF7lSe+gAEOCQNlSB6EZcxstSrrtFQpl7qkxi4o5lrfQYL0AMXJyUkhEU9ki+14m3dyvSBZrOOwQTQBqfvoBBPhHVjsa2+QPJEoooSRYBSZh0SD/Rp1EyyKIqFtC7d+isqpiz6h0Np7YROZ10dSrzW5dg6v1p0CRAMUqiAbL5lhhNZFxCuj1lmsTWMf3CkkShjyhB2cKRryCBgsurOzVRIDIjdBUQVDObUrEo8fPy6eHIvFcYE1giIBnGIx1zxunhwf53ImDCUEEwofo5n7fJ8wOBpA0lM6Duo3IDp9xz7IjtVLNJr3xkOXyQougmU6HRcZF1fY2OS1cSF5DIU9qMQkTSF+TgUHU3u91qkduQVb+BKCLlzwpyVHofX6Sxu1RXBwyWDn8PAqF0GJBPEJm3vbDkXXqgoNqKJKUek+mVUtLbdwCnIgd4wkmthFET2wcu56s7l80mw2BQNdDNKa4iRAMgNJOCO1CzBUQ3UVyxQ7FTovZAzhGDazyHbgsAppCEE07hHjw8QVuwvFmlu/emx6TJcWxJpPFFURRKGZHgYbIbEISQb64oVBtZFMurh8+Wj9CpDQCzA6sOh8ploCDMPhZMF1Bm9GlCbdbvdJV/Kg2SZTUrgmKHLPnp0QypDjYvYHMwlWD4vj42ZzZrnJc64IC00doPIoJBOGMzttDFZ41qnYwBTP2ATZYVctgUJ7WI5EY9zFsBE5XXvhlo7FmDlsp4ZlJ/FPNERqiNEtP5fiNR4Cf0Ki4DRJU6zOU1BDHx9QgviR5JEjg6GgDHAovjRpPPzgrc3NbZRxPdjtf5Oj5TGhGIMGPKoMazd3kcXjwrNn5MfMslIkJ0U4o+AFj8szM8sz3I/RBWahMgsGrEKmyaASjIiE8mPAnUgTOlRsNLjGVygciR6Khofh/3bnbb9dZSRUVxARNkrphROhYyI+ucjaWfQR26Bcl6GG3D3z9I0+CUkU2hgTs5DN7os1gnzpdJhMbudJls3tqTsfBlFCN3LdhEHISbuz9N6l3bnEd9kfnj7NHS9/tbKyggByajDg8VQewTe5GWJvb2XmuNiOlQdlqwkg7JbZxsIyIXE9jUHwgj9UNBDIYuTVq6z/Y6WEwqFoCEVPFpwDBISC1QrHLSOBrfSd9lE7NJzbgbK7pjdwzriu5WMgZzpH458xgjzpbQ6VCCQDqaTVE64g6JAokkeHNDnsdC69tTmlg/QwKPiDGtqvD7uzsOASeXRBib0xh3Gy7mcnMysEv/1C4X4C81R+mGM0l1f2Vg4OVpZzWZva2sgjNaStry77w8zi2wORCijsmC19Pc0DKDLYASgaksH/EfhQT8UWJsslGNttJLPSwhce4c5B+BILrtt0G742vJ/BictzXlH4M2ZwSB8CwTO6qC9lVt96q6PGtIYs8oed6Vr+oVB8KBTBO3e42gTbePJEKTLGgzz0RiuRfVz8AbeYEQycwZIkV8RDsAiiebK8d3D30UGz4NoJa7hSsaq2MoQgUgmqlLrJlKlMl2Po3ODeYgYWjQYwPAdfOnS5OyV00h0dXxQFAhB6xALwhlsEa4eFXa4VAAJhh+3Y6y331yI+HA9d2//NxfPz8+S6LhzlaGvgg5p6kQ2DoTL7fOQO/69khar/1NQdazgEocsTNKqyTvwiB4uvhAIWzeXlmad03PKKAp6JMA4ePZo5LmRllm0VVnMKMiQaNg4Pwoz1KqVE5cICwWFzhhAMYVBYFeXu+2yWJLOcdHpwHbmDQoboQ1HwO94gUSaBwl/bCoBPCZBY2IWe5xc5gX75bJ3/VIPLribyG74RqbmWLDM/gnA/jEwR29t37tyRXxiKJ0/wjiez1e/nWvfxCwoqfvHVsvPJFXpPLONxMZs75q29AznJciGrtpzK6iZVWITBoNs+zRVYHoACVUgXnKDkdc7oSHBzFLBF2io7InXDOCTEwfow34TCSTBMF2arAfMFZYTi5Yu6JOU/Cv+44A/PhOqPt8+Tfaeh4RrHefn6EeFrCvJAF9v42MT89sD2tlhEKKsRpciTsTenvoYL3VYLYfzw9NmJOChP7H4805yZyWWLzZWVg7sHB3t6q5iYs84CZfRYAEDnze7AUSgq6QV/npQ3FIoGMPwB6RaLt6X6cVzDqhvVWMNpn1CIhbzT3JOMCLBIb6EKHAR1BPhXvvE6EDyLv19/+Y8/yDeMNzTc6Fz6Kb9x9JvKiwEhkAfHWc+Jn+YprJ4Gt8ibSGR7O9LtVuk6WySJwRCGmT2hIFd4iShwimvXrqGLvWYROYDCs4ixyTe0D4IowbOds3FiJBQjQtEThR6cINaSygQkIAy+pxKZra1T/Rh/rGauwZvc3WhGcREAk4HPB5SxlRn5mfPtZN/WG//88/vvv//z+6dbIf1VtM6fyJD88zwd6tnZb7/RpIEkSV0BRaexhHdA46f5n34SDsdED5+rlOzYNAKMwrHTxYyvJtBokh0Hd+9eu3sXVRRIjQQDvXos04WEIdMwUeyrunJ29nPao3BWYX1mg0Uaiz7zBcTBQsmN01AIPaCIK+P38JYGL42YnvzMSvIoEf7sBRfy8YfQp5lfKsH9/crIvbMX/zhFHy9e7qPzEPaN8fHFzmq+lp9ePyf+sjg7Gs6sPm8w2jdqmU4GHALiY1M8PjQW35fLNxhTHz91SWLaWD6hlGKjzZVH1669d+3RTE52GY3RqjtZKKDBTUdHD3RqAgqRWPAkYGCNZkPH6CzMD2J9CtvJgYA31fHMKv9MI9TH5w7YqQs+CxiB3y08jbdffOOF8ZFKOMpJzcJqZvWlZOCIlvOyoeAXsJh5Pp+ffz6d/IM453b+V6h+r1arJ89+W18frtcbDYoKoS6dOHwODmBYL64uI/GYSgIN42HTR+5ptrj36Np77929e1As4pvqsrBURVtAfAtumzoORcU04fPDVG8XMlsvqRKCEMhnGz3XToelGfTAMbUqcGP49HQrydgBONxvWCQ7q/8ycX4xbdVRHC+KQxDUaBTWEHD+RTvbiCBEW6VcTWlJcAZtU0aCD/XGQcGsqa1L07mutyQL2vRhdNW+OCKBbITUJaRJk2WJT5KYKbgsRDFjT3tAS0LIHgwPfs7v1sQzLoxRxr2f+z3nd37nnItFQdgV+4/FsaeP3T2wXOt2iHcixTbjTZCiQTnC5HPdhqt8QsLFU+md/f19YKTHwmOKzB7JK+HDtPTGRnojzTZmxahUQhpLSerixVRy642lEvlWRmkh5lwkxZLSjS1OrMBFpp0Z53nZnLpJv52YbNw43BI4sPutKlg4lCZcLkCoZEK1xtRCoSZtOFTp9wXCJD4NA1rz/WoQ0DV27ZO0eIV8Se1cXCf6aNhadpUde+2YSaNmh4d80iJtTIK1fDuv5jEXMpowVdVu7vXY5PsMRZT39g92dvar36Zf2DGD7MNVMZxmD8XsH+zvVPc2gmOGUaxU8hUjD5NUj4cASnLlzGBOSEihL6NUIS4SW+z1HO3gX0lGM0o3GZCJepALONAGqjBJKElgov8ncX4hoa5OAGGSjjOaBIV+r1flaP3lNA+1ph8Ag7yMSyn3tVE9P+qxHB7eee2TD9fSn9zd3T1UODgOTaumXbrD4SXL7RfjZxsG22KJPJLhuYiufQxypqsiDiGogqzoZB+Dy53dOzvVtb1g0ZgQGkYxP7ecSqVeKRR63iDjwpQoFoXJ9Mjw8FRgyhrPODui9kcQBEY0nZ6OyQYFEyjQaLVHI97rQqJb4oR5yaL/Z4CB3OUC+cpn6oNLfAI50I+2qzENPaxIPBV+0+VCKbrWdKRh0EPW02l5qeWBevyFtfbhu4JAYJgoDnYeqA/i9ZW+tsZ+M6NhIUcdBjTETjA68xCnVHZNvrDDZcPBVJYopUZnf+Nm8GZQ1pVyscj70HLo4vLc2z+nxm8sST2nJDwy3POhuHVqaioQsNpisQGpbXa0goNk41Y8Nh1XJjCcbE4EBRNbSMLMuTGVePMGE3X1rOyuR4FQo0AzQRVLqTDrE3gSLsNUmE4PtufocyoRLpV+sdQ/E35LxIVd+/DFV4mgr9W/untw59gTa2kcTlW2jBNtlE4cjiaHycMFivD7OJj3yEO6zg8su7rD9dWXAFGzHSO4tv8F7rF3c8woho2KpBdYRUstp9pToblQwdPBKbAzkd16zBYbiqMJzCaVjPOyAfE2RRo6nNNE0ltWKyT4y7TNqVQBCeUcgkLZ+4JD5ACFNnyHP3yUjX1DjcJ5Vf/wNOjGhAQHsmN20oOtUkspyebI94fl2lOPU5Qh7ggro3vti7svPdjCr79It0h9jG2XpJLP99O7NisGZuThLGR8ystUKZ/qaIY4Vm7BtXjD57ojbdWdV+9Ug2hiIjxmuHQ/pvG2rPsLqbm5ucKnn149tXSuF12YiUbCKijWc+4YJGiNtGbrvHXN93vj0xlZZSXpiNtiA520kSIOMm4zoVALQ80T1LQb5+RQJkXhVmnFCgQ3Rydtqsf8Hx8vMyrclG0YtLOwy25gNZf7Y/Ovv9YtT05K84OQ+6RUJoIt3z5oOThoIY1YC0oBnHrmoxXG+mlUqrATJc3hqrkpShTeJgLJ8zBpggojhruHd17Y391zOaJ9T1X3qxuTwbHushFMjxkspxF/Vlte1gqpUL64spy6GBo/Jdqcl+iY8NVQjKieSEfvQIfnPvfS6aQQbhvGwBG3DZwnajKLUYsUJgPMjAjmMKga81GDfQCFAgaHN1oHBxuadGb7eEyXgVBa3LSpehdnc4nN9fWfLl26JMV/qXCjDarcMsj1zDNr9eHw2ET4TeaQVF5QkXLJkRoIaXaTb7SptYnlXZUZdf6GYPrCO4cHY+Vwf0RGiiaM4mT4LYOFVCJFRfOTWGjasqbNVfLbG9vbxcIpztPpnp9xx6YFRUBQWGc5+wzLC+vrQCY+Mu3ujY1Yp4QFKNydnubIdRMFLBQD0wCBL9QMLSAGKQPIsnP+HBMO2Vea9Mauj59vPJJVk2PSrkMQcAhc+k6Zhc0URhYAjrdkSCFN4vA+jkj2YLhc5S8f/bJyvFF3AALYmJoEkARHUCBEdEGJTW9irW8M71UnXf3eaLShTY9EImW2JQahskKQqOAYPT1+TUsmlyuVmzvVmyuprU7OddE9U8qQg49Yh9fXA8ObORYUGxazAUGkELMGWFmmSL8Im70dBAoxAnhNDRgP2TiY8zI7aqomBAMKAtJqAMQHr2TfY8SSEmxd9rHWWt+yt4Qg/kIP332D/frNd9IHAYQydhJvseUMu/jvTdrHj5tF/kbdK89xNZvjVeCIEj8xTgkejSST3rpItE6fCBp6vwMIfRNGxOsQAEhCQACEcFEoSMDQQ3O3N0QWc58i3hIrSSbH7bHCgnwzt5oZGhkZYB0l6bDFA1MjIyPDJ1llE3HbkNMtKK57EcaPCBMQnACSBAQyACwqkCgM2ngCpdmofjz3eruMIVNdYiadZVNshoTXlxheD6AGQfHDD/fuWZgoMeh91AoQE5P1QaKwPOPkoHnfdfxzXaesrVOtG6Q3B4ejzepdnbAw78iRhyo6JSz4RPQKk6jULbz95bIWiUbrvLpeNkL62BjvNCgU/FgolL+9vbKyfTvU07HkuXpjZn6RIkZic3MTXVh9s6WhhDXhjMWHp32xoQEbxa0Ra4DAGffJAtLMVgzj5yuvID4wp0MTifSVza6ZgsQTkrnyDUNuogTPjlNQy36gJj9wDfpTqzkfnnFBOGCX750+/ftZi4yRvAyM4GSw1gZ5udxHWbnJL33ars+lqk29zp99bNB+VFjYPTIYwVUqkfaRkcqdboiOj9vHG/xNXKpDVW/8zXbo+EUWxSABo1JDkdQqIbKtfL6Yz/vtN7ZIMGbmWc5yPuUkw4mh0qxv0+qbJk5wbdxi5yM2qy+OOIgVUU3zeiOQ4D44vNFm5RWEhUyM6x/hRRjyGp6agl0Cdu6Zc7Qs6esOqkEYQJQGZlmuTEGgh8sLZ0+fPn0WVXQxg/W19MwNoqcSBr/WrQ+f8Euxsr1LCvvUs2l09AxKvmb3nFLllCgLiRIFkbOOl0Z7mlvtPQ0RzPuQ1hTx+6N2ynGcul6+vVIpTxiCAmpJvxYql0PLy6H8SqgwnqSnemNpaWmGWJ7L+azDCT4M5RKJuJRyuMkUfiOt4i+Q6PQ7vJFo8z/RCJUs2sxQkOIoSqDa8b3EVtI0OWokZMfv7jzHrAMgGASipe925nyAuAAG4XDvLCAgcfbeKGNpyS41TPI5OCYki/hSouVHjfLA62PZZ7vA8N6RuvZ2VZez21tpeJH/wCJK0LwumQV1Ta+q5gqJaEOkzu/1Z7P+aNTOK/2aXlkBxYqg0NSR4kAcobmVopYMJQvJ1NZWYevG/OKqRPQE6sjNwgKNWKWw1dvjqOvojU2PWDP2ZjjcJxeVhZLYEMMnJAEDQyBw8j8LnAwEiLIJRDHrHDBTCiAQTEtUV3Mk+LiGcoxRxUGxWBi1vCMPWGPwkAhJF5Dl89GPdI3a5Ds9Ddn3qFlSmIMEr2kftI/bPRiyUCxIawECirpsu9alZaMYNywSYd0sNAiKcUFxu1yRJQQsWEpLFvwAIL3Iz2nFlXxxm71JcuvqPEnfkC+B5cRf2KYS105aM52yNHLRMVIMNY3wp2q2EhRu3fp+aurkyTNnzrxbsytX3n33DDRMTdCUlLxC4XCjrJwNRQDigukc4hp/w0EixcKCZeudQm2CRl2tPPlC9PiIbhefvK1rr4gcVIsH67Hbr0pL2KNWEQkYGPPIHF7t69tFDVE0R4RHM23CwqDnvqdHvILlFPOLm8MjlUq20xxAF6F8qLi9t1fdmNu+uZK8WirNzK8ODeEfq4urOTKf9QBxNI7Duzt7OfCHP1F4xhQDUhAIV7Cv/mdXQBGYAgUwpEELgoxaVwnMwyKeC0Lim3fRxMLZhXujowujo5cvIxDLb/+ScX4vbZ1hHPdusPkXSNALb2RCJvQYEEqriyyuul5UFmU5sh8NkrMfgcTi6OaRpviDkCLGJVkkFzOC5NgEiQtYmYwgjK2FLDVSJWwZDLfLdl5Nxq72ed5zujL2rTk5iVJzPvk+z/u8z/vGq03Zr6xf1dilS7D0pIKYY1pswsZF2ZNHlkCyW0A5gmrVQ9p8icslFdCIFiPgjzd73iWn8INSebh1Xdf8mtun+/0rbl/79LQlpXdUftgfs/CFJrYIJjILp38wlZXpfD2jF4tGOMyUABEroyJinnbn5btdFxc0dGiG2ytpTzqEw7CiUKnMOapU7t2/LyRGJWN0dICDEdUWdZpjByjk85AAAVEiKNSt7atikc/K9fXxGbFi6FITi9zsoXkvLui5Ils12Wy0orOnhg1ncFD7aexdQmJ/AkXp1pvfvhl922JpkDmOJBS3W2M0ed2NKTTOpcgkeZBTufHAldWaJpmT1Nn4g+m8fJ2f1xliM0FCpRqGBeMdA6xdbXz06Wy/s6A8xDwVEN/BAQhCYUw0yW1OSEh8yJtPXaay6ATiEI9DDgYiCNhn++vijYhofL2NT08e2jo7/IIPy+kkD3r1fSFGoJ635aMghE82JF1JhmS1bKWkNgk5vUdpLf3d3v7yq2DADm6R7pJKe8U7TdZp17xBUmWUrAcOv5ScVFveWNAidTac5gYH+jyN04YACRrhQnlnBE8zOGLr27eBMSs1A6HRMeqAmBMEkzO2JscqRIegeC47ifBP5ZD8/rjz9guDvJiCgw1ic/3R8U6bMDj7wdbZ2eG20NCLhqebbe2uV2M9r0pwXF3Ri+zLZOlTZSFWsy6LpAn15+Lgjzz3y29sjdBY8PWABj4+t8nF0/tPBYN+EkcUGH5Vqv4djcKChOGVACFV/IrA4aCYztUbjUYplrCa1bOdkSXmjcT4xEZcSiYSaccTnB6ARAU7TM4sO4KE7QmbxL9JFAT5e3kFYXNzHqnMIKaQx+TN+Xk4LKW3XbU2SCgUDoxD5NneVh8B02W3Ln3qkK2+EPWqLIeTheU1ybrFkyc0EUSzs/13O6k53B61j4TOAHmT7EDPKujPEiVRZqaMru4LaHDOUBpkqs51n5/TAFQspGuc8yoU9XqjlbD0IqES3lqlQo6jwKhMXvE8JIYrNogbSoJCUoXjCjuJqGS6WeHy55ybQ8J2BSTka3z9eLXQTeJKgQI5znj8+PFzHmzJhQYbMrsNUbfRDQw8u8RwJPlneDge39/nGPioA5GjPpntNwwfeY9e/uLQkOFjOq1r/Ippy4pNe7HCtN99ceEm3baTM6wEM/XSKdd9joCBzn9tLAQbLUhAqNHKZDK1WLMY3rl2nSKZYI8HAvEAt9sSHIAQElNTUwqFzaKinIFUHuHmZJLIXAUXKBJy5wgs8ePj65+X+7KMo4LCzhaY4/Hj33//HRoECs8enhUAItOXQoGzvqumL720SuHzKBDfV4GWFxiBjt7ejomANCVle0haWrMjg10+Xychk70pCUHyo3c6kwn6KcOwitRjUUuhOG3VX7A4P29MfwOdOijg0Wq1SrlMzUgvXbs+OgEFhDfiKjogAQch4aAAhkqdeEPEjyCVTdDc5j0gzKO5SESei4xNjq/HVTU2cbzluZMue9rEBA4JnGGzQJI1Du9UPd1Fj3zr0Agx0BV4f3hR8dv745Jr9imSR/rvuvXCVi+EnnzCstZQL3Vz7066anR20YxaMWMxTGFRTT3IZL6x6NzINJ08wkCSOG2dKhZ2kKDzeu5Bq15vnQoMbsA4bWWahTJFwXUZDPiSMfTe3NgMIBxJhCB42LKBgAE4SDIqsUCkRMYQj5dPeDqyHhjO5+FxfWlw6dpqeajNDgrCw0YhchLopUvNoqePCNnmoN1kiCtT9kxQtO6rgnW8w3czZZXeOS2Vci7NIIksEiKDg6yJXg4XPOFB9p/pBAgJ0iuFZcLyTgetmORLrLKi3fIHSwqFhIMIFI3GqeJTypXAwZk4I2M2q+WRVazRoUbHgKAQT9jCGy9k20Sy6L85FRSR+YrYgafgkEwmlycjm+PD+cgkVxGXmcsoC5Rt+EAJAggWIkzxPn98Mtv8Sgorl2nKWk62WNhiuGfaePwovp6PXwtd2SvtvSOX0np3IaiHjHB/0dQL5NZ0V0i/k55d7HdnQYELsowVXj8ogjySVBpkQqPfms79hwWSoTQH2yBlaAvIIskYRpXfbeMga96fmxQUDon/C5dMomVOk3AZwyPECRRsLZ+AiscnM2PUE8NxNDH6edvPT9HPSGi84AKN97eL8qcKKEQlv6IeIt0FFzPV7M5mfbUSr/rKnmS5DxcS78VirpChxbIG40y6v2AY4a3Ld32aK4ZMTTczKnPSxQmaMdr/sND0qJfOhULxXHUA5HLMTaILJbFbji8cVas1q9VqQRpPMpYOVyZnbA84WptaW1t7QUJYiAGm1g6mbiiHiEWSByiZPFFIOAFJZH58Q9LPxOdpo+3pQ1vgQFBxRMo4fH8bUYR+lXX1pBzFUjX+mEEJyQutkQpKLfxMsW6ZWshMaT61TZfdutXOcDhsZM1UrZbyebJ+3ysXt6Je2hdBVAvGYOHHLCUFo6FoiMEkOh7Q6CGtQkEJFKbZJEKJkyUqLFCQK0S87zAYUHJQ8ISikeRsYOAgSbBA5UbyYG1NSGAWmCgBIr+/gSFWywZ1X9vDL4+O5OvLh3R9RQ+fio5hYSdUWFBs4QsuKaE+RIOB5fWXUvzZJLNoXIpd2UvwbVNrZk2X7mNve5mWZTksI89gVyjGmJj1aVn33d86L9qjr9HNSdQSwUzCr/kTdHBIDipIvq6LFOEcnWBLJRgEiAQJh3qcMiO90ysRcm8OW0hR4aBQ4tx5xEHuIEF4oGVA8GTyhNQ5Y4NInoxtDtMbOx5J61612N8GhqPdIzns/iXaBYvjEoFxBg+cgS+wAzDk00SMgu/IK66ZrpjpC3f5Qs1sVmeApO2gUal20qoeGVksh6shI325K1Tby1gsDfpYDma7v492jiVXmMtYMXVfAka9hTiooCBAoGBZkKAOw0IpK2XavggzWHVMDFNX2GkRFgMvJAzeeOMN7ux7nJJchsTBGqc4Ih+IEBx2aKwflwtGMSv5i+qP2BdXKAY/iZ49e/bTT3/t7oo7HilnSDYNn515ijrGQKkaLD7LifZqMdZ1quly/52i7CPx6bxzJE8P8+glFskZUfViemQxrMX4QTNb7KRcJ3Iwh28lxkSMK0VcdUmGDVs5tJCBgBIYKEqISkm9elVteZxlyT1gs+AqYQEBdd38E33wgTDgwJ1c/8yNqYOBge8HOGPAOJFcQZBsjq6Gm4SgLF56mUFr2i1yBb4AhkMCgWP3aONog1hx8ulO+YezO9vy3mddKYyBNTKoljJ1XyFNl8EICQpqbXZcSW9ucWtna2lni/WeRVq1XbpudBrYJVymB4l6Z4eMbCoo5QZXrXzhDBaOJ0DgyEKAQE2D/3dklt1rrK7evi8oAGG7wiHAQemtt97iqNyRXE6uKSrEhIwccFA9qw3K7ZUEv/bjB343r5yULoPpP22dXUybZRiGazwxUU9MNIYDOVIPlphIxJ9kB06J40eBgIFF0MRE53DQBCQgUYnODYcSU6dVFw0CozZu8jsTfrQpFjpXDf5UkKEBoyhbURMMEbKaodf9fO9qo96Fr1/rVL6r9/O8z/u878eSljrNHtAQCi9URo72ACP5a5J24+DwcDAc5h6wfW9qaLXfkEPTQSiCQX/udWwky833+8kTB4JU3vzZwY5QSDuWW1tbcqm3wrvP1BLqoRZ6DaVUpnW1fBQKkEfEAgQZgQcC0iOqzoThzTfPnKnL3cWOLdQ61z8DCkwhRxwxELp8h8EJEqAgFjxMXspsp5Kg2qrsSTzV4a99RJFeP1lVW/syYxsovqCWsFH0u+9wiPzxm4BYrJztOf3dcJJOIx3HQMfwcGg46Pc/S4Qpib6279bcfK7tUCgUYvFB2yA6Wjg7dKgjGD2xL8hu7oBaJqVa38sP50brov47Cxty1FosabhzNyiqmKWDQiwUGAZCJGAABB5Wk5xBeCqcf2iH9Sr+IXHEzMDlO2XOxEUkKiogISgaRFVXSSOnizsGg2+O4cX6tyb3FtGJjtGj9z38HpONLyRYMHScBgfucPYYwUiBQEfHd/zLqJhKu6Mj5H/2BNGC4UOF2neK1HLnmmlT067eEQhFb62jBqC3bPVhaWthKLQrn0hv2QGHAmZx+1tD/l25TFLIoNjCGDiZKWiACoNxOMEMVXPUnTvmtPGAFp4V3hYZuvyHTI4BZ7znLv9DOebUKYaOeYHooYmlUcO/m27J+2yWeqC+jKE9tndvjAmib997/J64H3HFF5Tdn4BD3ugZEQ5cMfLlGyTPQOHgT4EAOJgtJ5Lf4Y9gmB5ylLUb9VVMCS0/aHGruCMwGMQ/g9qO2kG6Z0IJDOZoPFpLq9toorTRfAwMtlCZR595Xb4wAk68VlXmgYACqqvDUS3FpEtm3hjiCUBwlbpwpwwHDwSUCAiGEUBo3FRHuyfZwRrkrjBmrLobS3h7qUibsVhM61e+jx8+ceK9Hz8BxcNvf/z2wz/+ZCgYXN33G4nTtFu/wxuJzmoWsKoTJclShQsKlFojIfGUOYc3uXa3tlOqZuJTAeDVFJgLNH8okSW66CSN11jfsaElWOfShbzAA/GUCYxaYYhK4eDO4hI3cMDhCGOEA2HKnBIZniOEwU7m5xv7eo/WJAejbz7HWHHTXZfsnXzrGzblPQ4JNhZOCkWkqKrJF42+9/HHn8gVTNbPfP3Oq5xDw9VbPXaERRL18CqZ7EwkE2YDypOkUNQkSgNqRardLhQ4AYfgl2qai0yemMf20lApGB8/zoequXN7ZUGb5tw5pYXR2mdee4mMIR5Zw4YjYSDCYVs+C7SWdLrJOSBIEKDI0uHDhzmSIjAFjrjjlECc+vDDPe19vQWdpXVjD4ztVRutaWwsLz6K4vX1eWPlCwsLIhGpagLFx9GPNTm3Qlu/KQ4ugpGhYSvNPT2dAOGUI0yOIirWBBHBJbETAAxMlPQUaGVZFghkiRp1nphVY4Vxr6WmeTKPxqf76CMRJzVPMRAzIMECABk9lwHhcQiyWsQGperM5FwoYCEATl6MEBhOp0wUVSVPle448OY3X42WXVvUDIgyNiqmUqPxOJ5wIERCKE5QHr0nGNak4MTlCxgoQvQ0UslqgYZWif55dadQcIqYMY8XcMF8+jqCQ0ZQd0tdN1o7qA1gBaAQDU3v25+GRiMdtsrxksCgH2MwQQMAsicNns4RfjiQeLRuloVC1+pcAQRACINGDMuSXtkJhycaK4uv23uwvuzzr65eiDQ1RWLlZWAAhEhod8ZFErTrQUHFeeaWW/adiEIDKTiQAFgVLlOw4H7WcujRERAYDnvGHOPj49Y6lrhuAKjLbu9Z04hgUBNtfJxX2MFrrPYWAATBoiAnEPLX1TJ5yQgOOKJWjhAI46CN4JiNXGGZQp64xyPhEiWvXX0BClUTjBjVoQP5RQ+wxf3q0TJIxACQut+BiJc5TzgUWqHxPV9ff/C5W/bVQYJaS7LyUyDEoueN0z1Hz7Z/28jIevbsyNkR0QACDzjI9LrcRiWAdlyvRnsb101IX2zCWp+t0abJXtONLIZV1IHmJBEIBcPRE7VnPHkY6JgZCTgggQgUk4YJOQbirj0VlBPOEwJhxaVoiAOzD0qpxsqWmyKjl8bL4zdcen98IYIW4qkbUhdBTE/ndaN/4mNNKNjefHBvbV04/OMXCgvptGAYCfPF6cQbX8oVoOCpnSOrSnIE7bA+kzqGEkMDKhhvtyTvJoz8aBUZMVF0LHrxEvmMCTIffpQw9cR0ThwcCLtlIkBh5bYKKPh6731BtrhPEggj4UmFFEMnTYiclasuoIkUHGLTo/Gh0dREyhTPkJhGHhBgIN/k5LV3N9FR2h0NKjhEAunEG0xBYU7BKASIsag821fJSsKIYsCE93EBIgfcq87qC4x2uFXy5olqQL5SYQ1ZdRp7LYQwUaK0MOgPh6N1dSKQqSGi3qDBXVSsqutOEaUgRAIaP3kvEeL+41mlpVdMvAKIgtIDm+mFlFCkhrjQ6aEJk2MhFNkSj4EBvnxFTXSTWP+7Lhz8YlAZM2kNLUoqyIgIXJKZRHp0BLEvwS2xNEogmCcUNPvlSjlUeNHsflCxuAMYEuFinUZhUAbpBAUBAgtgOFkVYSunhVCgjiUyVGRiCDW7u2SKO2zQdIYw74ECGBoycg5E4qmtcyKxtQWAqRQHx2IqNZQaintyptBBLBYWfEVVsNBvEwiHg3Sdbr0Ji0b9P4Y/+SKQVKCothCMZELZlCyh8aTdrcXvmVeHcL7iQ4sGmxXbz+UwZNc8gnFEDVi5wiJJaba6tHiQ/61gIB3DyLIlJICgfTjCgCEEgsLkXsoKNxO1bInstaqIPeMNm7HpC+fO/fknICCRrSmUGhoa+kAChWNhIAY2NjZ8rIY3sU+4is0sLPM2N11bnndQrVqFi1CYsEbiV8oKSChIfpuXBOEV6ciHR5wJdNSPCIHsUlA4vFaKQkSzAc2LQFGj+ns4iPxheAgJJ8QGaQISckO1zCAOgLD9A08/QRoyl4FdZ4afsoqJ5/6lWN7ohfPnhWJLKDIwoKDHB0IR/yAODIcCDgZiedmn32fGLysrL0O2iT4+Gj9I9ti3Oxq2REpMiIbVnV8qOEbaQSEK6owx19FFMie67+efM5dOarfyh2/kwbBQUePxhT02JaDk0I6QQGFI44R4+E3BfOXLQ6QJzW9kBaSjSNgUhIaNpG5FBSiUl8mWT/TNzTazHX/03Hm54veMKdYnpibAAAQ5wg4mj4RjgXxXsMeL6mOhOz6a4jdKXbjqqguXXXNpfayqeTfds58IDCVQaGAJpU6NIqCQaBieQlzlZ1mVnyOQLUfIzZtJFiq9OxMlCW2eKByU1A9xkiVaWjpo3GEI1essdTkMXfZ00i16wQLt6SvQEN7fcODu2CO3xRYmPBIOhTBIjoTEUSBAIQ4OBrbwNRcxst4ec/vH46kJ3ZN74ebUWER7qcLU/klr6sgbjKPW6wKCRGic+vTTTz/DDj/r6t99MaPDh91JhoYVhJBQ76TXClQqUyp1pv3SYAgND98JB26bUSlB385AVHLlXU6gaJuZmalp83hoyDpZ07DUFGlOxybvnpxkftmNKYyElA3C5PyghzMFMhDLa77d2iYSW1goz5sum54uiwPjqmt++P6Hq0bzKEZvivoLk5BARz1L8CUUpwThHo5i8Rk0hOLdwy+Cg2NGWcZQEjlSweyoqxcQms6REW3WAowdtIVDJrYq4Amqy1ZV2iwAU2uzcwJxON4GCfYdWVXP+dxcw87msc9ZPfn8m2/Grr2tqTkS39qChFCYK4xDliWkY1KGgwOxtmZpsygCjPLpOJUYYvC5cO6HH3754cYr43v9oWRC3QszhA48gYK4EAMnSPz8rinbEnbKC0dC0fECnmAcVX1um4QwBrsSi1GAm7MH2a5hvU81MEFBe8I++6e73A4bQyHtn+nv75/bsZSu4mef/OrJG2+oHx0du53LiKemJi6iWF93KLL9AAR7GAWXMSEhFNQgUt50XMli4oYUJLYuXPYDxuBvbrt0rGqQADndM6LA+Bbx7FzhSPBkrnAo/q1M3iTdkyaebu9ycxVUAgvqBmg4GIXiwJM6mKomCk6ePF4zt3NXw4yHokAcwCAQ3DKztNlU1ZyuOjhazxSjfCHGBxofkikQIFAGhbkBDhI0HnNxYRyEgm/fNCy6y/PiEjSEYovq5DL91bj298Bef7CqbjgJDE/MQwTjYoyIgqGAA9+Kj3+BgITzxIPzKrpxBSMCMMwaljAQNNhcRJwUutujQFFS3dZ1fP+OXexUzIEFAdLmMZjjn/OHZ5dWNjc30+nmWNXmCitvkbVI93T3kEism6bWp6SLJDw9hpwhjMPGwOrAwCpv+oxlNxVHt51Nx4ewBQLIjdzKnRrlFqQYMIppV6jCQh6Q3+Y/FA1D8akzhUj8vyes/fyCVZqyBTAQMPZblBiPudZWu0Jtt7KNqSyDHW+b42bkA4da+2cKuoRiDgx/zC6hWcTTSjoda2pOb6ab8XiEAnpdnnAopIwpHIhj3Y+BwVDwDYKLfHyRpnQzCNw8LaLTacQ0FotM2C9dS41V1bInnT1RlFmGgorzW42mxkLK5Aq+s0C860jIFCo194ACW8BCu8UQLEwlAjJnMEytZIoS7T6radAd6zsbrOF/vGBGhvDcsLICB7mhaGyMCeaCPso1rm4IEtme+MhQLEIiyxWPGQNHgRNDkU5vojRQI5ENRlkh2YhdC5duSx/3T1x646Oxpit2cwNFcFdhki3BJE8m7SqyzBeOA0cwZHyhsRUQWY1XVd1sAumr7KK3geQNWsBStYjgDHZ2ObFWoilYW1tOQyG3XtLsnplpA0V/wx9/CEV6LQ0NJBaM+3yckADFMigMhMcBGYhFB0IJUxIOeDg0aHXVt7KSewDlXsd/fhuLkUkia8j8YQlVA0vebVV1u/Ivv+K6jkRPpZKFqiwtTlv6BEKWBIKnw4iRxTVWnCvYR9d+UlW3R0MjYidfEJmRNfqhIbHVnQDp14rHTE7DTljMtohFm1A4Fs3pFYKEUxHRh6nvNWism8BgsuhYFAknL2PyJTlL2NE39MGxAY0l2+l0ensbGNJ2s2wCFfU2rOjIi1x3aEdhiFuAB3M6j3L/hA0j8oSxMBjZNHDJ4Z8/u+9TLUzZXEEkbEshLE5qZ5TDoUrRiLDxFClMTJiCHDmD5v7YOYv+sBf9c6AQC7Q0605JHHYUk+3tVTh8NOVx4LH4gVwhBk4uVXiWWISS7IF8586pZv+dmn19a+v39aHujbXtNZAAheyKNzY2YhHpirpcbgg9dGewsLryW5uVZmWKDAulT3upZEpNRUmqTgUHkQAFLNBJcFjdNH7cJH/UKIv25wADHKWQEIqaGYywc3YXLBrmDIVs4fImKDhwJgHGCKW3H3OGWPSezBYOxaodHIpV5FlC76yCwqS6XcffTetmK+Hy4iVNMK7Fustjm3dSGBbvHz/b/tseV1xkhlK+TEaHcZaZmkBk9lZWOBSmdmhIWZvUxYKaQTDEweSMMGuX3cBrh0IsQOBk75gj0gqX7dVjHgVHZJEAWczOCsZidXV5GRS8EozFxzZ859E5DcWgOH/+r7945Yk316cWjw1YVaokojS6cEX+zsKWUGFJZ1/jvAWICRpZGACB7hEKSPCwL6TOptM/G9SdbO+pPGDKRoEtZAOPBSicFbyQ0PsMKvyJlbVjQx9sbKNlB8JZAxImUDgWTsuIo07FxMf1mxQomVMkPG6IZjwyTU1MxGPp67TySb6obLcC3MORAcBBMhRshNMMkmYfeoEHKByLLCIOiecLSGRYZKOwa+aiSSJGQiDWBpaXt7dXVngbPEvbx6bW1z/iOj/KkoNwbHFRDJxcYEABGnzSTr6/snQeT3hyLBBh8xfamppyk/3uyOZSfsN+WtY2iliYOBkKwdGKrQ2dNoXq4kI1p/4Pin9ewMLNtbI0Yyg067IkIF8YCoHYJuzdZw2PNT7axY8YNHjjI4aPbA6SkbBn9w/0wpC4uluPvwFX6XZqLjgymwAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"hPa\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "pressure" + ] +} \ No newline at end of file From 700aeba963983d01c8ccba2367d1d1fb71753ab7 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 16:17:06 +0300 Subject: [PATCH 079/117] UI: Improve min/max ticks formatting for value chart card widget. --- .../lib/cards/aggregated-value-card-widget.component.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts index 5380874811..b5b37df7f8 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts @@ -179,12 +179,10 @@ export class AggregatedValueCardWidgetComponent implements OnInit, AfterViewInit } as TbFlotSettings; this.flot = new TbFlot(this.ctx, 'line', $(this.chartElement.nativeElement), settings); this.tickMin$ = this.flot.yMin$.pipe( - map((value) => formatValue(value, (this.flotDataKey?.decimals || this.ctx.decimals), - (this.flotDataKey?.units || this.ctx.units)) + map((value) => formatValue(value, (this.flotDataKey?.decimals || this.ctx.decimals)) )); this.tickMax$ = this.flot.yMax$.pipe( - map((value) => formatValue(value, (this.flotDataKey?.decimals || this.ctx.decimals), - (this.flotDataKey?.units || this.ctx.units)) + map((value) => formatValue(value, (this.flotDataKey?.decimals || this.ctx.decimals)) )); } if (this.settings.autoScale && this.showValues) { From 6ff4f59e54dd2d1867955541b7a41e5ce874d72d Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 16:49:47 +0300 Subject: [PATCH 080/117] UI: Fix default latest data keys units for value and chart card. --- .../data/json/system/widget_types/humidity_chart_card.json | 2 +- .../widget_types/humidity_chart_card_with_background.json | 2 +- .../data/json/system/widget_types/pressure_chart_card.json | 2 +- .../widget_types/pressure_chart_card_with_background.json | 2 +- .../json/system/widget_types/temperature_chart_card.json | 2 +- .../temperature_chart_card_with_background.json | 2 +- .../json/system/widget_types/value_and_chart_card.json | 2 +- .../cards/aggregated-value-card-basic-config.component.ts | 7 ++++--- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card.json b/application/src/main/data/json/system/widget_types/humidity_chart_card.json index 3cfeaa2c90..9b59059ac2 100644 --- a/application/src/main/data/json/system/widget_types/humidity_chart_card.json +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json index 571f299340..da6078bac5 100644 --- a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card.json b/application/src/main/data/json/system/widget_types/pressure_chart_card.json index 055e80730d..475189d065 100644 --- a/application/src/main/data/json/system/widget_types/pressure_chart_card.json +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'hPa', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pressure', 'hPa');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'hPa', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pressure', 'hPa', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json index b0477cc2e1..63ba24c45e 100644 --- a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'hPa', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pressure', 'hPa');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'pressure', label: 'Pressure', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'hPa', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'pressure', 'hPa', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card.json b/application/src/main/data/json/system/widget_types/temperature_chart_card.json index 4aecc59cdf..cebef335f5 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json index 9d5ebe5911..d5be89cb73 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/application/src/main/data/json/system/widget_types/value_and_chart_card.json b/application/src/main/data/json/system/widget_types/value_and_chart_card.json index 10cfba9105..20b0245488 100644 --- a/application/src/main/data/json/system/widget_types/value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/value_and_chart_card.json @@ -11,7 +11,7 @@ "resources": [], "templateHtml": "\n\n", "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'watermeter', label: 'Watermeter', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'watermeter', 'm³');\n }\n };\n}\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'watermeter', label: 'Watermeter', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm³', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'watermeter', 'm³', 0);\n }\n };\n}\n", "settingsSchema": "{}", "dataKeySettingsSchema": "{}", "latestDataKeySettingsSchema": "{}", diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts index b8794b37fc..1956526ca0 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/cards/aggregated-value-card-basic-config.component.ts @@ -117,10 +117,11 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo } protected defaultLatestDataKeys(configData: WidgetConfigComponentData): DataKey[] { - return this.createDefaultAggregatedValueLatestDataKeys(configData, 'watermeter', 'm³'); + return this.createDefaultAggregatedValueLatestDataKeys(configData, 'watermeter', 'm³', 0); } - createDefaultAggregatedValueLatestDataKeys(configData: WidgetConfigComponentData, keyName: string, units): DataKey[] { + createDefaultAggregatedValueLatestDataKeys(configData: WidgetConfigComponentData, keyName: string, + units: string, decimals: number): DataKey[] { let centerKeySettings: AggregatedValueCardKeySettings = { position: AggregatedValueCardKeyPosition.center, font: { @@ -189,7 +190,7 @@ export class AggregatedValueCardBasicConfigComponent extends BasicWidgetConfigCo } return [ { - name: keyName, label: 'Latest', type: DataKeyType.timeseries, units, decimals: 0, + name: keyName, label: 'Latest', type: DataKeyType.timeseries, units, decimals, aggregationType: AggregationType.NONE, settings: centerKeySettings }, From 4587270e2229cc0535c9725b80514eb0901b3fa8 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 17:33:55 +0300 Subject: [PATCH 081/117] UI: Outdoor Environment: Wind Speed widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../widget_bundles/weather_widgets.json | 13 -------- .../horizontal_wind_speed_card.json | 29 +++++++++++++++++ ...ontal_wind_speed_card_with_background.json | 29 +++++++++++++++++ .../simple_wind_speed_chart_card.json | 32 +++++++++++++++++++ ...wind_speed_chart_card_with_background.json | 32 +++++++++++++++++++ .../wind_speed_and_direction.json | 10 +++--- ...d_speed_and_direction_with_background.json | 31 ++++++++++++++++++ .../system/widget_types/wind_speed_card.json | 29 +++++++++++++++++ .../wind_speed_card_with_background.json | 29 +++++++++++++++++ .../widget_types/wind_speed_chart_card.json | 32 +++++++++++++++++++ ...wind_speed_chart_card_with_background.json | 32 +++++++++++++++++++ 12 files changed, 292 insertions(+), 18 deletions(-) delete mode 100644 application/src/main/data/json/system/widget_bundles/weather_widgets.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/wind_speed_card.json create mode 100644 application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/wind_speed_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 298437107d..f2db1c22a3 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -35,6 +35,16 @@ "simple_pressure_chart_card", "simple_pressure_chart_card_with_background", "pressure_progress_bar", - "pressure_progress_bar_with_background" + "pressure_progress_bar_with_background", + "wind_speed_card", + "wind_speed_card_with_background", + "horizontal_wind_speed_card", + "horizontal_wind_speed_card_with_background", + "wind_speed_chart_card", + "wind_speed_chart_card_with_background", + "simple_wind_speed_chart_card", + "simple_wind_speed_chart_card_with_background", + "wind_speed_and_direction", + "wind_speed_and_direction_with_background" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_bundles/weather_widgets.json b/application/src/main/data/json/system/widget_bundles/weather_widgets.json deleted file mode 100644 index a38c139cf0..0000000000 --- a/application/src/main/data/json/system/widget_bundles/weather_widgets.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "widgetsBundle": { - "alias": "weather_widgets", - "title": "Weather widgets", - "image": null, - "description": null, - "externalId": null, - "name": "Weather widgets" - }, - "widgetTypeFqns": [ - "wind_speed_and_direction" - ] -} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json new file mode 100644 index 0000000000..94e177672f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_wind_speed_card", + "name": "Horizontal wind speed card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMd1j9zk6fjx8fGtvOrOzs7IyMiRpePy9Pvj4+O3t7fI0vFaedU+Ys7z8/NYWFj5+fnb29swV8vCwsI8PDy8vLzn5+eesefV1dWenp6QkJCDmuCCgoJmZma6x+2rq6tohNkvLy90dHRLS0shISHW3fS6x+7W3fXU1NSRpuNMbtFMbdGsu+qtra1mE7QcAAAABXRSTlMA7yC/r1EOHTEAAAN3SURBVHja7dprU5tAGIbhJPpmOW2AcAgg4ZRzGrXa/v/f1neJLbY2FJypg5nnMgSy5MPeLMw4oyMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6G1yM55+drcT7hgb9OkZ48no9go6uORmNKWrML6WkClCBgYhQ4OQoUHI0FxtyIneMgpyUnKd0qCzkDenKB36Q5HTB2oPERW9tTdWIYUO9xgGdxlfeOwo3Tsy1Od6c9T+IKmfOSkPZs1uxu05XbYxO4VolGWbk02vHWQYGnfEP4e7rXNcq5CwcBzny+FopMew4LGVwSdlr4oqFqRooqb/qvB4Fpf5WqeQ+N4TLPZ2M3OuU60ow7JcqxBnW662pEKc7V3phLTahmWxXq23e7mmPitiPwlGiieyVyuyiYVoC9mI+44r4vH2IITnPQsxJyXfF3Jf/BZirIi+OEdauWEh89VBSnmgdY8Q3Z+ZLyHPvGvMvCxrQmzdtjcbnei0OVFN84npfJW7hJAQ30hXIbV9zq+XkDxc73moDMOVs18fHTfkWytUt9Z6L6kP/SVExGTTa2YTookqFiKeq9ukqsvUOdsT7Gu3EG22UyF/YfzcOaFRHzTbe0JsEfNcd/qFkHhm8kSezCyuZ2Oq969i9zDnz20hPj8jvi9E7O+qbGNTG6OkFh1DeBdrlS/8CyGz+ou6OvzGA5763k49J6a2aV+RSpuZDzr9Z00I2TpvfH3bQppDfqNM+Jq6yO0hH6IJaWbcJcQUOjHTV8/IwELmpppb1S3k2aMznVvMviEB/W3Q+HMgeF9IJnb87os5j/wr5HSe/JNvE83ErG+IW8fwy4iotljQYmqpgSktiGi5XdIiis4neCDoE2L7Qpt5wldJWnsIb3VrJTwz88X9O0Ly3IqktPgooSRK0oWbWHkurdSwUp65tQzSNKLAqk9YMu0RQronhPB0FVL9I8TfkWJX6pePjN4R8mi5gbSW1jlk+RjxMY8tIyuRdcg0ijhEuksZcG4SUB+2bp/31G7ePBY6h7eFzHV667sVJZabyyRQK2KlUeIGrrR4zEiX0iIVslArsky/qxN5ktBHUyG9RUu67FFG1MUQQhaLtpMBdTGIkCFCyNAgZGgQMjRXFDKmqzAd3VzHn6dvr+cfBkaT2+lnN76ZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgrx9YOdsEpKcg1gAAAABJRU5ErkJggg==", + "description": "Displays a latest wind speed telemetry data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Wind Speed', 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\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\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:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#4B70DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#4B70DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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 wind speed 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", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json new file mode 100644 index 0000000000..3b2c8cf8ff --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_wind_speed_card_with_background", + "name": "Horizontal wind speed card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest wind speed telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Wind Speed', 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\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\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:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal wind speed 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", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json new file mode 100644 index 0000000000..ee1c935255 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_wind_speed_chart_card", + "name": "Simple wind speed chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEUAAADg4ODf39/g4ODg4OD////h4eEjTMchISHHx8c8PDx0dHQvLy9YWFjx8fHI0vGQkJDk6fisrKxaeNWCgoJ1j9w+Ys7y9PtKSkqenp6tvOrV1dVaedW6urqRpeOfsecwV8tmZmbW3fSDmt+rq6tohNhMbtK6x+0xV8rw8PDW3vVvo8R5AAAABXRSTlMA7yC/r1EOHTEAAATVSURBVHja7M9JAcAgDAAwyvXEB/4NbjKgJA5SAAAAAAAAnlNbzNv1+j9ij+utqKWvkcBuZY4UIktkihxG5DQfu3Ww4kgIRWF4dS7n6lVEXCjiIpD3f8ZxqphM6GSgpxeJAX9EQd18FEJtyGptyGptyGptyGptyGo9hUjGl2LqQB6ANrSGu1w6ll58EvwzZjz0Aog6DI24zwpgFQgB5QmkMyTn4nIQdlpw9VKa4MwHKBlhaRqhqlkBaJYT4g2IbDFLHpidxzFnOW+974vQw3MkJpw1Qws2OhVhHlkNVGRWd95IbJjJ4QeKBSaIc8E6Emt9JyReWC43SGcPyZfBeEAq4DyqR7TzRqHzAuGAUueY8ugdEDysQN4FsU5Xfcr976Fl01xLxQEJx8J2e+yQqzMRKsCcGUKlBAtzCPWdjz3iS6EaImu5h9gN0gYQmW6QoaoIYc5dON4JeSjxAjiOe0ioIpYOputQXoUFjTJJkIZkgmuHXaALQZRXoFDuIeLo3AGJnuTcYCATcHXH4knrGI7V1oE8T/CnKBEQaoznQTw3b/NjL4BIwc8SKv63Jf+1YhJ8s7Uh329DNuRT2pDV2pDV2pDV2pDV2pAXpC0l/XxID/ydyx8OGUYrqTgyfTREjCVilkj9ZMgv9sx1V1EYCMC/hhluBVZoFREQ1kv2/R9wh1bkHAIH2E0IJH4JtIDE+dJpB9QlFwwh+XsW8aiNS3hk71fEpiO0xBTvV8Sl+IuUtzcRy/wNwTh0hjcO2fsSiYmJhR4EBzpCcnclEpPnXqkJWhy/hS7IE1sWsV3neL10kRBZun44Pm/fovLptGGRkDRhr3JYDhH534M6kf/PIkFdBsBkaEjhjSqyA/yIfM5ZYCk+n09Epy8Dojnb/ZCE9/a1rCUiKm/i1yKyLxIkJeLPIg9MYBLfxHYhrxuQUX4TuRbLXz0iulqzRVATmG4aNSgw5MhMiCR86xSCSHRrqxmQiTz0GgvH0SvbTJEyCQIjokzTkR9ylb1FFAtG6SPiXpAG7UmUuq3SdFzo0qZ9qCe2dZxYYi3XY5VQcC9kncvM1AJ4iVSIqn8JOpEEbzUyxR/JexlBQ6ozK8qQkdVo6T6B4Uh05I11JrBE23GIXDFHBIyIafK7zFJ40xPBMrk1AZfJATF7Xa705JJ1LvGpoEe/WouYGN9auOLZy0QKNNSjIpH+rFT6gPcQoTT3V00fCxjCIg867LNY/DADC0fkIIMouPPBsIjpIeY6pTDSTaFzUjd6lRjgF13h/1goYlAlJrNF7rw3BUjWDxjhSr/XF2FueJ8rUr0uqlrP/2L0vWldEU6NhSLJl9pZsEswnFlHWFdEYg26uc0VkSazHnlhcjIf+lKHfq8sUuOz0uU85VPJY1okeCkX+GShqBxatWyPYlhZRElEydtdz+LntIjJLHNjdit1kexxIl3F1xWBKEHEMld6dJJpkVIC096Ih2iomIXArCDSI2qDUTBJ2srCWBGJqfeWtM0fsavgZ1vhk3fRvY2LTOGQcwbDrkWE1z3k7loEhICWfYu8+Yh8RPbCR2RrfES2xkdka3xEtsbfdu6gAEAYBmBg26174gP/BrEB5c5BDETI2wwKyR7hxBqwDuq+dlQOmAfdWRG1z9flqgAAAAAAAPibBywlq1F+6U0fAAAAAElFTkSuQmCC", + "description": "Displays historical wind speed values as a simplified chart. Optionally may display the corresponding latest wind speed value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'speed', label: 'Wind Speed', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'speed', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#4B70DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json new file mode 100644 index 0000000000..52a1570847 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_wind_speed_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_wind_speed_chart_card_with_background", + "name": "Simple wind speed chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical wind speed values as a simplified chart with background. Optionally may display the corresponding latest wind speed value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'speed', label: 'Wind Speed', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'speed', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json index dff8b3cacc..ebdedcf611 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json @@ -2,7 +2,7 @@ "fqn": "wind_speed_and_direction", "name": "Wind speed and direction", "deprecated": false, - "image": "data:image/png;base64,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", + "image": "data:image/png;base64,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", "description": "Displays the latest values of the wind speed and direction.", "descriptor": { "type": "latest", @@ -11,19 +11,21 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'winddirection', label: 'windDirection', type: 'timeseries' },\n { name: 'windspeed', label: 'centerValue', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' },\n { name: 'speed', label: 'centerValue', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-wind-speed-direction-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-wind-speed-direction-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"windDirection\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"centerValue\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 30) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\":{\"layout\":\"default\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"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';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind speed and direction\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"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\":\"air\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"windDirection\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"centerValue\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#5B7EE6\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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": [ "wind", "weather", "compass", - "degrees" + "degrees", + "environment", + "speed" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json new file mode 100644 index 0000000000..1e338cd67e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "wind_speed_and_direction_with_background", + "name": "Wind speed and direction with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays the latest values of the wind speed and direction with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' },\n { name: 'speed', label: 'centerValue', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "settingsSchema": "", + "dataKeySettingsSchema": "", + "settingsDirective": "tb-wind-speed-direction-widget-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-wind-speed-direction-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"windDirection\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"centerValue\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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": [ + "wind", + "weather", + "compass", + "degrees", + "environment", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_card.json b/application/src/main/data/json/system/widget_types/wind_speed_card.json new file mode 100644 index 0000000000..45b63875bf --- /dev/null +++ b/application/src/main/data/json/system/widget_types/wind_speed_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "wind_speed_card", + "name": "Wind speed card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest wind speed telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Wind Speed', 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\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\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\":\"mdi:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#4B70DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#4B70DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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\":\"Wind speed 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", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json new file mode 100644 index 0000000000..78e3fe63d6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/wind_speed_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "wind_speed_card_with_background", + "name": "Wind speed card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANYAAACuCAMAAAB9TAOwAAAC9FBMVEUAAAAHBwcQEBCWcVGwjGiOaUvI0tycdVGyvsmiflexvsipg1zg5+/f6O+wvcn4+vv3+fr7/P309/j2+Pr8/f75+/36+/v9/v/y9ffw8vXz9fjx9PYiSsHv8fT5+vr3+Pj3+/3W3+Xb4urZ4ejT3OO7xc/y9vq9x9HJ09zCzdbe5e3k6/G5xM7H0drL1d729vbp8Pb29/jR2uLN1+Di6fC2wcvz+PzG0NnEz9j5+Pjo7vTz8O09YMn29fTs6urP2eDw9fnBy9WkfVjt7Ovw6+aed1Th5uni6OsgICDt5d/o3tWddVH29PPw7++zv8rc4+f49/b08/Py8fDr6Ojz8vLd5Oy4wsz09PW/ydP1+vzu8/fY3+ebc1Dg5+/v7eygd1GdcUzu8faie1Xs8PPe5emYcU3b4ebq4dmpueZyjNeZb0o6OjuedE+sh2Pm7fOgeVTZ292YbEfAwsOieFXl5+nOtaGngFygelnn3NPf5fXs49ykflzKsp718u/q39bk6u7t6eWmmJGkeVHDzu3y7emNot+cb0np7vLv6OLBytOYmZqng2KadVWVbUuTakfc3t+7vL6rhF7HyMovVcWrgFqhc0+lpqikpabs8fhVVVbm7PDp6+zr4trY4eaPZ0bf4ePRy8mkmZegcEiVYjvr7e/P2eKzs7SwsLGnfFWbbEefdEycakPOz9BXds/QuKZYdtChnp+acU2WaUNzV0KMYj1/l9q2t7ihkouQXTXMzc+jpaZwcHHR2vG2xOrWwrK8yOjUvawuLS3JsJuKi4yjtOK7j2JKOS/U1tirq61oTz5JasyefWKrf1VWQzbWz8yspKK0o5e0imK3iFamdUqDXDTS1NSpqauNbVSbruNwidRkgNN9fn+9vb+loKKgmpeDZU6ib0BAMivX3u/o4drax7pjYmOXeF9ISEmjs+Gse0l/X0V2Vim9yenb2djGv7p8fH1eSTxVdM6EfHewvuaWqd+Jn9vd08ytkn9Yds+ViobAmmy4lHaSxKBOAAAAD3RSTlMABwb+/iQgtu/vwMC/r69sDufmAAAfp0lEQVR42uzUvW4aQRTF8ciFFUX5sOwGg1IEsHASNlIwVugQTdLFVVbIaAvkaF/DpeVXiJSS98w5c3Z12bnM4hTu+M9dqH+6O/vi0KFDz9vxq5c/q66v+eR5jh80zsfsIjRiy9FyuVgsPqIZ+8Yy/c04Gbus+6Ku2HxzNVeT+SQ0nAzVh7rVCsMGA8xW/e1+hT6Fqr83x05FlLlQzoEph4gjFkDLRz5CkQVGVKZkwkilapZMJJkqciVEMvVxqMJYg9j1NkIpkBqrwsAF1COXpbgsTfjJUquSi6KNXLYpJk8YgGIUjxUtyypeR6yahFF5jmUFkjY10gELKO7KWPTYkgxlq4JJwYQAs1VBNEwsaiVTeKJVeRJVRd+zaphUdqvIokuFF5BVKEbRLNtyVSipjAUVXQCBZa6GqjbZuvo+mOjyrMKzuCihpCIo+lgstayAWhCltCq7UhlNFMnEkSrsaUPVkKaJv1RMW9qJ4p74sAaITacJFlH6XARVTpJUYgUVtiWUqSiSiiRlrCpuSrtyb6Ch/JfCuTj6VJiJD/Msu1bjgMJAZSiMPhfRG4gv4c5b1UBpUeFObUjSoOha2bvX1098p7QvYxU81tSx7LOOxgooW5XeQrHkCqbMPuh2qexWCUUX0rJU4lqZiqKBW1V8rQptCyKqItYRUGJdlmX5F4/rprxhv+u+V/2Iut/dH9dDs7t9re/Waz6+24cCGcuqVXn5vqXzqF6jTq/TrNvFo05xuqfpzvZ3cnbieofwczstePy2ZMLLV/63ylgplWCtqq84CYyCybtACrYeQBjktiWVsbyp3dVxKrpMlV7W/jXplyoHw4AllGfpQ9HO8vXSMIDw86RNtbqIoSvC2LoQWOzesY5gwkmzzj2rh0mZWhdlHp4we2A+I2lbcrltjcduW/uWFakaMDMFEh6Peuo7mDCBw8e2xT5HrGBqv1utFwvHo1TCZNtKcfTDs3NVHGNJFbMAIuvCsdKb8q+goTre5WUUJVEipT4UOsYS6h9pdqziNhCEARjyBEEisBFOGVKkdRVcpNwub5FmwQihN0gVNS4CNhv3qty6cBQIQq78BrFTGYxSBMxxd33+3XG8ccYjYfIfOuHrPv7ZwewJLPet4r1g6tsWcleJcKbo6Z68K2udNKQKLIfibT0hFRtCGXZdhe0nNcVxnU2J8SZKYMHkVEJbL9EWW39C5CUYSKEtVhe9maZP5ZviLGcShhAoxmIyYV+Iy4KbgAkRmuqAkYqxIEKGjAUUZxGqh3WBUh0jyCu7jXQ+USxvhyfX+J+z5UScNbzbDLtZeQpNnuNJVV4mdLIIdJxFPvlqJexBn6yaX7rkBBM/WwRjbRHqlWOFsr4NBj9FFLF0oZQ1SpV61eiUUOQylQcUtdYmZSyEXFM9uSiryyTAwPImzgKJLpYYC7/3MkuZSuVa5+pYK7W6OFLEynQTpa0VRpCxOlRPZdZbHKswhIz1klhkQog1GAw2d8uH+w9DrlKVUT90/UXZg8psktuZNccoSq2pas+a6Qy2JpoeKtOitIU1No3iDC9wCtMeAgumbhciscS2EGrrObGorcF3sP7k0932cf1tf0Yhhc6PtjoqDOMXnaS6LXeAGFMW2rPmxjQp3o3eZcZEab2DKE7xqbVoCn90LEKJbRGonzX+zFlU2LvQlWct9441+rV+3Abe5vH8/XalM1sUBq/Es77gma30jIYQSSuj0U9jomiq00Jnk6le7OoJXpODCUMIUecORPpZbAj91RK1RX1dDOEIH/bOc/+w3LgKw2avG71KdaETamvmnkxnxKJMjfUs/HmnXbKKXtYGFlS3jh8fQs56Sax3MHnSVdYdMGtiQeVjaywLU9u/WWloa9f6CfSsUi8KPXdrcFf7rV5RWxD17sBeFoWxTnkP1U2sQh+wOPQxSYgVucca9HLahFVWmhayosTZmtSHrGjnmT5kjY2xJksDlkPJXTHVTSy6jkZbyAuBNXr8vvnkWOrMyswsUaUpk6Q0SWrKyD+2todd5FLa2lQ4W3VVuxW4wMcijstW2zKOm9o0ZiIvQOLQq581ZiyIKO8IdGZt7x3r08NyOzrvw833Nb+OoURSGiN9bWcisavbV4britrCEAYWDMuw4Efb7w/rr6+Fm4t+FlfRmYqluphIYo0dCb8Y66QC67KtNYYQ9SzX93vpnhMaFUxCFmUcSIwlhbFubMub8MNYOFvD513XnIl39bKcKeKozjCTzBr7vBFYV9qCo/s6MAxgp0to6r9Nz/wQnlhvrrEQzoJJRhGJcltVtNFjQXTLBBILJoSz0NVH/Peqh6WupK+peS5fLf0m3e5ZnYbCOIB/hMZEi63UuwkOUi+C+IJVqVQEBVsLVYeCKM6XklHRQRC7NGRIxAx1KGbp0Clgv0C76XILgi7O6mfw/5yTmJqnT9LqkxevIhd+/J9zctKkY4mFvTgo7MfoVNUdyFkUFVhvOEv+MFBlFbY0K67Hh5zlOvouxB6nonFkU1yTocjaxkUqOqqXLpGKs4CC6c3960/Wb6t+gCVkVY1jmo/oHIyINKqZo2GAn2o12oPaiH4euw5ItlUbRBWrYk9INXVmYwN/GWuWbdNpUqnQWVotyaxSVZE2sCBSjxlFFgWFI02KwkpY7jyaP26tolXLGQ50PtiH0WplHswi37GWkT8dL/2DiRctdUt6aD8vXCqWF3lTw/Wi2WLihd6URtZ2JNWF6MVrAKELz/K03mjVaYEFClQsK2KZ1WorGM1GH1etURAMzZRlmjM7/GgOnNp44voWUhtEE5zRfsQa+7oJkaAbGjPbWC4WkWHPKtsGRSIlO6U7kKeFrAAT0xKuVDotMFbubGQehvMsyx+Hh+DU/IGjWM7ScdyEdRhq1sQbfA2N4cT4sHC/lkrDyVYqlROVYglNSKJME574w9q0ADQT1mEQPJ4fBEjroxl9DIY1sD5GpgMWkMFgYDmOPbOmiuWG1mRCLAMsezZRY2vsGdMloqp4i/FysvAKQbQDo2yolHX2bHZsZVkqpO9fvvzgrLVnVlUznM/nB4erMDwIwjAMTGdOU/pqHg7MoeNPrWDlh5D5ztKyl9OK44c2qYwQY8v1v/rUhF/9r0vDXi69Rcn1PtjFScUu7AkLImJl00qGVjK20qUFbkEYSpnis3wFHlq85PuqhW17Yz4DyvNfWmkTZtPSJlRrLazExQcWaeiUW6FlMpXssj9E09JfZaCYiA7OoqDOYt+elR1UOMxtipny4+ICw9qzrD327/E0wVk4OAuq65zF+4/O+Rz5gRxAoopfgS1rH0X/PY0Km9o5i1ScBRKp9NgSFxYcxUm65If22y7ZjT2g6vX6/t6ewdJCMRZQnEUqnZb8BL8gKys9IyyxA2UTc0EF1z46kYlYE6I463TydlYrvbtiK1v2xEp+HiewRNQmFrl0UStCJbNiFGehSAVW7us+hSI5KyNHBZbs6vUA04mJrEvbsPgFK5kDqxIqTUkBGQmH6EpQ3IVZg1gaJriK07oAVu7j+/+aLYpQYmC9Ith5mUUqkVXVLBn1N20XlUIVw9qQadh/sviSPfdCBYsUVcGsbuSvaw2LXG1UkpjIeruBpd8mbkmfLxWnRX8QbicVNsmjVxPxVN9bh6WgI5m0JNZNPlskcQlJYVuHMVMOKzcpmOJgqBMpsG5XwSiw1EVlxWG9fZtladSFmMXCKlwzaY6507IiF7VeOjDk1YVMD7HEpI7zioQezLKUCq4zLaEDiSXFtW5jLhmWf++xGdZNYZqlZBZQj2h7xFlAgXVzY1hgiWHJ84Whtp2zgogXDTHt6miYAVj5GEwYXtbbRw/1O9YZFkzqjXawYOLr27ysNGrXtxzlnKSLLgXW68EFGAWmXVTWI10sLagIBdZx4d0ssfksDZNNvHKndLmSwDoJrFQqK9YDHRUS42lBRayCx3EcJ7CKFoFyVGKV48DaHSrA4NJpQaRhLK34CxWKxZ+IiFOFLLJklRyVhDpC+5GygtXhuoPqtOEqlymth7o4K/mG0k1+N6wq7znIPnfJLHlZofpMMCVTeblcOonAunf6zaZynQRMZlFSUGVY2mTKWcljaueoJBOKVMqGQmIn9+rtO81Go9EnF/0+S2aRK2GlKtoyKrZU3/UmmIuKWZqUuPZ7nWbj3r0mXD36UMDUptdP3cz7hFqFepGYqnqnYijKSpjVFShPZXBVcpZVfxXi0iy40Ii36/XjIB24H/xvn7JpJV8nIxaf2BlM/rgiZxXISGwKFJLCvs4q7dW7/cZLVINg3a7tfvj06dNnVAELQQksK41MaD8pK/kBDzOJUWmXUW9f7t94GcP6d95/pnr26/3PDCtGaRZAxJJQOKjk/pNLiqpoULEuvNK+/AquGPb+2ftR8BB1jbFAonpR1S51MsES0xKuVbvcWhUPKpZWOhl2LsN1S7Ga13RxFkqzyJMsbqvStE4bZ+VHJc4VuWltrGNw3b39XOfV6N+pKRTCeiimRWFxVMbHRHJMxffApWISz6t88e7tzqvGy3uNfr9TUahNrOSLp2DFLhnFYUZRTDgJ978SCUdewVXv0kWZLl7H4xZkl2Mi6bTiBpSjAktYUuyelRhTrumonjf2sdZokqpuXkuKsaBCWOf0lCGjpPdh/uGzpbxFbXGB1SPWnU5v3zwls1DEki9WrPm2yUpaKrHFkth+MqutWF2wrhWwrr6jsMSZYmcWb8DiDtxCdVRdk7OsU4z1m5T7eXEaiOIADv4DVq1RMbZdV8XbdhUKq6kKgqdd6i+QIgiyRZKbiJecPIQinhR7KYqoIHhR1ksVIT0r3pUi6p/gWW9+37yZjs3LNKm+TW3Uuu5nvzNv0qTb6bsJ3FnkJ2mFSKKca5UjK/oolxaOoOwgPHIEKJHWNo06fuwR5pX00CZNJdp6ZcHnVsUke2DYBosa4ZWVnVCxTKYFFepR+avBJxIDaCbTiuUz+2Y6K2KTswcmSVpqatXXL14j1gY6IURcGdZp88Y3j8qOvyQavDaAsT+tfrZXJKNBILJyqVCJ74fFM4s7BlinMLkoLScLKGzlWEl/AMKU1RcsrWr2A/xZkOmDcw9sI98flggLHQOsU4p1pYCFkiypGr9WAssaYb/PlXDzU65UPy5gUMFqpSdW4EdFYVWrZmqBRT1jr4vFqkO5LNHXKZxB8BfrKwZOTk8P6XGggWUHH7ucxxYYz2M3iG9VNQbV1OKDJxdrG3KCCptkyeOK/mCUVKK/WPjSE0uiHWYNfiXN0LJ0WHEcD3fvTsJxTJrhmHf0Khz5gTbQX6T5WSGtyuoFw9qQLFNAoQQr/6cMmlivZlhILmXKzDoVN8k2kxaFtYVsJwMfFQ1399XOyCzDQ1+PwXSLx2+Y69qB5/2KhbqGyeVkmfeHuVuUFVioWRb+/0o8HifbZVkWTGqCESvwubYivTPSYYXIne5jaLn6syRmeTVMrZPX4FI9Y7+LxSrJypgquayY2gd/b/NZhLETi3IIJuMJbHZHd78tPQbxR5+SOMWk9ePM9Kry1GpfvrhhJpeTxShmuVVsEqzkr/7uSItN7KK0YppjpIoRU+KbPhEjN75nzhChTSyJTGZqrSsWXJhc+wBq5bIgkiznq5YkKwoT9V1PctNC2dYOVqR28Pi+6oEDswSH0BiWahdJGKbZQcin1MDScYHFKtkJNWqJWe6GQQo5t5rjMQloQrx2sQBzsDDkDOuT/0ndEzQIIZwl8SDUp57oCp5eufYRqtWSaR0SableOSdZ9sRmH+tU9vCPWBpUyIr5HjXmPhglMx3QjEJvbbW9fgGwjbMqrgMtmBBYy8FaWrorVuDiuTVlpDQlMlcLClj4ei1rZBtEvOWzLJ6uw6aQVuX8OpVZuojFMskCyrLcUUmWdcXEyjyj4kHoTsuw+H7LphOHEU3WwXAmKd3eV9rr7Xb7CkahZaEEi11gibBsb5csRo2iKFWWxLKggmwea4dISx68hwN6iPFY1ipM9Nq1y2ChNhysbWwiVu4Vbmp/cAkWT6tPaMtKEoGQOU53sNQxRZYVcTSoURDw30T02Kp1makF1Xl1+Y6unLhZjGKWRNmSLLioU1Bc6QBfBO6HoyhFVg7WDmIBJVn24H2CzxjT4KPvGCDWxEdO58Gqr+EAysniWsLEYpYYfm7WLz2tmjQHvvYjqIKYQxsMAZCsHbS5WOh+pvENA/yrfjihvhEbz8zUWlldq61p1iVidXNZ07Qcl4AdLN0qyIWi0FB0yJPHooGHK9g8CCXrqx/waotbGvi6JpCIMbiCIVijJ8gXmdXtFrHKni/D8P/KKMor/ESoUaymVRoM+tOAxkGwpVUoD7coCEZ8ABgEE7Mz3hFrLR/NxhF/xrSaLW97hVhrfLH1GrFetLrdRViLnK2Nm+7rivB4rHIXYk15fTINPR4yRIxBNEGEhUMozXrcnc968uRuydPQMJU9qWk8Hn14blafWrksOQbrKix8QsN66mY9WXqCWt4sCkv86MfcU0oeNmhoY5KzuI0Xw4A5j9cF1fBAnKa5uEGsm60uw7qCBRI2sGxW/39Z0QNFY4hWwGKUgIkxiBf8Iyyw1LUgsD6cAaoBlWAhLKjAsgNQepxjj1miGOUJkguGUr4C1vl6BWGBVdOsz3cbDYpLpAUTVMQqPLteVrXDozJJecUiDopvbhWmFoeF39SwcBHr1e0GXJDJtIA6fRUs9/uHzisZlGUVl4EUJMVhrdXrazWvqlirvB6/us8qwaKZtXz0UKejWdgWSUmquHhKeSVcEuRmVWoIa4b1uUElWNtItXzj3o3OZl2/FCErqrh7n+dAaVWZ0mlRYIUsZIWw9uypUodn1ntmNbJpLS93ljude0tg1XfVsyMw3+QxS6ksCJtZoPBLGRCrVF4l2rtXq3l4/J6qYq2rhevZt4YqwboBV+fg0uHOJkT1QhOzlEeYuLgFli3JcbtQeDilVUVazHrb5bCyrA7XrRubdTGl1E2izAsQJAklknKDTMMooO3RLJRSoZBWm1kvj0Al09rGqt6Hh5tl3+iLoiKYqlmTHYblUyqZFz+QWbweXzsL1pfrDa78tHoPwCo3BEmlNi2SrhK1qEmTgKLCeqxZ3x/NY/V67+/X89KqSRWbPKkyHm9+myipgYAcZo8wdGdZG4r1NJe1TaFQN27WVe2iX5wH65kZJVh6y/WYWjQl8pgyLLNwPXvzwZ1Wj+qFZlEZmUTRzCKQDMskRbvurBYWcUqGJFnvXSwy3frQ21xVpXGaVZFRCZJh7XYPQLtAldPQxgr2ZIoXLsX6ccvFguvD758/L62sQLVzlUu7RBPEh6NKNPSFYjLziIiCVdXr8bPnb7v5c6tH9erhu2dQ4fwny8CSLk9MKOEqyKrsGqUw7FK/FQVWm1kfW7lp9Tq9c6jem8+kMSVQvA7/K2rRPm7bno5Ksip/KLuD1iaCKA7gH8GkrmIobj5Cz0FyUrK0tJBKIFSkF8VCT7H0IKLFgAdPteRQD5WmKyEBCbKWkJKrl96Mh8ZTN5eec/Xsm3mTvGT2zXT233aSNG3hx9t5M9kNtAgdHlhfnrHVUv/qohZOqBFCpMrXSCyLVmGbCUplhWgmNdDBmJhchRVkxS0DqyTSH8O6JTA46rW6nx5ESbPwUn3Iw7LkwgWsqMkehKjqDsMmQCg+ZHFemWnWBRhAjiL0KAxOL3OyfnkTWTWWJVBBszMM95UHPu4QiUw8K0ssyysPdxbNKxgtUQvXWTgeGViQRr8ftaYoH3ZMOuuWbmGdVzA4o8gDd2zx/PL6xjawwoaR1Wx/7sQVycLoKjuJZ9GrQxcWUtRdh6iFC1hHbMsQrL1B6TiuilqRyd1lrhR8ugaro+6mYrW3DNWqHZVK8bCq6gSqKYymlGFWeZZ9rSMGgh3CvVq0Hj8G1t8lA+u6GbyKOks+lks/aUE7QNOWnTNhqbLu21lIOlahWJGs+AXHCkrdyyCoRf2qbIBC5c9MRs5sNO79xI0rSg2yvbiysvJ89Vm9HpX4anWDIBhF11WtBUoT1Cr1nMIyMSquKap2DgM+D3GbXNkCLFzbv+sX4YRlBSKDcWNZWohl3SpZXYqQQMBTjAuDKvy7nhNLXJGUrAHHCmQa426O6X73cNBJ9vObOohYnItqhecC8aSZC6u8Lln1PTPraDxaFi3QZ2wp9+3Tk7SsCn7BcNYFiwWtGFguh6Hn5xWrnTGyYKeby0Bw6YIbNuCe9Ucmht0gseQPMZNLooglXE4dvrIBrAvo8CZWZ9zM5U0pl2GAL0qmkCmoaHKLUx1irAs+IPMs73bWimDVL+KHRtZxtL9R5LJOgTcb6YFLuYsBJ0WD+r74HmI9NsTyXBYueNOuqFYkr3FxrJfxcL/1VORRmrzXovyKr0vlo7yUQdjmCXbqGWTzeFYZWWFtK7knrE0ml5NR/c+/mydsPswFHulPf1xMEg1KyiaIocDJcmJbBZRQUzGnaxrHEq0QWQNx/Vir1vfet/PeFeTd6jRv4YsezGWVyadkdDMQKUpK1SQioPCC433uRBXDKlYk6/rkpJXTWOevTw8Pd3/uPv9xI7PjlK+zIBhuGbvuVFLyzQHVcQq1TB6lJFxg5ZFVby/dfdDSWFCp3lWv1zv9tSbzRmTNmgNDdg6UmcJBdSDy8H2C/9uzctepgSjsiYidreC/IP4Lg2MzlWA5OGEgzZgQQjARY2OKNJsEAklhEzBaJFkRsgpaiQqKsuu5wnYeeICKBxaK2vjNeqyuN4KVX+Z4O2/mzXzz3sv+2J9uwQvENL7zj9hvaOGL6+Im/BC9lFua1uHDpw4Pz+39ORZ0/4D0R5oLt37Db0Fujp1Iv7nrNgOa2Zfc5viC1pYPtK4e2QhaX+POnbqOh8M79bv95z48wH6UPXv279+zf88xCBDnsh7+IKHgk9ZgBCIAcT4ZBYpje46hOYZu3mAYk2BdWwS08swcx/B8BhRnzpz+BvdRPuLVq7339m3btXMHfsrcuvPVszmt7Rs3LtMa3pnWd+5Mp9O6rlurd422NQxXua3oXcswrNLq4qgsY41R3LYKrZtV7igeuUjJqjqRZa6BJW42at1RPWphIW7rUVx6yrMs4ZZG3HheUXox5g2x7vDh0agd1WVrlCUmw15ZlvWwrMu6HQ6HdVNP66GuGocRSqdOHUbRFRgO27ZuW4+OB6+vXTsAXD165em9JVqx0elDu0q5buyxnhjMIIwzanJuKNX3WZpmWaYybnLT4+hUT02TppxTRlMtMuYxqpjnMKdnpsqUvg5DMEmFYsrw8BEDEGgQBAPmc5961HMo8bwwsBlhjhcyzyCksIuozJu8KYs1+fnreTFFLSbNtAQ/0PqEwxq6vXbo5BvQejaeJUu0OOMZDrM65Sx1e+X2HOdnYAU2VQVCZtWbppkw5qAQJm3pi474QkiHEM4dTxiMWZCltAiOyzxSdnCVdrFnGJ7rcs6tLGO95YQDPx8MbGDNGtvOcxsfiHYp96wSgRLXZVR6RdPkmHK9KNbYa9CfP38d9fwNjUePprrcOXXnzuHh4deHDu6e03o4XqLlCGkG1EyShPMkoEnAk4RCMCkPwsSUArfqWEIQ9HEkmslkOolVLKK666K4iKSALu5c14qEEQkErtVbAnQaz3csg8BRPfccx2McN2g1LCR27vug54fhIBwMiNUbvcoMlbkWYt91h/GwrqNJU+RgrmmBkCYFLjce3RxFUTQprq8R18+/Pf/61ssHt0ArTR8u0SK4Od+xfQIjeidH9lZXRoV0lE9CQoQsiGyKopnYRRFFxWQyqZsi6qK2c42ua8XI7QqlhNUaCg9u3pKWOuEarhEpSXwiLSmJxDYhFYzkwi8K34fCd6Q/CMMwqR5XNEQ4UkR1rzxVGaMSmEYFti3yQnvr/HVNbTJ5hIAajYYnTkhN9u3rl89fvnx54NqaaDkI16y5nuc5JUR1QiEjSOUqNzZOnRoSEhBKie0HQhSI+Hw6nUzySdT1Bs7u4kYJdbCQSF8y88OjToxMhRhmAuBCKIQtvO2HPgK1BDujafSKxtJ5Fdx+fOn445nOODxAkiZBsDpJVlcpTdOK0dXVicfHj186/uLy5QsXLty9cPnyC6zA0G2zO3FidPPJk5uoGku0NiBN4s6SLFWVmepcYqloLYNFYLvG922cAlJnRA0QRW4XScmkwyg1TTIYDODs0B7QMCRUOC6TKS4dNhwHYUtTZkrmmNJjhDOfIoUM6fE0xVEvXb50vEqCMAgpgKxDQCIsg/F4NjsOXLoMKnc/Mjn+GHkOy2nAeUA9nziiKZrYiJAN1EfsrFuitXY9XU1NvBh4YJo8Nc2MswD2cwQniSLf1tGiQ7GxRBd3SlkCr0xLOVnm+EJJuFn2nHLkIpVMKCIp5QOOXJRS+lTBofqVyJGtIerq6vglfe2Xbt9evTpIAHS6nT0G0xeXoQIuv4A/bs9mM2jTBJkOEC/0PFjgKDija2ZValb4C4mm+JJZu2KZ17owSUOHyE7kob5927fR2LgQAj6i86Xl0FSZHKEmOHOkGyGF/FzaeUQIDk8sgclwDWXEgXcZsUmINBowJ6SoPiFhgLPfhgfuakazh7MZmDwcP3yIsblTzt698AJegerhw/F4HIxxkvFYVyxMNRHTpLAWSOJwzipupvxEmp2oqio9sXrd2lXLtFatWrXyb/FTC//A+irN6ltin5TfsYf2J5tgyapFh0Z3S9KioC5pIXy1CfqFsBhcrFgsX8z8PivQmgPqj8DIEn6uWQGzCxt/Cqz9EgtLWlzofrLBit8AJqFZGlsW0f9w9bKM7pdzv130sxn/8R//8R//8RO8B5HntV+IjNJSAAAAAElFTkSuQmCC", + "description": "Displays a latest wind speed telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Wind Speed', 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\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\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\":\"mdi:windsock\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind speed 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", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json b/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json new file mode 100644 index 0000000000..723b1478f1 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/wind_speed_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "wind_speed_chart_card", + "name": "Wind speed chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a wind speed data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'speed', label: 'Wind Speed', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm/s', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'speed', 'm/s', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#4B70DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "wind", + "speed" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json new file mode 100644 index 0000000000..dbbb82e43e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/wind_speed_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "wind_speed_chart_card_with_background", + "name": "Wind speed chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a wind speed data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'speed', label: 'Wind Speed', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm/s', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'speed', 'm/s', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "wind", + "speed" + ] +} \ No newline at end of file From f88734c01028ef2c535f85336b771c92c25065ab Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 17:34:37 +0300 Subject: [PATCH 082/117] Removed 'weather_widgets' bundle --- .../server/service/install/DefaultSystemDataLoaderService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 19d7780a79..892eb996bf 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -532,7 +532,6 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("html_widgets"); this.deleteSystemWidgetBundle("tables"); this.deleteSystemWidgetBundle("count_widgets"); - this.deleteSystemWidgetBundle("weather_widgets"); this.deleteSystemWidgetBundle("status_indicators"); this.deleteSystemWidgetBundle("outdoor_environment"); installScripts.loadSystemWidgets(); From 54ef5364ec159980106ce05491cabdd6a79565c4 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 19 Oct 2023 19:00:23 +0300 Subject: [PATCH 083/117] UI: Improve 'Wind speed and direction' widget data keys configuration. --- .../wind_speed_and_direction.json | 4 +- ...d_speed_and_direction_with_background.json | 4 +- ...-speed-direction-basic-config.component.ts | 32 +++++++-------- ...eed-direction-widget-settings.component.ts | 7 ++-- .../wind-speed-direction-widget.component.ts | 39 ++++++++++--------- .../wind-speed-direction-widget.models.ts | 3 -- .../shared/models/widget-settings.models.ts | 13 +++++-- 7 files changed, 51 insertions(+), 51 deletions(-) diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json index ebdedcf611..d6734f8516 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction.json @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' },\n { name: 'speed', label: 'centerValue', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Wind Direction', type: 'timeseries' },\n { name: 'speed', label: 'Wind Speed', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-wind-speed-direction-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-wind-speed-direction-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"windDirection\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"centerValue\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#5B7EE6\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Direction\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#7191EF\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5B7EE6\"},{\"from\":3.4,\"to\":8,\"color\":\"#5B7EE6\"},{\"from\":8,\"to\":10.8,\"color\":\"#305AD7\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#234CC7\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"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';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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": [ diff --git a/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json b/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json index 1e338cd67e..32a54a29e3 100644 --- a/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json +++ b/application/src/main/data/json/system/widget_types/wind_speed_and_direction_with_background.json @@ -11,13 +11,13 @@ "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Direction', type: 'timeseries' },\n { name: 'speed', label: 'centerValue', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.windSpeedDirectionWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 2,\n singleEntity: true,\n previewWidth: '270px',\n previewHeight: '270px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'direction', label: 'Wind Direction', type: 'timeseries' },\n { name: 'speed', label: 'Wind Speed', type: 'timeseries',\n units: 'm/s', decimals: 1 }];\n }\n };\n};\n\nself.actionSources = function() {\n return {\n 'cardClick': {\n name: 'widget-action.card-click',\n multiple: false\n }\n };\n}\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-wind-speed-direction-widget-settings", "hasBasicMode": true, "basicModeDirective": "tb-wind-speed-direction-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"windDirection\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"centerValue\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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)\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Direction\",\"color\":\"#4caf50\",\"settings\":{},\"_hash\":0.7227918773301678,\"funcBody\":\"if (prevValue === 0) {\\n prevValue = Math.random() * 360;\\n}\\nvar value = prevValue + Math.random() * 20 - 10;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 360) {\\n\\tvalue = 360;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Wind Speed\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 16 - 8;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 26) {\\n\\tvalue = 26;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s\",\"decimals\":1,\"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\",\"centerValueFont\":{\"family\":\"Roboto\",\"size\":24,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"centerValueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0.2,\"color\":\"#6083EC\"},{\"from\":0.2,\"to\":3.4,\"color\":\"#5579E5\"},{\"from\":3.4,\"to\":8,\"color\":\"#4369DD\"},{\"from\":8,\"to\":10.8,\"color\":\"#2B54CE\"},{\"from\":10.8,\"to\":17.2,\"color\":\"#224AC2\"},{\"from\":17.2,\"to\":24.5,\"color\":\"#F04022\"},{\"from\":24.5,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"ticksColor\":\"rgba(0, 0, 0, 0.12)\",\"directionalNamesElseDegrees\":true,\"majorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"majorTicksColor\":\"rgba(158, 158, 158, 1)\",\"minorTicksFont\":{\"family\":\"Roboto\",\"size\":14,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"20px\"},\"minorTicksColor\":\"rgba(0, 0, 0, 0.12)\",\"arrowColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Wind Speed\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"\",\"decimals\":0,\"useDashboardTimewindow\":true,\"showLegend\":false,\"widgetStyle\":{},\"actions\":{\"headerButton\":[]},\"configMode\":\"basic\",\"displayTimewindow\":true,\"margin\":\"0px\",\"borderRadius\":\"0px\",\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"showTitleIcon\":true,\"titleTooltip\":\"\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:windsock\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"iconSize\":\"24px\",\"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": [ diff --git a/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts index 45344aba84..6bf8c38e59 100644 --- a/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/config/basic/weather/wind-speed-direction-basic-config.component.ts @@ -34,15 +34,8 @@ import { setTimewindowConfig } from '@home/components/widget/config/timewindow-config-panel.component'; import { formatValue, isDefinedAndNotNull, isUndefined } from '@core/utils'; +import { cssSizeToStrSize, getDataKey, resolveCssSize, updateDataKeys } from '@shared/models/widget-settings.models'; import { - cssSizeToStrSize, getDataKey, - getDataKeyByLabel, - resolveCssSize, - updateDataKeyByLabel -} from '@shared/models/widget-settings.models'; -import { - centerValueLabel, - windDirectionLabel, windSpeedDirectionDefaultSettings, WindSpeedDirectionLayout, windSpeedDirectionLayoutImages, @@ -108,25 +101,21 @@ export class WindSpeedDirectionBasicConfigComponent extends BasicWidgetConfigCom } protected defaultDataKeys(configData: WidgetConfigComponentData): DataKey[] { - return [{ name: 'winddirection', label: windDirectionLabel, type: DataKeyType.timeseries }, - { name: 'windspeed', label: centerValueLabel, type: DataKeyType.timeseries, + return [{ name: 'direction', label: 'Wind Direction', type: DataKeyType.timeseries }, + { name: 'speed', label: 'Wind Speed', type: DataKeyType.timeseries, units: 'm/s', decimals: 1 }]; } protected onConfigSet(configData: WidgetConfigComponentData) { const settings: WindSpeedDirectionWidgetSettings = {...windSpeedDirectionDefaultSettings, ...(configData.config.settings || {})}; const iconSize = resolveCssSize(configData.config.iconSize); - let windDirectionDataKey = getDataKeyByLabel(configData.config.datasources, windDirectionLabel); - if (!windDirectionDataKey) { - windDirectionDataKey = getDataKey(configData.config.datasources); - } this.windSpeedDirectionWidgetConfigForm = this.fb.group({ timewindowConfig: [getTimewindowConfig(configData.config), []], datasources: [configData.config.datasources, []], - windDirectionKey: [windDirectionDataKey, [Validators.required]], + windDirectionKey: [getDataKey(configData.config.datasources, 0), [Validators.required]], - centerValueKey: [getDataKeyByLabel(configData.config.datasources, centerValueLabel), []], + centerValueKey: [getDataKey(configData.config.datasources, 1), []], centerValueFont: [settings.centerValueFont, []], centerValueColor: [settings.centerValueColor, []], @@ -167,8 +156,15 @@ export class WindSpeedDirectionBasicConfigComponent extends BasicWidgetConfigCom setTimewindowConfig(this.widgetConfig.config, config.timewindowConfig); this.widgetConfig.config.datasources = config.datasources; - updateDataKeyByLabel(this.widgetConfig.config.datasources, config.windDirectionKey, windDirectionLabel); - updateDataKeyByLabel(this.widgetConfig.config.datasources, config.centerValueKey, centerValueLabel); + const dataKeys: DataKey[] = []; + if (config.windDirectionKey) { + dataKeys.push(config.windDirectionKey); + if (config.centerValueKey) { + dataKeys.push(config.centerValueKey); + } + } + + updateDataKeys(this.widgetConfig.config.datasources, dataKeys); this.widgetConfig.config.showTitle = config.showTitle; this.widgetConfig.config.title = config.title; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.ts index a9ae8b978a..aa33842cb9 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/weather/wind-speed-direction-widget-settings.component.ts @@ -21,14 +21,13 @@ import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { formatValue, isDefinedAndNotNull } from '@core/utils'; import { - centerValueLabel, windSpeedDirectionDefaultSettings, WindSpeedDirectionLayout, windSpeedDirectionLayoutImages, windSpeedDirectionLayouts, windSpeedDirectionLayoutTranslations } from '@home/components/widget/lib/weather/wind-speed-direction-widget.models'; -import { getDataKeyByLabel } from '@shared/models/widget-settings.models'; +import { getDataKey } from '@shared/models/widget-settings.models'; @Component({ selector: 'tb-wind-speed-direction-widget-settings', @@ -38,7 +37,7 @@ import { getDataKeyByLabel } from '@shared/models/widget-settings.models'; export class WindSpeedDirectionWidgetSettingsComponent extends WidgetSettingsComponent { get hasCenterValue(): boolean { - return !!getDataKeyByLabel(this.widgetConfig.config.datasources, centerValueLabel); + return !!getDataKey(this.widgetConfig.config.datasources, 1); } get majorTicksFontEnabled(): boolean { @@ -120,7 +119,7 @@ export class WindSpeedDirectionWidgetSettingsComponent extends WidgetSettingsCom } private _centerValuePreviewFn(): string { - const centerValueDataKey = getDataKeyByLabel(this.widgetConfig.config.datasources, centerValueLabel); + const centerValueDataKey = getDataKey(this.widgetConfig.config.datasources, 1); if (centerValueDataKey) { let units: string = this.widgetConfig.config.units; let decimals: number = this.widgetConfig.config.decimals; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts index d328e59ace..3e341d11f5 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts @@ -24,12 +24,11 @@ import { OnInit, Renderer2, TemplateRef, - ViewChild, ViewEncapsulation + ViewChild, + ViewEncapsulation } from '@angular/core'; import { WidgetContext } from '@home/models/widget-component.models'; import { - centerValueLabel, - windDirectionLabel, windSpeedDirectionDefaultSettings, WindSpeedDirectionLayout, WindSpeedDirectionWidgetSettings @@ -38,8 +37,8 @@ import { backgroundStyle, ColorProcessor, ComponentStyle, - Font, getDataKey, - getDataKeyByLabel, + Font, + getDataKey, getSingleTsValueByDataKey, overlayStyle } from '@shared/models/widget-settings.models'; @@ -118,11 +117,8 @@ export class WindSpeedDirectionWidgetComponent implements OnInit, OnDestroy, Aft this.ctx.$scope.windSpeedDirectionWidget = this; this.settings = {...windSpeedDirectionDefaultSettings, ...this.ctx.settings}; - this.windDirectionDataKey = getDataKeyByLabel(this.ctx.datasources, windDirectionLabel); - if (!this.windDirectionDataKey) { - this.windDirectionDataKey = getDataKey(this.ctx.datasources); - } - this.centerValueDataKey = getDataKeyByLabel(this.ctx.datasources, centerValueLabel); + this.windDirectionDataKey = getDataKey(this.ctx.datasources, 0); + this.centerValueDataKey = getDataKey(this.ctx.datasources, 1); if (this.centerValueDataKey) { this.decimals = this.ctx.decimals; @@ -169,21 +165,27 @@ export class WindSpeedDirectionWidgetComponent implements OnInit, OnDestroy, Aft } public onDataUpdated() { - let centerValue = 0; + let value = 0; this.windDirection = 0; this.centerValueText = 'N/A'; - const windDirectionTsValue = getSingleTsValueByDataKey(this.ctx.data, this.windDirectionDataKey); - if (windDirectionTsValue && isDefinedAndNotNull(windDirectionTsValue[1]) && isNumeric(windDirectionTsValue[1])) { - this.windDirection = windDirectionTsValue[1]; + if (this.windDirectionDataKey) { + const windDirectionTsValue = getSingleTsValueByDataKey(this.ctx.data, this.windDirectionDataKey); + if (windDirectionTsValue && isDefinedAndNotNull(windDirectionTsValue[1]) && isNumeric(windDirectionTsValue[1])) { + this.windDirection = windDirectionTsValue[1]; + if (!this.centerValueDataKey) { + value = this.windDirection; + this.centerValueText = formatValue(value, 0, '') + '°'; + } + } } if (this.centerValueDataKey) { const centerValueTsValue = getSingleTsValueByDataKey(this.ctx.data, this.centerValueDataKey); if (centerValueTsValue && isDefinedAndNotNull(centerValueTsValue[1]) && isNumeric(centerValueTsValue[1])) { - centerValue = centerValueTsValue[1]; - this.centerValueText = formatValue(centerValue, this.decimals, '', true); + value = centerValueTsValue[1]; + this.centerValueText = formatValue(value, this.decimals, '', true); } } - this.centerValueColor.update(centerValue); + this.centerValueColor.update(value); this.renderValues(); } @@ -313,9 +315,8 @@ export class WindSpeedDirectionWidgetComponent implements OnInit, OnDestroy, Aft } private renderCenterValueText() { - const text = this.centerValueDataKey ? this.centerValueText : formatValue(this.windDirection, 0, '') + '°'; this.centerValueTextNode.text(add => { - add.tspan(text).font({size: '24px'}); + add.tspan(this.centerValueText).font({size: '24px'}); if (this.units) { add.tspan(this.units).newLine().font({size: '14px'}); } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.models.ts index c9fe2a84df..6359696f25 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.models.ts @@ -103,6 +103,3 @@ export const windSpeedDirectionDefaultSettings: WindSpeedDirectionWidgetSettings } } }; - -export const windDirectionLabel = 'windDirection'; -export const centerValueLabel = 'centerValue'; diff --git a/ui-ngx/src/app/shared/models/widget-settings.models.ts b/ui-ngx/src/app/shared/models/widget-settings.models.ts index 056738f396..5055893b6f 100644 --- a/ui-ngx/src/app/shared/models/widget-settings.models.ts +++ b/ui-ngx/src/app/shared/models/widget-settings.models.ts @@ -422,16 +422,23 @@ export const overlayStyle = (overlay: OverlaySettings): ComponentStyle => ( } ); -export const getDataKey = (datasources?: Datasource[]): DataKey => { +export const getDataKey = (datasources?: Datasource[], index = 0): DataKey => { if (datasources && datasources.length) { const dataKeys = datasources[0].dataKeys; - if (dataKeys && dataKeys.length) { - return dataKeys[0]; + if (dataKeys && dataKeys.length > index) { + return dataKeys[index]; } } return null; }; +export const updateDataKeys = (datasources: Datasource[], dataKeys: DataKey[]): void => { + if (datasources && datasources.length) { + datasources[0].dataKeys = dataKeys; + } +}; + + export const getDataKeyByLabel = (datasources: Datasource[], label: string): DataKey => { if (datasources && datasources.length) { const dataKeys = datasources[0].dataKeys; From 408b890679a66f61a67a53b092eb29ea651dc6d1 Mon Sep 17 00:00:00 2001 From: Artem Dzhereleiko Date: Fri, 20 Oct 2023 11:01:04 +0300 Subject: [PATCH 084/117] UI: Fixed widget setting boarder radius --- .../src/app/modules/home/models/dashboard-component.models.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts index 8104e80e36..790ea29615 100644 --- a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts +++ b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts @@ -479,7 +479,7 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget { backgroundColor: this.backgroundColor, padding: this.padding, margin: this.margin, - borderRadius: this.borderRadius}; + borderRadius: this.borderRadius || 'unset' }; if (this.widget.config.widgetStyle) { this.style = {...this.style, ...this.widget.config.widgetStyle}; } From fc1d694fd77dc51866246ee3d25a6784a11db831 Mon Sep 17 00:00:00 2001 From: rusikv Date: Fri, 20 Oct 2023 11:13:43 +0300 Subject: [PATCH 085/117] UI: Fixed state chart default legend position not set --- .../src/main/data/json/system/widget_types/state_chart.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/data/json/system/widget_types/state_chart.json b/application/src/main/data/json/system/widget_types/state_chart.json index 25a3130d48..a78fc06f64 100644 --- a/application/src/main/data/json/system/widget_types/state_chart.json +++ b/application/src/main/data/json/system/widget_types/state_chart.json @@ -19,7 +19,7 @@ "latestDataKeySettingsDirective": "tb-flot-latest-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-flot-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Switch 1\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false,\"axisPosition\":\"left\",\"showSeparateAxis\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"return Math.random() > 0.5 ? 1 : 0;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Switch 2\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":true,\"fillLines\":false,\"showPoints\":false,\"axisPosition\":\"left\"},\"_hash\":0.12775350966079668,\"funcBody\":\"return Math.random() <= 0.5 ? 1 : 0;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"tooltipValueFormatter\":\"if (value > 0 && value <= 1) {\\n return 'On';\\n} else if (value === 0) {\\n return 'Off';\\n} else {\\n return '';\\n}\",\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":0,\"max\":1.2,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"if (value > 0 && value <= 1) {\\n return 'On';\\n} else if (value === 0) {\\n return 'Off';\\n} else {\\n return '';\\n}\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"timeForComparison\":\"previousInterval\",\"comparisonCustomIntervalValue\":7200000,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"right\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":false,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"dataKeysListForLabels\":[]},\"title\":\"State Chart\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"widgetStyle\":{},\"useDashboardTimewindow\":true,\"showLegend\":true,\"actions\":{},\"legendConfig\":{\"direction\":\"column\",\",position\":\"bottom\",\"showMin\":false,\"showMax\":false,\"showAvg\":false,\"showTotal\":false},\"configMode\":\"basic\",\"showTitleIcon\":false,\"titleIcon\":\"waterfall_chart\",\"iconColor\":\"#1F6BDD\"}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Switch 1\",\"color\":\"#2196f3\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false,\"axisPosition\":\"left\",\"showSeparateAxis\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"return Math.random() > 0.5 ? 1 : 0;\"},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Switch 2\",\"color\":\"#ffc107\",\"settings\":{\"showLines\":true,\"fillLines\":false,\"showPoints\":false,\"axisPosition\":\"left\"},\"_hash\":0.12775350966079668,\"funcBody\":\"return Math.random() <= 0.5 ? 1 : 0;\"}]}],\"timewindow\":{\"realtime\":{\"timewindowMs\":60000}},\"showTitle\":true,\"backgroundColor\":\"#fff\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"padding\":\"8px\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"tooltipValueFormatter\":\"if (value > 0 && value <= 1) {\\n return 'On';\\n} else if (value === 0) {\\n return 'Off';\\n} else {\\n return '';\\n}\",\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":0,\"max\":1.2,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"if (value > 0 && value <= 1) {\\n return 'On';\\n} else if (value === 0) {\\n return 'Off';\\n} else {\\n return '';\\n}\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"timeForComparison\":\"previousInterval\",\"comparisonCustomIntervalValue\":7200000,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"right\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":false,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"dataKeysListForLabels\":[]},\"title\":\"State Chart\",\"dropShadow\":true,\"enableFullscreen\":true,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"widgetStyle\":{},\"useDashboardTimewindow\":true,\"showLegend\":true,\"actions\":{},\"configMode\":\"basic\",\"showTitleIcon\":false,\"titleIcon\":\"waterfall_chart\",\"iconColor\":\"#1F6BDD\"}" }, "externalId": null, "tags": null From a47ceaafedfe34be9e50fdb63e8f854536d97f6a Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 20 Oct 2023 13:06:02 +0300 Subject: [PATCH 086/117] UI: Improve widgets value formatting. --- .../widget/lib/cards/progress-bar-widget.component.ts | 2 +- .../widget/lib/cards/value-card-widget.component.ts | 2 +- .../widget/lib/cards/value-chart-card-widget.component.ts | 2 +- .../widget/lib/indicator/battery-level-widget.component.ts | 2 +- .../widget/lib/indicator/signal-strength-widget.component.ts | 2 +- .../lib/weather/wind-speed-direction-widget.component.ts | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts index 22d3cb6f4d..2b9d4328d5 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts @@ -174,7 +174,7 @@ export class ProgressBarWidgetComponent implements OnInit, OnDestroy, AfterViewI this.value = 0; if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { this.value = tsValue[1]; - this.valueText = formatValue(this.value, this.decimals, this.units, true); + this.valueText = formatValue(this.value, this.decimals, this.units, false); } else { this.valueText = 'N/A'; } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts index d723b9b472..75a922daff 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts @@ -182,7 +182,7 @@ export class ValueCardWidgetComponent implements OnInit, AfterViewInit, OnDestro if (tsValue) { ts = tsValue[0]; value = tsValue[1]; - this.valueText = formatValue(value, this.decimals, this.units, true); + this.valueText = formatValue(value, this.decimals, this.units, false); } else { this.valueText = 'N/A'; } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts index 7cd58e3c13..ce5b61943c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts @@ -194,7 +194,7 @@ export class ValueChartCardWidgetComponent implements OnInit, AfterViewInit, OnD let value; if (tsValue) { value = tsValue[1]; - this.valueText = formatValue(value, this.decimals, this.units, true); + this.valueText = formatValue(value, this.decimals, this.units, false); } else { this.valueText = 'N/A'; } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts index a2793234f4..a983dc81a9 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts @@ -224,7 +224,7 @@ export class BatteryLevelWidgetComponent implements OnInit, OnDestroy, AfterView this.value = 0; if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { this.value = tsValue[1]; - this.valueText = formatValue(this.value, this.decimals, this.units, true); + this.valueText = formatValue(this.value, this.decimals, this.units, false); } else { this.valueText = 'N/A'; } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts index 5891f2b297..10ba3b3b1b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts @@ -232,7 +232,7 @@ export class SignalStrengthWidgetComponent implements OnInit, OnDestroy, AfterVi if (!this.noData) { this.rssi = Number(value); if (this.showTooltipValue) { - this.tooltipValueText = formatValue(value, this.decimals, this.units, true); + this.tooltipValueText = formatValue(value, this.decimals, this.units, false); } } else { this.rssi = -100; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts index 3e341d11f5..bf43218f82 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/weather/wind-speed-direction-widget.component.ts @@ -174,7 +174,7 @@ export class WindSpeedDirectionWidgetComponent implements OnInit, OnDestroy, Aft this.windDirection = windDirectionTsValue[1]; if (!this.centerValueDataKey) { value = this.windDirection; - this.centerValueText = formatValue(value, 0, '') + '°'; + this.centerValueText = formatValue(value, 0, '', false) + '°'; } } } @@ -182,7 +182,7 @@ export class WindSpeedDirectionWidgetComponent implements OnInit, OnDestroy, Aft const centerValueTsValue = getSingleTsValueByDataKey(this.ctx.data, this.centerValueDataKey); if (centerValueTsValue && isDefinedAndNotNull(centerValueTsValue[1]) && isNumeric(centerValueTsValue[1])) { value = centerValueTsValue[1]; - this.centerValueText = formatValue(value, this.decimals, '', true); + this.centerValueText = formatValue(value, this.decimals, '', false); } } this.centerValueColor.update(value); From 857256a9fe6b96c3275589494c5d2a440e2c1abb Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 20 Oct 2023 15:26:50 +0300 Subject: [PATCH 087/117] UI: Outdoor Environment: Rainfall widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../horizontal_rainfall_card.json | 29 +++++++++++++++++ ...izontal_rainfall_card_with_background.json | 29 +++++++++++++++++ .../system/widget_types/rainfall_card.json | 29 +++++++++++++++++ .../rainfall_card_with_background.json | 29 +++++++++++++++++ .../widget_types/rainfall_chart_card.json | 32 +++++++++++++++++++ .../rainfall_chart_card_with_background.json | 32 +++++++++++++++++++ .../simple_rainfall_chart_card.json | 32 +++++++++++++++++++ ...e_rainfall_chart_card_with_background.json | 32 +++++++++++++++++++ 9 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/rainfall_card.json create mode 100644 application/src/main/data/json/system/widget_types/rainfall_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/rainfall_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index f2db1c22a3..bf60c159af 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -45,6 +45,14 @@ "simple_wind_speed_chart_card", "simple_wind_speed_chart_card_with_background", "wind_speed_and_direction", - "wind_speed_and_direction_with_background" + "wind_speed_and_direction_with_background", + "rainfall_card", + "rainfall_card_with_background", + "horizontal_rainfall_card", + "horizontal_rainfall_card_with_background", + "rainfall_chart_card", + "rainfall_chart_card_with_background", + "simple_rainfall_chart_card", + "simple_rainfall_chart_card_with_background" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json new file mode 100644 index 0000000000..2e619546cb --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_rainfall_card", + "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.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rainfall', label: 'Rainfall', 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\":\"Rainfall\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\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-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#7191EF\"},{\"from\":0,\"to\":2.5,\"color\":\"#4B70DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#305AD7\"},{\"from\":7.6,\"to\":null,\"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\":0,\"color\":\"#7191EF\"},{\"from\":0,\"to\":2.5,\"color\":\"#4B70DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#305AD7\"},{\"from\":7.6,\"to\":null,\"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 rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"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", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json new file mode 100644 index 0000000000..c8aa515031 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_rainfall_card_with_background", + "name": "Horizontal rainfall card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest rainfall telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1.5, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rainfall', label: 'Rainfall', 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\":\"Rainfall\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\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-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"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\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"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", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/rainfall_card.json b/application/src/main/data/json/system/widget_types/rainfall_card.json new file mode 100644 index 0000000000..a231670288 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/rainfall_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "rainfall_card", + "name": "Rainfall card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest rainfall telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rainfall', label: 'Rainfall', 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\":\"Rainfall \",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\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\":\"mdi:weather-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#7191EF\"},{\"from\":0,\"to\":2.5,\"color\":\"#4B70DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#305AD7\"},{\"from\":7.6,\"to\":null,\"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\":0,\"color\":\"#7191EF\"},{\"from\":0,\"to\":2.5,\"color\":\"#4B70DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#305AD7\"},{\"from\":7.6,\"to\":null,\"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\":\"Rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"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", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json b/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json new file mode 100644 index 0000000000..1fe9cdb53e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/rainfall_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "rainfall_card_with_background", + "name": "Rainfall card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest rainfall telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rainfall', label: 'Rainfall', 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\":\"Rainfall \",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\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\":\"mdi:weather-pouring\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"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\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"mm\",\"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", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/rainfall_chart_card.json b/application/src/main/data/json/system/widget_types/rainfall_chart_card.json new file mode 100644 index 0000000000..3a19b6e833 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/rainfall_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "rainfall_chart_card", + "name": "Rainfall chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a rainfall data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'rainfall', label: 'Rainfall', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'mm', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'rainfall', 'mm', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#7191EF\"},{\"from\":0,\"to\":2.5,\"color\":\"#4B70DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#305AD7\"},{\"from\":7.6,\"to\":null,\"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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nif (value < -3) {\\n\\tvalue = -3;\\n} else if (value > 3) {\\n\\tvalue = 3;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json new file mode 100644 index 0000000000..75543ca962 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/rainfall_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "rainfall_chart_card_with_background", + "name": "Rainfall chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a rainfall data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'rainfall', label: 'Rainfall', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'mm', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'rainfall', 'mm', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 2 - 1;\\nif (value < -3) {\\n\\tvalue = -3;\\n} else if (value > 3) {\\n\\tvalue = 3;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"mm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json new file mode 100644 index 0000000000..2fcc6ca760 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_rainfall_chart_card", + "name": "Simple rainfall chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAgVBMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMchISHj4+M9PT3x8fGsrKxYWFiQkJDI0vHHx8d1j9zj6PitvOp0dHQvLy9aeNWRpeM8PDyCgoKenp7V1dXy9Ps+Ys5mZmYwV8u6urpKSkrW3fXk6fifsedLS0tohNm6x+0xV8qDm99MbtG6RkKAAAAABXRSTlMA7yC/r1EOHTEAAAQeSURBVHja7M9JAcAgDAAwytEP/v0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh+79bJaIQxFYXi0YN8S9iABY0B0cN7/FVsF5VApdNZtm3+U6Ogj5DIg0RqQaA1ItAYkWv8AwoqfxYjQdxDfiAq/zXPOds156ddQyIAjySgJv9H3EK6mXF64yrUsk5wSTZepVUZYCC/V8FlyXBABtDbAbQXUFMZuDE/VdP/IASEsbcWeSeE3CGpGq2VKYHKQbJNoniip0fI5jAdZt1NkSzoh1eZUGdlhpAckw6mjCGAGJosHsQ3onVcYmE4IpY060BepxAdk/+sHhNtLIkJ0akjzvHhF3k6IHFtEpandIOnFIVcEbKh9p2B+3yN5F2S0G0QKLCQE8AnUk+HLqZXQiBbyL5CZKNEcEqLuE1xxTxn39Pdv9xNyay54VP/g0fiwBiRaAxKtAYnWgERrQKI1INGKDNHu/Q9ANFcikqwPh7BQW30tJPxoiMrUsec1PRrywZ657bgKQmH4aoUFiudjRZ3a03Te/wE3MILd7phx146pid9F8wterC8slNgDUpuCLYswbmPKNyxSoWuzh852RVRnGSh6mxOhpvwLhwHONyZySBFZoIXw8DiOwaZEPOTuocBKxgQpDDjovbWI45al64CBskYNFph4fFQ5T39FJPI7eAEVwzRFVo32N03k4AH+4gODp0X8e+sDhMQAhnMrr+oclkJZEQAEhf0vlSXTa1cw5ykRkWey2keRGnpyQtqsJuQMCyn7BUhL0LgYwCQBMqqEPM5Y484XIRofDCEJ+3QiKp6+yKeAZVy46X/Hvsqn+SiQJzyVP41MdK5IG/q+FrHVR6axvmNsRkQkIIpvkUx+7H+PRCBuOndqYgL7gA2w1Av0wzagLmfHUt/jFqk3t7UAHkVCcjXRz3MAPduZqTuRnLtaNWCkHeNW5kxkhEy3oIuVfeqysmTowWyoOtvP3uyDyKm1cVCrTSBteFUObZjJ6rUIyUKp9akmJlswKQYnjikP4H9wi+YJkdhUbekIia1IpG+uhb4QSiQHEK1eM9/eOIY1sATHeUKkHhdzqklml0YnXbzeOWb7XPWE0L01fbpdznwRXdnYo45+Ehkmpk63q4tkJIRHxJfyWCjCj7C2iD9ekCtpI1goQrFcWcRWZLmTtoOFIs6loGuLnOxzpwtvAJCr6yUi2gM/YG0R+8YAeSxRw4bsaRHKUhdgZRFR2+dnTrKXiFT9F6sVRCYQ8Arc9N/9scWP2B4ee49ti3iYOH3ctkjj2bhtEcsusotshV3k3dhF3o1d5N3YRd6NXeRPO3dCAAAIAjAQP/pHtgbiXYMVWDVCqskYp4WM1WO5s/tMkGLufN1YMwAAAAAAAH5zAZS0p15sQX4JAAAAAElFTkSuQmCC", + "description": "Displays historical rainfall values as a simplified chart. Optionally may display the corresponding latest rainfall value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'rainfall', label: 'Rainfall', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'rainfall', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#7191EF\"},{\"from\":0,\"to\":2.5,\"color\":\"#4B70DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#305AD7\"},{\"from\":7.6,\"to\":null,\"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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"mm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "rain", + "rainfall" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json new file mode 100644 index 0000000000..9b3d56233b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_rainfall_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_rainfall_chart_card_with_background", + "name": "Simple rainfall chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical rainfall values as a simplified chart with background. Optionally may display the corresponding latest rainfall value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'rainfall', label: 'Rainfall', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'rainfall', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Rainfall\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 8) {\\n\\tvalue = 8;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#6083EC\"},{\"from\":0,\"to\":2.5,\"color\":\"#4369DD\"},{\"from\":2.5,\"to\":7.6,\"color\":\"#2B54CE\"},{\"from\":7.6,\"to\":null,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Rainfall\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-pouring\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"mm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "rain", + "rainfall" + ] +} \ No newline at end of file From 66d4f010e86ab781304ba76c4aa8da91168d4ab5 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 20 Oct 2023 16:15:58 +0300 Subject: [PATCH 088/117] UI: Improve some widgets style. --- .../aggregated-value-card-widget.component.ts | 8 ++++---- .../lib/cards/aggregated-value-card.models.ts | 2 +- .../cards/progress-bar-widget.component.ts | 4 ++-- .../lib/cards/value-card-widget.component.ts | 10 +++++----- .../value-chart-card-widget.component.ts | 6 +++--- .../lib/count/count-widget.component.ts | 4 ++-- .../battery-level-widget.component.ts | 2 +- .../signal-strength-widget.component.ts | 6 +++--- .../home/models/dashboard-component.models.ts | 2 +- .../shared/models/widget-settings.models.ts | 20 +++++++++++++------ 10 files changed, 36 insertions(+), 28 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts index b5b37df7f8..86046df6d7 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card-widget.component.ts @@ -48,7 +48,7 @@ import { import { TbFlot } from '@home/components/widget/lib/flot-widget'; import { TbFlotKeySettings, TbFlotSettings } from '@home/components/widget/lib/flot-widget.models'; import { DataKey } from '@shared/models/widget.models'; -import { formatNumberValue, formatValue, isDefined } from '@core/utils'; +import { formatNumberValue, formatValue, isDefined, isDefinedAndNotNull, isNumeric } from '@core/utils'; import { map } from 'rxjs/operators'; import { ResizeObserver } from '@juggle/resize-observer'; @@ -119,7 +119,7 @@ export class AggregatedValueCardWidgetComponent implements OnInit, AfterViewInit this.showSubtitle = this.settings.showSubtitle; const subtitle = this.settings.subtitle; this.subtitle$ = this.ctx.registerLabelPattern(subtitle, this.subtitle$); - this.subtitleStyle = textStyle(this.settings.subtitleFont, '0.25px'); + this.subtitleStyle = textStyle(this.settings.subtitleFont); this.subtitleColor = this.settings.subtitleColor; const dataKey = getDataKey(this.ctx.defaultSubscription.datasources); @@ -148,7 +148,7 @@ export class AggregatedValueCardWidgetComponent implements OnInit, AfterViewInit this.showDate = this.settings.showDate; this.dateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.dateFormat); - this.dateStyle = textStyle(this.settings.dateFont, '0.25px'); + this.dateStyle = textStyle(this.settings.dateFont); this.dateColor = this.settings.dateColor; this.backgroundStyle = backgroundStyle(this.settings.background); @@ -230,7 +230,7 @@ export class AggregatedValueCardWidgetComponent implements OnInit, AfterViewInit const tsValue = getTsValueByLatestDataKey(this.ctx.latestData, aggValue.key); let ts; let value; - if (tsValue) { + if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { ts = tsValue[0]; value = tsValue[1]; aggValue.value = formatValue(value, (aggValue.key.decimals || this.ctx.decimals), null, false); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts index b199aaa9c6..1d02d71cdf 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/aggregated-value-card.models.ts @@ -92,7 +92,7 @@ export const computeAggregatedCardValue = key, value: '', units: key.units, - style: textStyle(settings.font, '0.25px'), + style: textStyle(settings.font), color: ColorProcessor.fromSettings(settings.color), center: position === AggregatedValueCardKeyPosition.center, showArrow: settings.showArrow, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts index 2b9d4328d5..43d2c6300c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/progress-bar-widget.component.ts @@ -124,7 +124,7 @@ export class ProgressBarWidgetComponent implements OnInit, OnDestroy, AfterViewI this.layout = this.settings.layout; this.showValue = this.settings.showValue; - this.valueStyle = textStyle(this.settings.valueFont, '0.1px'); + this.valueStyle = textStyle(this.settings.valueFont); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); this.showTitleValueRow = this.showValue || @@ -140,7 +140,7 @@ export class ProgressBarWidgetComponent implements OnInit, OnDestroy, AfterViewI this.showTicks = this.settings.showTicks && this.layout === ProgressBarLayout.default; if (this.showTicks) { - this.ticksStyle = textStyle(this.settings.ticksFont, '0.1px'); + this.ticksStyle = textStyle(this.settings.ticksFont); this.ticksStyle.color = this.settings.ticksColor; } diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts index 75a922daff..a80d1d850b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-card-widget.component.ts @@ -27,7 +27,7 @@ import { ViewChild } from '@angular/core'; import { WidgetContext } from '@home/models/widget-component.models'; -import { formatValue, isDefinedAndNotNull } from '@core/utils'; +import { formatValue, isDefinedAndNotNull, isNumeric } from '@core/utils'; import { backgroundStyle, ColorProcessor, @@ -132,14 +132,14 @@ export class ValueCardWidgetComponent implements OnInit, AfterViewInit, OnDestro this.showLabel = this.settings.showLabel; const label = getLabel(this.ctx.datasources); this.label$ = this.ctx.registerLabelPattern(label, this.label$); - this.labelStyle = textStyle(this.settings.labelFont, '0.25px'); + this.labelStyle = textStyle(this.settings.labelFont); this.labelColor = ColorProcessor.fromSettings(this.settings.labelColor); - this.valueStyle = textStyle(this.settings.valueFont, '0.13px'); + this.valueStyle = textStyle(this.settings.valueFont); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); this.showDate = this.settings.showDate; this.dateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.dateFormat); - this.dateStyle = textStyle(this.settings.dateFont, '0.25px'); + this.dateStyle = textStyle(this.settings.dateFont); this.dateColor = ColorProcessor.fromSettings(this.settings.dateColor); this.backgroundStyle = backgroundStyle(this.settings.background); @@ -179,7 +179,7 @@ export class ValueCardWidgetComponent implements OnInit, AfterViewInit, OnDestro const tsValue = getSingleTsValue(this.ctx.data); let ts; let value; - if (tsValue) { + if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { ts = tsValue[0]; value = tsValue[1]; this.valueText = formatValue(value, this.decimals, this.units, false); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts index ce5b61943c..8b05847fb3 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts @@ -28,7 +28,7 @@ import { ViewEncapsulation } from '@angular/core'; import { WidgetContext } from '@home/models/widget-component.models'; -import { formatValue, isDefinedAndNotNull } from '@core/utils'; +import { formatValue, isDefinedAndNotNull, isNumeric } from '@core/utils'; import { backgroundStyle, ColorProcessor, @@ -126,7 +126,7 @@ export class ValueChartCardWidgetComponent implements OnInit, AfterViewInit, OnD this.layout = this.settings.layout; this.showValue = this.settings.showValue; - this.valueStyle = textStyle(this.settings.valueFont, '0.25px'); + this.valueStyle = textStyle(this.settings.valueFont); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); this.backgroundStyle = backgroundStyle(this.settings.background); @@ -192,7 +192,7 @@ export class ValueChartCardWidgetComponent implements OnInit, AfterViewInit, OnD if (this.showValue && this.valueKey) { const tsValue = getTsValueByLatestDataKey(this.ctx.latestData, this.valueKey); let value; - if (tsValue) { + if (tsValue && isDefinedAndNotNull(tsValue[1]) && isNumeric(tsValue[1])) { value = tsValue[1]; this.valueText = formatValue(value, this.decimals, this.units, false); } else { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/count/count-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/count/count-widget.component.ts index 0f3c922e1b..3302ba4477 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/count/count-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/count/count-widget.component.ts @@ -115,7 +115,7 @@ export class CountWidgetComponent implements OnInit, AfterViewInit, OnDestroy { this.showLabel = this.settings.showLabel; this.label = this.settings.label; - this.labelStyle = textStyle(this.settings.labelFont, '0.4px'); + this.labelStyle = textStyle(this.settings.labelFont); this.labelColor = ColorProcessor.fromSettings(this.settings.labelColor); this.showIcon = this.settings.showIcon; @@ -136,7 +136,7 @@ export class CountWidgetComponent implements OnInit, AfterViewInit, OnDestroy { }; this.iconBackgroundColor = ColorProcessor.fromSettings(this.settings.iconBackgroundColor); - this.valueStyle = textStyle(this.settings.valueFont, '0.1px'); + this.valueStyle = textStyle(this.settings.valueFont); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); this.showChevron = this.settings.showChevron; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts index a983dc81a9..31f98aff6c 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/battery-level-widget.component.ts @@ -183,7 +183,7 @@ export class BatteryLevelWidgetComponent implements OnInit, OnDestroy, AfterView this.showValue = this.settings.showValue; this.autoScaleValueSize = this.showValue && this.settings.autoScaleValueSize; - this.valueStyle = textStyle(this.settings.valueFont, '0.1px'); + this.valueStyle = textStyle(this.settings.valueFont); this.valueColor = ColorProcessor.fromSettings(this.settings.valueColor); this.batteryLevelColor = ColorProcessor.fromSettings(this.settings.batteryLevelColor); diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts index 10ba3b3b1b..8427cf362b 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/indicator/signal-strength-widget.component.ts @@ -142,7 +142,7 @@ export class SignalStrengthWidgetComponent implements OnInit, OnDestroy, AfterVi this.showDate = this.settings.showDate; if (this.showDate) { this.dateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, this.settings.dateFormat); - this.dateStyle = textStyle(this.settings.dateFont, '0.25px'); + this.dateStyle = textStyle(this.settings.dateFont); this.dateStyle.color = this.settings.dateColor; } @@ -173,7 +173,7 @@ export class SignalStrengthWidgetComponent implements OnInit, OnDestroy, AfterVi if (dataKey?.units) { this.units = dataKey.units; } - this.tooltipValueStyle = textStyle(this.settings.tooltipValueFont, '0.13px'); + this.tooltipValueStyle = textStyle(this.settings.tooltipValueFont); this.tooltipValueStyle.color = this.settings.tooltipValueColor; this.tooltipValueLabelStyle = {...this.tooltipValueStyle, ...this.tooltipValueLabelStyle}; } @@ -181,7 +181,7 @@ export class SignalStrengthWidgetComponent implements OnInit, OnDestroy, AfterVi if (this.showTooltipDate) { this.tooltipDateFormat = DateFormatProcessor.fromSettings(this.ctx.$injector, {...this.settings.tooltipDateFormat, ...{hideLastUpdatePrefix: true}}); - this.tooltipDateStyle = textStyle(this.settings.tooltipDateFont, '0.13px'); + this.tooltipDateStyle = textStyle(this.settings.tooltipDateFont); this.tooltipDateStyle.color = this.settings.tooltipDateColor; this.tooltipDateLabelStyle = {...this.tooltipDateStyle, ...this.tooltipDateLabelStyle}; } diff --git a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts index 8104e80e36..fbfa520fb3 100644 --- a/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts +++ b/ui-ngx/src/app/modules/home/models/dashboard-component.models.ts @@ -437,7 +437,7 @@ export class DashboardWidget implements GridsterItem, IDashboardWidget { && this.widgetContext.widgetTitleTooltip.length ? this.widgetContext.widgetTitleTooltip : this.widget.config.titleTooltip; this.titleTooltip = this.dashboard.utils.customTranslation(this.titleTooltip, this.titleTooltip); this.showTitle = isDefined(this.widget.config.showTitle) ? this.widget.config.showTitle : true; - this.titleStyle = {...(this.widget.config.titleStyle || {}), ...textStyle(this.widget.config.titleFont, 'normal')}; + this.titleStyle = {...(this.widget.config.titleStyle || {}), ...textStyle(this.widget.config.titleFont)}; if (this.widget.config.titleColor) { this.titleStyle.color = this.widget.config.titleColor; } diff --git a/ui-ngx/src/app/shared/models/widget-settings.models.ts b/ui-ngx/src/app/shared/models/widget-settings.models.ts index 5055893b6f..bd10859e55 100644 --- a/ui-ngx/src/app/shared/models/widget-settings.models.ts +++ b/ui-ngx/src/app/shared/models/widget-settings.models.ts @@ -302,7 +302,11 @@ export class SimpleDateFormatProcessor extends DateFormatProcessor { } update(ts: string| number | Date): void { - this.formatted = this.datePipe.transform(ts, this.settings.format); + if (ts) { + this.formatted = this.datePipe.transform(ts, this.settings.format); + } else { + this.formatted = ' '; + } } } @@ -320,12 +324,16 @@ export class LastUpdateAgoDateFormatProcessor extends DateFormatProcessor { } update(ts: string| number | Date): void { - const agoText = this.dateAgoPipe.transform(ts, {applyAgo: true, short: true, textPart: true}); - if (this.settings.hideLastUpdatePrefix) { - this.formatted = agoText; + if (ts) { + const agoText = this.dateAgoPipe.transform(ts, {applyAgo: true, short: true, textPart: true}); + if (this.settings.hideLastUpdatePrefix) { + this.formatted = agoText; + } else { + this.formatted = this.translate.instant('date.last-update-n-ago-text', + {agoText}); + } } else { - this.formatted = this.translate.instant('date.last-update-n-ago-text', - {agoText}); + this.formatted = ' '; } } From e5dfd337528e09195a6f24a1769130032d39b3d7 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 20 Oct 2023 17:01:13 +0300 Subject: [PATCH 089/117] UI: Horizontal cards layout settings improvements. --- .../system/widget_types/horizontal_humidity_card.json | 4 ++-- .../horizontal_humidity_card_with_background.json | 4 ++-- .../system/widget_types/horizontal_pressure_card.json | 4 ++-- .../horizontal_pressure_card_with_background.json | 4 ++-- .../system/widget_types/horizontal_rainfall_card.json | 4 ++-- .../horizontal_rainfall_card_with_background.json | 4 ++-- .../system/widget_types/horizontal_temperature_card.json | 4 ++-- .../horizontal_temperature_card_with_background.json | 4 ++-- .../json/system/widget_types/horizontal_value_card.json | 9 +++++---- .../system/widget_types/horizontal_wind_speed_card.json | 4 ++-- .../horizontal_wind_speed_card_with_background.json | 4 ++-- 11 files changed, 25 insertions(+), 24 deletions(-) diff --git a/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json b/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json index 105929125d..2b58b32288 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_humidity_card.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'humidity', label: 'Humidity', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json index 14882ac7e6..8dc416249c 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_humidity_card_with_background.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'humidity', label: 'Humidity', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json b/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json index c96757cebf..fbc79c2255 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pressure_card.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pressure', label: 'Pressure', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'pressure', label: 'Pressure', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json index 58d63484ae..d0beafbf6d 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_pressure_card_with_background.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'pressure', label: 'Pressure', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'pressure', label: 'Pressure', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json index 2e619546cb..4eefae88c8 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rainfall', label: 'Rainfall', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'rainfall', label: 'Rainfall', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json index c8aa515031..62bad4bbb0 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_rainfall_card_with_background.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'rainfall', label: 'Rainfall', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'rainfall', label: 'Rainfall', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json b/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json index 153195a499..8884bcf132 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_temperature_card.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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 };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json index 1c711e7e1f..0bb6084afa 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_temperature_card_with_background.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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 };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_value_card.json b/application/src/main/data/json/system/widget_types/horizontal_value_card.json index 50c50050bc..fd52ab74e4 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_value_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_value_card.json @@ -7,17 +7,18 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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 };\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\":\"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\":\"constant\",\"color\":\"#5469FF\",\"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\":\"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';\"},\"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}}},\"title\":\"Horizontal value 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}}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"function\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"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\":\"constant\",\"color\":\"#5469FF\",\"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\":\"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';\"},\"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 value 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 + "externalId": null, + "tags": null } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json index 94e177672f..e31569ea97 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json +++ b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Wind Speed', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'speed', label: 'Wind Speed', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", diff --git a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json index 3b2c8cf8ff..3808c7d538 100644 --- a/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/horizontal_wind_speed_card_with_background.json @@ -7,11 +7,11 @@ "descriptor": { "type": "latest", "sizeX": 5, - "sizeY": 1.5, + "sizeY": 1, "resources": [], "templateHtml": "\n", "templateCss": "", - "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '130px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'speed', label: 'Wind Speed', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", + "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: 'speed', label: 'Wind Speed', type: 'timeseries' }];\n }\n };\n};\n\nself.onDestroy = function() {\n};\n", "settingsSchema": "", "dataKeySettingsSchema": "", "settingsDirective": "tb-value-card-widget-settings", From deb8cf3a22f2792bb824d531b5d427007c1afb83 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 20 Oct 2023 17:43:21 +0300 Subject: [PATCH 090/117] UI: Add support inside widget bundle added new widgets --- ui-ngx/src/app/core/http/widget.service.ts | 9 ++++ .../import-export/import-export.service.ts | 6 +-- .../pages/widget/widget-editor.component.ts | 19 +++++-- .../widgets-bundle-widgets.component.html | 26 ++++++--- .../widgets-bundle-widgets.component.ts | 54 ++++++++++++++++--- .../assets/locale/locale.constant-en_US.json | 2 + ui-ngx/src/typings/utils.d.ts | 6 +++ 7 files changed, 101 insertions(+), 21 deletions(-) diff --git a/ui-ngx/src/app/core/http/widget.service.ts b/ui-ngx/src/app/core/http/widget.service.ts index 9dcda4ef8a..6b53e4d0cb 100644 --- a/ui-ngx/src/app/core/http/widget.service.ts +++ b/ui-ngx/src/app/core/http/widget.service.ts @@ -236,6 +236,15 @@ export class WidgetService { return this.http.get>(url, defaultHttpOptionsFromConfig(config)); } + public addWidgetFqnToWidgetBundle(widgetsBundleId: string, fqn: string, config?: RequestConfig) { + return this.getBundleWidgetTypeFqns(widgetsBundleId, config).pipe( + mergeMap(widgetsBundleFqn => { + widgetsBundleFqn.push(fqn); + return this.updateWidgetsBundleWidgetFqns(widgetsBundleId, widgetsBundleFqn, config); + }) + ); + } + public getWidgetTemplate(widgetTypeParam: widgetType, config?: RequestConfig): Observable { const templateWidgetType = widgetTypesData.get(widgetTypeParam); diff --git a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts index e91375e75e..e71c4df0d5 100644 --- a/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts +++ b/ui-ngx/src/app/modules/home/components/import-export/import-export.service.ts @@ -297,7 +297,7 @@ export class ImportExportService { ); } - public importWidgetType(): Observable { + public importWidgetType(): Observable { return this.openImportDialog('widget-type.import', 'widget-type.widget-type-file').pipe( mergeMap((widgetTypeDetails: WidgetTypeDetails) => { if (!this.validateImportedWidgetTypeDetails(widgetTypeDetails)) { @@ -309,9 +309,7 @@ export class ImportExportService { return this.widgetService.saveImportedWidgetTypeDetails(widgetTypeDetails); } }), - catchError((err) => { - return of(null); - }) + catchError(() => of(null)) ); } diff --git a/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts index d3ba1d1daa..cc382c420a 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widget-editor.component.ts @@ -52,11 +52,11 @@ import { SaveWidgetTypeAsDialogComponent, SaveWidgetTypeAsDialogResult } from '@home/pages/widget/save-widget-type-as-dialog.component'; -import { forkJoin, Subscription } from 'rxjs'; +import { forkJoin, mergeMap, of, Subscription, throwError } from 'rxjs'; import { ResizeObserver } from '@juggle/resize-observer'; import { widgetEditorCompleter } from '@home/pages/widget/widget-editor.models'; import { Observable } from 'rxjs/internal/Observable'; -import { map, tap } from 'rxjs/operators'; +import { catchError, map, tap } from 'rxjs/operators'; import { beautifyCss, beautifyHtml, beautifyJs } from '@shared/models/beautify.models'; import Timeout = NodeJS.Timeout; @@ -543,7 +543,20 @@ export class WidgetEditorComponent extends PageComponent implements OnInit, OnDe private commitSaveWidget() { const id = (this.widgetTypeDetails && this.widgetTypeDetails.id) ? this.widgetTypeDetails.id : undefined; const createdTime = (this.widgetTypeDetails && this.widgetTypeDetails.createdTime) ? this.widgetTypeDetails.createdTime : undefined; - this.widgetService.saveWidgetTypeDetails(this.widget, id, createdTime).subscribe({ + this.widgetService.saveWidgetTypeDetails(this.widget, id, createdTime).pipe( + mergeMap((widgetTypeDetails) => { + const widgetsBundleId = this.route.snapshot.params.widgetsBundleId as string; + if (widgetsBundleId) { + return this.widgetService.addWidgetFqnToWidgetBundle(widgetsBundleId, widgetTypeDetails.fqn).pipe( + map(() => widgetTypeDetails), + catchError((error) => this.widgetService.deleteWidgetType(widgetTypeDetails.id.id).pipe( + mergeMap(() => throwError(() => error)) + )) + ); + } + return of(widgetTypeDetails); + }) + ).subscribe({ next: (widgetTypeDetails) => { this.saveWidgetPending = false; if (!this.widgetTypeDetails?.id) { diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html index 2d95fd1fdb..fcd36d6f00 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.html @@ -27,6 +27,23 @@ {{ widgetsBundle.title }}: {{ 'widget.widgets' | translate }} + + + + +
add
-
+
add -
widget.add
+
widget.add-existing-widget
diff --git a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts index 77d7cb6c2e..f3c31a8357 100644 --- a/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts +++ b/ui-ngx/src/app/modules/home/pages/widget/widgets-bundle-widgets.component.ts @@ -24,13 +24,17 @@ import { getCurrentAuthUser } from '@core/auth/auth.selectors'; import { Authority } from '@shared/models/authority.enum'; import { NULL_UUID } from '@shared/models/id/has-uuid'; import { WidgetsBundle } from '@shared/models/widgets-bundle.model'; -import { WidgetTypeInfo } from '@shared/models/widget.models'; +import { widgetType as WidgetDataType, WidgetTypeInfo } from '@shared/models/widget.models'; import { CdkDragDrop } from '@angular/cdk/drag-drop'; import { ImportExportService } from '@home/components/import-export/import-export.service'; import { WidgetService } from '@core/http/widget.service'; import { DomSanitizer, SafeUrl } from '@angular/platform-browser'; import { isDefinedAndNotNull } from '@core/utils'; import { FormControl, Validators } from '@angular/forms'; +import { MatDialog } from '@angular/material/dialog'; +import { SelectWidgetTypeDialogComponent } from '@home/pages/widget/select-widget-type-dialog.component'; + +type WidgetTypeBundle = WithOptional; @Component({ selector: 'tb-widgets-bundle-widget', @@ -47,7 +51,7 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn isDirty = false; widgetsBundle: WidgetsBundle; - widgets: Array; + widgets: Array; excludeWidgetTypeIds: Array; addWidgetFormControl = new FormControl(null, [Validators.required]); @@ -58,7 +62,8 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn private widgetsService: WidgetService, private importExport: ImportExportService, private sanitizer: DomSanitizer, - private cd: ChangeDetectorRef) { + private cd: ChangeDetectorRef, + private dialog: MatDialog) { super(store); this.authUser = getCurrentAuthUser(this.store); this.widgetsBundle = this.route.snapshot.data.widgetsBundle; @@ -88,7 +93,7 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn return '/assets/widget-preview-empty.svg'; } - trackByWidget(index: number, widget: WidgetTypeInfo): any { + trackByWidget(index: number, widget: WidgetTypeBundle): any { return widget; } @@ -109,27 +114,27 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn this.addMode = false; } - private addWidget(newWidget: WidgetTypeInfo) { + private addWidget(newWidget: WidgetTypeBundle) { this.widgets.push(newWidget); this.isDirty = true; this.addMode = false; } - openWidgetEditor($event: Event, widgetType: WidgetTypeInfo) { + openWidgetEditor($event: Event, widgetType: WidgetTypeBundle) { if ($event) { $event.stopPropagation(); } this.router.navigate([widgetType.id.id], {relativeTo: this.route}).then(()=> {}); } - exportWidgetType($event: Event, widgetType: WidgetTypeInfo) { + exportWidgetType($event: Event, widgetType: WidgetTypeBundle) { if ($event) { $event.stopPropagation(); } this.importExport.exportWidgetType(widgetType.id.id); } - removeWidgetType($event: Event, widgetType: WidgetTypeInfo) { + removeWidgetType($event: Event, widgetType: WidgetTypeBundle) { if ($event) { $event.stopPropagation(); } @@ -176,4 +181,37 @@ export class WidgetsBundleWidgetsComponent extends PageComponent implements OnIn }); } + addWidgetType($event: Event): void { + if ($event) { + $event.stopPropagation(); + } + this.dialog.open(SelectWidgetTypeDialogComponent, { + disableClose: true, + panelClass: ['tb-dialog', 'tb-fullscreen-dialog'] + }).afterClosed().subscribe( + (type) => { + if (type) { + this.router.navigate([type], {relativeTo: this.route}).then(() => {}); + } + } + ); + } + + importWidgetType() { + this.importExport.importWidgetType().subscribe( + (widgetType) => { + if (widgetType) { + if (this.widgets.some(widget => widget.id.id === widgetType.id.id)) { + this.widgets = this.widgets.map(widget => widget.id.id !== widgetType.id.id ? widget : widgetType); + } else { + this.widgets.push(widgetType); + } + this.isDirty = true; + this.cd.markForCheck(); + } + } + ); + } + } diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 2a6766bcd3..7165a70103 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -4828,6 +4828,8 @@ "details": "Details", "widget-type-details": "Widget type details", "add": "Add Widget", + "add-existing-widget": "Add existing widget", + "add-new-widget": "Add new widget", "no-widget-types-text": "No widget types found", "search-widget-types": "Search widget types", "selected-widget-types": "{ count, plural, =1 {1 widget type} other {# widget types} } selected", diff --git a/ui-ngx/src/typings/utils.d.ts b/ui-ngx/src/typings/utils.d.ts index 7557501bea..a9e250bad0 100644 --- a/ui-ngx/src/typings/utils.d.ts +++ b/ui-ngx/src/typings/utils.d.ts @@ -19,3 +19,9 @@ type NestedKeyOf = ? `${Key}` | `${Key}.${NestedKeyOf extends infer U extends string ? U : never}` : `${Key}` }[keyof ObjectType & (string | number)]; + +type AllKeyOf = T extends never ? never : keyof T; + +type Optional = { [P in Extract]?: T[P] }; + +type WithOptional> = T extends never ? never : Omit & Optional; From da11ac58faa8125550067f38de9848a5a8dd9527 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 20 Oct 2023 17:54:11 +0300 Subject: [PATCH 091/117] UI: Improve 'Simple value chart card' autoscale. --- .../value-chart-card-widget.component.ts | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts index 8b05847fb3..b187aa7969 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/cards/value-chart-card-widget.component.ts @@ -49,9 +49,8 @@ import { DataKey } from '@shared/models/widget.models'; import { TbFlotKeySettings, TbFlotSettings } from '@home/components/widget/lib/flot-widget.models'; import { getTsValueByLatestDataKey } from '@home/components/widget/lib/cards/aggregated-value-card.models'; -const layoutWidth = 218; -const layoutValueWidth = 68; -const valueRelativeWidth = layoutValueWidth / layoutWidth; +const layoutHeight = 56; +const valueRelativeMaxWidth = 0.5; @Component({ selector: 'tb-value-chart-card-widget', @@ -92,12 +91,13 @@ export class ValueChartCardWidgetComponent implements OnInit, AfterViewInit, OnD private flotDataKey: DataKey; private valueKey: DataKey; - private contentResize$: ResizeObserver; private decimals = 0; private units = ''; + private valueFontSize: number; + constructor(private renderer: Renderer2, private widgetComponent: WidgetComponent, private cd: ChangeDetectorRef) { @@ -214,29 +214,35 @@ export class ValueChartCardWidgetComponent implements OnInit, AfterViewInit, OnD this.flot.destroy(); } - private onResize(fitMaxWidth = true) { + private onResize(fitTargetHeight = true) { if (this.settings.autoScale && this.showValue) { const contentWidth = this.valueChartCardContent.nativeElement.getBoundingClientRect().width; const contentHeight = this.valueChartCardContent.nativeElement.getBoundingClientRect().height; - const targetValueWidth = valueRelativeWidth * contentWidth; - this.setValueFontSize(targetValueWidth, contentHeight, fitMaxWidth); + if (!this.valueFontSize) { + const fontSize = getComputedStyle(this.valueChartCardValue.nativeElement).fontSize; + this.valueFontSize = resolveCssSize(fontSize)[0]; + } + const valueRelativeHeight = Math.min(this.valueFontSize / layoutHeight, 1); + const targetValueHeight = contentHeight * valueRelativeHeight; + const maxValueWidth = contentWidth * valueRelativeMaxWidth; + this.setValueFontSize(targetValueHeight, maxValueWidth, fitTargetHeight); } this.flot.resize(); } - private setValueFontSize(maxWidth: number, maxHeight: number, fitMaxWidth = true) { + private setValueFontSize(targetHeight: number, maxWidth: number, fitTargetHeight = true) { const fontSize = getComputedStyle(this.valueChartCardValue.nativeElement).fontSize; let valueFontSize = resolveCssSize(fontSize)[0]; this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'fontSize', valueFontSize + 'px'); this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'lineHeight', '1'); - let valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; - while (fitMaxWidth && valueWidth < maxWidth) { + let valueHeight = this.valueChartCardValue.nativeElement.getBoundingClientRect().height; + while (fitTargetHeight && valueHeight < targetHeight) { valueFontSize++; this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'fontSize', valueFontSize + 'px'); - valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; + valueHeight = this.valueChartCardValue.nativeElement.getBoundingClientRect().height; } - let valueHeight = this.valueChartCardValue.nativeElement.getBoundingClientRect().height; - while ((valueWidth > maxWidth || valueHeight > maxHeight) && valueFontSize > 6) { + let valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; + while ((valueHeight > targetHeight || valueWidth > maxWidth) && valueFontSize > 6) { valueFontSize--; this.renderer.setStyle(this.valueChartCardValue.nativeElement, 'fontSize', valueFontSize + 'px'); valueWidth = this.valueChartCardValue.nativeElement.getBoundingClientRect().width; From 4907283b6ed57702536cc938746d4dfc6f63e4a9 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 20 Oct 2023 18:38:27 +0300 Subject: [PATCH 092/117] UI: Outdoor Environment: Solar radiation widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../horizontal_solar_radiation_card.json | 29 +++++++++++++++++ ..._solar_radiation_card_with_background.json | 29 +++++++++++++++++ .../simple_solar_radiation_chart_card.json | 32 +++++++++++++++++++ ..._radiation_chart_card_with_background.json | 32 +++++++++++++++++++ .../widget_types/solar_radiation_card.json | 29 +++++++++++++++++ .../solar_radiation_card_with_background.json | 29 +++++++++++++++++ .../solar_radiation_chart_card.json | 32 +++++++++++++++++++ ..._radiation_chart_card_with_background.json | 32 +++++++++++++++++++ 9 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/solar_radiation_card.json create mode 100644 application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index bf60c159af..9ee3eda1f5 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -53,6 +53,14 @@ "rainfall_chart_card", "rainfall_chart_card_with_background", "simple_rainfall_chart_card", - "simple_rainfall_chart_card_with_background" + "simple_rainfall_chart_card_with_background", + "solar_radiation_card", + "solar_radiation_card_with_background", + "horizontal_solar_radiation_card", + "horizontal_solar_radiation_card_with_background", + "solar_radiation_chart_card", + "solar_radiation_chart_card_with_background", + "simple_solar_radiation_chart_card", + "simple_solar_radiation_chart_card_with_background" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json new file mode 100644 index 0000000000..1b357d2d38 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_solar_radiation_card", + "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.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'radiation', label: 'Solar Radiation', 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\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\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\":0,\"color\":\"#5B7EE6\"},{\"from\":0,\"to\":250,\"color\":\"#80C32C\"},{\"from\":250,\"to\":500,\"color\":\"#FFA600\"},{\"from\":500,\"to\":1000,\"color\":\"#F36900\"},{\"from\":1000,\"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\":0,\"color\":\"#5B7EE6\"},{\"from\":0,\"to\":250,\"color\":\"#80C32C\"},{\"from\":250,\"to\":500,\"color\":\"#FFA600\"},{\"from\":500,\"to\":1000,\"color\":\"#F36900\"},{\"from\":1000,\"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 solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/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": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json new file mode 100644 index 0000000000..7122187d2c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_solar_radiation_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_solar_radiation_card_with_background", + "name": "Horizontal solar radiation card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC8VBMVEUAAADPfgjntTTCagSpWgHx0kb///rgoCDckg7/+H+hVgGhVgKtYAGaTwCfVgD////z38Pt2sJ8wyL14sPw3ML04MPy3sPv2sL46sv25MT57M7679Dy3cL358f57s/46cnr2ML568z78dH25cawYAH///r78tT89NT++dj358X358n//ufx3MTNegLQfgH///bUhQT//eP++tvKdgH999X//N7rvTutXAH//+/89dWyYgGjVwKzYwHBbAKmWQGtXwK9agH///PEgTH//eDSgQO1ZQH//uv78dOvXQGoWwGrWgHXjQe4ZwLnszPHcwKqXQHtwkGLxzbhnyX89tflri/ioyjFcALwy0zgnCDblA7ZkQu6aALV2JvuxkXpuTjclxP14sX02E7otjaMyTjmsDChVAGeUgH13VLy1EzWiQXKaQ3G1YbkqCvGZQZVUEaDxSzNcBP67F6ay0qx0WnuwzvBcAT248jwyUbkqyzgox7EuaGrpI734lWTyUDVigWaTwHy48XKv6bxz03emBjReRf89trb0bW+133451i3ZAHq2rrVgRvfnRXiqCTflyPYiR6yZASkm4jhq07xzkk8OTT36srtxmzXmkzbn0tJRTzr5rnPxqza46WxqZTP2ZKOiXf99XWKgG93cmTqvGDepEzquDK5ei+/YQLl3cDl3K/i2a/++568spqQkI7++ouq0F/ckCHw9uLy7s7f173ay6/d6qq+t565tZ3I2Ynxz3W30nP88mjv5b3j1LjVzrT//rHk4q7Z3aDmtlihzVXRlEqlVwK4XgHy8vD//87ksFFcWlEoJyTjtxThrhHx6sXs4sW/v7lqZVz36y7OkAuXTQGVTAHLy8X//8Curqv354bz3CTYoRDFfA7j4+P78Y/13oDz133y0lWTSwH//dnx89ng8cTLyrS3rZaCgoKZjnvarHToxRzhxKLR45jG34/rzCf5+OnV1dOXi3j25m+c0FDDjlDAh0TEfCWVSwH3+/Hj49mNwMzJAAAAD3RSTlMAICAgICAgICAgQL/f31DNJ4eVAAAOsklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAJg9eldNGAzDOF5P9VCpN2GnEhsRQhFjlcZB4iGIRpOiQRGM4OIgWhAHXSyY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", + "description": "Displays a latest solar radiation telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'radiation', label: 'Solar Radiation', 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\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\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\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAADAFBMVEX////UhgXOewLOfgPLdwPWjAbHcgKzYwGwYAHThAS/awHKdgHRgQe3ZAHQfQGyYgG1ZQHQgAPNeQLmrzDAbQLNeAbDcALquzzViQitXAG9agG7aAHJdQKlWAKuXwHTgwWxYQHBaQbalA3FcALIcQfkrC/MeQHclxDrvj/RgwLSgAKnWwHxz0vemhe7ZQK5ZwG+ZwPgnhzCbALfnBrIdAHotjPmsjbXjQvmsTLotDe3ZwLgoyDkqizpuDrTiga8aQGqWgHGbgbkqCvipCjakgntw0X///nViAPotjndmBbhoSTBbgHrvzrnszKrXQHEbgLjqiXwy07ZkQrQfQfwyknZjwqwXgLPfAbgmx/twkH88GfhpB+jVwLYjQfKcwjhnSTjpinuxkHgoCDfnRP//+nemhHXigXux0XYjwbz10/+/+3sv0PPegbuxUn77WHAaQLuxD3//+TvyEzx00rmrTL45FjquTXipyG0YQHclRT12lDfoRzhpCShVQHakA+fUwHEawj551vbkxGpXALEcwK5ZQH6613yzkXswD7z1E7ipiX+//P+/rr23lXtwjr33k/pvDjblgz983Lxz0/88GL13FPgnxeYTgHwykTLdQnmsCr34lP//9r34VfrujjmrC7clArVhQP//+CcUQHXjgP//8v010rkqyn88GzjoSbhohzy0lD//8X++5f011Pnsy3lrSr+/af+/q3//rP+9nW3YQLZixzxyj/elxzvxzr++o3//aH++5KTSgH+94L66lf551OrYAP120vXhxn+/sDflyPVgRv+/Jz++obsvjTGYwf982vcmAzFbAX+9nqzZgr//9HdkSHMbhKvWgHOcxX//9Xpty/ckRrKcgH871rSfBjKaRH99on++X7JZwr99HzLbAb000bReBPVgBDPdAf36jGnWALfohL99m/44k799GTCYgP03yfkuBTWnBG8YQHowBy0XALsxDHlrCXqyh3frwvy22b363rFfQv475X59UDx1jniqRj04XXv0if58akeqTMtAAA390lEQVR42rzc7U+XZRQH8CLkIUCCJDFICAWkQEOMhyQoQxEKSBQNCTOlBLMHTSuVtdJ0iLpKo2WpOFf5mJXa1sxpNTfdmuYbt9pyvmv1pv6Fvt9z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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/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": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json new file mode 100644 index 0000000000..4c60941cd7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_solar_radiation_chart_card", + "name": "Simple solar radiation chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical solar radiation values as a simplified chart. Optionally may display the corresponding latest solar radiation value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'radiation', label: 'Solar Radiation', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'radiation', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5B7EE6\"},{\"from\":0,\"to\":250,\"color\":\"#80C32C\"},{\"from\":250,\"to\":500,\"color\":\"#FFA600\"},{\"from\":500,\"to\":1000,\"color\":\"#F36900\"},{\"from\":1000,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"W/m²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json new file mode 100644 index 0000000000..ab0333040a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_solar_radiation_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_solar_radiation_chart_card_with_background", + "name": "Simple solar radiation chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEUAAACQTQyVUABvMQWZUgFvMATLfwCgVwTDcAOUTQFrLQHRiAevXAf////04MPy3sP57M714sP679D35sfs2sL25cTx3cPw3MP46Mnu2sL78tP46Mvu3MP568z67dB8wyL46sr89dX78dL148X++dn89NT999b56s3///rv18T36Mf78dC+awL++96yYgGqXwHv38T57s7///SmWwKjWAKoXAH35cWwXwK6aAG0ZQH++9v35MmsYQLUggW2ZgKvYgLDcQPRfwK7awL///Dz48Xx2Mb14cj//eHy28e3aAL//uzGdQGyZALAbwLx4cTKeQLz3ceMyTjp18OFPgLXiQ/OfAK2YgKtXQI7ODHgmSf//un//ubVhgegWAKdVAHotDelWAL468jhnCqrWwLptjvrvUDiny7ckSDUew7y28QhHxuLQgLTeQigUgLZihjPcwTS15r//ePquT3grQ7jpSogHhqcTwN/OgL578nioSjelSXajxkfHRnalwvXkQnlqS2iVQKZUQLboAfLbwSTSQLIaQTCYgL68snWgA/CWgmYRwPe0bHswEQuLCaaTAO5ZALjozHmrTDdnhHSdgSRRAL79Mrl1MLrzSmMhnbnsTPnrjPjshrepgmWTgLYx63mvB/GYwjNhAeqWALtxEjhpxfo1ri+sprg07huZ1vXgxVkKwR6NwLDu6Ss1WWYzEnlpzQhIR6+VAqrTATOeQKJf27dlx9fKAP038VVUEWhSAPoxCPTiwdqLgODxSzitQ6TjXvmrTe0TwdiXFDz5TLHfAdxMgPe56mozl9/eGghISGsrKLw89Tq3r+nnIeiloJ1c2jvyU3v2S7jrSEhISDkvBdcJgXZ3KKg0Fau2XBYV0/j4syyrJaXl5BIRDvj4+HGxrfe7rTL4I+30XLovSm3VgPn4bOqpY/j49fr6brB2IDB45Wnn4rH1Yj470Xx8fDLy8jp88ewo473++/w9eTd2L7O6adKSUK7cxvcu5LVrHr2+NPL0pD8+2nBnHv9+lmIXlQDAAAADXRSTlMA9iDvryAgv7+/v7CvW+81JQAAGw5JREFUeNrs1LFu4kAUhWESRVrtuyAosAWWYgjuVtiisRUhmRAh1nQUURpsKUCXYgtc2hLVVqkoIqpteIQ8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", + "description": "Displays historical solar radiation values as a simplified chart with background. Optionally may display the corresponding latest solar radiation value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'radiation', label: 'Solar Radiation', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'radiation', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEX////SgwPOewLNeAPPgAO0ZQHNfQK2ZwLThgTCcQK5aQHnszS+bgK8agHBbwHquzvIcwHUhgTRgALFdAHXjQXVigfmrjCzYgGkWQK+bAHmsTHKdQHKegLRfQHotTiuXgHquDvtw0HlrC/akgq4ZwLrvkCwYAHFbwPkqCvZjwfLdwLEcgLViATIeALgoh7swT/rvzvgnhvhoiXgmyPuxkPnrzThpCDclw7elyPpuTfemxjotTvjpSvvykbbkw68ZwKrYALhnybdmBWwYwG3ZAHwyk3nsTjXjAvUgwSqXQGnWgLipibPfQe/aAOtYgKnXQHBbALswEThoiyiVgKfUgK7bAHZjw6qWQLblROyZALdlh302VHotjTlqzTlqS6WTALy1U/krCv13VTemxHtw0fHcAPxzknhnyHjoyj//+nx0U3gmijfmh7HdgHIcQjTgAPuxkrUewzKdQiyYAL//+HQewOfVwLbkhr772Druj+aUgL34lf6613dkyLXiRCNQQLblQrEbAfhnSrkqybfnhScTgORRQLxzk7iqCLCaQW2YgGtXAHbjx7GYRL++IDZjhWIPwLRgQf///jjpTLDXA7y1EvKaBPBVgzTiQaEPQL99XLTdwXXigX+/Jf451vmryvdogrWhgnMbxT+//DVgwjZixr1207VfxHWgxXZnAfYhxnMbwX//9bhsA///8zgqBLJaQZnLAOVRgJeKATQcwP++4/GZAf772b88WT45lX02Et/OgL88WzszB7uxDrrvTbiny/CYQP+/aD230///8P661f++Yjy0Uj+/af341HeqQe8VAj+93ngohj+/rXu1SjktRvTfhmvXALQdhf+/q/oxCSoVQPy3SjmvB22UQZ6NwL99GzntSucSAPktg/szi3Qdg3jrhy7YgLVlAjAWwT+/rv05S7kvRTxzUPwyT/pui9xMQPKgwmkSwPpxBawTgXCdwmqTQPPjAvx2ze2WgL37j2vVAL88nj47S/rxS/1427364H69k38+mD47Jbx1llRHj+PAAA5NElEQVR42mTXXUuTcRgG8GZz2twmrtZeWDZHRi8ToSUsNmJrNbcVrmZGW20VREk2DMKkIA88qJPBEAk68EQwCj+FH63rvu7n/7zUZQ4V45m/Xff9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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"W/m²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_card.json b/application/src/main/data/json/system/widget_types/solar_radiation_card.json new file mode 100644 index 0000000000..812fb8d846 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/solar_radiation_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "solar_radiation_card", + "name": "Solar radiation card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest solar radiation telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'radiation', label: 'Solar Radiation', 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\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\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:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5B7EE6\"},{\"from\":0,\"to\":250,\"color\":\"#80C32C\"},{\"from\":250,\"to\":500,\"color\":\"#FFA600\"},{\"from\":500,\"to\":1000,\"color\":\"#F36900\"},{\"from\":1000,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":0,\"color\":\"#5B7EE6\"},{\"from\":0,\"to\":250,\"color\":\"#80C32C\"},{\"from\":250,\"to\":500,\"color\":\"#FFA600\"},{\"from\":500,\"to\":1000,\"color\":\"#F36900\"},{\"from\":1000,\"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\":\"Solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/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": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json b/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json new file mode 100644 index 0000000000..474d056fd1 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/solar_radiation_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "solar_radiation_card_with_background", + "name": "Solar radiation card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEW/cAWSRAPLewq4ZwHBbgKPQwTOfQjLeQPAcwP////67tD57M378NH57c/46cr358r78tP46Mz35sb25Md8wyL89NT35sj25MT46Mj56sz56s7999b///n14sT568v++df++9rv1sT89db78tHUhgT///Ty28f578r14Mf//ubx2cb//+/25MnViAf//uP//Nz57s3z3MPShAT//eD24sjTgAT468j//+z+/N/468b99tTx2MTw2sPalAz//+ny28SMyjn14MXRfQPblg7s1cPOfALTdwb03cfWiwT03sTakQnZjwbXjQXVgwTt18LQdwLnrjH68cvWggzz38LKeQLSdALlpinUeg7ZiBXflSXnrC757cfkpCbbjBrcjx7YhhDWignUegbWiATLcQPQfwLosTTekiLCZQLjoSPPcwLEvqbq1MM8OjLYjQzhmim9ZAL89dDdmhP7882iUALlqSvbkwvEbAPRgQLjnSThmiLsxX8hIRzoszncoQylVgKppY/GdgKEPgLtyYHqwn3GcAT89dnKawLpvH20YQPflByrWQLRewHSiQTn08PYnga1sZruzITgmRnGZwLl0sLjoCvuzCPcmQ7YkwnXhAi/aQLqvYLpv3yt12ye0lfeqQ3BYQKdTALw9eGdmYXvyo66XwHUz7PerHuOiXfptTy5ZgKZzkzq5MbinR1XVUnTlwfVfQevXgLv6sri3cDe17vQkAXf8cerq6W52XjLgQbz2Znx0JGExy4hHxvqxBbirBbmuxLOiATP6au64IrsxIjy1ZPv6cDKxqxKRz6aSAKLQgLMzMTCwr+zVgL4+/K/3YD47C7ktRvisxDn5tvRonqpTgF9OgHy8tS/v7W0tLDd6anisnpzcGEvLSfn57Xwz43GnHqBfGzY4aDmt3tybV/03izv0ivZ7rnF5Z7K3o/x2oTy8uzT086goJnXqXrm9NXx9Mj025r39dL5+eDirVVlYlX4+uj691by31buz0qvfFMgHxveyLaVUhoSesfDAAAACXRSTlP9/vwVv7ewv6/8oWFpAAAj8UlEQVR42oTUsYpTQRTG8YsRFTWYJZAlAbstTRO8D+CFgI0gbhCvxERkEmxMJVwXLAQLWawEC9HSxmLBWlt9Dp9ByAv4nTNz5rvjxPi/k8tusbvz48xs0emcL15Js9lsOp1W2tevZXnPt1wuH2iPQqfsXezM91Saz+f3pefoYd5z6b40R09DL9AJq+vTuq7X0mKxeCQ9QEuEPX24o5XIVVN0odMpOmDQESDCoIOMhZQ7TCFBoQlCHHfbRQoUKtEUorUlEYIUggUJgsRTAgSd6xSXir8drhIqGRoZdERJ6uA06Mg0NpYIoWRzUsNhEASIZpL2SJyrhDK7WJiDB8s5dRiECjLq0xNjpGeKDhJWq9VdPFKbwvMFyhyS0GazAWZTWypJj5dM5AM+JapKpyOBgxB1iKJURXBExXp9ul7j9KIT6+zsxRk+6eUwxQoryyjPNZNgvX9vEp8xTGIQ9EGyW+L0eBWiCIypOXy8HYrAAsMXHS8kNWiBAYcRXrZavWxZeFukuUA0QGLJTFAiQR5SNs4pxDN4z5tylyMy8PvNIAgbhmwGCmVIieLLF3Iyi1GE4TWkcCpBYhc+QJQCiEshYEj+WJHhB1IHBzLHe4/QZBbhilMBAZYmX2USUuYisSDBSiSIx0sgS54uh+WKmaYO5x3pLReFTsQUyKahxSN13ytQUNDAUgni+RIIS2dCikIkcaBgaYrAAMTd277RPmo/2n1O+4XV7rv2M/Yt9juEr/CdvdHPVt/zPudxN7q/15+2C1DsygdI9XZabY+Pr0u35NXv92/2+zd810IHWGnDg6HvChrJq2tdbnX16uW0ru+KNtL3cDjSDrA0dk0Lm9GNoetoy5EU3oEe0PFPCB0pRHbjt0MFEXSwDDI0CBx5UTIAJDjQ8XJilAIO9LaqtnBESd+niugwBjMGHaroJgp9aXsoo6QcoikkkWzjjS/sors3gFiEoP8z0CgbhwpU0cMLH6+hxCBSG4GFZyelDTm8jj6N70CCAIHDucqVb2RUuYPjyBXqYGRwGr2rPSh6EPQMQ4kWIZQglYwSiVH6lABydHQ0OZpMGkCQawDZM4/8dlCRMIgQRk9338OCQ1948qF0c8qBWTLKYDBoQV4/Ho/BQIBITSmQYzokKGK7FSwbhkxBFUxUeDIJLMCQQksGQbjuoQCRoQCiA5m6sgGEDg0HckAG038w+ofJgCIZhz9LO0uuCn6MjTLLDolMBAsdGgQpxKHGRQgdyqCEjFCbEcsMeyloN4WnKxsJ8pDDw9eP5WxJETL5RAch+xmKyBhoH4KUf0i6iWXfLQHk2e3x+EkL0vyhxP5dnAbDOIA711rPo/EHgWtJXURU0EE5UAQRpPpHSHEKr6McmCGgq5DRwXMwEAJXMjQZOpi1zebgJomQcsv9AZ2c/D5P3jfvveYU/PZ6vbxHtZ/7Psnbu4ODDuSyhnQdqgvT0So0xZE3C3d8ovwPBTcTYkrevlaVnHsFCPq4azTSLaTLQLptdKfKUqGv6aYg/5YoC3JmJbsK8gKS2eyWbASO6xqiC1m1kBU5FIQRzNAStXtLh2UgHEdhVLoSg8IfqpOzKgGE8vY1JLdgAYQK6TZyGdkcHbWQz49/aIZsI3PnvXYbD+qWISmLLMsWjpGozHbczJAE8/+hSIcBeYbMZufAIMd13YiSLIfD4Uo6fuLrpdy2FCPJf/2qGUJlxEI5VBeuh4joNMT1XMsrVTGZP+9HefD3UlS0Qzey20JevHhJkKfch4ZcUY7DIbKUEEIND41L1bFYXwhznxkMMRj8qsM0KqqF3URCnHShRszN3X4/ovnqQtihIV2KhLwhyLMP3AhDbt0yIeiD8hUMyuMhS6SDkxT4v+OglyWiiAmysxMKkWRWlNTcg+v5tu17qU3LqY2HYgtI6TuLWIh6xy3yIoiSqD+v8S/0euE2FsX6zE3lLAg6AWRKEEwXGnl6cPegA7l8MmyyuUSU9kgxkDAv/DnaSEQQ5iFBXK+OigQjVcSpY9sMKb1FRMuFnXq1SxARO6VwAy/MQi+cUyvHIvDzuHec165IjFpMCL+UdrYQamT6/DnPltkIHBKCCjhH/OzP8ujr6tTesU7yPMaQ+8AkE0DmWeaWHpqIbASQSlSVP1qkKZZHsbfAkmsDskgztyoBd2m85vgxANPDB+4KYUhwnZF94E4QKWEICkEU5LoJQQUyq0sDnOoqS2PzyOLc50EvxU4srCypEkGQlBwj1yt9kYxGC1oGRIxGDcR2qyLRkCwPMJm5hJx5pkjHABBdCeXtwzfTKSSAHMAhT3YN2aVCOIerASBLdfi47WMuYsxVfpzl/mSyLQiC88GJPZsgI2Tt+eO1tx5jeRx749BbYMkdAVJsnX1RWgzxVCN9CcEV3ZDoRgYEuThQjVDePfxIw8WNaAg7GMIVyKvWgHbCVvKzLWRb+W6NuUqEG3s+QTDzgWAIGOMxQcaJGDfLOCyDxFsThJ9SWpEXZ4BMcBjmsYIgndm6hhBkcGpHlJCHgOA0UY1cNyEnqoDBxdXy6PDntWtHcuVEb+VxUYmwP8lKPFhWmDhOWRW1SCORjimRCO7cWeNTzctjvxC1WI+ScJQWVbItLWtbBZFwJ/PjSuC6Vye9Hu4M0TnPEA5J0EqnkSlDyMGQ9+xgyK4q4NvFAZ3nR9fOf1MVKUi/yWTC+wZvHDbCXSB3KA8495oHWuBvjRAb2d+Xb1omfZUex+yk+bsGQZgx0JXIRlAIJOdkHybk2+Mmm4urZqDOb+TKocnQDs1gBQuMAPQHxbGURFLO+tURDg0hCccYrSlD7lIYAoeC7DZv4fG81VeCrIx3u9qxwwx2mAxG3DbCGLZoiexkAomMZGgIQpC9U5CrcrRMiJys2YwhLNlFCMISmqmldHCYYY7VvqxDMxhxw4jCNK3I8fr7dGkHwpBBE4JcNU/2qW5kdn2mR4shJBlQNiebPbMQc6zA0HWAQWVIxaNTURiqRZey3+mkp9KBQCLPkqsGBI0g59RkfXhPDJaQAwF9QLm2t7dnMBRE1rF/eqqaMhTifpsWwxQ1X7qTznBxNAWvoXEQBRIFefLkD8jswycFwfdJcpVH6+fJam+1+dGF6LFqHbINMKThy/ebKkrTUuZaguhOOhIN0Q6kA5GO2W9a7Z/FiSiKAnjaqBhFBP8MGMQpJGRX3GKXhQ2CTRA/hFgGLCxEsJlC7ITRRhstEpjGqSaBsbBPMcM2UyTT2kmSZhfsPe/Oex6fM4maxIvsWiyLP869786b+FggnBGdyL1in2DaCwcbyw8tx8lod1czRNFCJdNWy225rgEpS9abKMpkgFAquouUpRDVWkzk6Oi9SMyMtDEjTERaCz9+3iyUD3xdYvLwhsoRDeE4CU+a4WACxunp7dPv+/3vGQTfsyQFou8eJ9Nj93u/ryzz6SLr3D6dhIMDJQlDSMLozp0LF8JIS3h0/Q3kPiFIhBA4pATS4NPiV8thIIdjz/dOQr/nR73BGHEE0w5iWEzj2M3wNXXyaTzP8jibxdO877puqxVn+5049wd7kHg9L7iO3zEIIvyigGeXFQkhlNgQObXgQAECBCniuCKNpZtLIHQAgr4Ko6E3DPwonEwGe+iqZLqvIK67mOVzJ0mPs1kS47uTTGfIR1WctbK40x/s7B28iiZj/4YXHnpB4F8IB2eZCSFVEkTC1jp6AAkgOhKBMBLpLGks01zWhGDOvSHmY+yPvbA58j1A4FBx4N+7cJw4A2SeHsdJGuO7k+ZpmjgoQNx5vt9f3MageOOef2MQXfeDce/yhUG0GkKHKg2BhDNyq42yIGwsNpdIeGJ5QRSdeKPIC4NgtxdMBqcY8vnUTVNnMZstZklST9NZXJ/jT1qf585s5qgCpL/oZ4vO7Z3Q2w38pj868YKhFwUeJ96irIYwEfQVJK9/S+QK6htb68tny4E59z3PG4183x9O8GWyM41xVPXjOE+cBQajPsvjHJY4zfHX+XEa57O6guSZ4yYxfhoz3/N6fjPy8YswbTgGLQg/dtAQSmzIM0nkOSBqjQCiHRwRrPUPn/Ck+PHDV3P2chNin+v9IVvwdgcOjICDWtSXlyOlxh4StNducxSF3tCcwkaCKo07yo4EkHeQPINEWqsEQSnIeSlZ62aL/LIK1QLRe1AcnZ+Oel5fWb9JIt8PrH3CTAipioQQLMUaGNWJNLSEDgOho4DQ4YiDtZICCSg7B3ozHlJSWouWxII8VZAHAilaq9sutdbPJy1C2FlWY+G8Mg4yVkvqImkBsmckoBBSnncbAoeB3FeBYEY05JENUWS7s8qBrO9gJpSUm4sQNld5RhCJuiaahdjtAsInLRkRBkIIA6Fj5x8crAoJrycrIqGEkPfSWrLXAbE6C0eWhpwlxLymthx7xiGM9SSlB0iOuwUpRfLmKSGySPARAyG8VcFhIGcIQSCHAtEHFh3rSqojQS1bioQ8ldYqTi0mwkA0hIEQom/oOhBxCGRtSWlMUDy3yhBKAFHnL6qAqA+vFITXQ3M5tCHi4ISYQW+tEQjPLru5NISS6kgIgeRIVU3lAUh3CeQsIeJAMZBSY23eXDcZCSWEUFKCyIMWIHpG+CrIgsBBCAPZzGE3FyAisSOhxIY0JBLVWnJuCUQ5TCJmQhDIRQ1hZ2mHQHQg0lh0rCdhJISgCKlMRAqJFMfW+9pdlQgcD1+ad0ESiEAuMhFrQm6WAqmvDakzEoFQwktv5a3EQPQmqcnZ2+52n7w0DkBQgFy8CMc1q7PsQDDp3ITbiEQgN1dEQkdDQ0RCSLv78AUDKRKRQK4RYnXWxoFQIpGwtxA4IXxZxxd1GiKv6VQiFgQL8QUc7KwGOstAOCL6IsLO2ueEbBoJdkkZcq4E4ZtTk4hpLSDAePTkhTgEAoeCXAWkcBDCJXJwsHkgPLjYW3+AaEnDJIJIlOOo1pZAAHl5SZWBnFeBEFLahuwsBrJhb3FISjNS3VqQ8NRCIlJIxDgAgaIYEYHYI/LrEuEO2by35Nz6w4wwkSsaIrOuN7s4BMJZlxGBhJDSrG9l1BmJDAmPrdXDLq2FzvoVYgKxE+EWWZrIpp3F4pCYRAipaK2rGsJE7uvWeo1AAFEOQlacvjaEks16q4BAUgWhRBwc9reSCN4/1NqQCIStpS65pdOXkPKsbxUiiVz+e8hTQtha9qWKraUkVYcWZ32jWpaIJTEOkTRk2i3ILSZCSEMSgaPqMmJD6Nj42GIibK1lELu1IKlJHlUQJmLvw61BWOb8FQgcKELYWdcKiH5mJASzDog+fVe3Fq+5kGy9tZy6nYg4qiDXBMLjVyCQFInggkgIipCqey6fUATS2u6MEMIJqU7kCiSEYEYIYSKQEIIqQa5veY9UQy4wEBQD0RCzEDnspRnhjb0E0e8Y/98eub4kEQZCh0DEIRAz7S/4XwWqISgF4XVk64k0m5x1Qn4Gcs04UAYCh5I8+PX4Na9QRLICcigQPjRuC7JHCEd9WWfhyFLFF3RFa/1g5V5CZgrjOI7Lzv123C8JidwvIZccWSCXFEsLYStJKEVyKcnCBgkLG2WysJmo2aAs3TaKoojBwrVclr7/3/M85+9xDht+YeYd7zvvfOb/f845M+d55tTqAPFTCs1vM2avdH2z9b8OGtMQkSOHyOEQTayJFUmQGQTIOocgqb0T7xDvrf/2egTIQiAaIjVIY0EcIse5BFm9ThAkOSRJ/GRVvks0CJL/Ndb/0lmKQ4g5OIeol1UOWb1urUGGp9aqnVNwSYT8r97CkXdW/ciXxIIA8QMtHEDSiXYgnBxJkLTdAvwniDbA/3O7pXe2FgbIaIc0HZ4QcwgihyA6GQqEUBE2v9l5t2yCEw6HkHRS4d9f7OKobXwFaThe9MOT6BCE4AAyVxByNDul+6dBEkoC5JlBQkk+RMi923fetHt5Lrfbl3XlQ7sdvqHd/tArXcuHunfWk7cvPmatJYQcEWJnziuITulGiAbJ3yGz85I8ud8pY0nadzpFKMmbTkHKbgW5XRR3dKVVdO7Z5ZuieNNLuVNcdMevu/W7LbuPt+4QJC8IDocsw2GTsWktIKdOraa1BuMIMYgCxALES/Lxvv0yQT6/1ax5QW5zpWX/86GqSFFcipeFCnDRLpWywOubLC/IxaL19mLRiZBsDl2+ycLhkLVA1FpA1h2IiGaIS2wCrSBIihCNkrLo0Ehv9OBjuClWhtLo66KX0i5Kd2Qj5FLr2UB+w936O3PeWBkEh3VWgJwSJHkFSb3lEod0Lj4pi9LGO1NUuiUQJN0idAslUhvFCnzQRdDdS0huuZgcXx/Lsejj52pneKMoq4I4BIZDYDhEU8odckSPeZy+U5BMMhsJEPLxCYMkQp4wSoBMA3JHbaOSqGvi9duhMBokbQqTStWm48ryfht358bUz/c79OWL4LhfdJ7VIPnpBIdoJ1JB5grSp5/9rChRsiA5gJBqOqMgaRNsECR69tVHGtDKB1XpMrdIKaulS2fp9rJQbsTLZwa54Y7Gk4fuIAdwCEJrESvJyuezNUHOKBAkAYKjBkECJO5MFvEgbGfCU3vZN1UxnaKlW+6V3Ohdd5GvgFjH3e7Cg/LsySXUcpR3w1BvnnXmU0wF2esQy62tO8986mOQgUigSLJggffVrxBikMVAOOQCws5EkDEZJA2Yi4wM/kaWCWQeYxWxgW4Ctlgf+RIHLUZe1E4dOgRHE0SrFbb8+P7jNAMCij0bs/nZBQSHFNxM3CHI0CgBMhWJIEgyiJqJaqgql9VosrZwGOSSDXQmrT+xXUjHIK1CeavWap4XlFcEBrsRg5BT37+923hhyLABg0aFx9xPEn5cuxAh8gnxBpFEkJlIBEGSQdoMjw+Gucc/XQ191ek23ynIwqlT5xmEE+x2nz4zyGfLNk05yyEURGusduzf+f3MwxksA4cysk+qaLVXFyNfvypIlACZh+QiENufZJB7FOG2diaUhfJ8SJ1l+w+D4FgkyARB3AFkto8Qd2SQ4cOBrMNhkJs3Z1x7/XDn/s0vN40Vpf84Hjz9FO8kUoQJCuKQ0QaZhQRI2/Yn2uRWaRUlw0NNdulSUcaN8iXtBx8DsZMiBsHhEBwWh9QmnEUHEA0QS4+NDI+VfDgKkE1QeG0lCncExe5gZDUtPkImEEGQQAEyHslbANOQ3ABEh/kg6Whz3OVKGCJjSjoLxzSD4BAEx0DuMysIkIaCNEPYj3z79v3msWOHDwMhoSr9gfTtLYemDmBRYUJzTTh+/LiePfYnEYLko3U8Ev7HJwQyYsgHNRl5Y2OcMfNVMxoNYkdYBuFJsQ2IO5A0dhaOHKLGIkC2HNuHZDsQBcmAkf1swPfvP4zQbBYwYbRQkgAhVhIgepVlW9Hubf69MyYl7CvKOMKtVITDExhsroyOY3SADKwgUlCQ3OEQZySI1uqeeXT4/D6TAEmSYQPGcS/9B2hlryxgoISyDAyQoZIMFQTJ+I9lobTs+a4sJTxdsZVB8ZYuDCaYAmnhEASHIEnCGP37FGwcVUVWC3Ku5/mrkjzdlKIhT1fBUEQZofdQrSwGaZUtIJIwMdj2J0gu8qjLO19s1lNluVGWjAjSZqGZDQ0OT8Ls0nkfmVBsc81YmfYEx0Tu0x0qSDMkq8haVcQWHZ89dvXq+fNQns4hqbl48AjGkiDxcw0mOU7s3Q5BNFAk0fxGrR6RRRoPCDKNzhJjkQ7ccTQsg5GjXhF3KIKswxEgN/ddvboLiSCRsmLFWFOsIEicgoQtmpWE6Jg7jvhw3JVRCJo8tham2/3CQhhbZ+Vz/yZmjrTFAuIOlyRGgFAQYpAeV09cJefPA1k6Z1OgrFnhGTtfH2gVijJIJUGiVEWRREUJFFnQ5ImLk1iZ5NPMsnIQMXCQhvnX9cGeHJNwEJNcWbp009KlKopRSORMmT9fEhIkGu/KBCBBklFkAQMnxVdYaTGil0OOfMqyO1CQ3NEE2QbkxPUoARIdv1vmW6qasPFCMjBI1BZ5UUTBAsby++o9Ld5zR1qg4I7eOCxN9cg7ixxFQQxynYgiiCwhgkgyZYok06NkUJ9R/aDEkkiSRgoSKLIQaTzoUIjhC1wzh/dVM8QdJEGQ4JjU4yQQUQKEceIRBAeJEhxk5Kh+NlAc4kURRRYw0uivIkVi4KgxiLeVJTH8XSBXBMhaHEC2ATkZKe9jQfiTQVwyXZJIQTLQJDbX2GsCxS1gPCCSwqdp1Bg48qVuI70evAEviJIgyQHE4hDL8jnLHbJqFRALECTTkYhikgkRkiQqiiiO8YBIjD+soXRHbV1rOiXiDofAAHKIiPJ+w4YEIaIsxyGIS0gl6YuE3uKBZBQs0tTiH5AiR14N4gx3RIgcgrhDEHMYZK4gkgBBIogHB/mLRBBFElFYDVclPXpH+DnCkEwBw1M5Bg3w9fg1SHAAUQSpSyZPnlyXJAqHyA6xSBIpoS51hRj57Hc1FWlyDJIDCJIK4o6xR+UQ5PrJKAEiieIQJJYocYqVhI2wINVyODKw+gAnNEG0WIKoaP4sJ2dkEH6JIGLkEDmAiDFp/foeh/ddl6QJIklzUUJJeHFirc7TWZdg8XgthjZ/Dp0rnCFIcGStNeQXSKwHkGW7b16NEJcsSRYYpKkmsbcGRki+Xn9oUyRoYKTUGXLkn+IkiCSCXNAA0QdOnnl18MSePXsOHYoQOZYgccefJFREEBwk+2AOpW5wR6UQBEWe5IChC5fgACIGOSqIPsv0wYOflNwxaxRBHAXw649cQFCxuIAoBA6FU4gQFYR4IhE0HClTmi7N5VKk0iIGhATEZtKksQrYWaRIs9mPkAuxsr4r8i18/7cz+24yw4kv0dOkmV/ezO7tbNjTgx2TXEHBUAJKRxAtFEiQGvLAhlVvRCqBYgg50jaESPtQAoMQOAQ5foi8ZyNjt/955wckNQQGSjodGnxqCClcJU2DPODG5JwakUWRwpJfGlLkHITo4XN0EEIHIedHjQOTXPV6dNy/D0kCSaYXGgHETs5wNNWHkmFQojLSFd6sFWKYhA6mcghCBdK4cOdPISGkFyB0WBJJAsHEAkOOjCX8L51V/y7DEILQoUIIsRBy4Ubfzg4MgghiEibbCSXNLlY2IHJosDmWEJUjpxAjXSJkpJAlOHY3AbkYT0aNg9+EUPIiouQXikFw+K3Glx8wXq0M/IkZUgiRUaiSAJGEDkKqOtiIZbT085cgiIfMml5c7fHwbw7ZvmQv/JjpICLHiByPAgRbuzFkN0C2T89OBGEI8ZROKtEq4bkEA+VtlFhCQlBoViGJwtLKTyvNrDpqpHKsrDTGY1c4V45eBwgVTEeJSpGEGxF23W137BC/062Bx6Ehz+AZnH+pi2kI6sBHBrLEGGRSlsUEhy5B/kPCkzveN2JoGA22igihZG4GIzwMPHRhiEiheSVI6gDEOwBBG84Vk/M3Jx8shEgyZclK+A4Y427ew0UDr1E8RE+WkiFlIF4hhjixI51YyFfPAKRwZVG44mgfmw9yqJPZkupm3RzqmLdAUs0tkyQhIjC0wFvMtCAQxNDDyRMIGVwjYLhi++Ofl5ZEMm3JSbBOmgt8Uh8ldkjm4s9AiEDEEKJln1oXESNZ6u2okRoycQ5r5NPe+voTlTK7FUlAseAnxi0WSnAko0RPyo7LAINpeUb9Ms9AM43Q1SEsd8Jp5K6HgADJ4cohFntRjC/GZfm9vb5OSK8XMWZ0Qkr8xGabawbhARkOiyTTjAVKFM9Iy8DGOb9Ni66saggdhw3rY4JWiuu7bVRCCChRspUg2PMyCqKtSEy1LiRIdIokxQcIJN5mTxwcdsVgeBvQ55aFlmM6LA0HiIPDBUhPEEnylZBCTU2Zt1up3eFwMByCAs5tmhBQwo3i8IshKUUKizHgWGTsVxhazyzLsCxXlghSXJYOuW63MbXMIYmSvIl8tfp2dVUST7HLlFaz6yXcfbw9GPiCplvpWhZCKgkiRgUho7/YB+SZssyY5UvlWFtba5SFK+yz3MMSESSVBAoVllWfiIJOWpD0h8hgMHiODKqgGlyD1en3+93uog8tIV4iBxixQ9l7bA5CjkaYW4QYwxxbWzclHUkA6ZAhim6k+E4oQR9DQfgPowQEwgGGV1WDbqpWuD4W2cZGwthA8HJ9+W4TDoP87et8QpsGwzCe1T9XwYuCV8GLAxEURIfQ0VBmR6BkVPBga4QypEQZRhikVA2ztDXMDhqLEHcowi6phx5ysctFUOihRb14UPDmwZMXRQ8+75ukX0tnf7Tpkjbz++V530RNtqRN/BXFdTLBN270O8zcTGIR8R/EQJhg78V9cg4qJHA3EjlFX8IuhIYPhBHDMrELezDCQ2Rxg/n+ZtSIRCQ/43iNdm3jA1swczOZNZlVoVDCTiFoKrKJRc4IEeEi6ixqc0Z40A5LmEBkf79UV+qqokq75Vq1vPtuYeHr05AJlYMigcrlK1fnqcCEO4VTYUiIESIYOMYRmwgVkQxpiECEByFERm46iUQg8p55+PAhizAzJkIl4soVITJjEqtQgcWNHWczUVg3MD6YjFWoGw5EiPARRJigSbZdG6WVVJR1iSSYrzs7O093hApMwP9ErggRPuU40/RQ4VhC4BIbMPHoKBXY/A/+JCuzB4ucmDR55LrO4nlzKVWfFolVZhplfiQwAZOhxGeCjzHsM7uVo1KfZa4HQSYMemQ4Gu3vu6ZEDp+ECFTmmFw+OBJGmEQq7HIW95WJD9HMxZiT4NIs0buhjBC5RHXFHsyEyP7IHeEhfYIF83snRogw0yIiElaZPHU6XV8wAawDIMOcFIxLRMBukcmNcXbRW8JDRPLTNkeu49m2K0QW/giRg00uz4gICxEJTGKVWEbYgOPzCSXJBiacx6yHMOnbhAukT2A6kjldMtaIi2uOCEyYsQm7TDNHh0OJAxGnQAUwefvLZFzXNiEyVvn7+6vgw5gfP368+h+fJ/gWE936bi5PpnjxePPFxOzjzc3NR9vb29/B9iMGs3h+2XxBy7cfvyB+miE2mqQvvX9IHu/HLBDvwO7uxkdmMBh0Op2XL182m80to1l8GVIkmsUmLSU0TVsn1mRZLoDcXAoFfGxNBjia1QvZbBcLaBEoZG+W7rdohKZrtlZWSvlSKeO0Wst9s+H0R8P9N63byQfpVqPheM41x3OHQzR7dQOH9Y3yBh4LY9jjYwR7YNyGYamJhGpEIkKmaRgGmQB4rCtkgsfBLvIYZS2mwCJitnvh5v1l/KjkrcVSPot/yz5YXb2VXsk0ls1Wy7Q9c2S2zP4Qe95+y1m23aG5GARSRZLa1Vq1+vp1rVaGVAhOM7DAgCCLpoWBKik/kbCKxSkTEIaibUWZKAq5zJrIEyjj7Q91/ixmKE8kmuvWV0v3ni2typhf0zT6hqnb2Qep1GIms5hKXcibw+HItkf9xm2nDzPfMNoSaNOlTrUNAgJMbTCodnTD0BGGWvKNdtOwKipR0aytZpFgk3EklqWByAQUAAY45cEqXFJrLMse8QrrEXIuV8fqizeVdW0rJPrONElpQDmfT1ODL6lbmqKmUsae3pFqUhVRlPEo7xJQwRyJ4FJHq63rxZ5peoHle0GPrqu1MGLVT2iWwTaGAQFVVbRYAyhEXZGVej3UkTFhcjR2erJHQeYXOOBFISk84V5HEIW6vMYeyDoGBWxY+IMxUS5gn2s2VMsAuP4PIguv93bfhQZ4pUSqe7WPENGtIOj1gkav59mIz/N7pt0L/IYf2KanYXUdtCGbON/oLZ9OqUrywXkFyIV6Motb83ZR991ul1REawMWwSKAD+cwKdD9pLtYQ8YbWIPS0TSymKTIWDkNA7dUD5EEEOGBoB6kI7uSVEZXiDiqdHngoKO3Kz4kCBxzvMCvBDj0mK4Nr8DS9Q7QCUtdMaFq9hzHdE7nH8Aii/3Mzexqlu4FizmywfAFsQm0uWCS2euldCZ/PgkprrKwrKLhC3RgaG29bWgZ2+7lU6qlcUSJo9KhhbKUqEUWTK0qqYnXgw42NlTg0QNez/cDzsZFod2m5mHoIkLDx06k36eq7XutVmspg92L4y6nS/j1BeH9YHnvKjRkhUSQF0aOTY92zpbuX1sqrdYjNVleh0bUi0Vd0NH3qBCMSsNrOaXFlEWZaFriEG5rfqS8V8Fuq0xpfMQEIpVEhYoG6hKGH/gBJhU1gBBCcW3V0jvVGFyjavlIw7PdPh4mnAjaubums7yCUzHP+Q6yF7pxx+CLOiwA1xH1VvL0ytJSqZR/fqGuUBisweiTRFuvncs2gnSgqimLKlw6fOjQP+JDMj7+bZbqAAAAAElFTkSuQmCC", + "description": "Displays a latest solar radiation telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'radiation', label: 'Solar Radiation', 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\":\"Solar Radiation\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\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:radioactive\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAMAAAAI/LzAAAADAFBMVEX////krC7otzfptzvmsjbrvjvgox7rvj/jqSrgoB3lsDDjpyztwUDquzvipCntxELhoijquTzmszLmrTLntDXotDjtxEjgniPhpCTotDvux0PfmyPfnRvlri/lqS7hnynipyTtwUXnsDLvx0vdliDswT3jpinx0E7quz/fmCLnrzTclBPTgQbsvkPhoSHUew7lrCrWhAbvyEXblAvkqiXhoC7emxLy1FDwy0bajBvgmSfwy07bkxvWhA7aixXYiw/y1EvipiD341jSeAr451rwzknfmhz02FD77mDquTfdlxbTdwX121PQeAPckiDfnBjpvDnioy/fmRjYhxTOdAP6617bjxngnhb231XhmyrYiBrWgxjakQzy0UnlqjTLbBTVgBLmrTfAZgLmrC7bjx////j//+njoSX02k3otjLhnCb13lHclxPSdALdlx3JZhP//+TBWA23YALhnCHFZQPekyPLbAXUewT99HHfliXz1027YwL+9XjosjbQfQTinRz88WzGYRLDXRDmsCrwy0r//7rinyTUfgbkpjPZkBT+/+3tw0D+/q377mXxzk3NcAL88WTXhgnZhw7dmA/Zjwr34VHlpiixXQP+//LWgAr//8f45VP56VX88mjhqhT+/qb//9/JaAf//ZrkpCTnri/CYQLlqSr++IHBXAXGawPOchb++HzvxTzAVQz//83++YbTfBn+/JX+/rP77VnwyT/Vign//9njrx3fkxvOcg3dpwrbmArQdxbGYQr//8DeoA/++4usWQPBbATHcAO3UQatTgTswTbXjAf//9P//qDntSrckBTgpBS9UwrZnwe7WASgSgPovyeyTwX010js0CzpySHmvxu0VgKaRgP+/JDyzkPltyDkoR7irxHquTHJdAaSQwLsvDX+93TqxivitxOnSgT23kzUmQf99Wzw1Tbu2Sny4S7UkQbNhATKfAWlUgLGdwL88V715zLQigTtyDb+94/9+KD89IX48EP37jb79k7x2mP8+l3253f47Zb14z/6IjwPAABAGUlEQVR42lzXz0vTcRzH8cxRpjSsZRHmVjakrZIiOxjL0WWHoMkSFkpEoTDw4EU87LB2szxOQujSxeF/IAw6dOzgv+DfEP0JPd+v9+fjZ/ns67Z+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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar radiation card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"units\":\"W/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": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json new file mode 100644 index 0000000000..00af9cd2fc --- /dev/null +++ b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "solar_radiation_chart_card", + "name": "Solar radiation chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a solar radiation data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'radiation', label: 'Solar Radiation', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'W/m²', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'radiation', 'W/m²', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":48,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5B7EE6\"},{\"from\":0,\"to\":250,\"color\":\"#80C32C\"},{\"from\":250,\"to\":500,\"color\":\"#FFA600\"},{\"from\":500,\"to\":1000,\"color\":\"#F36900\"},{\"from\":1000,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < -120) {\\n\\tvalue = -120;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json new file mode 100644 index 0000000000..f3b35139e0 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/solar_radiation_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "solar_radiation_chart_card_with_background", + "name": "Solar radiation chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEW8awLAbgKzZASuWgCbTAG/aAC3aAD////57M714sP25cX68NH358j67s/5683679D46Mv78tT46Mnz4MP35sr46sz35sb89dX46sr78dH25MP999b89NP///r03sP04sR8wyL46M325Mf///T78dP35cnw2cP14Mf++9ny2sb24sX579D//+j//+z///D24sj++dj++db57cjw18XSggP14MPr18LQfwL//N3ThQP36Mbw1avWiwby3cP25MX46sjz3Mf138X57Mv68crMfALKeQLy28Pv0qv//d//+9vu1sTq1MLUhwTHdgH//uPOfgL//uXEcwL46sXQgALw28Pu2cL//eHPewLm08IgHhrMdQPe0LX57svx2Kv99tXj0cKwXQO0YAPUiQirWgPWggjTewT68szlpynkoCHhnBrSfwO+awPXjwvmqyvkpCPglxnVfgfMeQL++9/k2r7nrjDbiRXXhA7QeALOw6pWUkelVAP79c/13bbJcgPBcgPf1brcjRrepwvekhy+bwPm1brDbgT79MvahxHSyK735Lrt18LDu6PDtJ6+ZgK4ZgTlqCS8YwG4YQHszqr89tvayrE7NzHlz7vJvKO+r5ry2bDaoAjCZQHr2cO5qJfUiQO9tp6cTQTSdQLg8crn3sGu2nTflCLWmQfp4cSqoI3hmiDhrBUuLCbRhATz7M1+dmjcjxPy4sWNh3VJRDzgy7jX0LWd0lnekxXQkAXr3L/IwqiyoZPZiAru5cjs4MNjXVE8OTLhoRfbmQ+GPwG1rZbpvxSKQQL899Dz58myp5KLgnHuzR7JgQTv9+KORAP3+/LYwrDRvKqmm4iflYNxbF726Cnz3SWUSQXJbAPP6ayMyz3isxHPgQ7gxarJtaaZj3zgmCTkyKu13YKDPQHBrqC+4pBvZFvZ7bj14zK4spv57zQ6Ni/v1Cv57rVwaVv046+He2/CeQnI5px+OgH89bil1meVzku94YrZo1rjwJTpxpLnwin3++royZ7FjUspJyKJpBaoAAAAB3RSTlPPvyDPvyAgC6rIiQAAKVZJREFUeNq021tom2UYB/B6oabm0DZrbHqQ2FpBjIcWqnVOK0jFCWqVwSQEvZCJWo9rnHwBMTInRlLwwoZWLxZY1VVr4ixVGuxByUVbEKHrjSJUBJEiDBQUEUV8nud93+//HRKlHv7LbOdhyW//93nf70tr0wXnPfbYYy+qPP/88/fee9ddt9122+h99z300EPjT3OOHDnyrORlybFj75t8ZPKU5NFHH32E86TkVZ0nVF5FntQfnnzkk08+edSVd96h3+f48ePvH6ff/tixY/R8H3/88ftvvX/Tx5wjd970+KefvPsG5+33Rm+766677uU833R+UxMxBCIMCjuO3keQcXJIACEGBw4w2MEStmjIwxRBSB6WGIPkE2ZrwlPvPPqUynGWHH/hhReOSYgimmePUD5+/3HOTSfv3H/yQYGI5KWXzmOHjtRBYQeHCxkfP0JRjGOk4NBTuBkfwUEMcTxsAggoUgo7nhTII+9IFxTloIiEYiTiEMjH++88cueRoUPDw/eNEYQjlTzfxH2gEHGMkmJ4HA6UQQjJ8eMffUTPpcqAAisLjGf4IT8loFAeIYnkHZO33vr6Lc7xt1wUyrMskQwNjR8aG77vvqO3aYhQqBEDoV+pPo6yg0KLalz3AQczTMBQMQyU8YwzohEML7snJcphJF/T4y0TknAgEco4PcaHqRCRCMVAFIMg4mCIOCSkkBCjsQMKCtoAxBGsMZGAoiAcVQoox8jCELsUel0EodxGsSGKwdEO7oMh/NP0YRRg0NPwkn7Hvag4SvGwB+DVaC0oFHZIINFP6l5dQ1IJL66jphSCCIJEP/zy6+3IATuve/PcX+WVPee5v4znue8/YHL7AX6Zv/5y1ExK0/Ma8vvNN+9zJ5G4knOt5HI77TrR9qgzrZx4jBLhBFwJhwPuRCQxTqs/7TrmKen5+/qulFwnwYv8/SstadKOX4ixRwgMrJDUc4QlAU8AYYpH09veCwlD+rySxD6TX2jmDYRn5VdvIQnb0QeIw9FKAAjAcDmSyXAyID+g8VEknkoUBZ3wq5CX0+yF/Kpnvkkf57f7HQJhBv10K+iZ8KRAeBxiIIKxUDd/1UovpVV+0uc+iVQCCiS38zZMaSIF77u313cIRDPg8AUIMMIiaAm3tCT5QZ8lCeWCCEUwvYgGCQQUSJqbmZIwkgNyohytD0kQ5Drb0QeGpB4CZYBBHQhCSfgT/7gYfK8nUomL0kdREHKYUgA52iQML8QUQv8xHJPX2w4gtCOdNgwMOL12hDFMQS0uCCpBSAIHSVCJclynIeMi8UN2TuxLnJ0iB0NOZOcXNnUfqbQ4NKVYLK6m7Ta2P1hJpQOSuZXAQqHFRgR1bNHfloLIToxK0ImZkwRB9DHfpC9MbEgltZOYSn0/pSCV7Impeevy660lgSxZS62t6aU0dZGaTFeyVIVFa2rF2v4gUggEVvIrgVyqEM7T682vBIO5YG456Eo9SqTx+uJpgQQQjjgIcoiuhMf8kLOp1GqC/pJVK2tzYapvKmMVs0WLIOniatFKzxd3aDpT6d6dhVglu7Adqc1n5z8IpNK14uparpJaSK4VVhYW1s4Gs9nsfD7Y76HIAvNLQAFEOuFWDGRkxIYkKAJhyTBB7nJBVlOpqbNT2VTqBDtIUlzYaM9utW9mCWJNplc306mlWC9BVreLtdhcupCKZOcC2wTJFQq57FwylWtZK8ytBvPzy9mz/Qtz/SYuCqWxBHEc9AyBRCicA4eGFEQYjkY2d6ZTlZnNTYFQG31bKas42T65QJCN4rkiQWgyY7HUznY2EslmV1OBYkFBagvb83NhgXywHQymiNVPD2dASSa9B4uSRLyQXo8EkOsEMsSQsTENGWWI2bE2TjQ36z1rtXL59fOTq5X2yjmCbFdauRFyECQdKc6lUyv5VCD7QWD1AwKsng1n51oEcjbbn1/r15A2CigoBa24La6gknZdyQhBQCEIXw1ryKgTspldOCEObiQ7/32lPV0sZtMEmSwuLFQIwocGQeaKK5X5VbLQ32bI3PzaWqUlO59bKwQr82usaKMH4qNA4qcAAolAILmueR9BKMMEkT4IYhi0ZaVSFYFwPOdgL6fBlSF2235JW71411c4yf91AOkN9DokrS5JiF7QRReRxK6Ehn0/QWjeATGSjez332+SY6RP4nTEGjKSyhGUQFEvLOlEKWSRXiCRVkBxQkIa0mVLCCKSsSZyAJKQ0D83hYScDiKQg+J1sAIOF6Onp6OnQz16emDB8pL4LL2wuCChi72SA0OqkiZ2oBFhJNgx4oPUZ4Q5BtHJDCAUQacHFJJ0dqITP6UX2xcaoRDkYg+EG6EQRBxjAlF9cLwQXOLCAQZFGBTj4NeNQGNb7EPFMJKYFdfQx2xIqF0aYUlXFyDviaQ+xDQS0hDPDYebwWEGQ9o0w5Huju7uDsRIMPLqdyFIkh6AGEmrkYQEoiRdtuT+/RQH5IAHMqIg7WfSygEIHGCoPjJYUiqzuW5nUIpIOl2DQggwnJKYQETCoaXlhtzJEoaMSjyQEQpD0tP5Gjkorj4KxoERLy+21RRDO+iVl7q9cZbCEAyK7MToBJf3XohIuihuCBrhOCEX8cqqhULpM5OtdN04szJTWJ+ZzuRKBSu3lQsE8qVSoZBvyVfzwYK1W7Zq5Q1rlxi5ajWZK5TK3d2Z2nKmWgoulpYHBwdBQSmyDaMTHhTfjTBDmBI1EEg0RCQCMY0ksPuygyEbPCQzrfncdCY2E8tbuVouHygFNqiP6uxytWV3vRTMZ0qducVlixqx1ns6rMVZqmK5OjAwUBg4nSmczi8PSEiDUjDxJOFQIdIJHAGGSAQSNRBI/JAx1QgrVCUCuTgUmjnTnj8jkBWCWNVcRkHoD7C6TJBSuSCQDEF6aj3WekfH8mwpWBpgyBWFK6rLi6fz5Ss4oGB5dQYdg0IOrgV7F1F6tUMkIVclHA3hqBkZBkTSRZCLGLK0MTkdtWY2FGR9o5AXSC2nIEHqwyp1ltoyi+Xdcq2DIN2LtKxy1RK/+sIdi6XdTL58xxVeCgbFI0myA2d8rA4EEmnkJEukEQNpTuzzQij8RpwednvDcp2BFGxV3RSqgnIH5wY7dygMUSDxQKQPCgoJuBwOCRphCEve00trmCA4DrsMhBNVEu2QwCEQP0MbJlQO0g/BgKIkgGDkA5DEaEpsiTiivrVlIPttCBgsIcdFF19sHHF6V9ddCA5BqcNmDCoGGW6YOHjw4GGdg5SJCW2BhCkiwc0WKVAJR0PiUQ42YAfkJCA87MzYZxyAsCTuK4QVEncdg1IHM5ThbjtaM6EkA3p56YGHBHfzHkg8LhL3jIjkfv56IkPEQRB3IQpysW6Ef6NYI4ccgMIY1AyughD3SK66Sn0kDVtUKYO6FKnE1YksLkgEEo8zhCVYWYCcpEpsyPAhP0QcUkhcIDENmQ0nNaRcJsdph8O0IYqrvBGLUPTyekBLKHXfKwJEV4JZ55hGnJAxD6TLFDI9HY3OTMfZYSlIeEMXcjqzyBdXheSiw6EZSnG1M8oiFC2pP/F644KFHJKoA+Lo5P6bbroTkEMM2QcHIBvRaG06btUysXygWrAIMlcotCyWZzMZgpSrFkGS+WpmcLGa77jjBmJQGQZxDaIxQqFS6nfiv5WXRvwQih8ihehGAKEIxErnrekzuZVSjI7BwC5DWugoX84sUjL508nCeqFcGNxtK11RLZND2gDiMhVghKJKMRKpBJAkJM5KsGlRAGkGhBwC2VcXcqI2szS9MrPIEP4RDtdaMmkDqa53EKOcH9wtV+/IJ7kOaUMICDSachgSTLwKS9yQSB0IJDTs/kYgUQ6CLE1bS9OZ2nQtYiAb+d3lxeo0Q2ZnC5aGXFHI1ZLiAOMSZ+iXgvFLeiDBmDRq5EaGGInZflkijQzTrrVPGkl4IGei0TPRM/GV9ZXYeoB+EGR5uUyTXuYkO9aTye7gYNsV5TtOlwuvsUMYQHgwoGiJOU96nJ2gEk8jqASN8MpiyKiBcCNYWth9o3FOJIJD3VyYYN+l7SqXP00OqgOMCx1xU0RysO7qAsRIYrcKhCONoBIzIxSGjOpGmqURFIIrFByH7MBJaI5zviih+RCHYejXbx4SY+FSpBPZuwTS47nsgiQWiUsMJNQIIsM+dEAIEi7MdYXigbSIwxQi54fbYRQIVBwpBRJUUreTiAsSvdE5IxQfhArRFjgAIQcaEUiPLsTrQBsN0lhSDwJJVHIjQSSAyP6rl5ZA2JEABCuL4ipEbkHcjoPkkPEAo2FUKR6JOU/8O9ett0YitzqGxDgAOSmNcCECMSc7Zh0OQNiBSecBEQf6gKNxnBI18AbikgS0BBuwb/8ViCwuhgwLBJsWZh2FAIJC9G3UDTfAwYy9SA77Jea9VFTC446D5MZGEDnYDwHS5YKYUY9g8xWHQDAgdH7AsQfJ3QcnaBP2Ly5ARIJpJwguG32NjGFpNYIEJHrUzdaLQYdjDxLehV0DDwnfLUKCtXULr60GjYyqpcWFJOodh63eU6QTEAwI5mMvEowJKqF4Kol4hsQlEchJgdDXRIdkRtyNABLzQNoYgkLUhiWOvcQsrsMHuRJzw0jB4sIOHJfIQSISXDcCMsaQQwdUIX6I3K5TNCSoIVKIGRAadDj2LJHFpeYdEPd9SQyVUOpDZPcdV0tLxQtptRtJMqSzX75u8EB3NxWChQXHHheX7FymkjaOhtQdElymmKX1+OMEOUkQHhGeEThww64cWFotGuKYkMNex7+vpN+W4FLee3eFRshBkAcJwlcofkjIQGICwYhIIQxRR4jsvHDsKajED1HfUmA3UmfcvZBhihtykRuCQpKA0MryFvIvKuF7eIx7v5aEASGJf0gMhKIhaATvMgoDEFcjHQThlXXDxL8qBJVMmLXFDj8k4ofYEpmRmx4kCDsYgkIw6+43fZVDQf6LQlDJBFWCtdUvkhaXJOaSYNgJIg6ekUMCaTYZGbEdFHE0GBFzhvyt47NTp041lBjIgAsiDgOJ+CvxLC0HJOGDoBFAeM/qURA6RCYO341CTv30JV7g5z9++Kb59NsvL6V8+W3DSvTawrQLhJJ0Q1rdjUhGHEsLjeivHjpHBI2IA7NOexZW1oWnvuFXK69NTPSrN7Xj50t1fv684VkCSAeWFq7kAYn7pv11dhgIDzsKwaaFUwQ3VQzxjMhv334or1Qg2mRD3pTPWXbpT43Xlh/ChWBGPI3gawsjr9uNkEQg5ouH2LTqnCKAYEQ+UwoN+Y4/AeSUruIzLubUXw2Jv5Fw0teIf/91QYbee48aSWBEAEEjSZH0uyFciEDspfUFffzwW4GYQj6Tged/qfGQ+CBUCEUUf9HISBdBHhfI8DBD9jMkwQ5A/m73BeQb+qP+0EC+/JZ+ZUO+JBZ/lH/hy0ZDwtM+MOCGyNqKrVMiGrK0RJB02tuIOAQyJBAOIOIABEvLB5E9CxCeaEA+Rw/f0Kd1xx0Qdrghy7Ozs0sxgaS35yfj8c3sRig0uREyDpwjBFFLK6EljRsJK0hPYwgHED0iet/9VhaZL/5G+hVEbhJnc5RWgSxNZifjG+espVCosjW1hXNELy3es6gSbL8E6fPcjeA+t1OuffcG+YI+6uE5tYdGkrz9ZhbPTU2tRyLpQjoWJ8gmfefxUmiTJM5GcI4Agl2rMaTj/4QYh2okZ61aFkG2tmsCqexEz22FQulNkUgjZkZGeUaG9puT/UoPJEYBBLeH/wOkG5B+OQ4pczsLW9utMusMiW6diy5MhkKbmxdvypSMAKIa2X9/wjvs/kbC3IhAHnBCWPLvIbz9undfOUbOpf6wzBepK1Y8WlnYoVe2ZO1skIMgI/awjxKEhv3+el/Qle8U8CytTgXBJcp/AcE5guNQ//8ZlXxAQfi1RP3fkIJGBLJf7tn93/QQlwNRGNQIICwx11r/EIJzxByIWFmuN00jFHz7Axw25EENGZZhZwduR0RCjjgaCQNCEoHccBhD8vfbLyD+k11m/QHnBUqSGoGDohxoBG/QMYTffGAI7hBxpwtIxIYEg4Bg2kkCyJ4ORIH8ScqdhsgcxnEA926HmVmMa8aZO00RuRnLOEuurDQGOd4hxXgx+4JJDQ0mL5g1o0itLbJo15FV7BDl2pZltxwlinHT5nhByff3e/7P/P7+/xmSL2FNjk+/53n+x3PgXss+aLktEDiKQhATpNALU6/tDbZ0kpFGJ0FvLwrBL6y3KE3VJU1f8CNkTUYXaauuAqRgF2GHHWKZHykOkT7CEPsLU35m109Wf4JU47/PdWjUv/UVN8hNVS/wUUlVVe7Hw6rhVS/adBcRiFtBjhzBoBXdE+2kIVHlSGXCcEjTktt420QoUhSixy1pW8UgVfQr3bJy/IvG6he5tqqS3MOSR7nn53NfN7dV95CriHa42YFbxoulpZFue7AjKp6Kp2rrE/FMMppOdUjX64pwQSagswvEKpFZHo5lcoRKIuNWYQgqxY+5L/gnNXq1VTc9P99U8hyf9an6NvBb7mFbzgyBw3gWOXrx8uUjCTSsNCC10WQ06UnUhxP16e7pcDpODg2hqTepiP0tipIETVdElvS2dffikEb1vEiORvUbX9tKqr+UNFbnIWrw1W8efOYXKDcipUdKu8W6ZdCwkol02pV0EaRDOr/OlKfeGMJXRF75YO0kHgpDzG1LICiJXBOLQfA/Vo4vcHAeVZW8eF7ysFFBhn/L/TZmORHT+rPonlgsHI0mAImiWcVTrni4PtE9qiE9FUTN6o4jiGnVg33mLWibeGPISFMvaWpsbBQIvmiSL3IPH+bkyyZ8byppow/6DPwxfP9+LgiWckhB3OaXjOHL+SV0rlr8r/R8FTvay6wuHAsI0g+xQFxGRUgiFbGX5L9eYi+cb4y9ymF7Wue7E9srLYHwfJVuWotPAsIS6ul6eguOMqNtBUXCEJHokvzHtALfZ6mCwKEqYn3rWxwCB0OWLl1AN1uT8g6Xx4vLj4snUPO9BDEg5JCSjJSBC5J/dpjv4I1lwHBYIFZHkeWygGAAPokFAwTp0GFiWdDv9GOyqwzzpx6XURIKIFKS/29c0rBMBfHpi4hlbZDtoi6QyQKBZLRaVDOlOxxuvE0c5Hd4yzxlCH7MQ5YDYtREr+CQ/k41+WeHvNFih4bYFzlR2MFhh1RkAkE2EYTn2VEPl6vMG3T46d2VEzN33jKOlxRgwMEl0ZKVK1dy4/pniXQQaVi9ySEtyzafixQqiFSEj0FRK+imuKgZoYtAggEdI4eXHcTgrSrs0BCEIHJ9/wdJH4sDEFUPfDeveZB6yEyV9BDkNwivRpkERwcX/pALS+I7OZx8y+MIKgcxnBS96Ewk0k3+QUKMvGOkpWEJBI6gtYMIRHYrqB09OGVgBnIQH9J1w9UBZwsM6FqKeTbEESQGAghkHJ/eSfX7GCySf3dIw2IJGAoS9NoXzzHDDkFFKIAo8oAp2CNuNDKyuJfDwfEbu1f1vjaCSOuSmlD+wjA7dAfp7bP1kCAgtqUbdgi3LN5jNZOOrdm1POi9MQAKDvo92pkD7Ykusfi7OtGDu5tamGL02I9/XktMNRHKHxkycygOKKwtCxINwZIzcQjDBJlHJ9Ysm7nLD0gtDH2VhKrSzY+e4g56PXyzot6dulVZeuzfv58lUhO9BKI4RVYCSj3s7QphhhSE4pookMK73rZu3YrDkGa+X+511XYJUDRlAPq8093N60L/H6znqtXlfRBDOusevzIvQVE0BbEppBzz4dDzn6iHFEQ5zBJ2eABhh1xDLBsqFy3aunXRvI3vy8hRXl6fvhsIJ9NdEpnklGg67Ojm6c5bEiHpCgs1MaRjZ4HIKKyal1DsYQY5cB20O+RJHRGGalm2ri57dRVkx45FyKuPHWoD5Uj8bDJwL5CMZ7pkyjOeDEZjtbWdKDj4iKsCDJUE/V0koOglaEyh2BSagWY1Xo9X7BCIGzEg5psTj0sg4pBNxwzB6UEzXx2Eg3MgGQjUH+97uAswUzIDpuD4JCXhs1GMqQaHExCS6KAmkKg1NqAUXB0vq7A3czfXDmlXfu1A4CgCgcNSkZMEWb9j245tj99NCpQvQQhSHsjEA4f7Jusz/Q7ziR03D6e4JloCiJu7uxq6pHnl19NpC6IJssIf5dAOMEwLMhki6/+C9FCoHIgFkrqWNkEWj15HZ9DtuPPuyT4oNCR5OBlOZ5J908lkX6TL4WlD6ZQtohitq9ThhIQCibmjGBRYCMMBgKMUiiFLaHyUQntgSnExvBYKnWl4mqz3MMQy+IbzEGzLXwcIcuHE3mfsYApHjV8q6WlDhw4dgUDCFCpJXtJZJIoynrbDqP0w5qBryHYeLscfHbg7idbcit48XVHDGtuDSFxDaFv+usUE2XHlyapnhyhimTUrT5k2DRBFUR2FSlJK98gMocHLXBSmjN/MGJTmt61imzWDHYV28giEHKqLkCZU+SEqBUHkqATKunHt9u7d8f37+rXPxo4da5Eoi0j0wWeQ8KyJ38kSBZGiwKK3Is5B1D5E2lMJhTBMCzF9hRw4lagSDnkSaW4IvX2aMiDi6MKQxeMIcvXVmlWAUEQCCEnIAojUhCR6p77Dj+bFECQvUVVBLFtcoWCGsc9CBt0CDEDgsDwbpporQhXNKYKYjxNBOVAQQO68u76eIRwlGTJkCCjKMnVqMUkpLow9XkcAoRh3wz16iYXCgqN1929evBjBHndZXpaHQCHXc6nHA9q1Z7mFT51+G/pw0wqBgyAbv29bvWoVQ0SiIchUFTCkeXUFhSXOSDZUZ0h8LMEkkKIQRnFO1dWcqcjWhELZU1BYHIXPqYKDd+jCYXlYz3x4+/ZDxnCMIcg6OAC58GbL2rWr9jKEoyCIQKwSxJB0PJ09l83GfPpJHuHldTrg9LqYzV7kLyJnKoQBhZ1xrc5IZYNlz7R5YelNdJdmgYwex5B3b66uXbV27bNDItEQoRST9I+FXu+/dDpU11EkitJDUyI4e+uU6hg9ItlP9Dk7Cu0EDaNyKg31svu7q30be6r5JjsIso4rsqDduxZ0dTStJUs0ZbeWMGQYIhJrR3nQMAjj7zUUBRJOZ6boXKoLNUTkJJFE6Hj+eJcCB7lVPnDIgZrikA2hcpvF5WDIYoYsbdfaemXDvPWLZteWl4sEEA5B7BLpKOFQjCDO2AMUxekzKGxhzfGaMxeFgVLcr4mBgRQ6maquMswMO0SaljiggAMQdUBru5aW1lfXN2xfgbtf1GQuQ7QErYsgZ805YCROaWiIHD127BhWvjx9W5E4qnJM53XFz7pjlrw8EztqTkQSDd2MSOKFE6ZvnHgXgSwApPXNmzet179/LLtRexkQlmgIZZiKURJVFH26aTNOAuSKuJe7Yw9q7hutS60quPQp9OlSbx19kNOl7Gm0KimG5HJl3e9HaXLUUTt81s6A7nLWDoVbFvoIHAS53nK7paXl1ftRrtpyqoguiUBUCg1elbdKcU3s7aP3HlhukX0Q6+hTDYwaUcUe63lUiC9Rc40Y9hH3dCUQYKgIw4DglvW304/GIAzhgjCkteXNu9ufp5d1CBw6xBWRkghEKFKTZrRpP27EnR3Vq/pYQ/a4T0n2VNTcp7d8+EYCHSf6BrqJjQEIqssKcYiEIIPpPCqkvaIohgGBY1O7262v3rQ+vv5556iJtdLdd++WikgskspmPNX7fhFyL69NRFEYwF1qNb6aVisSQbQgLsQEXURqsEGFjKtgIdFBF2LWuvEVRAQtUsVVOkYx4DKolNZsJBgfJUatSGpNXKgpYglSKyr4D/idc+fOuR1fn6bWjebnOffeyZ3xoiC2vjE3defNOTAevEmPPOjZ4Iueq06fDiz0VYNWwLEuiWYIZKP/1LZOgcCBikxMNBuNiebPwbhIAEmIQzK/u14MbwQE7y4gzw6du/eoCM7pS6oyBmKDt/5VHo35GMib06ZDQ7zA0W0ebcgzlkC4Ishco/FzEJJnWjIESUJBIiQot1VG8kLJDb/eGFy4mSABMPQhEGPpR3eKWFS8YyFAYIQsgJfTl/0HMU8PH/QxgqbDf9okDjL1IMw4TpDq+Wpj9mcNkliHSBJKEomQJP9dpZ2+N6Ul7eEtG4NdAbxT9b9e9fs+N1ZZprNYYq5/I48qwiDHwTuv/Q6K1MMPgcMPqVbfPX482yDIoI0BryTkSETYwRSd+siXLyN1kuTS+S1b0FuQIGtXAMJPq8ii7UvAmKvuPZRyUIbfaITErIc+axLR85VAwOCKVDHcm9WvcMR5mAx4EKflsKMEimTqXrqNDmu3acQHu3ApjzUcU5e6D4vNbtzQVO8Z7x1RX9x4F1XTWkF5gcYihkBMhxwtK50FyAU5gRk5sGBuDpA5gfQpCCSRsjXDkAIVxbDk0WHT6Rzai5trwyqkZ/NC9dTgMvfeihlh6BTvXD7o5VT6igBcxEpfQQSybZE6szgnEDgO0GBvNhkSByS2s693SI+RMgiU4kydahKRyas+/aWNccISLCW0uC/sUh+2AoCgPLRE8q63EvDLHOFjaSMv5jPohyjEYZ5anLtyzYOcPIDQOtJozk1oSEfn/oEhRCBu4JDILMySHvTV6uXqwh6tRiUx/vX9azjHP9OKQhBSDnH4h0iIICcJMjuLC5TZz5h+WdI92rm/d2AgQSmUyhFTIg6fBG9P//WQLIYEo4QImvI7459n35uNJRBxCCTUuZf6iiC40MKKCAjCJaG97N6hBEriTFqJiBmzJKaEzlVzz5vm/dS1a2lO1gjpKS8+xUo3wT9FMeSA3HmOUGgv6sGQJuasZgNjREu6d3b29VJ7JTj+kvxeE2x3cZQk2LUUF8FZSLgmiDjMeojARdDLbCv1lBXfnMEf3o2414xmY2GMnHQrUqXRPguIkoTDyQ6GJNz4KuKrCbZXmMJhSxAlWdaTzWYhwcxr3PNQCGLQN/S4pOnwl4MYfIskRhS9+0ufEUHxGIAAoSBVWkgmvsY5DFmHmQtT138opkRjlKTfzmRJAgXvX/HCriXs6Je7OG6WKIk4iGFn4nG7P2YkGo0yxe0rgnBnnT274Pz586AYkChNXHCI5C814U0JvREplODKrv6MkvTQPhcklMVcFLxAoI6zIVERyJJ5DtvOZDJxOxwO94clsWS0GxQuiVQEkJcvd9+9cfvdt7BKMoqC0OpuWdb/a9IHCSBSFSVZ7Upqh7AbVKNvUBlFCdj0JEgGsUHhkMXbv9LjA444GOTwJ0kUSEK6tWjeOrvg1q0zR3482Xc9mkSIMUoOS0Ugknk12UMYopg7LEqSUZCttVq2Vtu6lUqzDMno0PtE4AFFhSxeQeKKEZMkkx6lW9ckhNY6eoIq8unT+KtbVy/uWNeBjN7PVfbTHoSOWZOWM09S37SntJ03ulVRpL9YQn1BgpqC0BkCa3uyHO4YOw7JIItstzjKwg+8xVAQcmBULNGDI0kJJ1XfoCQhHieoyLH3CgLK07cf91dGRyuVc89x8euULAsvp+zg10QixV8tp+BEHCsy2dq0yYGjt3hlzxUHkAtDfX34ZLxr4MIukQRX81hFUbKIkhzC95xB7nybIAh+x3E9oNB8xRA4lrAjqsIS/pnsWLOOJYCcBIMg45/Gx8effrjJKZVTKafcKqdet4r1qbplteqlmfrrVjlRnpxyWpNlq1CIzEwWACnMOASp5wu5Uv5aIVScLOzSlPVMgYRDHo5AwjGSxBlCZUF5mMKNRgxyGI1FN6ddStiFLFqnB/tZhqAab1+9evUhxSmVD6dSrUIxlS+UrLLlQn4Vdj6hTUNxHK9/LnoteNihntzBq/9QN0FoFdyKRBFLdaxZN8Gl4Dy4QaGFUKMgS2hlzBHNmJcipbCDYKG9rIWeSmnxUKF1IPY+ihd3UPD7+72mr9WpnzUxTeP2Pvn+8vq2Bt7uDQjccNbfO8VGozn10fm4Pj7unC+SyPqq01x9P+msNX0bT68Oq4ge9D4tD54JBTSaoJphkz9gF7ZgEUZ4MGSCwgLohcWkBNeFR8dTrba2tlqtxiyzVpydfe+E3q03Z9+FWKS5xiIhZLJePNNtNHannHF4jDvjjY8QcdbXmrtrL5x7qz7njuyK+e0RKgyp9HFbCBGB2NFvNRywCA0pAg/0U8QJiMBDmAD8lesyJxLY8VQq9VarWmURSBQdZ7ZYdEJdpxvq7uLqKHabjWJ390az251qOpxTc6MJESyruNjfF1fXXmysOpOvVl/5wGhXfEr0QXBBMMBtGyM7VFpJRhMRcVCjhYkL7Mhl5iZEYrkYLvZqtVr52pwdIuQyxSCR4X54XHJNsLax0UTnxYz0xWwDxJ23I2/QzC3uVQHvxEKQCnsIY2iQyBWIACou6YKvPft2eLEdC3uqlcrXb9++sYhEihDrUkRKDJu8WKduWKpIl/77PXTYh9YnAJ1cAXRES2mbESqsgdPOVSWBycCBt/baerbd3sx7turVyl9EpIk7XJEGUsXlQBUJ+5wehc8yGAN4dkVcB2wC3DCGRcb6JjKYPb2tt9u67lEjrepfRaSJ8DiYURPBOekyzFXBuQF07zdmdBJg+wqZiJIbjUIokTilNIYHZwIRvY2BbxvzWKlxhNIIDQyGSyvkJvJioIFPfIcl8CU/OJUiSIVw288GWLv4zvnQcCwCr49hF7fGxIidM5MizK2xS8cvjcGEXttrs0fbYyU1VY2on0OSP+IgjzvCgpEqg50yEmlyIL6rvhFYRm7DRFTYGCzcu/WBDOYSLGRJnpypzRVsnUrL0iwzldzH0GRKMOoBCcCf8xKTzO8mMhFWOUgG22Lt+yfec8dOH2MFL6AB7skBaD3XHQzEDi/Yz2QsxV+LeSJRS1Ut6/ubN+fhwjajGuJTXhgIvF42AcOJsIVMZMhELBQEafwfL1KhYRQ2xbfzSqBCgRyHAsHN+BmJqGnN0jzReDQaj8ejGGy5IlLD9UASXgkLXWMVt7AmJb6DkGH8HwoC35+RKU/6hAlExoQHadz5EWGiUXS/9SpR/7n/5fMwX758/gJevuxP9DgzM8NrnlQRq5dDXKcdEj4eq+v/5+BjXx7AdVouz+ztzcwMDtj/bkGCiHvqGPpWQHUrZW0NQERaEgdlTCNQKBSywM5mC7VgPmvrtk7PEmY6nUmn06ZpGv6YbeN1zN47MT/HM3TGSss0TSfPj7mEuYbfjrCCPfgzDv26vbK4/GRic2J6EU9XVvBaOPEJvB7GJIywab428rZdmLgbxPDK0BR/R7HUCCyAh0co9TpGwNFeL963wAMmwYAayWhGECqQIPL+fCFr23Ap3E6kMwLLMo2btp7L5XSss9lyGbMR72T18sT29NxciWYcXV5a+ENkaQkqiU+J8Mo8Zv3dLi0+XoFYIvw2DA9pgDMF6JSRTOImTmksH0gYhoGhor+jkYkQadVb1Xo9vlVvxZOpqIW9goimBIKaZhhmWqsVCrVaHqsgtqCi6wVFy6iCjGVqSo1S03M2P5h2Ts9BahrB0MTLy0tLnAwM2IJZEJnMxUBpGWZwkGmk+2TwYNJKZ25zMx8IhA0S1DRFMU0tHREi9WoL5dWCz1a81+vUesmUFYnT/SmWBu2woqVNpZbP1+AQCMIka8MkZqQzEYJM0qZh+C9uTiAsWOgMRIC9Uz578eL89IdYuVyad5tPJuzDLgtLZ3HMdGm7dHbh7cDDFCKZPv1TFuj4lZRmoK5MOsUWPAxNjbJIham26NeSeKpXI3pUWnBRVRP/Be5JJdgL1vIdzJLsz9dSCr+LRgGpZNgk4L+Z37TZIUeqOWanHNvZic1PPHqIrUVWgM8CLgdaBAvM3fx27OwChZJgmU+vTfJQBRFVYFkWTpyGayTc6QQ0qjbDIhPPUbQfpYU8CCqoZDIVIEe3nQSVKEoNiSSCCocRdSET1C+n93gTBhRKlkx0sMOUEQj+KXEUAnFl8wLIa7FUIsdwGDe7X0DFPQ4nNDOjRgArYNM9c2kq+aQfKkE/pqBOWuoRz2GPFsG1DQlqe4TKSVE0KeKakIoBFCWoaCrnMTBFEWp46VMicXeuTKHYuOR1wkZtgYflWAFb22ioi9CRmXChPV/uPF9eLGfLE4vBcGe5E6Zruc9vP5JJdWKgUAscOvwLsDHXB9FkFr4AAAAASUVORK5CYII=", + "description": "Displays a solar radiation data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'radiation', label: 'Solar Radiation', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'W/m²', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'radiation', 'W/m²', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Solar Radiation\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":48,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":0,\"color\":\"#5579E5\"},{\"from\":0,\"to\":250,\"color\":\"#7CC322\"},{\"from\":250,\"to\":500,\"color\":\"#F89E0D\"},{\"from\":500,\"to\":1000,\"color\":\"#F77410\"},{\"from\":1000,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 500 - 250;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1100) {\\n\\tvalue = 1100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < -120) {\\n\\tvalue = -120;\\n} else if (value > 120) {\\n\\tvalue = 120;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"W/m²\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU8AAAELCAMAAABu2vS6AAADAFBMVEX////VhwXRggPPfwLVigXThgTmszTptjrnszjRfgLqvD/krS7msDHquDztw0HWiwjPewLjpSnswD/ThAPTgATkpyrblAvlqi7XjQXhox/sv0PnrjLNfALakQzhoinpuDftw0fYjgnrvjzwy03fmiLuxkPkqC3otjTLeALpvDrOdwLHdgLvx0vfnRfblg/flyXosTThoCTclR/gnCTgmingoyXTdgPz107goRzZkgncjx7y00vdmBPvyEXfmxzhnivclBPfnx/wzEf13VPjqiTxz0njqyrfmhjEcwLemxPx0E7SeArjoiXipiDipiXUewTdmBf77WHelx/PcwLKcwLrujj02VLbkRnioC/ekyL34lfVggTinibnrC7Uew7hnRuyXwPZixzy01DdmA3YhxPbkRLZjg/BVw3nsDfdlBvYkAX45lr//+XYixb0207mrTblqjT24VL+/qvBcQP99HHKawXhnSDVgBPXiw7///jWgxjDXBDJZhPXhAfFbgOFPgL88WzGYRK8YwHBbAPSiQX+/aK2YwS/ZwLVggv//8L66l3IZwWkUwLswDiuXQPuwz3jpC/cjRjAXAXLaxT+/rr+/Zu9VAr//+n++YbmqyrMbwP+9XjkpjPmry7772fXgw7Zhwz//9PgqhT+/JTnsy7DZgKZSAP45VPUhwySRQP+//LFYgjCYgL++43JfAT+/rPXhxrSexj//8r++IGrWQL+/+2LQQL//9qpVgK2UQa4XwG8bQLVfgzNcQz010nlpiSeTgPlryf88WT//+D23k66ZwTboQf661jPdRbdnQ/dqAj++HzqujDjrxn77lzwyUDmvB7goxb56VXfow6vTgTbihPjoR7ryirvxzru0ynNcBby3DPyzkP982j15jTowyOpTAPjtA7ryBvktRu4VwP57zTx3CX88WD15yjhrgrSlAbluxLYmAb+93TtzyB+OgGwVgKhSAPmtifMhQbqwi3XnQbu0TTowRP99o759Ub992v460X7+FXy3mr36oT58JokoBOXAAB6ZUlEQVR42mzYu2tTYRgGcK13o9jSesMYKEgpisY2HSRI2qFYhyghSy1NKcELjRAchFiETjpkNGMHsThlku4KnRQcHESaP0Lc/Ad8nvdy3nMan/Od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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Solar Radiation\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:radioactive\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "solar", + "radiation" + ] +} \ No newline at end of file From 60fa8f5f80dfacdb8f2e3b1c3df1b56b48f5f334 Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 23 Oct 2023 11:13:51 +0300 Subject: [PATCH 093/117] UI: Add support select widget bundle when save as widget --- .../attribute/attribute-table.component.html | 1 + .../save-widget-type-as-dialog.component.html | 25 +++++++++++-------- .../save-widget-type-as-dialog.component.ts | 24 ++++++++++++++---- .../pages/widget/widget-editor.component.ts | 18 +++++++++++-- .../widgets-bundle-select.component.html | 5 +++- .../widgets-bundle-select.component.ts | 16 ++++++------ 6 files changed, 61 insertions(+), 28 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.html b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.html index 1678eac615..0a072b5377 100644 --- a/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.html +++ b/ui-ngx/src/app/modules/home/components/attribute/attribute-table.component.html @@ -110,6 +110,7 @@ {{ 'widgets-bundle.current' | translate }} - +

widget.save-widget-type-as

@@ -29,16 +29,19 @@
-
- widget.save-widget-type-as-text - - widget.title - - - {{ 'widget.title-required' | translate }} - - -
+ widget.save-widget-type-as-text + + widget.title + + + {{ 'widget.title-required' | translate }} + + + +
- ---
From 377b0d53dc81ab8ba2771ac9b5f78b5eb6bdf75f Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Mon, 23 Oct 2023 18:30:42 +0300 Subject: [PATCH 100/117] UI: Outdoor Environment: Air Quality widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../system/widget_types/air_quality_card.json | 28 +++++++++++++++++ .../air_quality_card_with_background.json | 28 +++++++++++++++++ .../widget_types/air_quality_chart_card.json | 31 +++++++++++++++++++ ...ir_quality_chart_card_with_background.json | 31 +++++++++++++++++++ .../horizontal_air_quality_card.json | 28 +++++++++++++++++ ...ntal_air_quality_card_with_background.json | 28 +++++++++++++++++ .../simple_air_quality_chart_card.json | 31 +++++++++++++++++++ ...ir_quality_chart_card_with_background.json | 31 +++++++++++++++++++ 9 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/air_quality_card.json create mode 100644 application/src/main/data/json/system/widget_types/air_quality_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/air_quality_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/air_quality_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_air_quality_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_air_quality_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_air_quality_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_air_quality_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 6ceafb6703..cdc04605ad 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -67,6 +67,16 @@ "horizontal_uv_index_card", "horizontal_uv_index_card_with_background", "uv_index_chart_card", - "uv_index_chart_card_with_background" + "uv_index_chart_card_with_background", + "simple_uv_index_chart_card", + "simple_uv_index_chart_card_with_background", + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/air_quality_card.json b/application/src/main/data/json/system/widget_types/air_quality_card.json new file mode 100644 index 0000000000..a140e86044 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/air_quality_card.json @@ -0,0 +1,28 @@ +{ + "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": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/air_quality_card_with_background.json b/application/src/main/data/json/system/widget_types/air_quality_card_with_background.json new file mode 100644 index 0000000000..bc32e31a31 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/air_quality_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "air_quality_card_with_background", + "name": "Air quality card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAACr1BMVEUVFRM5OzcAAAArLClUV1e/v7+jq5/FxcOnq6TFxsKprKbo6ejr7Orq6unu7+3m5+Xs7evh4eDb3Nvn6Ofc3dzt7uzj5OPg4N/a29re393l5uTd3tzZ2tni4+LY2djT1NPU1dTW19bU1tXX2NZ8wyLw8O/f397R09PT09Knq6TCw8DR0tDQ0M/c3dvX2NjDxMGusKurrajZ2tjAwr+/wLy5urWtr6qwsqzAwb2prKW9v7q4ubTT1dRGSkikp6G6vLeIxzm0trK7vLi0tbCcnZxFSEXS0tEeHx5XW1q8vrmys65ERkS+wLuztK9sbmtUWFbW1tWqrKemqaNJS0hOU1KfoJ88QUE4OTe8vrhRVFBLTUlBRUO2uLNZXl2VylGztLJeYVxAQ0JgY15LUE9VWVhNUVFDR0VucGyGh4R0dnNydXFISka2t7KhpJ6WmZNiZWFSVlVPUk7ExMKeoZpSU1JLTks8PzyjpZ9namY9Q0NKTk6Vl5FcXll4end2eHRwc29XWVe1t7STlZBlZ2JcX1xHTEtUV1JAQj+doJpqbGgsLSugo5ycn5mZnJWMj4laXFhQVVROT0s8Pz+5ubirrKuanZZNUE3IyMaYm5SHioWDhYF+gXxeYV9DTEvV1tOJjIZ7fnmoqahkZ2SCxS6bnpeSkpE0NjPBwb2OkYs/RUQ5PT0wMi/g6dPR2sWSlI5DRUE6PDmBg36ur6yQk42t0n+goqFCSUjExsOjpaS12IcnKSbKzMmwsq6io6KLjoc/Rka/v7261Ziz04ym026mp6eWl5a9vrzR5LrD3qHNz8uanJuhzmnT3MegzWeIxjkjJCHX3dGnz3SPyUWcn5+PkY3X48nF166bzV3H2bC83JTb4NWYzlRHUE/n7OCo0HXK2LmKyDvO27y/1qO+wbnK4a1RlFknAAAAC3RSTlP+IAC4tyAgv7+vr8e5hvUAACNXSURBVHjarNfPShtRFAbwodC/tKkIQkVQS7FoRJJ0/JPEYlChEEnBZJVFwBfIKn2CrLvsoju3s+9mNlKy8kV8kX7f/ebMzTATk2C/ufdMu5sf556bNnj2/GX16G/c/jmK43jkUuFTwVbKlXK5HJZDJqrX64d4mENLp9NpPjSbzXa73e/3L7haF60W91GaU2YwGA8HeMbD4Tly6QrzXbliTpgqt+XYpaZVw2K6jW6j0djbayBvXjwLnofxMPwxiS/byYdT4gMHGViKI0iD1YFCEKbtcqGQkUJ+eQkMwwEcYxLOb1BJEYOQu5O7O1FSxjREjG6t2+1CAYbq2YvgdTyalGvDUXg1QjICRd3wEOvGBALFGFjsCRR9g4BiFjJOx4MB+sGGDNmMNFSQQom1wyhwCKLQoTT29DCvAneeWn9GlVBf76t3QBEZAwQUvh3kkIwHQZD7NhWIMQzCZrAfdKAjkChiOIQYOlmESKJ+KNVaFR1hP8hgoFDOghETVnGiko8Xo+xDhBghCZIwYOBpKn03IHL4g4V1SsUR+4GFAAPFWA4quOQQRA7FJJqOmmrX5gMM7l4Pb0Eq906hubZXyG2pQ0FGhwJrByTohI25IFiEKBoNQYwxpGGsYXeZnnMxMhA6MmMOiSAwCCMIbif1wlUsRYgowgYjstnoTPD1DzYd90CQAgQsKFAoqUMd8Y4xDFAoYmQuLM16FU+mIVKoJCeLBKMA4u9YxTMUQRgbjEl6UXXksNjJYsRAPITzMWArrBvnOlQ3QOhUgaAIIYcgUngGIoZRAvQjO9kKu+AvKgp03fI0dUhI4xn9Vl+GZEJaduvKMcacA+IYN/wN8XPuYveuGmIKOgTxIQQLR4qRKZhqR/xxPZeN5JXkgOsAK5fV1QM8rB+SfMllc/MTVj7XyO0tVj7bt9tbX7e2dnext7BdvrnsxydZiA3G7trO3JRKOyUWbIR/m5+1gqysYPM9M28RlKK8SxPSgaOFEqTT8Xs+AwiV0lIpcIhSJOHno2ItQHl/7CAsQdlyvQBEFHYi+ywJMU6eIYE5ihFyKLEdrRQShesLIVQheUpD7GwVBAjW2b2QwrLfw8Q3mAAGXVOf5yrUCHMs1gyWnECMWTFCEQYM7GlIL7mFgxCG8NGO6OO9ZZmsFfdjvqE4krAYhAxHCaIIkDCaCSmJ4hWLTceadiFj6W54hWF8R+xHMQAhQur1jRkMAvQHMRZthBD/ux9JzXWEEDkOiyClaYnKQsOhZqDmbimUGZDFDpVNSR6Cf3+QAUheIUT2x0OvuYrCrMjyhH7YgOQgvQAM/W9pCmI/38zyAz57Mh47VStzFQwqdvb6xVJH4GASSMkXEf5RYv+sbQNhGMC9NxbngnBKB3cQQUOyFDIFHAi0RxFoCAh1yAfQkikHnvQFlFGCLN6MN08mEDxnsDt0CXgwxuAhH6TPe6dDkSWd1ce6k5EX/3jf07/Zcm21thjXhsFhlqhCFIAyBCEIFAUEgIOyLN8cx9mvrJYxMZoJGOaUW6p01lIBhAzy9vyruhfMFXlWjsrGqsu3Hs03vaIaVu9pUCXEAetnBgZriagGkOFQUnIIHjAuSKEXuM7CcZ5Xr44zmdU45jzG/MTnikGfiHM+7h8u8NDHDy7L0iaLwYCpkfGpe34LhoZAQa9BLoqTUvFtt1iquixqID5PLJIUbRXwaT9NRMkhIYy9MCZEhWBSkKC5FmBgOx+iILTddvQjKyDNmTh/qwcHfMpv0Exibvu+iG0kHGOK+KAvMpuGK0IvYgyQVDA/ScY/RcpoqJiv34TAZpB8AgQMaq4hIMgvvD34rCtRC9lWDwa8JwR5Aivk8RxLpM8jQFKeuTywaXheGvGUIAFnqee9nCUxvrq5AjGdbI0IMLoE0elAAQdiqMgGK6V69MfYmvIeQagSlEEOCYBgcrgvAXYSolorTooOMz9uNGIgkB+kBMG7D2y6IjrLVREsdmdGh97LnSWimE8VxLdleCwhaV4RNk08UYagXDxoWBtd06rQBgydMuS3Tgkyc8rZWLstdvt1ceHzuRAiFPZHiBA2/dDPK4JWw64EYYnHXQmppislmLE1t1P3ADJCCHJNb6LguClBdpOPjO2S2osy2UmEjSH//JSnHyEp97OI+ivx0pgHZ4lPOw0Zhxk7ibmAw/jod9LcUpQKBGM46lwjkFxfn1qlkiyLzCxkvd++L1AafReShhnmvhcN8EXEtkomkiRxsfeSCH+bdt6UiZhlIdoqpIkHTUvDFIWoQkY6nRsl0RBjdo7zCoU57jh0WTX6ZBvwL3UMo4C2esif0T0+CFXkkrYqZFbNMypiIOhnDtdw/faTuPbq3RAFkIh6iFJA07nU+V52bJ267GdmxtHHv2BaViDNChNDQ/KMGiFvdY7J+mg97ApAV+N/GqpWYIZcwSDHAWS2WRxms9oZa4HR8s4WgiPtJCUtII+P94/395g7V1fVitg0bIx2YXpUu6nWcayZVD3aQiSFIDo5xJYGRWmf+sXdP60itGLQWIz2AeTh4VEFkLs7DSle4/xj1f5dmwjjMIDffhcuaTUx0Wj8QSgaUKOoq/jiIAjqLNzqoA46OLh1Kti6VIk6VAIJdJAOEakSIwWTaFdRRFwc/EN8vu+TN2/urknv1Ofeu/xoWt5Pv++bS+4O+/H4BPn5ebLnzbnQnPC7cchWwN4fqNipXenU5abanrKjSAtBYLl/37lpUt87kW9RBfNDDyJGXRNO7pogjvjZI+2c3POl5fwKIH5FIPv2ef5qx/dKBwoCORkMUItSvUJIvY7+HyyWShls0yrm3XmBMM5tnC5GCLH58TGW7/IJJctyoCkhbKmO8ufednpzQXtVHgdShnan1/Nqg44KvF5H3av0VK2gOr0DGYkCRPXfaAh++2RmqJ4MGkXVV8dTGObRDGRpBBlRju7dLfiE8s2eDFBr2Mzl1gZrm2/nKrlcO2shnjfY19z0VoNSpTBUmWHgrXaqw8BADqlMERA3f7A47LuDg+6bRuOJWx/kkxCMREO6S0tL93VzcCaPF4VMg7AEr969ygLyKTuOOiIdf7s1WMt2mwoQDxlDVKXZxd2SWg0Ekgl6QTA0kEbfLbbRmyJ+2nfbRbffGAYu7iQvBiMVWUKWl5edS5KLWKdC9GHOn8d+fcGOnQZCurmcr2q5wdq9zWxnK9f2AbnX8QJACgV8d1/F3X0D76SGbPUz1ao4XLWQqQ+KhwRySLnH36AcedVY6BUbajeCrOF0l7WCkKtCsRDOAvOmOnqIakh+T0CaSqlat9ds1nLNZrPgBQqQQk81V702JgbvZgIV9DL1NyfzgeofdAXSX3DdoQqk13n5qXvwTU818FT/6MzBREQMQkdr2blqcpj7tOjhWXP/85dfPz9NO7qGNpk21kw87s5pHD2qFmbVwYym6ZBWq+VcQa5iBcR2PWGoiO/ymgkVzNH+k+PTELulC4QsraeAvAcDuZZNmVj/Z33BS7l/SKAgBLWAovX0qXPeJAXEk4UDioiZSUUYCXZV+CEIIpBTGrL2d6UIf5WLJHkJ0sZn64oBkJWnzilz+WASSPxzLAE7J0Ut0kN8NJ+QlRU05xQjEHZ11tSOOpBQP9KMITsP3LQIm65GPENzzpmLoirsHDHeaLWPdqgGGZN/eneKRac2+D43aFwIEYaGjHL6kDcRQqZnPAeIKDGzJeE+pQp7jTWa7rOVZ8+e3cXigMDr7ABJlAwVo3IQkWdmUMYCJr2ElDhEHLI6p3UAWUgKsQw6ICjrGIkkwrAGFnBni48FjQviyzozDamGjsNr67AupCmHaxmiyOloiumh2auZalAwjqmLP2Ewz/hsXHeBiIGQ60wSSGbM4KjSjhGiUJAtJOxkdDIbRd4OQpvpUyA55KGDK4RwiSAgl0fd5A0zcQZMQyLlyI8ZiJHkQxLLICI0Cv89DRDuPpQ448tOT2TCianCjnnjKOhUCeHwilDIoIHw/yEpYfEbYiAEp6gZQJLEZcRRHisQ3IRnCi3+uBwGwRfSmxrDPyYrHNgSsvhwcdExZ9xvJIO4EwUZlUMUWAhB4v9tMsYvN5K0FHafm1Eai4uLgCAOzogyNeklVjfJeS84SmX0C4BqsViVWEg5BCmV7BgsMiOKsSQQEGEFFsJsAGJSMx/yyJGGhY/5aCIsiK4GIYUQhJJQOfBaeyWxvDZE4RIJC2YGExOHbGxsYA1BkmfeQvgvLnKSRCGsB8sBwn40iUjCRWF8hK6kaWwwrzccfSZR1loqRwQijujYsuOKDiooIcWg/y7yP9gUxOvX2Dg45cNs/xUECEroGEMY6ygYx549hCBGkrr/3GDJb75m1gHReXDnznZyh4WgJFFIpHP5sikIHYCEJXkklaNEBCKQ9XW0r+vrhDzCsp3CwTctgXC6Y6WDISRaEDIokTmPjYGwd7GwyxLcRlPSkHVGII8k2G4nZbAg3I0wEzOkEIbkQxA6KNF1qVLClGRBY+Idl8XcMbB7YngscYShTzBsm0Nh0tuZRyw5sgixYTHCUzhv33ojEHlkSxLvdMKcFAMh9xlAot8/Qx4+aRwCKU9zEJKnw7730mEhcoNZwhenj4V8+CCrs7SEA9oSQKYnBPEjEDoYA2EIoYOQOSyIfsCxlU5SDt8e/yB5+fLDS0BG6c4njfkiElNwisQhMrDI0AEBCyUCSSjBy8rRHH9p4ujj8miJIT7CNy07y20iEE4RYdBByDhjSDkRJJ4zIDx/jvbckUPZaK3lCMR8bY4r7MiSHUgEUohC8BQgVBiIURkIkt5AyHPm1i1HK+S4Y9e3Qfdlo29I4j3GjKwqIZSE58h4KNNrHfsosRBKkKQGvN7mAgyM81SyguOnBmK7S8yO0RCze2bI4G0EgoKMGBJKCOJsNwlNaj4zKbARjf61sxrxgpAVNOQPJ3fz60IUhgF8/gUiPjJIxMksJEgIGwvDTiLY2gyxQRckVhJVn5FYYEHia0F0Y1MJaWIjol3YaJv2ht4bC8Jf4nnPM+9550MZHi1z3XM75zfvOad3jg9AmoUV4dA3CAQmsk7BSwgUmgIkTtj8byGjng9Pnjw580QS3cnz6OH/QGJCQkwSKiJrLwtiEn7IsWWQxgrL4SfM69fRI2w6SppCbK4nhJQkSVKHrMOaxY7/F2RVmbHO/zDIawaQc7Jz2hxic/33kMRmCRy1imzcqBD5hUMLQbu/FqNWduSjGJ6+fvr0aXRO87CJIHdwrueQpOCwG3LEOwghQ2MQXIZ89jZlWOT3Pj7VRNjewgNPQJpQGKuISsiQFOcv30Y4181hQ4uNmbLF6yqORB6JRA4lh8TwXBJd0jzErTIef0QEh0DsnyQnOMaDEByqxCpSkuhSzFWLEkYmhM2KCoOWEE856B2Xkeg6IltDgEjYWXDsA+CCoAjhqlVPfpVzByrnISxBruDHVQgp9RiiEkBQC0A6lzuEvMITkMb5OlxOM+6LaOb9mR6u+5R985BVOBDI99nEuaVxz75HgaSXZUN8+0v16FvqXDZgxz9ly4uLobfWzH46kOgVGJJ/gKz9gbO6VCD54JoOM+c+6bZVkrqMNcEBejJ0zOS7MgQydq4LiJ+12iIdrUJSlxqkzmAUchnpnD17NvJ7KbKl8rax40vXdb/9/MFlSyxjhwDCKATxkBE6+LP3fYCvmoKhQZHcnLsWKzANV1Y+oWxVCA3GKCe5L4zO2VarBcjnz5/h+Py28R4GTvRFJnGAZC4b5pC4Dumjw/J9PJoM7Q7xJ3rtZlyt07wU35zrE6IMgSjDIJY9HUQcVyJxfH6J51ve/C8S8CEZOPeFqxEl6NR0Q2xDqwpBvUbSUCaFQcYu66NESeILgjmFfO26jBAbVXVF7J/MPjC840r0UnNhLVP02N4Fnhpc/6+D/nBEhoYQrmNFiJ8iM96zK0NUzg2mKBEqIiVbYXsMrq+EgFGGYHFXiGXDNcwOYVw5Hd3V7FzbMF233HVIvw7J90N9/wNkmmKeD3oxYhCUtRfjksgkGUv3fXuQfijEHIZAuP+iudZCwDh9JEDeN4V8cQ5z/RN6N6hC4t9CktGyuJekeYAsuSyOUasRIJlzvA0QyAoh64xhCtuuRAgBwzuORO8125pCuEqOMJ4rED0kRIID35G5p0x6oQff/WWYoqwGQQQiX5WqQyTVchQSH7gigeN29P4ZIjsq/wAZylyfOTfVnTY8CMHuSAWS92A6WIJkqhKMJhlrmeuiozK0FkACIwYiMPDfsOSSA1dOSz1u374YieOx/LRbdzP+tKmxyUMGMoJllNvlIYSHAkkMol2YFZbfidPMkwSf+MGOL4MUIIkPGRrPWC0/YMHjxGlEHBejxwwh3sLYYWUv4CsXS1mMOFQYgWg30RNCHCDTNJ35bSwsVOO88U8XspwkKxhhCl9aR0hpzQ0IOiSACAYQjCs4bgiEIaSemi9zqSwp+EUREu3lakjGcqGRgSy8sbyjy2e+46O8Ma78954k828lqevKpE/6KDYh+MgcMCgCoYMRCB2nojPM48cfNjXMCi7j6OsMlxFXOVvq4TvZAOG3tHPn0sFoNASh59emybzXm0/AQxPWZplHA/9WsiLtf/yYOQgQgZTGVZVhOXHkiAysG4QwH1Y1lfSdzxJeuw/Oagkh+s153zFdLE2+EdPfTim6P8AQwYyddv0s0hbpyCDmKCDqEDgAOX8qeqI5bDtG5dRvP2UFSvtTGS6TSY8vOZnMwpYo3rjHXTSZ9dAN8HrjCVDZXE+/PFlS8wwvgN6O0F4yTJAszZQRIGVBuD97d5uO822FvH7ycdXCkGM3b7oNyhetnkFKEhd6YSe2sa0zVpqGPxcepShaTsDTXmK7OdYzBsEEkYK0o9cag/wZZJDthVcuXilISpDCuatRCK9/L7N7AXPEVo/15QiEDkCwl4INFQSQxuEGe/GFbb/HSoI3MW1l7UwjBzRb5npgb4KcIDUF804cgJy8GT31ef70+cGwydLAAYgOGaMIA1m/fjsgsXaDPPx2ua0VT9DVlN89Co6NPhXIqZMn29FzDSDlqGghRF9XqmBn0ZIgCtmYpwhhbJYsVMBh5bbgpAa52T5JyGXkfqICy0JIgr0qQpgA2bwZHxgEvShC2FLZLAnbeg1J8kuRQYeebRceJnkDBiDt9r3oMtPp7JP7+UWSdVUICqI9NIk4CGHvuGbx/Ltw+rIa8SWJVcIns8CxK4Rf/uYFZgjWrHvtCAQ8cN97jVsTosHDKMWD0shSB5NDEB1b8gCEHZBPVNCIlcRiCjps/1scm/MAInnzAo7zJ+/duxd1ELlfBITRv5Lx+1QhFjoChA5A6ODZTcIDNqVaAaaw6eGjL2MUQKQep27eQ0XOnhVIC5DKpOP+ai0GMYcGkK07RMJNHzrURyTLkleJEI323xQIHWzPevD/egRkl0DgAOTq1auAgNIihJJYHgvLIpsCfq5bQSw4w9bFEIYUcRCibWuKNasDI4fvEkYe1gQQqcitWx6CiiCAWFQCC5+IsQApFUR7t3mHP0XhOks/vEPOvKMk4dEiCBXqgELgdDD88r1g4G396NFbUetsBzGIRSQhpQJxZBljMWS7NCuc3iQ8WlQSKAjRSV5ibNmSl2TXXjBYEUJknlxbU5NUQwohYY0q9g3nkDMEiPSEAy5kBxtzsLMkdYYsVkxpsaICji1CMUj71i1UpHWW8x0QochPYRmpSwxSH/ooCM6ArmrvfEfEx8tIiEjYK4PUZ3h5XBUYjNbkgThOtm8dJ0QsrWtcOaBgYpPEYQFYBGEAkVMIBNmukHD+rbTY5SWEEtbBby2E6CxH66LjGH5sIeSkhxz3EAaQauJqtCTJhvgXJffP4kQURQF8PoagxHUEI0QDax0LwYSAsCoplgiDMW2KMIViEXCLIZYhsqSaRotttlgRBAs/nOe8M+/evEkUvP5hWWcz7zfnvvcms7JoGQy834LcM4hKkD4G4CVJ04V2qLKAJHF4HvfdkbMoIaSe1fN6NS3X2SfVIUT5KCL8idPfFy040EbAeLfwLAFiEkLc4RL1msz8r08yyNGC+BxnGHlTiuR0xtpMy2kWnjhS8swBR1dEi8Qh6nnre5wqnEENYw76IHSJjcrM6fjTGfJEapQ7Tk7yPEAuA2RV7tYZGICg3u5BJGlXCukIIowHwkul+9okkFwlUAPhoYIcQdhGqBd2x0koRXL/9awOkO0044MhSgiRQqVg4scqQujgNhLWqPBLlgix3qJCkMhQSeKHOqSdhwcixSs5VBGiRN4DcsZCKgb5W5mEEHaWr0UMhVMa54kQlSD5/0P8RlGOV85QcboLUlWr3RHI4au5RJAHTSLJUoR5T4gulUMUiLraJSx9SpB/OgKECnfgp3zzPLh+zytAZoCU2ZlKEI7WXyup5oHVA09EEKdwxAodsz2B2AgMYof2caRPC/8oDUSM3BiCQPKrZCSr9xNA8OgUD7nOzt6aoM2Iw0Ikuv0SJFxWc6A44EG4VB3dqrPF4TNHxDSB3OWhgvh7+SQQTnU5TlhyqJTI6221AWT7psw+skA5Dkne6yMSQpRIR+uOVYDwNGqYUOGKNo7BIJHkahAceistJeOBWKLO4E+PRyRhjix21aqqtsNt9i0UKL9bDCG8QiT8Dr82dluMxNH8VfdidE/sTQcD0QAiRYmEIYU2TB/zeOnrGcihgxL21tfNZFauVrvJm2wZJb/D47MUkryBMIglku4Ne6MzSYcQ5tE09gAaSnI/lMFxyMckzZrujAPIyxfTdVW9H94AAopDVGLI4ZQ9yGODsBLIIEA6etIRjrIREASJJq4+ofmk+/Sov2Uh/dUxYm+9uofl983ioloPh5+zJeobMT/SXhWjjxLFIA+stZLNgaVzEQKJCkf5EKCAxCBdTZIOFfoK0/iSlbxAZIx6iISQnxflotx8v/nyIauXLORiEHf0VTGV/Tly5wjE+8UlWgH2i5HI0e0GNBVWOpNDfIqJoer1eoKcrhdPy+HL3fkCkHld1/MlIHecIQck3OgskwBBBcjhjYcccWXU045/QR5247FhtcCviGkg2kPsBRwy6vVGgswn55+n1e5qmOF2vqKkvoxT2iHpPSH+DZDwHQBs7H1t2KFLYiKYAh6JynheDoGEtxqtguQJh6FA1FkthxJBmKfb7efrsirPh1lVV1UNCyFeaiyX9A3C4n7Yb1Z3/d1OJEp8qnddIkiXhSnrmea4E2kkgvDr+QIyJJ0FCdfu0xcXN1ezGSFFXVT4XRVtiBgaESWaJHI0cz3drnODIHSWIHkDgcQjOSFkxOaSxIsWQbyz4iYY0xgZ5HI7v7rezMsPi6yoxkU9Lqria2efocZS1pLE2X6bjjsJJOwNuswcMO9SrMyR9laAjHiwVd6QEggchHgWqkePOEmwj2zXi+uL5eT8XVYU43ExLgpAUA6RwyXxUWjzgL3PIRpkYJAwYG98D+QwkREKkLSYiSB+vwlGrOhAIZI/fJgxa9tQEMf1TezUgz2UfoKOshrIoJjginhxKdqyOENMh0ILAguyuC4ipVBSNFiLB3kRFBFt6tLFg/uBen+ddMeT4v4tLPuhB/rxv3vv3l0O4pur1X4TzELPOofAEmsjUDsieuKoQeBHxxBSHVoS91WjQwKDx4fPgbRJKjsFBOWiGOI4ygGQ3osze3zxbj8Lxrsdgfh0MQhQYIpywGkIJABp2rlN5cEgPYCAg18YJJeEAg4BgQSkLyAY491HRZYwSF0uNhxCwcIC/NvbBOnD9X2SAMQHizrChsg5W84b6CAyCBsiHFAbhIRFCBwC0g4tytqRDCrLYwOiay+HlaMcEFbg7TIMkiT1vnqWDxCSH+sezoaY23YVW1TIiyFcs5uOtNfUriHqCOKdHOmSPPIJmF0XQ5wWBqf7NF1feEmYJ7nlnvt0+QQy0HLklRiipnCStEB6zMHZriAkBcEgC0jNCw8pVByHij9D9XEclWQLROJKRZMnV3ercD877HLL913X9+kquRdigIi0p1tFlnHKgNqOQOqIgjBJnyOL1IAMTZAzpKrWaYYhIpo82j68v83D6/TNveUCBCx/iUMdaXEoSL1mnQYZCQiGToLwzoYkkQcMS0gDTjEzslSY/nP9MVjuaDukHHFJAPnxUkE0RfpKwiAcWeLI6xpFyw6AsAxDIP5pOsKDkkLSs4LrDCL1VdcSZ303XqWH5c3Bs9zFF3exgCnfxRK6MYfqeRCkR1Upngotuv0PhJME9JL17Ig0M3oCMuqCfPu0up2lSZ5v8rcAoQ9YPn/YxnEckeK4LH9BBX9BZVnG0dN8Pn+KosmkzKAplE2PxyP9iSbZ0bbtP7Y9zbKiKLICc/8Vae46bgJhFHYuL5QHoNuRLY0UiiGDAK2UiW0aijWSGQnLhSUvJkGKsCloEoqkQAIKaIIipIhqm21cJOU+TM7YuRzhC2Nj5uOcf2wGf/v+8/HS/Hjz8+bb9zc/oZs3r778eLzqBp9wc9XPN1igb9+wqdobtsaqan18g3c+vr95fHh4/Pjw6wEPDw8fP3nS8m27m5r5uZzox+MKpgAGl0bTxe1Vi6NhLI3lfL5cLjdLwzDwnsXs8wdM5H3F7Pf9LDKOll4UBs6YF0VRPBnFfruu3DB0qlE7+ZaVB7l1sPxgPVZ6jnteWY5lRWPfV1zbbwNeO5xnmaNpmusSRxCCJ5pm29GJ2b51WOm6nwd41fMYaz3qUOHRrOt418mmLKnsvKZhHrVt79yU0wYgxgosWBYYhPXb+38gYJgv5wZg/oLcXkHu0+0uOi7nm6KICHO1oujnx2K/i8KKh44TuqcgD4IoAk0eWWNVhcLJ6owLJ6yqohhHgNic15lq0hhAqBDUIcQlAPFs2z5ZuJiGY8E0jRDiMOFxGXNCeSd5JmUyDMQ023PixW1M40nSTDuArPW1YkG2dgC5amWA4iLlCkiOR0P/68h2BhBI04qnyF+sAPL0VOzf+Q4PQ84rcrJPpyAKrIMfRFYfai6xBQ9995DOR4hrd299noEjq8XFEeoIFxRU0wKAMHbycTEtzwPsAnQec7xWxJLGspMyi9uyGczG9JqEsS5uzclwRrRWxnqFAw5fdJD8AZkB5ELyBJDNEjIAAkcwtXr3drtL9SjVD7rWzzfzSBtHJyrG/TqqtDB03cq1g1OgQCw/Z1YVWkzDC6HgTiYcUTmZ+07X6houYRVxoo7jCMd1XQcwjNied8ot3wqCAByUtDGLvaymndmVZiNlLZvzIAe0nj1GZCcm52ToAGKg10gSQPTD6vb6sx4c6ONms5kv1U15cgV5/fpum+7SVRH1OJQ97nqtcseo6PfbHn6MnIcE2bBtFS2E3B9DB9ECCEenXVFVI3fv3tp119V1nQlEy6EKhFKCdCFaFxBUWWAzBAtOUYCoCLVmk5RSylgmTTs0njnpGCHCnDTJgO8RHGwsAFED1yqdXXREoUOAUDSqTAC7uP0A4a84enoo9NXhUPTHXL8/9n2hopXOHZeHY8VdmwWMRZFvIVp+FepBAF8q37HWcKYKOblLT3UtMlSJipQyBLWFgLmq4pkCAcklvMTVqGCcIFhStk1jSmnGshxkYjZxMniEUDkpk/MwefkfREXryqEcgSEXBeC4gKwWt18xSfx5u9N3VrHRYMbYu6TqAWIA5KDFnPM4hCMMjmhR7uc280MOLwSMQq64AKlAjaRerZTFAl1XIJz+c4R55KQsCSLGckZt6sARVSG0LZUjZSnLcwKiZHpuqaAo/fPkxeTZygCB0myXXs9NcIMhyowgUijKGOUIQDDffX8B6aOIaX0/Z+vU6DH8FsX+bQAOVDBX0cKAEyAeiBa/FDucsKieBkhWpYr9dAWpBUVpOPQC4mIFNeJ5BNvnCsTOmWMTwWJVKG1GJE1AYcpmGLquTaZm0nZyep5Mp88mz5+9TNN0pkAwrb2dLSAFApK/+u/IHpOr2ytIulqvtX6jwZnRKTAQ79cuosVd9InZJ8Y0lvvAAcjSpQQximORgUcokIMHBrQJQYgnUPMxhQSljBGmQFDuto3PAQg1246YHaMtkaxJurIpm+bcla03JdOsG6bl8OLZ898U4k5oCuZmjQAAAABJRU5ErkJggg==", + "description": "Displays a latest air quality telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"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\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/air_quality_chart_card.json b/application/src/main/data/json/system/widget_types/air_quality_chart_card.json new file mode 100644 index 0000000000..da03d55d1a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/air_quality_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "air_quality_chart_card", + "name": "Air quality chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a air quality data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'air', label: 'Air Quality', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'US AQI', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'air', 'US AQI', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"US AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"US AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"US AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air Quality\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "air" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/air_quality_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/air_quality_chart_card_with_background.json new file mode 100644 index 0000000000..895b98c57e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/air_quality_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "air_quality_chart_card_with_background", + "name": "Air quality chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAACtVBMVEU5OzcAAACmq6QXFxUrLClUV1e/v7+jq5/FxcOnq6TFxsKprKbr7Ort7ezq6+nn6Obp6ujd3t3o6efc3dzU1NTf4N7u7+3b3Nvm5uXb29rV1tXl5uTh4eDv8O7e393W19bk5OPj5OLY2djZ2tng4N/W2Nfh4uHS1NPi4+Hw8PDS09LR09Pa2trR0tHU1dXc3Nt8wyLh4uDPz8/Q0dDX2NbBwr+oq6WusavDw8G/wLvDxMGprKa/wL64urTAwby6u7rKy8qsrqlRVFPExcK5u7atr6q8vbi2t7KnqqS7vLc0NTS+v7u9vrnMzMvIyMezta/FxsW3uLS0tbM8QkLGx8aytK9TV1ZGSEWkp6FMUVBER0W2trWsrayvsK99fntnamZNT0s5OTjAwcCipZ9KTk6xs66Hh4ZRU09KTEgcHBymqaKgoaBzdnOwsq0/QkA6Pj1lZ2NISkfJysl1d3RXW1qXmpSTlZBydHBeYV1OU1JOUU5GSUhERkO0trGVmJJqbWliZGIoKCfNzs2rraefopudn5ptbm1dX1pKTUtCRURBREKanZY9QD6hpJ2cnphZXVxJS0psbmuqq6lZWlcyMzHBwr5hY15bXVlTVlNwcm9WWFWPkoyOkIqFiINfYV8+RUS8vbu1trKRlI6Bg39kZWSUlZSLjohucGyio6OZnJV3eXVjZWAfHx6JjIZobGpFTEuu0oBjaGalpqaHioV/gXx5fHp6fHehzmk7PTrBwsGysrGnqKdWWllVWVhCSEhAQ0IsLCuEhoFcX12Vy1HH2rA3OTXT3ci4uLieoZqRkpJtcXCIxzmwsatNTU0kJSPY3tOy0oqr0H4uMC2YmZibzFxJUFDV2tDQ2cWo0HS61pi305SCxS6OyEUVFRPb4dXN3LzJ2LjD1q3A16SMjYy91KGCxS2ZjX07Zns2AAAADHRSTlMgAO/vuLcgIL+/r68Gj7QoAAAmIUlEQVR42pzYP2/TUBQFcMPAf5MQgoGACRUihAGhAIFSTB4kUFKlhbQCFcn1ECMyEHVhZwJlg6FS1giGSAxZGRBLNhY+B5+Dc++1eSGNa5uT+54RYvCP45e0MfYdOPTr0e/G6ofG3yw1lhDaFzGLi0vVIIPqwKn9zd27tbu0323RtFqtVWSZopZXOI+C3A/zZP0JhvPly5d37zDvnkleUF5Ttre372zf+XVH5zHnoczDh+8x79/fu4e5d/v2bexHD+4zDviNJ/4np/FsVUMoogEEgSCMEySgEIMh4vi8+nlZoh33MT+x31+nMAPbxhfOxjt6gSERByCIZkxD4IBiBw5SILQ37+0/aBxpNFqL7580qi/IID3IixMCUAc3UpM4d2uOOBgR1gEKK6SRsA+xrK8ThRCui0KevIPjWZB/JagDFN1JqAgiCBQCAkJ7s3nY4A5WfjWWqiSQDjD4Iz1S36cYVR99MEHaCLOKTuBA2KEwSpEDi58rWoSgBYcETxW6QDTktTgQMeg+mCIvQEAIAgUxkP0Cqf5aakgVHLlII4uCGAx83/G5DAw7dhcSZAXD0efjERgaAgWGFdMOyTZl5snSjdAuEDJIIU2KQJZaUgErsOPuFwdTRxxd1PyawwAsDAHkcKwKY1k7VhQrtAMRBRzuExfPlCsQUWjHNjGkEh19OihyzmHh04GBgyFcBUKCJRTAQ0sQ4GBqA8fhJvgtalcbrWVIBCMHRAIGIFiEwMZ18PkAhRzYRBH2AYFYdhWioyHcCK5NYG4bSwGjfencMcnx48exKFksuWZp5+Swgj/lclhzktmdM/Nz7sy5v7kYmYXZlBfKkksDMmAxRLrIXI2JbWNiYtFrbsy9c4zWMUyiHNe58JCbYQgfiitXYxNDkM2KkMQxBJEWgrzljxKBLCLnIm+fRi6cWM48BTtiLCkc05JLweeiEbzLHo9kYNGWLKnr0JWkioaUAaEjbyxWoyGi0I6ryRjpC8HxSG7ATKUCBVEMIKrREL53XJMcj/kITJKkeqz+aaQJCWLIJ99uiC2CuBaelgTzn3WgCdrTMLDPNMIxgJiBjCadBQACz7ehbZfHb21JrzPpl6ar6Kituv1UWTpp33VTnXIs2aYhTcw9Y8CFDKYghavdEVdCmoXxpGzbyi6XCrjt/FiV+n07X7JLJW4DkMrTyrdhJW/ZlUpKhQySSiIODQk+4QkyQELIQg/Z/KoKYQXD/si2x4XupJO37e4QqIld79n9br4z7IysjlKdrc6kVx9Zmz1NSHTC5YinlsDx7xlpUiUGEDX8lhFCCl3EezvslARS76k6IHkQELSBVgRS2sqPhjZBrG7fGtXz48rMGd8b858KbdAQohhOjRx3s+GZ6HU5m2V25Mf94VgRpG8jtD8liEWN9Ot1K4RUxqPhlCLN21Sqs459FgIFNVJDBCLxepynNqc/7PWG3/5C1CRPrQxH1rDb27S6GmLVxz1hpH2/Tf3Gi5mGvGlSAHEc+uk8a0tUXRJAOlt096UQYnU7k7GytsabHTTS2dwUiBp/s3qT5AgoUkmkCMwuRvZ45c2bJizUCDnQSCApUJQ3jPzsQw3WnJ9yR/1Ejv8/HiGCOVqiIVC0pBGdUcfbLZBlzQ2qypPCSqLApEfMdCEKgrx8w0EjBGllY37LEEakA0mCAIA3XOSVwKAbmAPJUiMCke+lViMhliUjl72ShCFtxAPk/18MkQw4GPKSxpCvDwCJYmCLiymv+B+qGBBHAUD/cQ+HpPLyJUkAkW9BcnMENMkSD0EEEMeIJwhDQyDBMvDlBxzLuYhnKnsr+uZp5CIpmjMp3NQHXN99QkS0JSsMDSELQeD4txHdxa3qmjfHoAQgm0AyD8ydWYiX+rcNvGKKwOJoiMRYpghEOkD0qfZgyX22rp1ouwuuyrn+icuuel7sFS2r7bpKPTfb/nNT+V6mupP56tCd31Qqc3PDO2+aN76evqm2zjS2TidtQp/ziB4ws5BXCEFWRBI0ok+GWHZoc621W/4JurRvecU1y+X/++qJctX0Mq7ZLrrmzQdlH3/rlEzTeVBAFacV/skGHq6NgnPWTFFGJEQDZiBgvHr5yljhLOcsjiB03Jy1loOg6C8A0vaLJ4trpkD8MiBuRjGk+KDkBJDrRS/jmdcFok63C875JIcbE3O45yYHCAUQScaam4Wdz7713N25RRAzs6PWuBGvyBAfprazYRIk42V+MKS94VUeKK/CkLb34wYg8UkpkNA3nadCyCMJIFHRRxrDW5qP8HhCtAMG3qIlAeQjIPc1JNKQ7ObT/0AlAl5RjCy2SAVDPnIAocyDmLT4xZMympH+XGR52zM5ccxCkDMRZZAEkw6BpEfo6B4iHaIQyIePH7GiIFJIekMiyR4CTGwhYgghHz6AwZB1DdGA6MfppBkmk8F2fVaS3qATc7S1YRoiMdYRWADRz5Em+H9It5/XpsEwDuD5A1pjq2NZF7pEa+hB0KjoJbCKiIKItSB4GYLiRfQi6EHBi3px6FXwB6gT0YMy9CDMi6DOwYZT5kGdP0Dx//D7PN+k72aamsxv3jZ2FHw+Pu+bt2vr0XL5Lm5Iu8y80HsIaq0aTh27ZRBkFFewFUTk60QasufgQRkOi48JBoKtb+wotoNN5VY5GhXMw9HRcsveVKsBYo9GHaflRKNby+3RyFnJlGL1CukfrIoMyIwc1h7GUUUqUXuk1Y7sWtDB7jaGA5Byu9YJRlpIrT3odMKO2ym9cMZKb90chmKr2syo3gy7atdnZi7PIAbSM9GmsU4QhZ2tgMihU2tkSwIZDUtghFH5Rfi2FLmZhjREVnSOedSvGzaGXa1fnrksw8InqzKyIEHUDqCJxgykjZcg0ahCap0IEDcqvSh1Tj9087Uj32rAyA4E2g6kfpmxDiD4lHi4N6SKaxOOoBroWS5TYYj7QVtTcnGTwy2tHRpzMraLoq3gZOqjQFRByDUwrl0DRDNccK9Ivdd5OtqSVmCkEKtW2gWmazAQjXVIkx9S4F3avDuEAKjIA2EMRBSEHJfh5RGUMf4JQGjIpajyyBPtRAZkfNw6zqQhqLnnhzLZlFxvFpiJxAtrPoIRpCHjGusUA4gWmhD4MOc7zkV/tavyDiOPAYcosiDjjDU3h+95zc15JZPlpRdArE4pstKvckNAcO6fijIejVs75sSxg5DiSZULTZ/yjaG/IwXIhkDxCMPawawMooilm1Smob+A29uKUgECOWPtFsbuFUG0GQJAHIlQsna49M7M2P/lcOwKFITwe3Ze8Q/C6KBhWKMSRGpneO69EdDwH3Ec3CpnGEu/lLZ7p1+MwEg7xJB8OUwlJmDgLiVQeoJZMYKxnTUJ5KJ8t25nAYhh0CGGZrMZBM2m7zmkpLP0r4edkkJx4tPyJJAL1kUmJ8QgDAOGwEWCABKWWLXTDBUwXnGJkwjSkAsaC19zlOFz0vRXYJARL3LH89AKKBoSFxDfkyJtzd8OESA+4gnYyY+gwu4JAYIQprkqydIPUZe9ADTtkLAdTSjA0KAnpHQlNhUxg4imxPdVIhX2r992+mV4KWQ7YyCsmOn1Q+MgYyAOIGEASjK/mK5DFNK+IJTn8UmMTRKr1pNZCv0UODA2AXH27IWz1l4GkBwhg+sDjtBtqIEQkYSJxGZMO8AAgm7XVQkp6VCU3QT+gXEGwZBYJyR7T4QFHGyI1wzIMC2RgKJXL8cwtB3oHtn1en2goRJQsiyZClY/bDIIBCFMiBLjUmWYPy9FJO0gJHAJqC+BzE/HFy8jkXaAoYo6UqlURBLG6wnJI+Bc6pEhZdw7ax1mQtbIULM8VBDCmdWFVGiZn3y1uHmWkLg6ro7vk18nG12FQKjuUlKa1EO2oSfk3r17ZzFSkOz6DQQOgZDBDMx/2iyZlblFCPP9yyv8eHKAihiicHaFEoZFM+nasyCMpZ8kHjvsrs6dqkCcLgQl4jY9q47fr5LqyHj9fFF/Pmkca3ATiLYlIGSl8TxAbt4khGnkZxDi+UHDtGReHLPvp80Or3muCgMBAwFEAomrkpwWj3deHFHgWH+TIeTqsYZMfC00VbneGLNTy0XL7UIGZF59mociDXkld4TQoS3BQ5WwfZkSbxmT5S+LgVxlBqpxhMMbX75qaJAbYyCUTKPW56rgIgbEU8irL9+brxVCB6OO+OolEBbYqwdupb6mklS/bQPuWq2/Ibc0BpI/NjIMiNkO8Y++OE1IAxQuYU/jGwgdnFuE1GWVqIShX1nMUA3x9WHryMspz5s499Tzpp4ugQChkEtMcYi/BDKLhjTmP09O/sQDgZji/KAXBFGPzi3z7NTMqe1HQvZj6tyU9/RINOL5JxdaC36c9bceyPFAITMFIMkul0wtwfxAqZ8/8vL7s8G5hbAhhBjHICUKwtwSCCQZ2dq+v2tXA+2Yavn+uSl/4s31NyP+BCQJZN0Dxpph6v+q3zgI8ZsuIchPITAQoSNdiJ9AEsfgoIHgLIsEkkxL686NO3cGPG/hyFOFnPzlH0EzWhOQGMjjxw8eW5eZOt+oj9/SY806WHsVh2HIfs2NnZJJFXx8/34Wp8V5vWzRAUhISNIPhBAFySJhS+RguiT89Nqv8wtPGiwZkObCEf/KlO9PTPgTPrPtMWMg6VRFlPELs6eQukJcgcz+cAPX1UttGM97XyGuQD4YhkiEJSAuEvaEHA6Nku5/e3fHZ5on7zSbJ6/8wvNr+3495f8YA+TZM4xn1jWmYhcIl0ijjkBCyGdXMr+IjQOlSTXsSEAIDYy0Qh8rJCQkKyejmMEEOJZl2zPJ7duEjI8XgjgCcfXlUxcSX33lhRU7wjRjCAmGQpgsEjy7P8UwAo3+zhNooNp2m7Hit07XFHIQwlfkkCiEu8gn+WMmZAjZOBRDhghxpSBJJsGnIowTYJiMGMgjjEd/KLWX1iaiKA7g8xVkGsLUYDWZRJFISargQqjgLlCpxV1iBBeVYBFRfOBCG8EXuNAovhWxVlERRG1j60orFRExSml84Qs/iP9zztx7MhOD9R+b3MZxcn9z7p3MHVwYRJZvBmIuZP0GuvrdB8OPEeQbOqYQXyAeHuzIQkIQtAUCh0Do0RIjYIVlYOmmIqT7+bXnFOeuxKUeUlf5qdNtPRM++y4xkBh1tREjRwxD6wt1rR2CEsx43u/G/Fy93qSC1H/G3eZc/WMuU7cDnwuAqEEZidZYUDcQY8/Hxpy9e+/uRQDRcKfl2QgUwQ66iDcQhKZ4jEIXXXwlbxyhofXG8z6/bzSyP9+7vfHm3Me4OzPrP/yUmYEclvbIZFj1aMAq/P6Ej0dioDQgb3SNSRwgBLLw0OJVISShSfKQFolzdP7CaPlen5sVSM63EO+Nl/38/ufXn14cI+vz77n5+ZmYP1sHhCNdV0WQnLttIFFM9Pv9xS1+97Z8bUt/cXO830KecBy6UQdI7385ohBZjjz8SC9fcbX1DY0vYFBBDMTzUJHU5/epZmPmByBfm41Gc44gOUA0DFBFrn9zApCSX+PHuu7d67qG/KF8f3fCp9p0kaJcLjuHJL0LEoiCICsIopJggUicWXw3zFLr24oIxPuKodX4PO816278x9d6fc59E/NffkzM6HkonFyGpwYghNjCPwSJDcX8IF3EmJycdMahGB8fj6OHwe0W7XY7xK5wFBJI6rLUff+O7/ZgztfZge9/gZCkUW/MNH/MNOZ+u/H6Dw8/jbmHX2cByUQofErCDyY1srnPf9Rf84tDO/KDsfz6rnWxdfhIAwGDIPsk8cUmQmCX6b9GIbkYvg7xkOCXd78+ffr1Du8QJPPye8ZAljSbzXmuSHz+x7znzf+cx9l3nn59t+jd94+fErPor0hyUgYbs8ZBLfzYlnX9HgAaH4+VcNxDnOC2kPd/a36cfWMkYYjGrmDlWy5DEB9b8RegxkUAo2su9EZWyLnAEgDIIAqJB0isK2bupGlWkmPPvT3OTWLcvLlQiF1m5AjS7rB3rTIcvr3IkjBDr7UwQvSrIVwKhdAwMoggCrkHyMiIc1OSXbz03wgLWWYqguDpLxBIFEISRBgUlvW6ArESgsisiDpsTNEXWcsqMPbs37/fuSJJcQcFIy+mKQ9jMBAa+wbSUhlSMQSRTgEiEqboUldepSL0CEcZUYje5JOs2rNnZH87RDpuDj2eI7EFIYhIQjuWFiAa336+G1qzKwQOvyNDHZEPpOMnEHJccq5KAGnP3xz2opZ71wHSIkE/jEQZgUTQCFk6MfxAEQyraPpGoLh06Y6BJJcuNO0QlUijdeD7oSGhErTNtoYSSZghioiDIVSOO3fOOLcpV28nuX8LQIiD7jxE9iofo52z5UDYqDNDow4eX/5fGTr/dB/2cORRDzgA4YQh1NBXWbTKs17T+grhnQpDWjGKPWdKHzpXxDdRj8nfpoYbTp7G1ZnDh50HktXLOoa6bxUKWaIQRFsEYQok0W6g963bmup1yt8Y7ZA75NjKkMcPHqSX/SNhh06R0Ay2d3ZjNmGHRElAczo5kLBD0ouHgYhjq/NYsnpZsNrk4KVzzCUU7TZ8SjW3EQ1EGbyhbmzNumm7Qh1qYAUSt5AjmB9w3LeQFQaii05OG4MdGZ8hrTFXVKZ76nDbIu9pSeykUoTftgd14FN6KfRLnh27zjvXOMM9wRpt5asbKzZOb1pxo7gxkBgQHoaZkSniUvQ2qG3q4MJr1CFRCKE7BrMtMr+hYIj8AHPkMAbWLoJIAOFMrXiVns5Mu6UVJZbJT3QVDYheP3GMyJZEEtrKjXNL+ySQDhKd6LI1h+sRCkPu3z/vPJd0J4zkUaaUKfaU8BwOKRBx8BRRB9KiikB0o6g6kHRkhCFqkDtLBoKBdf/+cWeMGGNj3QlOZlXmxipA3OlciVc6j2qb+VVjIdpDj3vHLcSWRB0eHq1hh0okIQE/DQ7akWUUXpDis+kAsnUrFQQQSVdCcmO6lLkxXUzcKBb52rUkPo4R4X2fIHpwsl4gQtDk3inEs7EQc2wtRCjhFdpgtVJ9W94xKBBlSKY9+mhAUJDzgDxBcEelK3rdZmCyTpDnHFOoGYvBoTvOioSaKVMSc1HCbyvFevi1lyDWogjKYKE8uKP8VjQbgkOm2SYvA1t3AXIAELmdstxeIqgnGqFwIyiIdbCEGIjnASIxBcmmsnhfNVo8e3mDkAAPNAKH7EE0b8fz8lGIJ1HIgeMXnDIyMTG5PHwmT3QQ5eiPjKyg49gvnlhCDJbEFQIv8zgtEtNQM0tEIY5L8kUq4+rVrULl1g76sKzEyyrk/PHjx52JSXpMrsJcU4v1dAggKIj2EBSPWclkMgxxFUJejDzD4QPL0z0acexiQ8v8qI0WCqO1FMIaA9lFEFRkEsHyfZWcNzQC6gjhI+0NT2kfCZKkAKK9I29t4vWOWnFK0QKhhm4addxyIw4ke3S0UhgtJmUvQhm4j3PWhbMXHCBo+d4npY1KQJELa/mJQF5XCq9t7xSSkiuu4KJlw4nq6dPnqpXKqRAkSw0tSWdHHA5PHKj4kdenK4XhNUmRIOvhOHDhwlkHCGQkHz55qIX6r7EjiyCpwsRwddQcaRlZ6TRB4oyggvSVKyem2Lft3LGkzpWsaQEiamS8HIQdWg6Pg/3LjmA5XUvK9AQE596zqMieEXLsB0QparECO3ksBAU5N5WaGjVFydIHpQGRsSUZrr4t4W3pQHU4mRJL0Cs07KbQYOMg4iCjdaDT9E9Wr+ZdDcv4Isj58+dfnL181hkZGSFIn4EoyM59euHYoQZI3FsrhNfnRnHIqUUQRCGlt9VhM+AArFVq3BR00FDIYHXctrUeYKgDECRNT+YjATlw/HIAgcRANCLRqCWATJxLUbgoSetQyODZSrkvHmeICCeq2wRCXyvS4kki4fGkBijIYU8M6uAYCVUEkIsOHPfaIFqUviOtyZscGVg/VHm9McjzD9eHNu7ejdZmZOPG3esHBqbuVU8O4T+SrMfb5i82H3y6cTN+kW2lsR7bcvZ8wOY29PZ6zm6O2YvmCCQGcvHiWYJQBBKlREIVkR9MkdFRPqYIxiyKIhXp6cGRz8Z7xwuFEh1XKUg6yMC5Y2n7j5I4qjq2SpVXkVFl5nlWioFgUOET8BkIBpeBXAfksrN/BGGInvvDX7f0A5POG4ZsqGBmaGimANKDYGxhcpTlApcg4ugh41DlKJ8O5E30BRCe1bggMQBBCIOSUkd6dY+kGzsTyG6aIxe3X3T2Q4LkWRC+QdB52uCkVUBBNFIUOVbpI6OVS328fBcIMyTp4eo6rgl6Zc5w1HX31k5h0B/DEEiWGQRXBtKTXs372X3gwIHj2xmC0OnXFYi7MMgfOu2gtYkgigP4fgVxZckeXEhYAkmzwrYHkUCDvS20BAkENNbWgzEUpCkeQvAQAzYihVgbrAqGHBISFIQWBDW3gIiCF/uFfO/9d2bWqq81K2V2d3773kwy006iz/KmISEHmr6eF+kGpY+Pn77gdSi6Aoin480BzkIVMoRTci8qJwe5IxI4AFlBOqAQiCcTMUOGvXr7lfWadhyJEv5jywgJ4i8jUZDoo6r8dAzi6evxW3c+GDyh3qlILcGhozTY5+a6CuWzfLkxUUWlHCYhooBDMwJOiYK0juv1usUbdfQvTCqcpGZnHMckAdmMMnAgAPH974PB44/raQ1BZakHCcmNxtyHAxCWRK/VmtwMDzgAAUI7bAqC+AayRRmZTvenScgVWrQmJbVNxDiKJuV44qpEk4xUh5HgIRffFekO1LvzEBfBRxom1BYyn6ctZzMKAVAMIADhhHjGEdgIPpneGQFpb9Wt6f7h4XT6I9QOFHdynaz29Sa0JKhJRsYPHMy1nlggQeck52rBSJUlEChUPH/OdWKa7jTWAOBvU1Y6IT4gKCk7CaHrbAjkad0iB8UUELMVUri1LMd1R4VkZ9yIJrlLlUY5BQhT6KghgR0ELvdOBbWLHYGG7A322RxwoVPTtWjTYQAMokhCJCEuQjGyBKngEW60FosYQhtDh/uhmjIcxMz7Ileb6zU2fnlZmUTR+Gh80UHJ6CAJIHZAvcskHMhTQKElNxr3isXiaDQqFj9fXTv66Zgws52esozDVo4sSWryCD2CoLQoHQQ57NKzoNAXmjtCSD25XU4hBMJ/aDb52ShfTCEh7h8Q3IohS0kIHLaRePcaiYjWcMvEDKHzgYTofIDBsVqbe9IDKq1Fb6vZtnij7sOHD11HByCSiyUJ1S2WYNa6wBA8KAUhCSUEEB7CS6oy4LApAjeIC4pw+Ak1xXBCaJFyYIjBAAdDcrlc1naRkcoxQ+63LdrfOrlz5y9IrXRKV9FBF5WtgsvnIaa26Ae4lQwSDtIAomaagMNmCTfl+nAFkkqE5CNZWX7s0AyB5OwAkKu9415v6+aWtXtysrt7cocguAIcqeW7rkKYVblkRH7drCGgyNNJQqg1komBo0L+ZyBZDYmbMwQZUhCMkARDIIUCpQR3rrTaBLn/1HovkJP1FEJBsBhNI3RaCMKrEWTENQ5XJOgdBglJeAnBEDgMJoZk8/msHWCGM3tKOtADJOS8gyE5QLzK9VcEqT6yOuMOJwUQUHAR7TCUBGQJKUcoSABI4MkZuIJKSDZBcT1XIHnbJrMocBetSU5Z5xx0HkEKBBHJWvOo96paPbA6nc773XFnHafrMAxfUQC5BAjX/v8hPk6Rjui5xkjijOTyXFvSDGtxrTEfTuR8GOQlJ1GQ2vI4is360adHBwfWsCNR4jGgMcgq1qf0jVAQ/sx4BZCkRCBZQDzdLd90xGSE5zHOCEO4qSxf6YW+RCQSQHA+cmHDkYDwrNWsV99sbTcJ8rLVGQ5LZv/OOFRoyJULajmSid8e9Js2plRAeLEAihoiVBAiUYNIIDmpLTpRwscLaehWMYQc/4ZIbXFb79r2QX3RjqrWcNhaDFvDPRS1mmwAOSeRjADiCCQQCA6e3DJPHZbSwU7Hin8eIh0KOCNU6lJbasVngk6UGYBO/y9kmSEM3XgwqPfaX6vWYrhYkGUPo8Aui0c7kpQbYcphiGxqZfyRG5RDNgQcgGAqks6hWFRlULdFAgjhyZwvFPKMUmFmcwPxYggLMEIUZJkhacrIs6jVqm9Xrf6iv2gtCCKS8JQ1YSaT7fr5Wc73c55XyOW7vp/tnoapwsrl8rfLF3JOKu2d1YLaHhFKpAnDZbewjpkoLxBQNCSbgLCUm3J5iCRAcWoQPhMThB1sRirg0JCC7a2QtPJ1cPyy/anJkH6r39+T8hGIfbp6mj5b3dmYXPO9b1e7tatnN3b8ndXv4a3RLH17fuHL6JTG+qxWYshoPrtbnn+ZuWffZgoSQELFhQeaBUSXSAAIhiw1T8wBIllREO0wAsQyPTrb5ef0ufnr6P397WdWv//wYf9hfwMDQTKyensnfftF1/vNh/27tg1EcQD3HyEo1iKwMQY5UkDuGEhoNxeCCcYdLEHwkhSDSYyn4MWBUAiZgofQyaOgnTT5lyCLMFn8T/Qf6fu+p7tTnKQPLcklcB9/78l3F9NktkuCbGuJ+1hLgpMwPh19q72sX4KaEzfvwpFl0e96YduPl1tnPWIIry1VmDIcKhEDcTXEFAXMkdCFkoHgf/YdgLj8Fu88Lc6vLodZaUyQ8WZMkFoOCaLKoH7UGAhk3glpjrEb1wbB4NNqdDp31uWgQhB7/pcSiU/6vagfxJ3QiQMNsW0F8d+B2B9ApBAJIFXk+QbS5AqoXAuD85+Ly6vvsxklsilA6o9RVE2SqHL2eOacbW27Ga/my0G0dY6iyOqH4W0ldvrhMZ2Wer4fBpbVvgv7QRLG9ipc0XpBMQQU9QIAxN2DNASi3mVFECBlhsjR1jgKkNvA4w1x+2pyc/HcapXG43RDFj5vqW/W/JJD9R4l4vDwAR8T1SHD15uofrLu2Q5mJ4koCR7udED2e0QgDYGgipAqILLv1RCPe9xA6L1F1f6dtSbZQ1bajNN0XICoa0B25BQvPzpVATksH+xD6sEJdyogIrFVCUTKzBhmr8kSzTMSm/Yt5TJDfBnNGQUIyuMPcZJl97tsWupu0i5ZOo6RqECMREHKONMLBA5T/EWiINK1oAFnwUEzAZB/UBBIAIHBfWXhozxvSyUu3edM0BIPkSx/DRfnu9m0lG66ZAHE0RATSJGCRA4BQWLvQJCI66m1RY9Ach0gmDTGAeF1AghXI6fotVVRJwBmGkhgIE2GtG+mw4v7P8+lNO126aGlhanCIhAB+MYBSPlQ7tfZaSCyv7ItglABgipAXI6EHQLxCdJkSAMMqdcS3AHohWUgKA2po9kXs8X1jwwQlCRS24P4SqIh5FAtYvJA/6pth4H4ZmUxEIkoiF2E8Di0BmJjo+bYxgGIkSgISb4+TXYP17us1O1++Q8EJRSBfCpA/AJEJeJRASIS/I2RkEAnYtULEBmFVEvkfFMMRDd7IKUiOb5vTafn0yEgoCR6e6RbxNeVZwIIX4J+lkQ+gjRU38Chl5a3D/EEogOjMhDZhMKBQaa8hUDyr2yzaVEbiOOwpe2n6csn6CnHXAMOzmE3gaWJdJmY7sI2zoC1B80MA5vFULMemkMX9qAkCG3JQRNb8OLBg7BHv0v/k7Talx8jaow6zzwzhEwmbxyrbZkzvdHUNFXmH44g1Vj+FwTaqAZ5XoO8/AfkeLQGkONkw8GI2l63fgVy7FrPflVV7XQAefkfyIv/QZSSt+PAm0XRbAcgfsWSHjoXDPka5F8l9RzUcazXKNW/VXvUQo4gNWs9BKqDX52/QGqAF0eSoxE16A4cRyOK5MNvkldDwkh7Fc3yykhdNhewBuJrnfOrzR+5qi5rXXw9eQ33W38/UffQDAaDmzRNN/fnXy/U8yb9fHI+v5vP7+7m6f1AzfEPrs5vNze36TxNe/fz+fzi9NsJvIOkX06u7t5Xmae9NFVza+lp2jvt9WDxKywbvb09v7q43aiFsClsvJmrZXKfTjvvP318/75z+iO2x5fD3mgydXIirHZ/u40aTV+LNV+VJlytbl7Xafp+S+XhrNU6Uy80EHf5o3dzP5gOh6NxM7ucxJOseDg7C2lS8CzjHS1LqGFgnGAzMM0gCGy7a4Z2YmghDY3EKImQJS8TYeCPE+q6XLpECEwp44ITjjHmGHkecjzP7Nq2Db8RUoQxIw5B0mXWOtetSLqujLZb2See3HoOkrnYz1bbvKH5fuz7UE9tMmnG8S8QXzFUaUGB+L4CSWGmeDocL0dxdkaph4uChgVNeJFlRWcMGFBfYiDHMZ0gVCBB2E0MYZQcPiKCU1wmSWLg6TvHtXIXUtLQ40yIknNMOUKO6VUgQBIEoYchiDnEE4RB2+9Wugsg7ioS/QhZ+9xDWFj73a4PxxGgUAX6VnOyjMeXVTRf6WjVIIoEDMXL6x4EVn5MAGQSKyOaORnHRZE9PGSdUYsXRpKUBjYBJMx+G0maQQBeEpvbdmgAh1FMx6brCulKSZQIwYXBeWUEWsfxEIB0ASSgYMRjpUcQcZkr2W5nue5auno/360jsut7CLF8r6+2/cbTlq+1FAtwQNRpFoD4LQConQQHI4vrDswSf1IgmjJCC15glBS/QCYZIdDuZYKVEYdmZheM2AakLMGVBC/wDKR0OvIqH5IQ6lHORUk4w1hg+CpSIKbZ1cwwdLrAhQUYIZIRxvSVnru6Dn1rZeX5qr1lTLA+DJH9kwYMkri5HC2Wi8UITkygqIcCAZQgABIFpIxoSwVyOhwrkCILQ1oU3VC79qFjPWRZ510AIK40DAUSODTo2lpAAYRi5JTKyOQySCAA8s506xAGIoCEMCApGaYe8moQuwIJWYAABAnpCIlcttKlbsmo388tsWqvVyyX7e1+9rjReNR4CqudRiPAGMO1nwVkuVgexsjRSCsGEMhYgdh0HGsaLc4o6Oc8g3S0gmOgKCuQ0KOhCUJo1zBa4E1CnUkplRAFEnt11xIEIU+UlRHGSsYcR4E4CiQIw9B0eIDXzELr3GEMuU60y/VI30VbS2dohmbS6s/0x08aj34Cnr4xmihMOmUAAAAASUVORK5CYII=", + "description": "Displays a air quality data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'air', label: 'Air Quality', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'US AQI', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'air', 'US AQI', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"US AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 320) {\\n\\tvalue = 320;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"US AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"US AQI\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Air Quality\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "air" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_air_quality_card.json b/application/src/main/data/json/system/widget_types/horizontal_air_quality_card.json new file mode 100644 index 0000000000..056a6c735f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_air_quality_card.json @@ -0,0 +1,28 @@ +{ + "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": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_air_quality_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_air_quality_card_with_background.json new file mode 100644 index 0000000000..1965615e49 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_air_quality_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_air_quality_card_with_background", + "name": "Horizontal air quality card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest air quality telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"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\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_air_quality_chart_card.json b/application/src/main/data/json/system/widget_types/simple_air_quality_chart_card.json new file mode 100644 index 0000000000..ded7c3aa4b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_air_quality_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_air_quality_chart_card", + "name": "Simple air quality chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAflBMVEUAAADf39/g4ODf39/f39/g4OD////k5OSAwyzg4OAhISE8PDzf8Mrv9+XHx8eQy0ZYWFiQkJDy8vKsrKzP6bDA4ZX3+/N0dHSenp6v2XvV1dUvLy+g0mFKSkqIxzlmZmaCgoLH5aPX7L3n9Nio1m6YzlOw2Xu6urq43Yi5ubkMDZKsAAAABnRSTlMAIL9AEN/GQiaNAAAFEElEQVR42uzPuQ2AMBAAsMtD0LUp2H9UxAaUSWRv4AAAAAAAAPivl831+LSa9+byahEln7G9mS3qHAeYNXIcIUUWI7IakZfdOmiRHATCMHz7CqqgsPSgKJLcmv7/f3DXTqY7u4PdMAdJBl9yrEM90YNna0LO1oScrQk5WxNytvqQTPhJnjCyzxBXOOEYxQzgVv1rZ3NLwH+ZINfxmD7k7rXg2MoOQF5fDhGLnL5DKBKcw9D6ECAzjklkD2QDmZoHEJiAtXhvhGwePlnYIOaDSFJr44ROIyAkrWJao8eeMpXUtoeyVAK2n37jTKwNReLa+Zi00VRkVVZEQbcBEGgr4241YS86rG6HZLTc0sysX5DgsSw75KGUtX29hkBS3JM7tjyvaqwbhF4QfUJgIsUdIVaaudMYyN32AvYCiwivR8haPJpghzRL/AdCXCu6DYGEPcVXzm2rHyBUlqwS22FRZEqcVZ6QpRLgOKHXEAi5vecV9xIAqOS7IAvhUa7MnAHjEoX8whIdknsMBK5AYsKoGqTbLVW8j5x4dIsO3UZCvLDhUxndHAd86BqPRlO86UKQd03IhFylCTlbE3K2JuRsTcjZmpCzdQGIJrv9Agg5/pvcLg+pxTxUWC8O+cOu2e0sCgNh+Ky8oS3jDxT8KFVAXPf+b3BTRym7a4P5EhLZ9T1hOq2kT+l0dHDPhZhdvVk5yFHydZvu1g0ij4/S837VIMlY4qtPKwVJhOBi/7jHVgnii5jbW5FWsHzVco0gUlb+ZctObiabbD0gu3DoZr5Quan9NYT98iBGzwzQZp6irFO5nwZEtTkGDlHW3wNRZ4KeOkxrFVtXIjaIWt9REIAhF6xxzDj33jqAiltbE3WRFJ6eqiateBuVz1Jj9g0QYwFAh7byjjvIAWADKPzUADh4eyIK7Rws0h4EyMUzZTeGjeQ5fz15YnWTCJFtalkmr4MMQKHMb+0YyAVojdBn3z1KeTg2NUBKmBawMZCQuqvbsjfy+beVetOk8nRMZfIqSA70YiqybRcBIVhvG4dzGH+BBRSb/ChE6x1xkGPDyy73P8pIFk/K5rjll85fL4IQrn9sNSFUHIThizBDP13L9zDAgZ2eNAISDqUvmaZ1NZcsJaPOgiiguw7DRQdXHOQKFPqvJ+pEC2fu92LnGRQH2Y1pIst282m/aV4CaQECANfPgnCwu0snprI4CAO0nmn6sThIlmYL/NQtAFI6d7AvgAh9AADyZthZnaexL4JwrC8AcgA08+hZEC+dWwDDJNSJEfQ8SIj1RUDoEbLzICx9njQIVBTF9ebpJjHiIiAc64tsLfcySF8U5nEohZEsfxszAhJsFCRJ9wuA8Jz58gykBfq7Jw8rbmHDzjp4cY60cOaem/IoSJkmS4D4xTPCEMhPOw8gozVoPq60MI4TXj7mC+2tkCMVcNZCKAJFM/s23YpFQBRA1t3WugPaAMIqANgB3KMcMFgC8/xxTjnDo4kA18dAqvS0VKWxIwCue+yfAMLKCZ6F23z8wmrBGkBhPdpxNAYdAfmqmwVLpr3q2dBaPAwz7VbT78aqD31a62Cax+gCIB1cEyVSJmuq/faEy/N/vNTJuorYun3qLtOf/0Y1/lT9L68VPiDr1Afk3fQBeTd9QN5NH5B30wfk3fSrnTumAQCEASAYaBhqAP9SQQJjae4cvIEXUo2QarLPcieyQcnOcbdU6/8t1YxOozAAAAAAAIAnBzT8AAsNOs+LAAAAAElFTkSuQmCC", + "description": "Displays historical air quality values as a simplified chart. Optionally may display the corresponding latest air quality value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'air', label: 'Air Quality', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'air', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Air Quality\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"US AQI\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "air" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_air_quality_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_air_quality_chart_card_with_background.json new file mode 100644 index 0000000000..0d12e00f36 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_air_quality_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_air_quality_chart_card_with_background", + "name": "Simple air quality chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical air quality values as a simplified chart with background. Optionally may display the corresponding latest air quality value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'air', label: 'Air Quality', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'air', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Air Quality\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 100 - 50;\\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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":100,\"color\":\"#F89E0D\"},{\"from\":100,\"to\":150,\"color\":\"#F77410\"},{\"from\":150,\"to\":200,\"color\":\"#DE2343\"},{\"from\":200,\"to\":300,\"color\":\"#7B287A\"},{\"from\":300,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Air Quality\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:weather-windy\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"US AQI\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "air" + ] +} \ No newline at end of file From eddd4b2c6cf746d11cdb704cc414c98f8d495889 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 24 Oct 2023 10:36:46 +0300 Subject: [PATCH 101/117] UI: Outdoor Environment: Visibility widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../horizontal_visibility_card.json | 28 +++++++++++++++++ ...ontal_visibility_card_with_background.json | 28 +++++++++++++++++ .../simple_visibility_chart_card.json | 31 +++++++++++++++++++ ...visibility_chart_card_with_background.json | 31 +++++++++++++++++++ .../system/widget_types/visibility_card.json | 28 +++++++++++++++++ .../visibility_card_with_background.json | 28 +++++++++++++++++ .../widget_types/visibility_chart_card.json | 31 +++++++++++++++++++ ...visibility_chart_card_with_background.json | 31 +++++++++++++++++++ 9 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_visibility_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/visibility_card.json create mode 100644 application/src/main/data/json/system/widget_types/visibility_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/visibility_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index cdc04605ad..75b41d4e4d 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -77,6 +77,14 @@ "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_visibility_card.json b/application/src/main/data/json/system/widget_types/horizontal_visibility_card.json new file mode 100644 index 0000000000..2d7507602f --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json new file mode 100644 index 0000000000..95bf6c6a82 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_visibility_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_visibility_card_with_background", + "name": "Horizontal visibility card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest visibility telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"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\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json new file mode 100644 index 0000000000..1114718ef3 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_visibility_chart_card", + "name": "Simple visibility chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADf39/g4ODf39/f39/g4OD////k5OTg4OCAwywhISE8PDzj4+NYWFjv9+V0dHSsrKyQkJCg0mDy8vLHx8cvLy/V1dWv2Xuenp7P6a+Qy0b3+/OIxzmCgoK6urpmZmaQykbH5aPf8MpKSkrA4Za+4ZSYzlPn9Ni43YhLS0vY7L2o1m7UZuoPAAAABnRSTlMAIL9AEN/GQiaNAAAEm0lEQVR42uzPuxGAIBQAsMdHpKCjdP89PTewBC7ZIAEAAAAAAPBfTZur8Sl53JsbV4lI42nbm6NEnu0AM0dvR+giixFZjcjLbr2rSA4DURjOTnCqCkmUJJTYDjry+7/gIvdlepcF98yAkcF/VMZKPlSBRuuCjNYFGa0LMloXZLR+BVHHI1f8pOMhGjKAOegUcM9vEXL/WBqSoK6Oo9uHeFvMQsarYgBMMDc8muoT0jaIBoUFHNk+pApLWMjgeJSKwzlhjkBOSYHUIa1Pcd4gyaOsMSegJsdeh0AqaV5VC1/rkpkRqQiGyCmwghFSFmOGhQ7J1FYk9YNBsNshECF1InMiEx5ZwGLokFQU6Q5ZAJm+IH1CmSAN+x0AySQ7JkXy9rZbjBtEpVjEBgnour8hSfq02xEQ3MjcKBrebsQ5Ue8Qr4nzE2LLP5DM9Yb9DoGoUNQ9kgGvjIYNsqyqJW4QqZnxDbKYAsaIQ9qHQI00YUn4KkoEMC39ZzGHzLAgXRcmNEMVReMNSIdt1j4EyCmE5vhJwfCNhnii/KePN2t8SMr4pPEhn3VBLshZuiCjdUFG64KM1gUZrSEhXrOfH+LJSHKNfm5IFVqLczNKPTOkFslPUannhaiIvs1+Wsgf9sywV1kQCsDf2A4gooaaoL1at1r9///3AqZmsS7eNqebz4fQoI3HA+c4Gh1cpDharQgJ0ROhSFYqwvFufOQZrVQkIC/3IlmNyI7zPgoU85dOHK1EZEewpstUIaZvIVqgCK2q3asHJpymnAjepqzoTRTzpYmkAdYQ/lI1krbFQVQGOHTtmuRLESZRj2Sop47v6A9UWERpWh1HD73slxI/YhFw19rD5Tci8qQAioy1Uy8AVNa5ZPAPTYcKkjwqXj586TPJCJfJ8ItkmggrtIZWOZuo/GgNe/2NyLCNA4E6CKFexZ5waiTsW7E48AkiGajGGtRaCuAu0R7g1It8VbF3fc3LMffeXYIIjIOS5yHRXt4iCrKuMQpmVcUQO0XkpbExbC4fsyyuUMfxEYdUhN6JIg+Hf2u4UfETkVlmZ1fAFaErnO1GAfUsEgNc9EdWm710YzHohn1YWeQ5VYkopWkktNBUBpVqQvplAPsuFDYwg8j10QVw1h+qUHEB7Tg3o4dPQ2wIE/RnODlOEMmgQG6RH4BTFxZUt8GIQfm+CyJa5dxozHL4YGZ7c4tYj75LAtT9ADcHghzMJFKb2TpFFMAdPXUB7D+LUFfJnkvk1uXb+5uIoZkikuMUOZhF5KIgG6XbGqC7h6yAQvqLUGeenUeEFRAPS0za+Z/7YokagKu3CHUX8FlEmH3kLdJOmo0qu00EniK5cJ9PzSJyNrXBcrE1I44VFKwXsSMU8xGhAQ7c8ZhFpICOxuZhTTx++2UKYg+RXIgczYN7afVIpJFNM8xRMvZouks7yt68kBw8w7Hw0/jqczhWI1L+Eo71iPwSjtWIfGYT2UTWwiayNDaRpbGJLI1NZGlsIv/buWMaAEAYAIKBhq0O8O8TJDCW5s7BG/hqhFTTKKTNcieyQcnOcbdU6/8t1YxOozAAAAAAAIAnB7h9+fIl+d57AAAAAElFTkSuQmCC", + "description": "Displays historical visibility values as a simplified chart. Optionally may display the corresponding latest visibility value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'visibility', label: 'Visibility', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'visibility', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"km\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "visibility" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json new file mode 100644 index 0000000000..cc20374470 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_visibility_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_visibility_chart_card_with_background", + "name": "Simple visibility chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical visibility values as a simplified chart with background. Optionally may display the corresponding latest visibility value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'visibility', label: 'Visibility', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'visibility', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"km\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "visibility" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/visibility_card.json b/application/src/main/data/json/system/widget_types/visibility_card.json new file mode 100644 index 0000000000..e71ff3ab3e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/visibility_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "visibility_card", + "name": "Visibility card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest visibility telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":52,\"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\":\"Air quality 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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/visibility_card_with_background.json b/application/src/main/data/json/system/widget_types/visibility_card_with_background.json new file mode 100644 index 0000000000..86d6ce56f4 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/visibility_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "visibility_card_with_background", + "name": "Visibility card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest visibility telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"visibility\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"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\":52,\"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\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/visibility_chart_card.json b/application/src/main/data/json/system/widget_types/visibility_chart_card.json new file mode 100644 index 0000000000..e3c8732989 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/visibility_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "visibility_chart_card", + "name": "Visibility chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a visibility data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'visibility', label: 'Visibility', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'km', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'visibility', 'km', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -4) {\\n\\tvalue = -4;\\n} else if (value > 4) {\\n\\tvalue = 4;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "visibility" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json new file mode 100644 index 0000000000..6bd2ee1cde --- /dev/null +++ b/application/src/main/data/json/system/widget_types/visibility_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "visibility_chart_card_with_background", + "name": "Visibility chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a visibility data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'visibility', label: 'Visibility', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'km', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'visibility', 'km', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Visibility\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#DE2343\"},{\"from\":1,\"to\":4,\"color\":\"#F89E0D\"},{\"from\":4,\"to\":null,\"color\":\"#7CC322\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -4) {\\n\\tvalue = -4;\\n} else if (value > 4) {\\n\\tvalue = 4;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"km\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Visibility\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"visibility\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "visibility" + ] +} \ No newline at end of file From 0851fd7c90ab0cd8dc21b3b5d71060fd34bbdb4c Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 24 Oct 2023 11:33:11 +0300 Subject: [PATCH 102/117] UI: Outdoor Environment: Ground temperature widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../widget_types/ground_temperature_card.json | 29 +++++++++++++++++ ...ound_temperature_card_with_background.json | 29 +++++++++++++++++ .../ground_temperature_chart_card.json | 32 +++++++++++++++++++ ...emperature_chart_card_with_background.json | 32 +++++++++++++++++++ .../horizontal_ground_temperature_card.json | 29 +++++++++++++++++ ...ound_temperature_card_with_background.json | 29 +++++++++++++++++ .../simple_ground_temperature_chart_card.json | 32 +++++++++++++++++++ ...emperature_chart_card_with_background.json | 32 +++++++++++++++++++ 9 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/ground_temperature_card.json create mode 100644 application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 75b41d4e4d..c3d69318d7 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -85,6 +85,14 @@ "visibility_chart_card", "visibility_chart_card_with_background", "simple_visibility_chart_card", - "simple_visibility_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_card.json b/application/src/main/data/json/system/widget_types/ground_temperature_card.json new file mode 100644 index 0000000000..202e88bcca --- /dev/null +++ b/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 data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json new file mode 100644 index 0000000000..402501f7e8 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/ground_temperature_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "ground_temperature_card_with_background", + "name": "Ground temperature card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest ground temperature telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature card with background\",\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json new file mode 100644 index 0000000000..2f829baf42 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "ground_temperature_chart_card", + "name": "Ground temperature chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a ground temperature data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Ground temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment", + "ground" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json new file mode 100644 index 0000000000..933461c9d8 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "ground_temperature_chart_card_with_background", + "name": "Ground temperature chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a ground temperature data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Ground temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment", + "ground" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card.json new file mode 100644 index 0000000000..e3c564e861 --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true\n };\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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json new file mode 100644 index 0000000000..fd5124632b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_ground_temperature_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_ground_temperature_card_with_background", + "name": "Horizontal ground temperature card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest ground temperature telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true\n };\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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Horizontal temperature card with background\",\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json new file mode 100644 index 0000000000..01567fb8a7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_ground_temperature_chart_card", + "name": "Simple ground temperature chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical ground temperature values as a simplified chart. Optionally may display the corresponding latest ground temperature value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Ground temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment", + "ground" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json new file mode 100644 index 0000000000..6bacc358a2 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_ground_temperature_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_ground_temperature_chart_card_with_background", + "name": "Simple ground temperature chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical ground temperature values as a simplified chart with background. Optionally may display the corresponding latest ground temperature value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Ground temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEVPNCBLMR5GMSBFLhwvJBcnHhNbQSoqIhYVFw8+KxsvIBM0Jxk7KBlCKhmKXzsQFA00IhNJNSNhQyvi4NJYPihTOCSAaEtSPChgPyZALx84JBUeHhMfGA3s7eKKZEHr6t6FfGYqJxlPOCRlRi6UbEeUb0xcPCVJLBloSTBMPyuGYkCOhG6gfFhwUDQkGg+DeWNXOiSYc05GOijp6NtVRC0mJBaEcFRkTDRVNB43KhxpRSo4LyCddlF6WTusi2iRfGFeUT15UDCmgV0/JxYzLR4bFQt5VDSEbE6NZ0RBNiWDWTVtSCsuKRyIf2h2Vjl1UTPBnHhnWkaDXj2bfFxkV0MZGxG8mXaggF93X0JwX0aGXDlrTjSKgWuYcEqPbEptSzCkhGNyTTBkQiikflqheVNwZlF8Y0eqhF98clx7Z02dc0vBn36Md1x/XDxaOCB7bFJ/VDJcRS+QgGiJeWF/WDciIhWyj2yJb1KQaUXo5tiuiGN2ZktZTDlQQi92Ykd+X0FgSDFwVz0iHRGhlX1pWD9iVD9qXklySix0alWZdVJ3aE9sYU2PZD6Fdl2Cc1uIc1iid06KZ0etjm1/cFeXeFh1Wz9PMBuUinMrHRCajHO6lXCxjGiph2VURzXo49F/dmCceVaOb0+ReFuAa1GJa0y1k3E7MyOoflZrUzmsgVmWfF6Oc1WBYkTFo4KMfWRkUTkNEAmThW22kGyZgGK3lnaTclFyUzhkPiMUEAgLBwNgOiCTZ0CTdVVyY0vLpoOFZkhaSTLv8Ong18JfTTbp5dSlh2fGt6CmmYKeh2rHoHuxknKpi2x3bll3TCzm4MxpQSXk49XBl3Gme1NLOyiYiG6vhVx7blbi3cuxooqgkHaYg2iZbEVsXEObkHmyiGCrnobOvaW8sJm2qJC8kmueg2XOq4i4j2ff0ruijHC1i2QxLBZwXEDk28bXxaxuRCbVz7/NxLC6nH3bzbbSspGul3o3MBdHOxzEs5lCNxqokXW9q5DRybc9MxnEvqvYvZ5OQB/qUKfhAABZEUlEQVR42oSXsWsaYRjGHQrt1qHQRUrjKA4BG11cOghFMINgByGrYKAgKFKCrUPvDGI5OziIQ+1QkE6Kf8CBreFcihQieoKi5xIwkUggsWhC+rzvd73WttCf8bs7eyZ8v3ve9/tqS3nuzC6vr79fXV3PHB67PZVKeRwOv3unJUfyse3dD9Hwe3fA7XQGwGt8+jbmknTj5maxWNxgXJ9brOm9uDF0aS8ut57Kal4dZp+CcGh4eHgYCuGrY21x/qX/4AF+fueb4AA8ETx+/PiR4POjz//mEcBNND55gm9+w6/tn30B52twcS44oeFivQA0TDTGMJbaUpzo46mh3Wg2z2x2SSq+X0OFIyXwBC8D7mZLjuZyava1u1oNuAM+n68KI693msOtEVyQjA0RizVY3Gj6yFWMZOutelbOChPhUIhVhKO9hi5cgP6GCDYBF8B08V8ZUMD34PDkAF8XJk4uAGY8mSwAK2ERE0CPT1saFtpkohl6WyIXmu3O5eUlYgEVl0iFJ0WvlMMx81UDzmY2HH763l2FhKo/6Pf7AlDhPHY/jZXGnIu1pYLiQHAmioiDLGdlOcwqsmHTBE6+lvQbU8WmCTH+28Q/XZACvotNVB4QbIIeyGTJE9WEDysLEzoY06k+nU6N1Yru0KZjaTQa64Zhm5EFvK/YBcEjZQU23E7EwU84HMGgv+regYvXzeGHEnLxmwlKg8Hoo1pcVdV0Pq1GhqEseJoNyaiQUDhMV7mRsTjv961MmA74lE38LQNg5n+IoEyIm2DiCHkAbGKB2WvLqT7Wp1wESzaALKwMAx6WxlRvt8e6PgX4N1yVE4lyW5/aoIG4uiUj1xyRGeGf+YPB4MznD0KCg/PiCCIpO626HEkXXW1TxRogdpwzaTxuDxqFtKrmi4pSzEcwfcxfluVhKIRzrpYPm7EwTdBchIsnB6aIzWCYL0sEQBiEi4NK/wsDE3N68NZ0GTygFT7B5QpXSMFgJPE/6wYpkxpKTOlKYxv3CTTNq9srUgIb0OCHC5q93W5HuaBkgB1l4686d9BNC0piJE01UrHmwsDfbpeSRSVRKtUK8XQm7a0lErWeGpEtqFiYnKStLRXf8LJUwMXBZue0XAD2IE75SGGoHOFeHDtwADCsJ8gBmRhhupgv0PXxGKeSJGH6uJZKjUajPGAbqykua3hqSrdsQw7IxO3tLXTABieDZThgAC6e21MmDsTC2ZTzSq3WGLV1Y8FAA4pPahTVSESNF4r5TCSzr5AKBS3DBCqoVIioUGEhVNBjJRXCxAGJ+KNEeLQQDaLTqSBFBzAxn0/m8/V8PteMFR58e1RqlGDDBN1gVC6VyuXyAG9XLZlMlEaDAcVY6iaUYjEfr9Vs1BU4FwwdKRs+n3+GqoAIAkssZ8MR9LmbcrHWLXcHUKHdAG475cZWMZ6Gi2E6HTk9PRWpUOLpCMMuhtw3w+FoW+MCsWLBP6yi/0ez2HAhbPAHojhg4gwujo4qZydUFhNGo0qACRdRKo3KpKAEXK7dvb09l2tvb0spFLZrXc5GN5FU4vl0BCVtc3gcM+SAOydxyyPlAqkgE/eggiAZHn9gpxWvDSQYbetUhJQHpci/LI0py5jzKYh7k8lkAR+n05lMJkKO4r24evg2X2hMJ+ebocAAFSdwYaqwUiHYDIO4pupgfZ1KpfPlYqLxggGWiIRULrkwacwaNlwNPtvb3dre3traTiaVWK/XKyg1QM+r2MurSG9EtdlTHsi4RjJYhOgZcIF2mbLDwz3wSwbF4jSeKJe75QEVnzRKKGk8cUIm6vU6ZMin+0Wv92P848f4/n46g1e+gL+8XSgkpOlksz6sVfDEVAEPeFsyHtHLQnRTOsAEusOXs34HodBWeDC0ZcLJ2MzEHgmgYXd3awsePgDkoRDrfc31igWlEIttb20Xerl8Xo2EhiFTBQdDdM9buBALawoeGC4SAnuv6nFrGIdSBY+9llSKmdNWs9lsZWVsqlr1Ft71T+QDDWPfC549e7gPColSlyIJExd/mugD9D2oqFjlwSosfg8FCeJGAQNzkoFGMVmNae1comOKULALONglEcgDiYjFYh9iEJHLRfM9AmcxFqEeHqJ4bZx7rBZ3SQctquQCO08qj3v37hO/yUjxlnyYLvaoJiJYIVqt5g7R/EkL1OHjNLP/0csyHj78WEyWJWmArqVTz9yoD1bBm0Szbz6x+KXCekECgAmsGlg4IePk5GKynNJyMF2hZepsgl1QURDbUEEivn7lIQcX0Xwul4+qajSqvn0LDzCRRa+ACiBksArabfmpaT6HCiHjvrCBWNA2q46KQCkgDjuMk/ZdOyZwwTbk0/TDZ953UOH9WEgmyljPBl1pZYXim4BUsAtOBVT8y8VGKPgOdAqEAcyxdixX2CtIWCmpY0ooD4FIxNYuRBCwAA8gT0FQIeFQgH5Oex7b7O4bpOKu582blINdiPKYzSwVhFknlAo/tqCcASc4dsLBaxyPnayB0wFFGOqIxTPvSy/xrpboSm08r8FqciJMVCqmigqp6PStXsEONracAssEloxKhb6w0IgJTOjtATVywCYggU1wLER1cCpEInJRzkIkEmIJWcoE1vlXtjuY8927d9/QbsqBhYRW1GuIoA0mVYgFubB7PNh9VwMBt/v42E0cu2GDEbGwhFAsMogFiXj3LpkgF9KAVJxZLioiFh3ijJaDyhE3TZPfXZAGNgEVFbqd95VLwiATZTBiuDRMEAqrT1gqAAdiOBRxyJIHYJvNPJ43KV437amZMHF56fAAfPa3CkfQ7/PBxtWV2w0jApEOMiBkWCrggmW8qCUa1C1E1+wAqDDBBQaUyFkHKpgjZkMHw5qgAq1lTiYM2k/pY4pCqSH2D9basQu4U3CjwA9EQAW7IBOhQyQiLDZ+rwj8J91jJ7gven6wZf6uTUVRHA8SSSVDt4rEoY7iIIhSgouDUIQ4CAYiOId0ClWcYrSmTpG6BJEO1UGRDlKbP0AoFHRxM8QULJVOUukilWCQ4ud7zs19zx/fvD5f2jjcT7/3nO+5zbFDhGKvhC3SKCYSFCXB+HVFeqWbWOCKAKFJ2QgkvlXuzU3NzgoFLNa6RL3FwXAfWwhG4IEnjEVE4SCe/QVDM4kcgYhUqphw0Iw5wGskya4QcAtuCI4Qi7g7EBh0PRKLa+i6QAQSK2qmJ8uAIEEoVWZ/CAQao1hPUFjZRKSyy9CQOV5xh4azsG3CBQrKprGoTnnplNa6vd7y+913+/Q/aCAhoWISDbRBDMVY7B5/iEj0TROmEAkoQMJSBJbwyuAK/0IhVSjg4JbAE4/UNkTCUYgDygiAuoN3zJayJ13VcHjdDCxAYaxc2icu8VDpCAVDCiRWZYvqrNnixVx9rrNEvOttwYK+iQwIBNCnBAWXblEgcAjChYzad5EgSnCLgcqWf3YaBRIxV8WSiQQCFOPG4Z4QiuZKZnJSGETC2kShdScLCoaykCzWkbMQqxA62UrMZshQjDdJM9BYWYEFKB4+kC1AQcoifzfqiICxM3pHHCAcIcUJy4yQEIoopxExwEAf56M+iUMiDp2LYxTTClO8EqVJBE84C2+iVimCJ5rNzPq6U7C1cmkTZDWf/djTksuT/7BwHF40VDZCQ6GjAoN7s7lhtgDFg4qxIGSB4oap0b/d2xkN3ykSSAxQX8hJkrOIiiQAwfL5bPw/Fq95IaGw5umx0mUYktYRUBgHkTBLqJXiik1DcddRrINBWk/6xJ7ZwoZ0qoUUUEgBhR1rmS0gAYREzZXAYtVs4QLFZ+lGo12/3SMPDUYjHS8NR7uj4Re5JKCghrqSnQEJisNwxKABRB7IlCZHse0sqBXmg7PPRSExhCs6AkGC/iFhCqGQDIVhSK8XFkgbxFgkP0ujkCkkO/xV4vyo4snVFIqQvn2LoKkGrhAJJth2u79kzVV174CBfwcW+4bC9SwtlQhNGYODAy0ehrb+yMJQ0DJAEauDeNTGMhCSoYgBU7uDUCEWAiFXIF9sXO+EtVU78sUXZf0UVAETl0hYvnAUpM/jOv09fc700RPGwubMmxlYOIoXs3MNjeraIQ1G97eNt/C4xYTGqZfGVdsloEgkCggQxKnD4eDnlgkGpkUpPG3rLMJztvdOLsQI+oELDqk6AQXkJC6Z/o/C12vGaBWQnWJBIfUjR2FRS1JLZfV2EE75tNRlIXx+Y3NhBhZPqlY5p6bm7jkKkeD0057qjHW8qS99HVBLYYHIFymFA8vD0Q6BEm2xfkV4V5K1p68aCNsi7oXYNITBZXXiERgQLNL9gziU8RrhMLix3LhgfTkLKc4ihuKUu+KiJU8WjyVIXAgegnF8Hi0IReU1KF5qh+hMg/1hAgV7xYRN+hyzGos/RQGhWnJhisXlbo88ySFdom1xgQQooCAQUpi7Yszm5mF7rGscxAPCArdQNEFBrct4/yjTN0ObiCwcBZEqdpFYSwwFAoW66TkkDgIjNLBpnp9fWFiYWU16CGXzoQ55jEVbvgg02m312Ftbg+GXQ7WHQ+7SIYOWaqVuuwfL3VvESc4rt0iX0mJChbRJnZAjTI4iiRHRD/ZC45TJzT0hgQJp4izmCzFcmNwWdzSXTcSSymVlFRTeTZF6CIKEvwOGhldMIRRPKhY5p6r3vumoFxiqFnVYwEEoGpCo9zu313o/B6O0Bkzey71eT8dlW92ra5QDWOALrm2YIKfBd87cFAcu9Y8alnA/xJ6RdFApjKJ3NzfVS80TKFNmeYU7uXyxmDvaKpeTcqBhlUXnYFHw7yLnhilMJclYOAh/7+Xj+HlcQT8FhVhUK5CwQy5Y2Op1ZiAQMkW/X+90OrSVXpdKaqKgrrGoWo1uMO058iowdGz91JTQAAw7xDtozQ8mYnXQ6MX6QeHVUpe+lK2kjY27VijofpmT5cmJVi5bLBbz2dxRnOFz2aksbwsiki2dulDWk8VMBIkxCl89LOCgZ4djXQUUlM1VbPHkfqVaBQUkaLIc/RmKdrshtQ0FMAKOxx0OH2ta0ONw2lIjJvivHBjYIq1tn8yXHQWOCK0jkIh+kBvEgFrJJXHHETFpqtZl9Is+ebR47EQxy+pxglfFUr6Yz+V41IMaq1YJFMlJ+Jrj+vWAYuz6KBS4gsSJqhWhcFcIRXuuLhSBQ6AhHJ0OZ4419HgpRCRQIJ6hgS26/EGHG/YwwWLZx7Gz/vkQqEKsDNXBo2UIVa5U5IaEil1G1bKMLfKQYJMUEMcXY5e0WhdK+VI2l80C68iRExdLRkS7xsxgKKISQuoq886CaoGEQse/VjiJFRyEw8JBQAUQrk6t3+FW69eWPC1Zjh6jmCZJJQo0jATFwkkkaUoUQCAScNBLjvAowWXNI1gCFLhC0wdD2G8uzR+0qSgK4zEmqSEBSUiMwS4mIFFQi1RDkBIHRQRxUlAiOBkUKmKCOPknQUUU7SAODi4NiKhYpVC6iIUuHdwiDsHRIZDVxc3fd841qX7v5b73GlHvr98599x7X7cbV75IdXdNEx6QSdViU1OHgUG2EKVitFQqFDKWG+k9Ha4dPVqrWYgcti3VzShkC8bTarXa6BAihmLU6YxGFyT5QRKGIACYzA8czyChsZH+SyqbxMQXImiRYOhA3ArFeOj4CgpIGARn4Y4IyxObBAnjQEEU8U2f6XPdON1PKXdO74pPIaxAyRlH3MdSxWgGFIX+qdfFozXMcBxwDkO+8KBR43lUtgAFMBornTNCAQ9N2u9wIlgYBdIDFPCBPk4CCG3Edk3rE1s2Hxg63BVCoeoBRKJBsLjCxJRB9Mq/808ouB+MhFXZTsLtMM4TfUAg1iu8sJiOp9LJZG1qKs6JR3CJCxDcEiDRfgkUmWgRgcNJcE15EhEHTjcFwhYaUMmc+AIJBhyaIjEBQZbk5MLhLGyDhSkKwyhDqQaU1kUrpx3EZBouFo6DqxBNSITB0zgAAuEII0FYcDoLJ+G2EIrpEydshg6LWC2disWBcJgPDRQCD3YGplLFTKZQypwqFnWeAoakoErFYAEEtRNbMKDOzoKi8QYYgYZZYoKCHbRnT58qHlzyhqHAEYBgAVD69qlFP8VhslpJY9HCOd7wAAUcJiSg4PpvDXMziFBSuCu606BY3f5x2zQ+iMVAIQ5x9f8mTRBkZAzZ4ShNRt4gZ9aCjhMwJnFwWxAi5gsNqWMUL84HEmYILYXPz7OJ6Rz0sQDBFLgCFMPh8KXZ4oMI0GHOCQqHY+uYYcXq66Y5lzwxwQCHCYpxaDgI1u7xBShOTHfNFquwEIXuLi5A4VCOOA0du4/fPDx1mnggnyRhAYxTxdevi0UeROi1Cm8rO3UxUbUUNC/TrMxIjF6MzBfsG15/3lsQCEjMP5UxghQwSpmwUJllImNoftFqWSRMrEHzN4fq0VEAQlIVIflUQxovYo4dEQyBaOSK7dtOnFiFxOp2oHRVYhkKlDJtRhHTc0oJk87jiyBG2UzmEHT2kldv9/uakPFxEuSLNRLG6LxYjEYCYRuITqKOgGH9R7QctKQLJc5PUgtTgMKfgKGuu+QSJD5ean4NKNwR47n4RLAYi6V5w+ACxUcwcH78uLq6bRv+oMEeCggNEW4NgdFoaVjQ6ZhypuSJI5rp9wmGBKX2jRuzs4WwxgkHntY47i2NmlRZF8iaV3u9HhwEwkkMNgZ1OaPteuooOCx7Il4ModsGxtb4KadAYIeyBC0ssAUKLC6HlMklhMhkJA2jR4ABCbcGCqtYq5vm4edwBzDMBCFzAuDmTZ4Jj927Y7v5nAaGcARTQCJHFSFBAyOsiQNiY0RY1t+cZx6CJQBhnhANQ7ExHMKiPd/GHnRakkGcjWjQKDkQMeQPPMIVaQlPwiccXm3YLvH3xz4hBcOTz5+fOBL0g6n5eJXin9Tp8km6a1UcgiuIFFIGtZUnUXAgUKgERbIHOeN4Cl+MUVihvVSlocbkxrCsQb6vN2DXO80dPbbU2QnocbgvQLE8FIrlOmq5/H0FSDgMoYAEX4TEIadYsFBkUndDh6ugeHFhL1B8ty1in/Sx1I80EX54QeuJWivwRIqYmq6vuV5F4vT7gPrehYAU50RecsFCOVRKKUUka0g44IJIo8miIqRfYLAQinUOBk/Xm6W120pJaO8SLE7eQuyJIHMHLJY30M9BvT4/D4vBQOFgKBAcghQdcKDjfI9sgNksaOCPi3AMUaZKReZ7blMdvfPC/oPK/at3WGWV7ks/+HSYJ6KlyNZoMp0mGXp3a2l6Sp/TNEl6ydVGDO753XNmaKI81qjDi5J+1M9QlBMP2AC81SWGTkexdrvPkCKdur3euWooTmplj70A/mMGY/ATEgvyCcaofyBVPHcRJ3KAj6wGwl6dsolrm13HIGfB9xjF/jg8LcHor5tfeK7iHhsG9XqcIEEwUfHLnPlF5z6/vUh+ZqZU2rIVIkV1l/I6Gt2a2ZKh1X2S2UcpX0A5KTGTK5VK6nljbq5iN5K30GBxV2UEJQQwlu7d5gVYZCz2Vkcn3727xYLWnZH/OrCrXs0hfS7gFMBoDOG/fvmxTgpyKgxDwZ7a79/eb1DoZZmnbotNMEDhcYO1UKverqMFOk4BQ1pa1D+zwDNWkQQjbEswsmnOGNmTzZbL2XI2l8jlc4k9iVyCm3w+ly/NcJNJ1tJb8/oT2Uo5m0gkypVsrpTP5Rpn5u6eSZArNWrcSySMlaYc1Tfob3Qc8pUtLzNud5q3FmHRu3rhvr2vpHkqwatgkVM+03umJCxCKuPxhC88X7SGv34FFp/az55/f/T1ykGLGWcRQIQ4+jTYAIU44Ikj1xWLC/OLi/W3i9AABb54B5IdVzWu+/oavnjRPB/ZCYr9+yuVbIKbxqVymZsE9+Ch85FiOhnNVRoQgAauaMxdW+ELPHHt7ly2kKtWGqh6YxZnJG7YnAMKVbLGPZF47cXna0sX66Mdt/CFbAGJBw+WjtFqUSvskWiLhLUtlpwMBTP2oPbGEBJDrGEvFyovas72QSwCicEHfg4094SjWFxQXlIckpPeSvzEBi+Q8FVzh3zRbN7RonyzGdkyU760HxbZ3Ew+l200uMnNZHdmKxXuEqWt6S35bGOlUU7gllKhvH9u37X9lcbK3PsvX+bgIxArK4ygOQsioXjRqd6b1SAKCS39OgqKmdk3L3zJtykW9hbTWYsTMhvhS+T6Us4ja5Us2Bvg4dHzwQZj7vA33hiSOEkXqsjaLUjoh78gNGhb6U5EDXw8ggQdvuoZafHt8s/l5WWhEB37T9B/+9Cyx31+9CayJV/+Q7P5xaZVhmH80NZTKa0pBAqdTS/AMmzKgkkts4ZWq7bqzGksKlSS0laDMYMpUcvin9EuGp2JNkUwRnfRQ6k2wDQZhRnDgokhQbjwosbExniFyZJFkybeeOfvO+gbYOecAuN7vud93uf9PlirKEo4zMSbbAIAiwcwnJCDVOgeGNCZZcEZu7ELMfG4fDE3EDlcbiXkMLncFaDggSyR5Umw4MmVSsg7edTZDOgEXeo7k2yZ4b/F2h7ZQEW7HRya2tO+4ypq3R6lBe5CAWGuolHGxddTyAYKI2vAxw2QEFA0QAJaYMIY88+/cunkBICO+f4lfS3oCa+imTdCaNArU/+TQuNJYk9ArgEg8EAwIuIsePB9XBr4dH3R51OUCgkQNhEWo9FjczqdZg+agaBKNk1N7KKADOtMFbcJ+sgytAm5FCKTUTLKATkhW594oosVHrNp82ALywIa3O4V3z3BboqO7La2bxgRVuvS7a1gIZtNXFrG+5AbZDBIUAE/mj0+bpdmRWn5uQHxKY9MNcQXw/67QX4IeLTphxRcE6QQULzywS+CTh9r8ggU8CDPEbLAKdc0udyDfNqnAAeqmXB9y8xOcOv7I6PU1+1ZW4q5ibALajDDZiadMJmNXToJKDw2l0M2bZrRELPZhG6gsHETXFCSRQSDagEYlZBs1LMESPHV682B/YxIEWLyB0T0ADLwXw9dohvTCMk9GEwU8tmF5W9+0H4xsiy0U6TJ9myjXcpGQaLD/X/+uaUFZ0z/MTzBN4lNV6D6+datX7UbdvVj6MNfEFtwiKKSpRI6OZuf/a9y8ObkiqhUnU/RQYLlJOgJJ46+/FK6fEo3PTqqMDCFm3tR8blkp8PBhLusdqm7f7B/QCeH3ARPCIXhAtlCCnm3lLGXxpZ8FXclSbjlrp5e1jg0U9o19ntOuE9k9GArWavVcoVqNY1gAgExhO8UfosLt79hzeDth55Z5mO+DEF+uzmVbzdKfP5SQ4OC8RMCEZEJreOPfqHSUmo+Jmd+FgqCQ9NEkgwBJCSG4eeFcysJQPPEbJZU2cNEUExICWAQSjGUyxXAQvAiuOW1Hn35oDRyxynL2j2Px1wOV3hRiRXHky6rTrKY3DFFRh5O9fWdGvCYwiBRrCUrSCS64mAJx+xNlq/OFd3ohZKs+RxdAPHGG2LFh4UN18pYRY5vxq2yK6kWCgW17Penq0ABGUSQrjAUtyV2BN777SaUYMJuPv30zb1ovt1mdHnaNEaqcQJICKA4+acx+5EYsBAFGjlNTHlyB46vIcwnH0U5I241EMlsHm5wF3oJ50AisRcMdpBYyCVyVFKNpFvxI3RNGgELT+W+sfmzlnWwYOpdVr2+2y67QrJFBxI9/V0eG6XCrfgUr2kzBENk/JhRrtTK5bBQUBhj6uq5LLZJ7u8x3M+6Rpd7ZYfyYu0atipqulrO5cr+dG4BecJ03N4SvwPIiMlJTCFclH3NC9Eu3HwFy9mut1KpxmxUmO8o/KBj60Bx/rxQSAaNE0M3ERVgYswlgCBmP97b+4gnAwRoalB0CoemGYxfEFHQkiNEkykCjZxAwjuJFYQVl3sH9Z75i3etDw5ITugvG/t7DP3DdoSBPNANdBuNeCq8hNc7aZVZh0EWJifN5s1QUS260E/+ZNX3vsFXHlneHDYaWNN7wFzcWXS7zXqD3Vf2B9JFpVj1p9PVQsQb9x68Syxj8IbQzSxpDZux3tuviC11Mpvzf5q3ZqdIfIKNge3jhsiP89euaVigDJ04pq6ARFQkACfCsgpOtEW5AAiCAyJbKOBnsjxwHyI0UoikraogETyQaQ+A4nIv0y59N//6w4N9eqPksViMksXiMXaZHSEXWmqzGAmL7KLxtBqtcdnsUBRfsbIYDodCYTeVx2M36nt7tdVNA60J3p0mTXYvTjtMHjm0419d9eeCxfRVIpDY+mYLT347EswcHAwV/HXmTwTNKfn8SZQOHRM0y4VSFJp0Si3X0dDmybVronDCC8atwQApWo38NsbhNdoNxObSVLZUr4MFARIMPYogJbaRSM54FFBoWSqwSBQgSWYrFLeCBFDc0dunX1+6OL708Nm+nkGDXmfTLIbHbuJfR3jxfZtOp+v2uEOy7I1rvZgl7KtUYmOx6bXYeFEJy8YHRM+GeyDIm3glVvHK8qZstztiO2MTgYl0NVdTAxv7+/sbAbUGJzMZbBiSGimU2g1B4bZ40OSN/klrSzicevnDZZQUNPjxEeg0T0CiSUYIPrQ1JUFLWu088iheOYUC7SWypXarxcU8Q+em6QKBMCFV4i5Gz5ZdMlPM0RsGMyG6prh50nok9SH4yTdfXBodXZMk9NIWXhp9PbZmMs2vuR0e28NPrtmc0+fml2KKEpKHDYZ+Q7/OrjP7dnfX18ZrRa+16wEDHe1T2k7AUYgCWxzfWRnLJQ8cLt/K7m5gdyeJNVX9qzMzG9dnAn5Egw/zTdx6FA8Fsxp9s+12VDRMBK5L84fbgIIBw46L5gQJQUNazWYLLmisALmSsF2MGhyPO52X9sJ8qd6ql9IdWjDvwlpqWBA8CGyCFPdaTS1UkYsIe7q4AZoFyQDni19cfzx2333r4XDYtR5+fXFt3aLz2DwWSadbvDi/fm5+9OJobHylBhuUmMus73nAHNv9YtGhIL0PAoSB9awnjEeTXnexmEzu7FycmHhhbresTkyM7YyVkw6HEquVScw0soGG1oqZg2+otN/HvZGEYCzsTWiLGEOo6M1LL08R28AivCHDE/JR4izK2FBC/BcX4AFNOCHIhNLABhEgwDP+04UFWmHNSoEFr+TVGj7U0CIlvpxOU9bUnBa1WlHqdyrJ8uc/vrgYduvstrWH59fm378x7ZTOSo90d0v2c3fF1m2O10fveXxlbGdFvTL35pWY2z5sdyRXHPYjI0nGmrhBf2SlU4MQarHi3nnhpbmJuc+vz+xf/+K+8bGJXRUzCzGKlVCmVi3UfApCwaIGTfym8OFoGFBE8D7LlyJ4Ieo/oa10gcWCKAOII1015fAtcGL6t7WyAAQdaykeo+1Wqr5ab7XqZIyYf94yGCEHOsTL+0udwppN54l0teoPrK4GAoBRLqtVVc2p0iM62+LSPV897zz12ciZvtNn12/c+OnshQufTk9Lpy0WZ3hp2qnTXSBDHn98fFzdffPzKz5fxWzEhgNBD19xJi+6rHGv25dQwTpZcVXUCf/u3PUvvtj4/PrVK7tzM6v+8k5OXUmarMDFDKjlQo4Mxu6GggsLkUwwWU2nc0wfH34osUALJbw5g9Y6yCgzCSlInP++pwNTso1Wo+OvGGCjkRVjrafQiCbRamujBt4gSKPNgXa9vdrWyoomnVk/EVgFiVUBBbBUQSInPWk77ZxePzdtI5wej2X6p9MDZ86c6f/u4XWTLex2rnskWjKaknPrzvBibOXKSlIJuex6w+U7Lxt6n727l31klrIs00rRt+l1u2SLSUkGk+rEFVWlarx0FYlIXRUGK7gpb7pCSjFXDaT2xeSpCdKphtWIwM/gVoR5zKCkeUDZA4+paLudjbK8AU9EuojAiW0z7nrz8LB5eHJy2GKikU3yodRarQtDkmry1m3KCMmSiAhXmQ7UOYUa4MBb59Q0mSFQAAJggB8cquWyVKFaeCTT4OCF90fXB/sGL7x64ezIt4+NfPr6X9Muh9tZa+tEXdFJ0uCg5EYRfT6fw2LserD3jp6ezs6qgRiWPB5cWZz1HxcdiUvZWakll1Ym5oAidbi/mkbP4W21kMtV/asbh4eHqVVStZaBGgeZDMYrgrwHt4IJUQzbefQz20i1GqVERKx57bVFUWCy0c79ZgsYznM7f9jyM80ANAVPSI7UIaxIpQQkrXqdKp7OFiAAByABDSOIB2qJ1QloSMBGbhyDzq50hhjpM+tGRk5JS86BR5znbKcHPztz5vSNGxec0zeWUn/GkEn9KVqR/gHn/M5KxeSyG/TGJ0iM4QeeepCK/KhBbC7brXYXVdRudrmTF8fum5hQfeHFsbnyxAYfsO4nu+tNhq+mZ2aee655+Mf5DQBZVYPIhuhrD7ZL2QX2SRKFdvP8CSzHfJVErc0jf1ONa9cOGZ0YbfM5jlpN0IAZKWEiUIrZEn8CDFBqclHD4mpqY0a7ChYlagVuincHC4oYIl5O+8U9IGBJ+ycCgX+ZtvqQZuo4Pt9WvjKHumnDP5wvSzbRsKbWDpz4ksY6OrizRvO0SOraQwM5w162RRCDIHfcwtwFO9uR6Q1j7abV2AWxP57JQ5QEQVFQGkQkiEH0T/S5DOor96C3Z+Lvc9/v5/v5vsz0MezkZHanYfZkdubOnUW7ZWR2dmSn5/LyzuWg/Zb9MSZkXxt+bMbhaLI0ta7NLfj6aiFHuw0oHgZrYiSExSub2XZmO0NhEjHrHs/w0+4F99PDVrvvqdv+DMEKeVz4AwXhvCQWaIXmqkr5tqJwucIB4uPI+zlKt+V5Qw2VzilKyEFXCm+99Pjrj3c9f14twHLX19c5Dhe+x1EPzgUBUFQhNTgOyNzgIAAFAwNAJigFfPE8TRcKCiERFHhCNgRmVi5RBhRwDDecgZEII54YWAVQ/AuGY3bH9OkXdz6ZPRlpsszMXN55Y8reuTY4NfforU825kyOE9jsyMzqYx19MWeHre/h+kk0Z7rPXjlCTnYOZ7228XZjpUJ3Wj0LiWi4NxxUM2ky7wZZKBKhXFUrH7EgeULhFV6gy2WuoNB0JQskPoNhcvJPUxThHZUrAO6Bx1Gqvd51INAcyV1c/3WNy8CDwy865S5y5RxnaHHDrgwPQcDgDgIPASQoJAmMFEUghFNCIBQBRIJnbxyelQjW4ExJYgkesUsdIngMZjadfHxjOKij583jyy+aHD1vm+xDEzOWnp2d1rrWmqGmmTtTazuzJx9+/OHJyNQcup4rRRSjnX3BfVsMn6+NtDc2jkKCuvBskVtaWjpXwoGkmgTU7vX0lsQXCIqtXlXxVyinLFViFJ5QCjRNczReWf785iOZGCkaPY5xw7zxLLO391bXex+dixUOx+fgFuWLaxggKXO5v/7CDxfGCwZlIGsYPiFUC7mbewLeQ9KgIxCkzFQYltqjcHrQtSQBGULiCUkgWJ4HPjrKMySvg4/gFf/ZyfH00uLU0A5cpGlmaGbn5B9vcTgsb0zU9eyMnMze7Wj2qNEiCo9iMjMw6IzYsJPUWH8XJkn17Wj0tndPNoJDjcJ2IRQSs4lEguXZjJFFeAn+S7CnbHY5i3sgM54kaUJkDlPxmw/r4vrs5c/Q/hpH32v/EJmvax78URLg80YBwuXKF/AMQHADCsDJGZ5BKxR7vndeoTbnD085DhBXFXiHwgN3BINBjZubCAyQAiEwAIYBXcpyKdul+jxeVzR7sAcmZ4j/QYFnPopEMfFCGzxltjU4ZHH86y0zX7Q2NVkmjXlyeyRe3PeaMSKJ+VZc3ZiS1TVO1t+M3uvrcRnKs719shalvK0PGSfDuuWMSOwSIsEb7vrRZpeelZBeD0vSriIwyGfycnwfM5lfj45uPrP5+dH4fZFNhj0HF1KHwXgWDg+/gMEfLri/4BgwAGHc5ArV89IhdQ6CYPY299hqgUMOIQRUPIUqTxAE2IOiWIFhTwmCLc0/26XKy4ddxVTKa+6w99VaPT6xwhCZZMj04cl/WOyYamdPTiy3FgdrrKPOrGnGAiCAhmWoxdI0aQzN28cjn2PO022UHcbcaHKydnDUXNuMPYwGh7HaBhWOdZxuYGbzft7hUodDfjZRSki7BEXQZU6qgPbgqFWFqLLQFxJ0HqFQ86+mXt+HIT4+e3f8syOQBJKgeF7hrqtdto44uICgERgXZRydwz9GDjISJ46LKkQUC2A/qM09SKq9ioggEBShyvM84YczAgK6gNQiUUwJTZNsNggtEY3ZzGFPEMTkSzJiIqHppgaHgcVIw0lPh7XTMouDDx2/udQ60txds3Ln007L0I2/zN7TgOPe1YCJqgNLBxguY8buuKu53tLU09iN2Wk9YMC6q+Ear6Hwf7DdFmuf7DYHrTLPERQviRThB2PScA0Gd4hqwXhkjCxrrCIZLjyPlZz9z4wwgcV1EaH9EXV1ccWrHWYZgYD8QXJljoSw4nKKxLIHUNNsRcDPlYrhCiRXPe+CQlkWQYlGAmcIP5sUjd7AKX/KsDRf4CmqmmPD5scYUdZDoRdfzDAU8nvWBxmkmeo85hZzrMMXttRs1OHUgOWW3TxoanLMzAwdf9r26aPWuQ20OGdPbuxDwxyNtQ13tcAbjPGyYwRbXICiHlt70BiPAIrmWDHldJnPzDFf1Cceqr6kWELtMcAyCkhCYwkKBRB6GArBRJFmNJ0RGHE+3jUf92KcmDr6fF+sQA7Ob55y13RVyDr9RubN0TQ8olwu0BwIt8IibV4hnxQUMCH8hlYq1CHLlqhTohRy82mJKaEnR2miqrLSQCjrpqunDPPXX8pAyF3alLWElkkMyBR6SrKqJfWwaWnikxfsjRarbzRobnGcfDg7UvP2YwtfPdf/bdub271ffLG9/fRY/0MDq4+u1Q5O1TS3OGZHmupNK0trK+ZRUyOa3AZD1K123HV/vdGu6Ib2wgaOzYz+ZyxetHUGVT0G2REvZTE7impKxhdVo6rI6oa0kquMHgVOQo5kNDDaqdwVTz2jYlFpk6qwEkuxaYKSbnNwaVYAEnQuR5LlC9KIEXgIB6LAw6cqFZESlFyVOhDJLQF59ZRJiOgKMKn9eYagovFnSsxTWibNyIcsT2hjTFc8ntU0FEOqmtTBoFpJD5pNbxzfmp6wdDcZo1Gzpb7v0S9WrZ2eJ75dmBi69ahvoX97++f+hX776nNPfr39/vtPP9nfNv3Yan//wtIXozuGOzw82dzYXXOr01hxP2vH1Og+tLrN7cZ+kpFSGtvNZix7nnWkolFZyqqiHuyz7QdTUW9sf19VdeiegWQgQGnF3t5hT9EnI23IgVJVuUhLUADRYukZWUX912eOMyKhcLc5jkSUIPnQiDZOQa1HECBTQdkt00JFIkie3hUETqCyOqUcPnNYKclqallHrUzkyULl6i9OYqMxb2w44/cnZC2USCy8mMmC4yMmE2Yfo3UtLU1NrRMbyUfnpo+n+qzFFdfYwsLTwyuDi8/deeLpDwbmpmqQXU1ffPvBV9tPbi8uPrExHXDVNr/WMDlpBEnTjGlfHTe2kLCt9pnX43F2dzejuxdMzcf7+s7+XVuMeCHGDDuoUu6szkZB48Flvz/g3Y/Y2tE9xGjNx5OMlFd4iV9fD6Vi4/tOm9mLmSzEbEzN7NJKnqYhz8o0SSoaQSg0k1GqNFmm8zRZwE2WvL3LwXk4gIHIgb5i9WwmwSaeui7/tJ7VMlSIZ/EAXB1Wj5oMJdzEQ+uoEeRAMmp6Ym4qUqdPtB4v+fqnOicGl5Y+7awN1jhdLt8GntdY/+XiQ88FnJ1Wi6Oxc/iFy2/751584o3jF54I+4Y3Vpc6IcNfa7DUPDow7D0ztDe8IoLOH6yvz+XzyZJ41N4+DphsHePjmDba0D5blnd3JYbMyGJVDmSkZbPxhhTq3b6OIE/69Uw1RySgX4KxeAw9xDPvM88cMofRFEP7oxp9AStzPEGzfK5M5nLsfElSFBJfAtKodK3Qu2mGkNxErsCRRNLjjGRZVgsRW2ktl3vGE2J0PVIzWV/nWtYToTEt6avptK/5Vq2mT6c35nzDEzuftD335JNPPrTaOvHGzMQcuprWibVH11bblibwSlNkIR8quny1Jl/4+G3ft/3Hcys19tXe6Tdad1qc6AJi5rzhNEe87aALW9xmu3c8poeTaF7omWwEC5zGDsbZ2Ss2fBPBdLkokcOZvGqOZvyJxFZJZ7LBuLrs7dj3hfi8Pw2pnXmKiR5uHsWQrhttsbgmy6nDVKmky6JAPiXdvtjlCQ6SsmxUGdQpTfL53dz1bYXn6Ntlmt6ViBxEE9QtkvahLGbSvOiW0u7ffpT14YAWtHXX13dHrC6fFf39GmunaXV1Zc600GYd7XVZai6nn0NwKM+1hT+xWCbWWjfQ9gad7ow0mUenb00cP9H/WHLM57SbnCF6IBBybw04nbfmegcds5Yp++qgZXKtvz/kj65gtITyHH26/VhEZUJaRtTNKZSDvnAQrdQjuAXa/2py2JpKYqg2MOBPczk+kGSzpSpNLWd5gmRZhaWiciheDLjMse6H8Y5YR0dUi4rZZW+Gz/FaKJ8IGc1BitKyEuobOkfSrEQDGvBH+bp8m/ZLCvzCzxIkpfrc/lDCL6LyyWtARQsEnE4II2yt29qb72poxrw8sLriGzZdbozW2ZeO25aGZnqGeuxfPvTtSt/+XKYYttd0NnWPY044Y1l6cWLqzfL7738wEOrdIvxlmlj3+CpXie33v/ze49l4aHWxTQ2HQ+UXk8T69+mBdXdlfu/Pd757fDMV9AyHN8YykppJBg6C3lg8HlVZt1/3GF11m1ooS2H0taSntphn4s9QdEVmWJK+5phswOUJBlOpohE6fR0dtWilB6NahSdypEKnWb1YqkC9o+VximwJtXnKXkt+pAg3wZXpTNqN4kd6Kk0WMgyTz2saT2Q0xp0mQmOhhBZ1gdZv9swMidzX2emzuopjpulP7BNP2IdMEygyZk92wt8+98KdjUu78zFnT6PJ6lOdjTODvb/0r62F5xYvH0u+2ba1tb6uhUJpZevF5z74/ify57HtD/JPaaLTJ6u9Dy2+//3PytXVH9/88McPv/9+EBrozecVLj/gd/v03S0VTDUclcOqngzEjRWEQOFUlNiscIVzBWW3VJV4Gv6dIyg5lN2MOKPYWYnE9dJB195HBEAqqFlWut7luTwv4n/m05Kiq1QWoBQSGSk0wHMSxZFVhX7q0ZUF4i+/xlPretHNhJI61IPO6poa0gFyMIKIRZsF4ez12rob24MB199EXG9oAnUYdrpZOh1OZltr+MF5m12n7CBqDRW6kVkDPYw0kp1uJx1tXCwY17gvrr7EwYJuVNidH1xM1mpSXHPVKgdB0RURFkF/aP0xrRH9XRARRY9R9HMykNvw3vu97/u8z/u8P8sOk1EZteCzrY545+2+zZGt2Gl6KzXj8lhm0iNLEyHSd3r7VvQo6l8hkzS9FKsVq4rCf3qwpmTSy9QdakrcP/KiJLW6fAszpy++936y+vuvOI4IZzNhTrba7pU4SZbFZlmV9GKNrsce338V7ho+23766K4ckrqUfRvJEQjybXA60vrl+rrZR1OakbvrKHw/mPGAV9yTjrvZnl/d/Xm3amhNrmjs7Wdb3ayAR56NS6xZb8SRYAWpBfjFgrLh9sMxRedVRZ2e/ieED9iDHBdv1vbL2FKp5tHJ46nwdiAPOGy1bXsDdt8zFihsTsJcKbjx8Lvvbuy8/+ny8t23k4Q/7KxMTmwszhOxm9Mipa0MzM4szhXU4M5meC4fniGTzM7WvqKWX0WgLz9+/yiyRij08H2F2ftuf/XxT77sH8f5+h+f//bXO0Q4FQ6XaSpnELySThLNYvOOXabEKz8/9nP8jWyWNQxTq8UlSom/wWbxamTXNba+LoHkahbPkIFPUttlDmT9qzzF5RSZOMrbHxO0N3LVRqNezDaOdZnTDYFX6ppci3E5wAdJyoEjeSPOAE6K41ZHX19oc0zHaCImpo8oitEJkuYNSkePRuSTGYXk2MdUi8uxaJu1T6+evvfDi6cba72Lg5EgnQlSzXzB67llcULiKZkn3baJTDmc3Lx55BWt7A1PnMSU9OpZOR8qhwL2fDMW2IZC54kf5lcnFtL5p2/46CvY4sc/vvjqre9ufDyspDM0sxTUCT1eEo8olq0a3S57eRw3j9ezHx7UBFbY8jPMcbzdYg29KzUapmkiYbLV7KvbIPxCL5Tzj+fe2DvaE0MLKfuNdi+aCeHUq5d1CWTMPrL6hcHQghytFbu5sJdA54kgBF2rKpnY3Iz9auv141b0MQIpohYlEqmkbLISyXwIWokhiFpSpaOwjj9jeWjIOYSfyPy7I58+vHH7p++vPbrFbG2UyHw6NhNweRa4jEiLoROR868kO6W1tV4wZrc5xsSY/egsdPJg3jqeJ2opu9Vmu+90oOCFLuXeRz6DKX78CefrXffajVel1M3b70uuEVzr8q9ultUAnLW22bpEzV28bGhdlqKoGn8Br2AJ3dSk6HJdoqisybbY1h3c5ToYy7Mcw+01U2UvYueDdqsdfVl7CAg9770xHwqJTA31RFU62z9COauqR3tgJ7oSr8bLefu0xYJunjUA+mGuXNMFXpOJNts2ei3sIubC4IlgcosgoRSx3ITZmMHBqcoTp+/eLgi3f3rzxrt3r71CjNzstdnceTKWdg/biOZq+Cw1PeMN9h595TyZHnVYUzMQLobx1cZHXR73QmLFveh2TU+kC2UUGL9+9dOfP/340x9/fvnkC3dNpxZWb7595O4liu+ZutYUWqyp9ILROEsdS61qTeIUAuGN7bLdv1jgyG4wmZGlbleusq269Oo6sKVpHnYvNZavoZF/Vx7hFhK5cajk+qJKKKkfe/Xk2ePiY18DpIUzlEyKd1DVaiteDnNSDtrDAPwDXSssl2WlVJd1QuNLzIeCosmGxlPEZjQoC5xKW1BNYUAqMrjomZ1PdoObm3djb0RrE7Yx6Fot4aWQZdiW/pC0+AKjNtuc/9NP350opLw2VBuuSMTpcHgcsGXEgz9fOYplyDR/nn3j18/f/OOP13/8CQf8/ZzbVx8TFyaWlgnquNRhdZ7XhFZD4+u5Y4qoxeNyp8PKuk7phrSud7X6+s8UpWpsSzJaRrahaC1C7poGyzaMFrueCoXK92xDNYxs2A8Bo44PxhBNwmgFl/dCY6OjA950OU1wpJ/jpcdDjyuCLii+weFrH7pm6CZv2u2ZlhVqK5lKxwrk7ZuoS6QqRdFErZpVgkHL4BDI/6nIlLsC4g5KgQxJbyRvH1mYt8yukrHwXAib4fSH+xYnJyedFefie0H/fGHsJofPOjx1y0tTQ87hyC1YMMZ9N1MarREc0S2+8fP3v/zx+h8/4ZyOhlbPNnJHezWF0f46lvkok80yekOXW0VwTQiODekS8LCOFF1sSHWqGaf9itzVOkka/F2VqspNmhEYhqWibXN9Lz99cjI2fiNuGuuDcTvmLmCX/P7+g0gUsI0NojhvaMJeSMe4M2ijVEFXwnYHGjaYF8UFhWVxZYXU+Bzhp7kMV+X8QWIruhXlBWLD8hAaO5gidCUqoHAqizOJxMbNG6cvnqbTAzNkkCbTidsfvXl+0Vn5Z3meGDnfGfG95PI5KrdMgcpxeCJDU+D8Kg7xsBdN8gyxkths7v78Gw4Ixkkkl+txFArHrSwjGC2ZQDcV8FKgtDbbNdYbWS1rXGo5pv4XygZj/4Fbd+M6L7CazArKUqLEMSZrtmQ8mCSvsTRVOwvlY2domQAKQFF+PaDX9nPbfa1cOO/1Ddiuhjzb+xjTLASsUFh6T2IQ20IMMZckvWPwqsDVw7eNkwmSTPC8fqjViiSx5A1n+EwqoVA8CVI/MhwBMeW0gMACpVnxzJ5uvHjfi0vpabfVG8ssL69thCen+k5QiVQqzic2Pt04/WF20dMfC8jHBtyDTtew0xUobG7efNgzmFLKbUlcdItPffvxrzjvtSFRzTs0s8VKVVm/wBvtGZWjsxq9m1v/67KhC5rUyOaOj5E+q8eX3XqcQAysMRS5XzeMdSMrM2TQ709Qmly8YxelfO6Ot4vHSLH2/zSzdrzL4bm+rnJ8zGePKVUqPHo1sBNqu+2jB/IWOM1KTDlCihu3Wu2FAkkEo4LZNhuSrlFKKbqWiQo6wdNr6G9EcKPoB2FTYL1UmXxiaXViYNGN9OO4wuFdmlkECsW6ZarvSJOn7/4wO1v5p0E0aJ22DEVuGbLOTYtcprAQ/VAWSuKAdc7fUR6/9YE3fv51V2Y13Fxc77a0miJwOloy9aIYS3OcSoGI2lUZo3tpalQNHf7mkVrTGCVOKUciSRAAk3qtStWlWjJJ66bZr7upXHXX4MABIGwCq6Lu34b6LQTaJeALBBBM7WFRUSZGbYPgI60++wmUg/d757zpRHg1hKvHxjh/tCQoUUOTZZ1tM3JSJJIEuUVyhRDG6ODscPvn/+X/I4tuNApdD/oWVi1TLz8fGUbFMohL+msKRpv94d0n5mdX59wOF16g9Jw2cU/MMI8u+/1bNCFyJ76xic1NldGNxs9FHi4gZFnGRFVd3EuBUy3XeNCu8abKyW+rzSbLdrptTTNkSio+lhLlw3a9SoZDJwDoKqUJ61mt19bkC02XeQBQkxX42hn0lCDdQQlBGgZTlNHDDYzNWcaxQyApDa0MXO1CI9dtDUBDtu2FT5XPxPRqGuCb2xcKZHQ5NjYtimh35x5TSUKk1YKSFEH2I3/0H/r/vRDc7lRl/PFRh6uCNnIkMoQVmRqKDEXw+WzFOT9fWVzKLBQALibhJn3FkhqlD95fKy0Txq9icsdPckVpOVgS2q2srMUFjWWFjglQxeoS4HTd0ICU6x1dzwL26TlGM/Xz6BYTb3YbkkxFS4d3P7y6EF5Jq6ogSKg1L8xumyqTHMFqJk+TVC1a4rk8Rgzy2zBIfn9XOQv5YBlfAKqw0attqDqRE9HcnnTYrIG+Qp/jxFgqIybSdzNApgclJTy2upkpgNtVxUyKILag4S14Lc4r+s/6f1ugTWjzTDpGbxqKYIHddjqHsAY9FVwX8SBy3gf0MGezW1zYEc7+1rCkaZ6ikrRAXX6TNQ5HMipVC+6sHV5ctnQZQUpjogcHjI5wqF10UCmY6FzJPVbTJK1hooAULi4E7VJHR5FQzwAkvfNz3gVOoRVNN1uNLiWb55oGLCRoLSABnaKj58RJHqrQAERyYVVJZvqyc29fj485n6utCGOwBRYIeYxU2yA8jGXE5NbNL57WhAN5bSQYK8Q2V+f9fhpwUy0xJUjRVNISeQivvoPAReAPrv7NQa15xRA+nMKWgWxtyAkvKPicCCgRz6R7dcY1Pl7Bh8MDMz6bN1RIiImYuqfSjP72m/zBgX/pvZXExs4hYzRQzQOs1qo1QTu/6LTbrc5Fr2e0uqbZYU2T1Vgzi3xCfdjumJd/sXyUjqWgIgaQOqPgy4IBC2TrCsfI7Y6MHNRoy6aJTBv1i6FUGCgL/uCzWCxjwFx2aCa3IRR12MCq4vmgBr/m3yEw56QN+uSVzZG7Ny46B6Wb39tI0uRWeiWdSNLLpIqvSC6TtS1IWPsIC/eNvYG44XLh/7icg4PIKuC2b3JGrrjCOTzstC3dPeCMIJC4nR6382orrnCMD8zO+cQq0VfJQ4WicsG7CxMLmfTM/H0z7+0wVeCBJhk8YGRdbrd75+12B4GBPTi46B1+2On12ma3wSJH6J22idWVadnUdaGqltU9rlqXtUNBlpFOFJVhzQtekA3TkGHBliDw/kR6eg5Z5J8Bp9ExDPIgTCCGwhSY5rIOoAzog4mpK/9ZmLfH3phbGdlBMt+cmH1iIpSgL2B52k+SmWiNyGQy/rstYC8it0QeGurHBMfME/dZZi2eYTAaU3fegswKqwzD95yeScvDK4nE0vzSkmeor/B1ucDiTnrcgbN62TfnDUMqDzZm1YKZiRkQfCd+QqFpmlAL7y5/eC4IvU7vvNPpaWy3vfbK+4dyr9fpCAZMYNTKIiF32h0+GhVYFrBSUkg/QexTQrRfIhMKz8c1VjPYdue8J/CCYWaNblvmpmdOwin1xIuNYBkbRxkOY8BBMOWFt9WNXy7Yoj8Z2e9QOfB8HXMizZQy6QmL22WzLG2SWxQnvruzUyp9GCQTy4/+XcTZhKhWhnH8OPY1kx6mIckkzqLx4yJO6Co7nAmO0uHggQyDCMMRP0AwFINDiJuijQy4cCBkaFpMKxFaxEAJGrUuEBnBleDm0oCLBqJ99Hus6L3fd7zjnP/7PP///3ne570KASHh8IXcoDx4MmqPYs8dvkh6EBPPvxg6hhAOCYVgsD3Tc9TxQV05IjUOBYrnAkrguY9+SPLzKYup1+doNyHvpwyswh7GZSruVIvhWiKT2W1vvrp/uts+3c4XuXl9uNrt6t1wfbfLXBUK8YhhdFO3tVoq8vSDzI/fvJ+4SfRu4uW8dfF9qlcTt1m7WwNlowbR1hoQh9b67DJT6xbOuKjCcAcz51AmucLk8SvKAdL2OrzPaOXBQTL6JKp4JVyUJ1p4PHSdKWoR0PummsrUcsWBmnNdy5qPFXBgcXTue+Z5b5KnzgYU7+HzKMczPrLO62HcWdf1ZSAWS8dGo+O0WcX2HoZePVAqhR9e5vcHB0qS60WfvxzgSgkHFm/+cP7Z92/ffNqIxFt5XTdtHpJQx/HX6zXD7s9mpl2qr9elsFYwdo1UV3s3f3EbMWjC3abu7xs3tOQeGr2vPzs7t861yC2fJm53u1rXSESMxu5h19ttGxBTIhLP69Vq9Tnx37CFhEYgGcBsebnmxQH3qV5+17XceOH8CWNmFFFMBGXUchD/eF4ouJZmNOpax1yol+Fcp1hSIIlnDw/8R15vyFt22mrFw/jmWdLv975KqDGQWy47ZoUxvdDxyHPIYFK/EuVyBKNXniepwolCNGKACQ5K4+DpD59xP+Azmgm2kUlcWHqw3LogxMn426urqwjJWY5G418nwoJFvUWr4KtGPdwSw9fL3Ox6vTs6Fnd3d29jOL99l7GveItbSVzpsip6JX5xdVHrPe2NH+7v38OXxVtX57rlcpeLW50ChaQJoUFyHB56nju3464GGbgmU7gM3SU9/sNAvspYWTBvsfJuONxyZu22WRoO55sttInpPi2nuRN01nIf8+9yFaZslaPtaIAdPnk3VQ9vNq4erQZPggHf9bE/HfO8TAtCzT93dhGPHnhfxckE6B58c/s9nZwfM7WMoTGJomGSziv5uFHr3bydiqRsjcSvpzSrehKPxE2zWBqPjcy4lNlODOPC2N0/oJOZTO+ru8btVertu5vIu2dXkdZ5uVqNBuWaEpVGofUtst1Vjae//ARl1FKXiUgqHD//6AcOO05Ik1eAgkQhUl96+cxyrXKFuImmPZ6YomAMfb6knjw89HvkGlT1VHecqNcX8vfng/l82FSePQ55k6cujk2JApzykrxSD86W1ZPTZDJ50tJUNefMKq3Ck5fJQW8g6fGUb2tuPi+jegy37y+nwhnSPz379jbRWG9r38S/jcevbCK7YJdSlxFGPuOMOWrFourqJ/pZtR11iuNepjcxmtv33uvVag9PG7VejdGURq+WqN18enOb+obm9EXh/Dx/Gg2ilC+ffvb91VWtd+lW8/X7D4DuJnFld1P1HqlSePJcnjnjT3CgwCEj969Db0rMo8T82WzoOBTyZWMevy/gKIexEUPrB56AB4RClJmhZcfsd1RVOcqOZnrZLTxRDkOh42M4kcswsfQyV+znTxUIwV3OFtNpv8+gM7NFB4JoNa71g1yd4u4lUHgP0TOmNePfnv1QuLDnw0kidRXXoEOeX7MsV+t2u3akdv/epyXTdF09ycD0KGqGh6vJ2qg//PLTT3e77bqWYpOxT70GofHBDX+6pZmpxQuFd8tPOBI5Pf/+0i5qpXmn6sQTXxNAd5cF7TZVe8CuRMp636pI7KAkcuNPvjAehqe5lsXvQgyfKkHkI5oeeQHDz9kok4hAkZ62lfZyChSxdDTZjioh/hWCeu0/wDmMlp1BruCeePy62Z8tZ7NpO60EDkIvHvq98HSwYuU/4j0PfSJeB3skrq4KZ0/O8vl+pzgoWCzihha5ININd+1m4x5rtS24bqVKS+EkWbWKdsoY8ve/IC2TsVFPICHhVM8o1XAOxmW9kbjEFF+J6MfPObi0r/J6xVz0q0/etaGd2qXGGyQau/uf7sO2S2s2eiIlO8zpeZX1It4I+4hL+AINCPkDTLCXZVQ3HfPHYrHQs3vpvH4DBOjGZGPKG9e+rI8bYl6fxINYyJcVL1KRXi6svH4Sraj9WTTGq7OCI0Y2RNWhT/udfPJVBBUk+MbYKtQg7FStzmZVnTeswlR63EgY3QgHkPN5c3f/219/fZyhkVi7bZ1XgsFyvsAHkHVjsl43UPc7GDRspIpmIXx7W8tkDCgmohWoPr6/uKo80St6kE2DxYJnn4n+RnDORu0GizJJ1LvLUTp4Vv6IK8NJehe0cQQK7kBdXzMP9MyrgXYVW2wznu2ks5Sc/mcpx6m3iYujf8JDeeedZ4+Pnr0OHWCYWC8CH/cpq+ls2ulPl05uoOajbWAj246vn/EpON1gnvnF5TLqwbZAFGgUV8vOW++eKJ404+HtdDIa1C3H44nmu+GwZpfC80EuV9r9+ddff31A+6hxk7loldEFq6iqGqpuD2nWZDgxmQ9Kl5GCWwwbGO/xJKwBhU31lfj+8psyVJcUmx3gYtu78RKe7NIwak/fu99N6vVG/fyM+cjzlhRWUcLiUI74sY5HxwT7M4evB6u64yJcda0yG8Wy/mNaD6wX9o//hiyFIkMC6QiiODqW/6zg6Po4W7XK/phj9RfFzUa1Km7HeXycZn0vesutYsHKO9NRNjZq5z98SRacCcM/IeZZbd0tWEHsZ9kJeJUqZ9MFVR0UUW9zfs9g3S+XLTthfN8t5JFKy1osil0Nd1l7G9ZcN3OdeMTWtHB9vH7Y1oxwOCKmNVG7TH31/mdcCeZdOJQ9bcW1QReEjFTJQFjX4/Xk6Y1hI56F7+2CSTQHAweHgMF+H8N/zx/7PITT1NLCJU3tLB6X7REbD0b4y2Pf8bNvHHE4rIQAhTh55zWSSv6hLxTyx9KVanKkFzuP6mY+2P9QN7my3tKK80GHGxJZYMsGravPEfIA308/4s5ZMhldOlaxa5QK1rcXLS7bKUGnUumbuRzv/vjYLz396ZdequB2U7bL9ZJv4u86TmeAAUF2MpelVHiQU7uRCFBApve7cb1e6gJFpJ6QV9x+L7RTaKHQ2mVEVdlgnH3EGK9KzRU1zaQZLnLkZOf7UHO+GjggodlfgeKL5498xHqUbQL3XKfTWbZjoyjP6M36/DGv79AT84cUkHjtu38mdZ8lB8AiFhulo0Enz22I6WMuZ5odnoUHkgsyfWcJEKFr6WelF5WoR3kdqvjk26+/PD8JjNqPnUF409xI2+n27Dku35Xzbsc0zcXjdEq22b31erse1yPdlhuHXMSLhmXKtVb/vmAWw+EUdJG4iNslY7LbrowVh2jGra2FCY1buAFJvswY4S7VTZfQqWVq9dQ+iprGajLeDIpaImVX+paqWZVg8nUP5QFg8ITsMs2Ltr7oFFXNNTvmMhlInpXLVdTEMxLXgaIwoSdEKnFBIcpMIgeEIcEibzlL83G6XFB4mIsFm2qa1PiYct8RBYqMgccU5PmAi5affPbzj5QiMc5STAJIzWFpE5+dEtA/4PdyZv9xGpxNOX/L1dfbLSSZskUVaKaY5mC4Go/HkGTKWKOr9w8NIxJJlerj5rw0vvsDXolo6IVQ6IVWKBi1u68lGLqqHU7UelKGaBGDcqa52cw3wxWADAbdYtHNnwZ4PCnD/D7AQBc80anOjrrmwtGrbSVYrlScYLStyGUoBc+hvCG58fy+EgE6JJgqNBYN0vGumMVcf+qYHZ6tYwKInvZ4PYjNq28JfvJCeJM3O3z9B/otijfrV/Af/UW/kpusI3GswOlZK84nWU5nbb4tF7kNOEwm60k9DBg4xZZJMMzpeN3dNCaTh59+oprn+SDKiJYbrHaf/vTbA71NHv7C5nJOQas/PM2w9d24raUujYxRIlPG6zFKNB8MNkNQnUxK4YEKGYEFYPiV19k9ivSYEmjPZkvHcZZLR48mUTtWNJpWKOk94EUNIqkh24zZynJmSIZgRma6m8sNBma/AunxJmoHLE6TnoNXffyPNwSPFPDS0PPt+1gvi8GnbkkGcbMLszModTVXbGKl03lcztrpUbo9Q4HVTXMoVel6vCmq9sA2neVjv9+Z19e77WS8fSql+DaTSSAPmquldu/R7ElcXlxcGCk73rXxasYKjSnEL8OJS+0qXnDNXHc1NuYSi+qGz75aj5sDtTRs2lb5JEDQBmTe+lUqdy4JpvcKN132iQvcaDsIFlSf1KC+0LUCSxAX+wZVrD3z0bMjPxDEttU1VNXtuDkVCRg2i51+BZ/hQa65KCXUfOj1yREAUNDvoSqTMFMCUaey6PflH+WsKp9mOgWHGAswHs3cfLUaryZb9lGjW5JzgvKl9eORzI7Qng/HD0+3a7oXdze1brfe+wWlfMhckDFGCVaIayrqG2dpxte9iA3afaq0cLhbhNMWnf2XutkMVLsbLtl26wew8AYUChMPmLD3Sizm9+OuFybXotKj9nQ2a4+8nIgKpSggIUt8V7Y9U0JIA02LUWxUceOWgwLwZBLFA3OpE1Ze3/P0/9Caa9KDJu+hdI3EX3ixoIWzAMVcEG/6SGR0zCkg8Kn82RArCxiPnc1w2Gw2V8yFFvJ9dIqZcj1vteIpOuadXHhCvGzRR/znekJn5/4BI7qd3KYua1uyqphT6ed0wWSFN63jSSwLVYCPwAIkivKL2TetTq5YiGuFctTD7ogBVeSBvQd+6hF/ewpdVNOeEWCkxWP4hVtJEED454jjOjvTp9FqdEQYsYnL/iMRVMkHsUzt6SLnpNvB4Mjre+aZIwT5WpxpyCcHUl7wBvBkvkSzWvHEvF6QT0+Xy2maPUDREPA9BbEf5nxIWqtzfpjQtxBWtcIRZqHLCsMZazTmASeNb9o9Fc/Qu2Gw/SFT6+1QzS49DteNi5VPkUSprk1EaPCGVip1VQ3yHOTMitM3F8heQbMt/eXXlVNKE6yZFxLNZqHQ0Ki9XM7SOOj9kn3a7xVdLHyGOCxe4Zh5K35ZDibTkk+yq1GSgl31e9JB+lvpYNXrUwJJbyh0fSS5IVUpNR4OFA9qDZurZlAe/A0+H3IyG2UhVkFcfC3hFps5cLD4rQ57Fwx4Y9C6BF7exVBIGtSZkh3vJCrWky39z4fdw2+///nTT2jseDJeGSmqGVtjpXAddSNcapYYsE2VmvwKlkRbc1BsFdwcoqnZatF68txJ+QeiD5kACnEL4rrT6VE2i3EIZQmTrM8b84xiXoUCDLOVTQvDU+q4+Su3P1PIX4kxHfPojNhaXsxF/dFsGWT70x4iCgNCckgPLXmazz+JEnXzTfg8eSynJsQYB/MBxQ8U/0dFSEINBauiaXiVCqU69rRapoYrEBJMfGSMerNkNB6k9QcKUOi2x0wBB6eJeqa2gjBSpa7Na0s8eUlQkMVhpjEk8Uol5AMwWPUJqIWbzbB6RlHgVE9PomBBL5/9kIKdPGF7KEtBJgZHBqdBRbk+Yvnb6Mu0utTRmrzZX+jLCmaEDXQstdCOKbFDcW4hz9TRsQ9YMx9Msf9fwziho66yrP5y+bjIdape+qJYetLNr+zfnCWc9GJIziOqTr8C+6LT6mCg0l6qwORVJ9+ijsdYUppKbUYvnNMByBOXRV/3PfnTDbVqM1wyDGLBAANbK2rNsKbasvvdUn21mhilOlq6Ep8CJHWjzm/WkaKJXJx9e7bXCnhr5MkKClgjFl8mHJZ+xAU6VeVVH3ESm+mSFrJmjlBebtDcML5chIpyS6jFF5KdDbWrmHukB+0BCmQDag4kq7LVy6m4U4VLQsccTmFR/oPCLyrLqV20Wq7sS/cCPc2cOpiDdLFo4TgpUeV5wvRA68NmfUV//H6/do3eju7eV7/QvntgIGFMf7SGdJYGKvRoi5yorG6XYn8lUdHkF9QaQOpDo9Qc0yEbdNhd/teVSmVvI5BQ7/EeB6RToCBMpvCtajlKwJoxsMnJhYdHZJHPxRxTMvPVuDifF0FjSYZgJAj6o0N6WD5JDfgY8RAFpVAM0gaeokvQsd/Hx8hKIMCJCmmz4JNAVK9YOeH6ohs2SrYKzDSbS/Vml3v/UAXPhGu8TTWHPMlasJCjk0am0ejdfPXBe6y7r29uMo01G87QvepCMGZRJXRtSEIeHyi6xExp01wRDuSLsRKTH3b7eeuzd/NWnojUHQr9UUigkCVIwIPVHKFl9ZVopTKSDKIZQdjwoXQQAl5gAB6aNPw2g04fTVT4OMcBz/g5KGV52vT+DuU5BYpkkrI8ChDEH7Si0HMWA8c6kKUor0u7tIWnIg3m3WaTdM8tZCBwU0JUCRTLMi230+qWxtt1aWMMxxMMOg/CRqdW6x1tz/uvOBLa8teT7Xa3rduWMA7syJm1PSAa1hOkifZFE4YY1scAOhluefG4hPy2pAjOWy4i65pO0MuhpywqeJ9XrlYvcsW4m1eUdlrqTJ/QPDAxw08QwaCceTYprWBk2P7RyTtVD8LAPxU5waXB/0SFR6BQpEHXxsKOhI9pjSpIFyEhaICDhE2lXDFJNskJlT5O1zYfl318+HCFq6w4Zd0hjN1CarsdN9VOxy12eTzRXbuLqjRIlHWm1hhjMSACpKTrVijl3ItPU82uOLPd00lT6trwfI7lrNdBYrJab3cP4+F8PteodiyqIZVFHdCOha4Rzmv6UF5WDOtHppqK3/uPqoSOqEawnF4s4wipyKEHc8h5WBrQbuhQxVRjR1h5efqgDhS4LUiAPQcJxChd1afBkT8m3WUBB7glZFjPnezZsv9IYSf2vcOXs1iSUI+dOY+runmd9hexa8YRhTkRjTFwqa2a8yKoqAOsI7zYTDVXkKJhkADDTcEFr4tfeyRCeCi6u4bbYI3BYD4Z8jpqHUFiC2wiLl1NQ2rmrEHRcmYKvC9sx81RWVHdNPt95UgkRMCADHCRh9IjjomlIpW1LtLGe81zpttZ6HTK/82IKPmgwBbyuCyJsnZVX8roZ3UaJD72SChJXvhykhBCmnh21lTWcv+H9AzrMpBCtiOyOnUqrraBnNSKI3U2AdMkOZeOCcWqGt9Fbqnb4VWwQEQ0O0EJ93RCBmFJV0SvcPG8KXQDEixoZcKS8k8c7mazAQqqKSeo4KwOiWCvXxiSmhXpVCjmn8c3kh8ypxfyBLCAaQYXbUZH+AqkBVZvbpj1faSco3KRqFAC0IKYSn5Q5dAXAIqldGfkhz7FeMjHBDJxDiAwa2Pm/egWa5SWP6fTRIVUUMJGFIhBWtYSL0UIkaAYlAhxwy668IENYHimbuqmwR6zViw2aLPd4cB2QiuTIQWjCYnSL8FoyCsIOBKc38EugAIwzIBsiAr8KE+CcSSbxWJgNhUxxwIFPT2ZIpDWns/Thv/SQemjgLuK/O/jUc0Js/X1JJX4PgyyoiISI5CmglzG9lCQA2bOrI74sLSNKISfS/LoLKw+KoSIs6hRBZul6NSmWbJzFWc6m+pO33FMy+wjzR3EhTPSu13DEBepCUTq5c1XD7sVnMhm7xVCTslo8SIYPOQ8tzBd8ULzQdhogsdcLboE1CA8HAMEXAsWQ6nVcnAfph/nDQxYHmQA+otO5fj4i+sXXz0SJDhxjqVBQomS0POuKhUOn0pSpKgOCBJXJ8uyXrFtPmDAVERPys5pAExGeyxQnuFEi2LI5AXpJAthoTKFi0hFOEmaojOoJqibhYFwHB4ybiHGer/iCHvqsIaldodbOQJjPqnB5JhNmVWqTe5p28keIxdNMGn0pLUBs0MxRWGhIgtnjxsl79yF7gCvWKShUIcgIf0dyZA+jrDNkyJ5IUFDonqqiEl+6/D15BFIEBXegPQWcAEFRNtasD1s3Aa6Cc9Lm0Guz9gAizA4kBFJjtvyVqGQr8rzQgVLyi1u2hWU0D4CFEDg+z/wH7HAQgpUUoYGtNkp8nlLRp1WZx+fC7MiJTpwEBV2k1odLH755aveZIUiqjTAcJ0CxJpAwHTS3+Fnaaf/00Ze7CtTgUN6TX09yJ6moxASWb4nkCZICBTS3ETL+zAbhZV0K+RrjSqirz6CwXsEFEchXyw9ggzIXOl3kb/FueDQHAM+WQ3jBDx7PyEz09g3hwKbBlMFKkiTcGYJKGwrGoKMcS8xvmVZUrLskSAW/YIF+VAxCb3wpkRNGWef9iLDNu63klC3h+uHr776CqMlcQ1r1nd0iaV4F4813McCJYnsf87cpyZMAxakBU/aR81GvLWXnsSjEC/KwpIwBLncHg3cE10lMjVN0mIG/gZxlTo5na5HaQAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "temperature", + "weather", + "environment", + "ground" + ] +} \ No newline at end of file From 18fcc48a6c49ba4eda1341eb7d150b025a70cbc4 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 24 Oct 2023 13:14:28 +0300 Subject: [PATCH 103/117] UI: Outdoor Environment: Soil moisture widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../horizontal_soil_moisture_card.json | 29 +++++++++++++++++ ...al_soil_moisture_card_with_background.json | 29 +++++++++++++++++ .../simple_soil_moisture_chart_card.json | 32 +++++++++++++++++++ ...l_moisture_chart_card_with_background.json | 32 +++++++++++++++++++ .../widget_types/soil_moisture_card.json | 29 +++++++++++++++++ .../soil_moisture_card_with_background.json | 29 +++++++++++++++++ .../soil_moisture_chart_card.json | 32 +++++++++++++++++++ ...l_moisture_chart_card_with_background.json | 32 +++++++++++++++++++ .../soil_moisture_progress_bar.json | 30 +++++++++++++++++ ...moisture_progress_bar_with_background.json | 30 +++++++++++++++++ 11 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/soil_moisture_card.json create mode 100644 application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index c3d69318d7..2c3d0b8919 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -93,6 +93,16 @@ "ground_temperature_chart_card", "ground_temperature_chart_card_with_background", "simple_ground_temperature_chart_card", - "simple_ground_temperature_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card.json new file mode 100644 index 0000000000..1fb4e01f9e --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json new file mode 100644 index 0000000000..3a40804efe --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_soil_moisture_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_soil_moisture_card_with_background", + "name": "Horizontal soil moisture card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAADAFBMVEUAAABtjUdjVVCEbGVpak1GQT2ftn+ZuzmTi25PT0t1cltqXVJoWFSLoWKUqG1VS0ng29rf2tnk39zY1tTW1NPX1NTd2dja1tXi3dvj3tvb19YiSsHc2Nfg3dnh4NjZ19Tm4N3j49rn4t9FQD7m4d7m6tva2dTl5trl4dx5ZV7k4djk6Nfp4+Di3trt88/m5Njh5NdrWVVmVlJxXlpNRUJdTk1ZTUrc2tZuXFdAPDnt9Mx2YV1SSEY5NjTn5t/m7tne4tXe3Nje3tfd4NPg68+AaWN9Z2GFbWbd3NRJQ0Dj7NPk5tPb29Pr8drs8tXT0tJzYlpiVFDr5eLo7d3p6Nzs7Nvk4NqHcGjq7+Ln5NyOdW2LcWpVSknq6ODs8eTj4dvh4dOCbWXl49zo7NdtYFZnXlHh4Nq0sK3p59nn59bk7NGilI2Bk83u8ubn79SZf3VPSkJkg0DKx8KTd258bF1WZUdgfT7p8NDW0s6Ue3HAw9Pp7NJjhk9abkmOoWhvgFpsj0SfhnlhZE1bWkyFh3uGkGKJmV5ie0zj7dasqaSJf1p3cFZRXUJpgcotU8KCiF1veU5UUkSMkoByalyBdlpxalJdVE1adke10xG/vLfA0Juan46Xq4J5hFFqaE5sgkiBkVl+llJ1isyuwJRpaGR8nV6RqliKuDRRbsc6XMS6trOalpSjjYGBfnyRpnVncVOVvTWDrzTHydSyuNPQzcc5W8OTiIN6dV9ykVqGnlZ6jFR2jUyXuUqkxTShoorMzdaNnM60soyno4uZnmyfs2uYrmWHpmR6gWKflFmgq9JFZcXQ2ra4uamguI2opXWJm3R5b22Rl2FdW1h2lUxUbEGApzPDx6inpp6hn5qqrpK6nY6mq4eBjW11c22hu1uSiVqWo8/c4sm0uKK6wZ+zx3GowG+0qFmqn1k6XcSdm5fJwIq60TixzTTi5siNfHuGeXeBd3OXinCIf2fJ313A3CkjJCBed8myw0yKnEbe5cHEybTT3qiiq0TA0nY6XMXR5Wi5qQ/VAAAAEHRSTlMAICAgICAgICD+RN+/37+/EutUvwAAFWhJREFUeNrswYEAAAAAgKD9qRepAgAAAAAAAACY/flnbRsI4zheua0t3PaFdLRMg6F9Ee7eUdorKJqEU2JiQz34SiIpGOsfxhmdVbLIlhgtIoMzx0sUD8mYIZAlv+eOgJNAxkz3AcuP5efgvpIkSZIkSZIkSW/pA6nQp4Kn8l5VVUURL+HjhgptbOJ7YqpxKqYXXr6rVWtVwmeiCGpVUF6hYmkTrssz6p+MIDAeBYN/qzzPVz5zHCcwuq679evHb+G/23W7OwHsAAbGWAj4Ogr82wM4Pj23zL9PmaZFTC7s98Mwi8uLi7IYjdI4vrs7JGmKOU7TBTedJjhneZ6Hc/YzyXQ2LooJKYrxbNZZLL7U0WGArtMD2n+oY73OV/sO6IamaT+/bQkuX3UgIM6AMd+fg+9vbzMRcumHWZYtl8sso4glUIkIscw+MDYvy3IyGd2fpHDIoYNMhSSxbcs7J56HI55lQx88/LaTszFSyFiEdDr1d58bdP92u6nrzfb3rwhBx9U6pxD802o1Ww2q0TSjQXt7A85xELLvD6NerxdFu7vD4TWV3ByfzKMoinGteRaKkCwMqYTnPLBZ5yFNxnEcx/fv/gmbudwen83dU1taUYtCU8uDXKc2W1G6GV6ZwVpkC40O7bTLILSCqBGFWaBpF3SoYWV0SBRit90QRVFREfX5/n7P0yp6/6Nuz+bzer6/59iw4cSJEzu6nz071NTU+wyfJcTly5cPn6k7gM6e5mGnibEVLV9eXV29h3NQdfWd6uoNq+/fPL4PMUdNXV1NzRDF+PEAxAXi4rCTEwmCgbx48eLK5i0NDTMXjQduIpAIW6FAYDcLlMDuzXDUUF1dXbVfpJHU3b59m3SYE2aDo3yOJIAgtgq33H32rAmOprrauprL3d2XKXxg+/btZzHa06tXr96wp/rOcii4BFVLLed/nVjdc/+mXG1tLfZCgd3EHgYyMuImIkDgQC8f7Q4EAnET8V5mnFRmZiAOe//o0Wa0ewtBagly/PiNGze6HnLIlxuAoO3b99O6w1E+e24/h7DTacuWrh/M8b2rtramprv7eTcsNXWYKeqBAp3ALgOycycg69ZxCVdw2lqS8LAYILldo8jIyEQB79LFvM5Lb1iXOhf/L7xPDQwMdJ4/3zkw0I9TbnBw8O7dwTc/P1I/mtgG/Z2d2OD8AEUrgMJPvNT/vam3t/frk7v9/f34bBPCd/TjA/SJvaxd1Ppwu+TCf/MNz9/vQdthUczP93q9GfnXRVGMGIoc8YmlVKJbEy1G/E6MphyO+JyyVavKy3NycpKS4g3IZrNZUhagOdNHTkAjp8/Jy7PZDMU6MV3UsVJTUyezUlOTbJbcuQuXoAW+AnwYfyKLxWYw6ERWGnI6nVarPjJyGIqKikR6XiQaxmKvWa1OZ8kp1NPzQbFyXn5WlrfE4WCSCPFPiIQggobldifCIUEMgDBKyj+QXEgMBWzHZIjsMNgkx9wFBcXF+KzFQhAbbS8zwpAoBAglO+g1OCSdFltuamggCyDz87Pm6XTx8fgmHHkxnks8bne0HAgqZFfZ7YCsWFFePiUnJ8Fg8HGJLwWUMGRabi6NRPe7dEiYIzyQhQt8xVByCQbiMxQ7xLBEDQntNxRy3CHjEL02XKt1xtxqoBRLMZL8Y/GUzkFryOFORB6PXaXRwCAzYmNjzWazx0aQKeVTpiYk2BA5Cgw+IyRz5oyEBBBILEwShqDfDgaZm1KclgZJEiRsYRXTYaSIMlSS6CUDMajIcFwyXK/Vat8vmtkwcyYgmAggiYnx8Q5aTA6SeAiiAgVxCDGMRk9pESAryqcCYrHleXwFWCEFdrNxRMpfI+F7JznS5Xkk2bhjIRaWqFY709N1SaBgQzCGsiKIQ7+rY4azOAVZZQp/NYr/Csi7UeNxD1EsXTY/i0EgYadFNM4EO4oliUp2YCJw/AmxWPLyUjwEcagAGfEHBJIiSwJmAgUlnyEJlrmA0AnicwxVY31n401mTXOqEUGwuGk2kGi1vyVgUHqK+6IQRwFCd2zFMgzEuwYQhJEgQNzkkCHoX0jlxo0bGQQjcTgcGlWs8U8ImjQpISEpKTU9PTs72+UiCDloIAvZCZKGgWitTpfLiQ1A0qIYovBrC0liYmQKHC58CyTD4ZAhiE3n/ehZs2aNVcwHJKMjDCGJyo7gkCWIScyAlMqQSRxi1zAI3sJJwiHTZUjqZPbvrQTBwmIORCcIjr/WqmdJhxrHNiZGTRBJogaEU8iBSIL4mMKn/C0wxo5VzJuf5c3s0OFcD0MuXtOSQZZUdbT4GeVeScnrslW9659Ublz/jU0kpDfjolBVpbKbPXnySMIQ+t+RkZDwgbB5wFGQFoO0w/kVlu8TX/A0ElEeiVrNNkOu7MLCQlBgJjY5wt0ai8bJEEgQIDgiFYLw6oImLFF2lJiiNX6NqrGxuaVs1dNP/ZXXP+21uE7mpbw2mv32qr4Od5Vdn3fy7dsJvV8lSBENxAUGbl5WlwsQDAQOuoOkaVm0P8NwW2BFEYQmIq8tSFoft8UA42y7WHG1ENEqdc24WBH8GzIODkDm5YchGvqKCgEdJYkMafH7o5Uhpb+lubklsexpn7IypNx70tT3wJNsDD1QNiYrG5X2UIky+XzP2p29tLYmWSxsIGAQxJqNgeRKA/GJWr7UCSI54GFLi58jGgZpPSIIRzCWGfhJh5YPpbW9/ZrQ9jdknDSRjMwOkUncdOeAg7oW9VtS1Zzc0qiMbn4gQULKJ8r1ex/cs5lOJhtNHY1VoWa/0g3I9befzjfsYhdgOJLSMRAOcQHCbyF0gjj17E4HjHSDY/PQ0jzYQDTYDTiOCkceB3EhOyhcawvWC0dyCtHkim0zXO31kcH2tr8gYxW4ZnmzOtjTBF1/NEFB6mC0LAmpVMklJk1HiwRR3jPtDQHiM+mTjSUlpkZATO4+QJ58GhzsBaSIbiO6dKeV77HVma6z5eZKZ4jOqce+80sOIo7EAAJxyNB6oQIvoM+v2hLLsgUhh0kqXk3OPlIfdbCdIeh+gqVFkAxvVlb+MVGEgiCqo4JcmyxpMSlDqgd9Jra0PKXXlU8+9Yb2+pXKFnOyOdSn9Deb/Ml9yYCsWr9z7V2aiIU9PKmddNHBk12azmCR7oW5tiRacfIQYrQUW1Qi/juPllarcHRoayvJNO74xLIZBCHKRaG1tf1gUAjKRwKXX0oRl+nNnw8IK1pzVRDqL24Ttn3GaYIh83uhKooWGF2AR4zIKy2qrJxKd3ZDlR0XZHMkHl6q6G2V3VO66qv8AIwbjIgrKFKr0zAQCyZCA5lWlFM4mSRw4C2KXXWjHXhAoGKZJOKxcOQa9iFIl37tjBmYT1kOZcWr7cH2eoxjOA83xPGjxigyM7IAiZAhGEhsbP22YAS2b+OSWKRiINzAZy/IKyoqL2cQO94wUmb+FGC3lxaN5NffOQtSzCoHHqcpUSw2wJE7bdrChdOmVU6FxMqWE26ACBQ4CuxGY8oIhG8jSAXO9IrPwjYtvvcqrfSyMi4pDAazL7YHI+GQIOPHjBkz8RcXZvObNBzGcf4EmCKUbowhCioT0eky95bN1zndImHEJhomTSxbGmJ6scF/wB7onSvxMOptsDNcMTssHgYeTNhO22GLJw8ejN/n+ZUQ/SZb+kLb36fPez2PnlCv5XVFEaJ3vpY5ddVck/wHUhQgE/kEV3s8W5BgT+FSwiCZZCwhSe4UM0EGWXxBWiuVtskmV0PTHNsCZCwfiy5AQ5KKXMHZHbkNkLJeO5H7WyTyruVdu9/Q9TJRwC3P78xCnsdPqLIzBe7bkCGbOKCKN+iSiArPJMni1iqDxPMApAPi4byzIEDgW6/eZKLgZ+Xy4FhcXCytMYggebq8xP0uOAASHAEHpODFRJkEvoSzulzDTRAkLdueTpGuA6RSKdtwvAZzjJ7PzsIkiJFHbwWID9plDp/+q22TRTipD+JPoCip1KoIEYDECCQDASVKm9xwAeQFQJIgiZESaNXB8alUAohKINuYyyjbB8FB8k6ORIlEKVCLzSRtenyQQDodIjmRG6Aghfvybs0OBPZqBDIKkDvpdNpz7Rq+O5yzkSk2sf6OT5cv+SrYcNO6nzgElIR73lpdBchzM0cWgrMJJS9dwn8B4vpWFAKhogiOZ9slVb2iqiVI3cIMmspNeumZDBLD7wpo8BDxDNKQ6/5g8KvcidhyQ5ps2XIrdz2Xux4O++t6qLIXCOxUAkxyfieNZssDu8zOnsO6zBHSkSlqFCd1uY63xYHYg5+bXq/pbVbh8OHNzaOj1QeGI12ImEZUwvLNUzMTMYxMBkHy8ePN+2cCxNVCVnDAIdUrkAoOdWNjI1tMSAOQoOhT36EAwIqub9X1HfnPSKSNFekncgUewQN5Z2801LbLZbsPEGrjb999PTflQQpOp3+KTIik3tqTB+oTGHWkPZ/PcbSqpmk9r9cas6pW96hnOU5VcyzTsSKZTNX0WZaR8VWtVPcYX1SO1wjEdTuX4+FDAokrIAEHgSgJiTI0Jy2J3JenXSIhEH9NRuJq4bheh7/r/jESt5KhQGuHzonEdXBvauXyjOfuS3wTPQCYaDRHdwckbbqCw+k0FHK0U1PTDA0gS1bV2P+9b2iO1msajqZJyaRjNg3DSI5q3eb+2eH3m8dnG1kRNfA2AvnEIJjGFCUev3HDBWHXggSIRNmaNyMR9mX/rh97+Xw+12pdxAAMgZsWhYahXEZN5ab5YO7yzMw8QO7em/uMY4IFPVofJcSulPkaUuCL5nS1U8eyTLKI1qtaPbNnaRZAuk3NwXOdpgSLRJvW6Xh3//DwGBbJKrFIjOP/isoGgZDqCoVCPL5VzKJkKgWAEAkikTiC4BAkkthhxMl8foJm4WWMMINRa9hp8jwytzIzP++5h6/tK5/X1y+CBBhMDTE8iewyLqqweCXTz6vGJhWCcRQ0NwWABfmXFjNZ3f99E9GuFhM4SCjCIMSxTTmb1hUvZrNvFhYwyQAE4nu4IMMunkv+EorpRCp1K7z8dFpQuB3zEOXHe3jWvGeOHOzbOki40no5ewkRhs8d1YhImHZ83DQx8aHL8F8gvKE7jOD5Y0+PPgDkg7qVE3OlwiDPXJCJd/w1Kx4nkAJfgcshrJ31Lwe0FL6VoqkZIAJiyAGBAyBT8C3PFOF8Y4vwsvnWgoU52My0iz+2zl827GAlgTAI4LivYOtmLLYfapgo4R4MCwp08eDmQjdPQWEQSBDSpWBv9QQW9CTS8/WfmV0XwrlYh93198186zfDKSmdkRA99zlttZFYbQDprbICoifZpW71qQQv7RCIDfWI1olew0X2TCUpw1ZTCikYxVGfiMJZx5XJuC0dQEhJu3JJfQnEl4SIxG5qFoXozrMVoqmTm7h0Zq1G3qFaH2FxNlBIBkQmIuGpQG4MwtehVFSyVEl3wZuKd9VE69geb1Fsa5fG4x0Exb/wBLJRyLXET80Pilqq6v6TD8LWGklV1wcHRfjudQxCiETqLj/IckLsZW8K6cEH0sexq6wonsTkJAxN0uKnY7GQcRDzOBYkH6OUGaFVobmcKyTueHsh7nuzGSYJGSHa20A2Q4ObCaW43cQkUIBoi00+CHrXUeD5/I1EIRgJKbPJw9wgA9n6YaSQaQlBwhc/frpfLvklJ5pNGRulTqdURjGJQVw6jnJI3S+Lio8c8vrxmUPayfrq9/CIVW9wHXVimeDQSkeRUwSiFQqDe7gOzzCItkf6n9XZaDbPgLysBjJz7fUfrbIMMmaCFRN4kBDdARs/sjGFLUqZE4N4MrdQyKju70vJF5D1cFhJkuH67vzieXsAhGUJGgVEDgSaEyRkSyA1g/hMj1meAtIwiG0Z98eWGYO2DURhOHMpdOraRZOm9HSSuCAtGXSqNmkSnLQo2LMM5w4aUqMIl9IUEmMwdEjJUrQYYk/u4Expk63QQhYP6ZSpHdosydCh/2vSQqG/wbKXp/vee5Ke7v8LQmPrOoG8+APymEA2wUHf2Gnd2lpfvyN5ApA7kn9AHlJvPYYebf4X5PX3UTMa5b6/1vPdiWNx0+PMYlwGcRxkKqO9lX5/cdWXHjc5D1WYBgJiTp47luA4+rZt+4mZZVqHUhbcxm0DQoWvv347Pn6vy7qul9Dlct7O2nZ+fnLq+nav1zSN6/cm3fHiJXlfwyHcz8PDg/3tp6MoyhPmFWFQFNKMBcPQMWlgTw3OBkfjjkUnhfwc8n38htMMEUi+lk/gdNLT3TAil8kiCFVZVlqFMBX75GZxLsxU66pKQ8gUzAQUc3zb993E1GWVFRwZELkBDCIxfhLISVbV04+z5fLism1ns3Y+n394i3s9dXKOpzA84l0y8HYXi8HZECbk84PtV72eawkCCdIikCZnAOkSyODoTaebuFh8FEUAcSEnt6mdIHC4GFESl+gMpBIZFlKVNRYXmMJiTMAjZcxEgXSF/E7raSXNrCxVnLiOxYQIqjoTSW7bLkQ1QRTjBiCzoamnq2sCuWh/Y5zfPHsXbUCG7SYWPh0C6Y87nfHi6gdcyE/7O90OF54MQREUaVoQidUFyRFs/W4ywQwSId8oiUOjLs5rQPhPIPdRPxvRSUhXLgBShfSuQgv1kJY40BoVUrpcrVbTLJa6LkNmoQ1lHBcqk8yJNgyXxZaLwEA6IJA9r1qtjgkEbdWC43x5OkBBCATNyQTr7MId7tPbXYx8wE7dWxSlkjLTValSUmBywVh3B2qaz+gzkNwu3GGCcyK5DWj7D9bucWHZ6G5CwcHI0ToIkOC68bgQHGYvSqBpGy+tAaJiZlbwVFJd18qzWKAyj64YlqpAOIaRW94XArkKFDqr/cWuGes0CEVh2LZoq6/hxFgoTZPrCoStTCTgQuLeAeOuPkIT3qCbiXF39BW6dOg74NzB7xebxj7D+QgE/gs357/n3ITk3s/9YYsPGdlv3iktmKlvt1j6rBsn9O/8lOWmrvt+rJsyrvrso1Rp4paLIG9ff8nbaE7lZBlxU4EhTYycQs8i/0ZbOKZ3PAFedM3uF4kLAtIR4tv5MkJOCp+BW2mSUH5Vs3rb7Z7jaSAtCYMgrIs0jGa3uV92MtJVdXmQkacPKmsLX5sX1bjCyEPmnmNVPC1URnHaxFG+Xj+4moSUlXIiK7Q5GWllBRtzZgU+lBHCI1kRP74K+RofwMaZ/wxHYig83U10IKB7R01bWyYjTzcjZFSPF/gWYQy0eWNxySkGV4PjFh11QfNf3z2oknukQx/FiVOcZ8KFYRiGYRiGYRiGYfy0B4cEAAAAAIL+v/aFCQAAAAAAAACAUc+Q8Te2Arg7AAAAAElFTkSuQmCC", + "description": "Displays a latest soil moisture telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"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\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json new file mode 100644 index 0000000000..b28d7eb204 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_soil_moisture_chart_card", + "name": "Simple soil moisture chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical soil moisture values as a simplified chart. Optionally may display the corresponding latest soil moisture value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'soilMoisture', label: 'Soil Moisture', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'soilMoisture', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "soil", + "moisture" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json new file mode 100644 index 0000000000..f520d56552 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_soil_moisture_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_soil_moisture_chart_card_with_background", + "name": "Simple soil moisture chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEUAAABegj9WUkY2MjCBd2OljoJuZVV6Z19GQkBAQDxAQD1lVFNjb0Rhd0Ph3Nrd2Nff2tnY1tTX1NPa1tXj3dve2tjk39zb19bV09LT0tHR0M/Pzs7m4N3j69bb2dXe59Tb5dLg6dXn4d8dHRzZ2dTg3tjp4+Dm69rj39rNzMzY39Li4djh4dTa4tLZ4tAqKSfX2dLi5NTf4Nje6NDi7NDl7tYiSsFfhT7Y3NPj5NlCPDo1MjDW3882NjPl59vd3dbn5d7e29g8NzXc3NPe5NFeT0s/Ojfs8tJlVVNjhkHi6NPs881qWlbh7NPR181GPzwuLStJQT59Z2Ll7dvg59jl4dri69l4ZF9aTk1MREDo7t/R1M7r5eLe4dRTSUrl7NNfUVBZTEk5NTLj59je5NVSSETU28/m5tWGb2defz5uXFfo7NXn5Nro6Nh1YVzl49eCa2ViU05QRkJagz3k6uDh591niEWYmZHf49ro7tBQT0syMC7p6N7b3Nfb4NXf3tNWSka+vLpjiz/s8ORZfD9Wfzjo79rr79jk49yOdnCJcWxwlExoWFJrmkLn7OKVfHJxYVhrjkZ+fnlWdj7r8OBxXVt0l1JNSEckJSRrh0vDwL9jfUZGQ0FaeTl1mkplk0BoZ2NRcD1GXzuih37r69rVz8zHxsCwsKlwiVE6XMR+g19XVkvLx8TNzsCagHh0cm+AbF5ReDDQyseJomNkZGGCoV5MZjx2g1Zab0LHyNaPoW1vb1xkY1NBQD58mltbWVR7oE9ypUKmpZ51j1VObMdWUEVdWkSMjIapjoNKWD5IcCuIl2W1utS4t7VJRkRFUT2YmHN9jlxTZEEuU8OJtlKulIyFdV9jXkt/rkR9aWiFimNiaEdPVERof8qMq2eKgFiUkVZxlT7u6enS0Nm3nZSlnX6Bk82KjWvBrKl6eWKapdF0icuawGXY3MG0uaOQfH2XrXqBqVHh0M1ygy2mr9GNnM+Vos7s29ddd8nI0bLO1VWiszKwrWFASyzbA+MyAAAADnRSTlMAIB8gHyBAz79A37+/v53DWNAAACU/SURBVHja7NQ9a9tAGMBx9ZW2tJ/nPsN9g0zeNRs0eBTyJDoIQYqRK+NOJp1MsB0KMQmeHIFrhQ4ldMlQMvcb9P88d65a06FLt/uTmOCX3P3ukRyFQqFQKBQKhUKhUCgUCoVCoVAoFAr9e0+lZ76nf+nRcX88/fiPHv2P/BpPnvBw1BN6qoznr6vV2d3Dfv9d2j883J257uhsJc1mI6piydpkNNu0bbvZzEZJVV1c3N7eLrcfpOVyOZ2WWd+kk8nkrTSZpOkkNf1+RlOaz+fD4bBvjInj9644NtYY3qcfSHn3kPr9vrGWF1gzK6e3H7afXdtv3z5Kg8Hg3bvdbjweX16+ehlFjy6qatV2kD2QLoXASJLEupXjvklGG+JZIHE5ZfsgjiBv6fpaJCQSdlSWJRIPsfYAyWLiM57eQURngTjJdgvlGIIECL2M3lTVaNa2zV4lPDZ3SNp2tYJxmEfC0fD/58QSNpnRqKIsY29AfAcI8xAHEsrzIjWWk8ikoTo6iErYtUJqIEiGkkCMjsTEOvilo+BwAekkL6Kq0kulQaI1TdNKq5lHiCOxekxzJzFJwjTUUZYdRCV+IDB87K7Oi6QoCpmpbFm2aAUW0++QXxLWUi5Zg8RWKmEodICcDAa9d5JIxpcRF02Rn64XzSftvGnW7UaabTYYSOfB+jhubm6QsI+kg4iEUfwGYUvi+CpdX9dXV3UusZJe9LLpNOkgSDL0VkeC5AAxmpUSL1EIDZyk1+s5CUVyVnl9tTg/R3G+WCzW61N1kHck6pirQyXuQKsqZgdOIsE5cnzh98cV1ZQXWsrdnBZSJynLLOOOL4qakOj48ToFwfYSLi6B0MnJSY8U4yH3HBoQWqxhSG4YLEb+uhKHl3CkVk43JsVMfTCM7RzSD3KW05zg6NHxh954SLiVVWITIH4kZMg7jFzKXsJdstsxBiidhKFEtri/r71Ex/FrPUo1HH4eXqLfOrIMP8TLmcbq+i3aOTQk0qmUK8JNSCBIYi8BkteAgRgWSH0cGa+oxEHG491OLL0ubvnI/uTD7n7aKuM4gPcvEBgUUKHATrt2FmypEGn09CWQiLAtBigsYFO0DSCFwcVMoQGWqRn4kkmqi4l6URNsjQ5LtBdGQExN7IVZYrzYLjRTrxYSs+jl7vz+fs9zztPi4nfQ9fX0+Zzf83Z47U+W/INedfcuWzj8rTJAYX7CmafwqUM+e/sHvEW9DaEH33//zz/c/L9U7hrBueJ8TffQhelDZj/+4bvv+EX+bhzMCBrDz2Ii3T84OPgCOeJQQcyaWHAKSYIzdvdBW1t7e3sX5UmVZykzMxfMzMzQM3il3cxTlTlP6RW5RhntHW/tqA49bhsYaMcPJZHoSlDaxpA2FbxE/42JrPg2+rze5kdlmptvHaEuBuR5VI8lXz9pOioU0lENmXkI5PzQQx0MGZUQ5WhtBaSNFQPtbSBIBwevqEjI+Kuvvrqy4ltXEkCazxYJwpWxPM0SdK4HiQQ7wHiiGqIc1RCT0S6aXyERDPqBQ0GUQ0AobRzDMT4+PtYhU+kYF5KNdbu3uZkZnFtgIAR542nkNYzAZwHpQp7gSEa1Y2qqGsKI9iepIj09sZ6eaghnlIJ2mw1jiJKI54z2xsdllIU+QY7Ll00JKMgpujkLxfT0NCSW9155BRIMXhhMBjVUORBSINWSLkDgINJTPbFYDBAlkQ6SjHNB2mQUZMiAcZjhdBJ8HJ9oPd9x3ngJj0cvI1Jih6XOW8e5OH00TZKLlk/eIAimWqEwIU9U96uTEH4DDyYDsrraUy1p7UVz0AblUBCWDCF4IB8JxiTCFkgQ0zEKCVMw4tcRu4ycwKYBQUkoH0lDn5IoBxhGGCIlIlSdgad6VldREvQ0llC4fUY3aVNBKeiV87itDpoLhqT0VkoYcl1KaMybORAZnAaEFiP8wiBTWRjZrZRjChAhwRsEgyQEWQUE1SFKh9GIakU7/rWhCkBSep1IrwlxEuR9lpyAILIkPFI4Ps7+/j5LjiyffCPDBu9JSaXjcUEBhCXiHYytgCCQcA9SRUi0cwYQJRHTsxN9MMYqhkgJ9S3JUKNESjiG5/PPj2GBxvLLLybEiygHpc87M+NV9ah0mO8TkIGenuFhSAZYwlXhEohg/OFWYiAhCDMYAkXsZNfCwKIz8ZQxrHj+FY7LMiHS3KMrWiz5+4D88ivHTg67va+vf4NCDLY1C8Bj0uE1whJ+lwnpURAVMETkA6pJh3S8f23U2RuTDiXhiYsdWNnVYiIrwZLr1/GD/3HlgQso7F4sP/74o4SI9PcHo5SNfuHg9QeZmhKLkOFQpaM7NNqHSTIw8CTa/BAGnpZBTTqEYxIFIQAcAoLOZTrMckpMQlHgMPI3X0PhQhCQO7/+evDrnTt2m91us/UHg52U6FR/P7nqvKeaVU6doqp57Sjch2fRfhRPYLq4IlySrhMQVlBMSAJz7ijK8f7715yAyHTQBAwKM8bGyFFZyQQFgwKaKggkdPXxk+UOglF/546NE3R0upeWljpzeiHYbyNJ3alTsJSKHxSv1tXZOR9+kO/Ti/39/Rv5YmoDKRfzQ6uAYJQUigMiCoI8oRwb0cRYq5Mdk04F6YiPIeOcMTjajXXN/JzISmKFaqIg2FMj31rIMb89f+4cMazhsAOO2dldXdOKQabV1yFlrVh+5pmzNlGzxwsf9gMSDEZTmudCNOrTtVRMQGKpcneCMjCQzop9rbGdlq2BI+4kBqYn0xGPk0MlscEKNfGg9OxgywoVRVUEjrvfWt45d25+m1JTU2O1wuFeml2EA8lYrTZbU1NTfX390WF9/dlnSrbHy5lUMDiVygX1YjDo8wGSWvGXPB5A7t+792B49f797u58JpNLlA7T+UTqVuJC6kJXKp/JddGzcEQT7Hj9dRTEDEO6E3K7nkhQl33oNIpsbPiYwvmbBjtdplvm5+GYGJmYqLEyxLW0sLiY1Th5q7VGJKOVH8fL1kO9qKcdOS11RS86fAQppOPxbFZLJVPawYHnwWo2HceTWU+u7NEzCS2TyGn5qKYd5kva0ZE+FY2uxAOTk3C8Pjm5VgXxy4WOGBvMkOk7mXWmcOCgAHLp0valiYm9vRErUlvLkPuaXvLoBe0wXGsVqcl4tGIuXNJyjryWB6RTzwLiTml5zbuLm9SOvj88/NvB6n56Mfux35+52pnORqMGJNPVdVjs2vCUowl/wDkJBgqyFggEJCQQ97vdPhk41qWjucoibfa+9XUfKBQsIwgklhHO3t5eLRJ2MKSgHXnTN1OadqvWzKcp3ZPLaG63W0vtMgR3AdlNZ1L6GiBaanh4/+Xh/bRzV/ekU25fOuvzaZlOhqS6ujSPrnuycKyhHsh1cgSkI+A3IUHfRnB9XexwMc/U1XHbRehuHT9ch4Xy+fEx/3H3nuWtueXlZThu14bD4VpAIguLR5qm78KhlR5BavFbSD3yyKdauax9ujSjlQDpZogfkLL+cYoh5eHhg98A2dn15gta3i0gPgmJeoq5XO6CPxBQjkoIjuYQCcKxbpPzJe/W2cHBQ/mEbZ2D3cnxMWEsb75Jktu3b+MQ1GZHZGmhQI7CVQwSGDhpPX+zoJWaPZndgmdXQPwIIF6P9lUIkPTLD+57fgZkM53GO0rudDrn07O5DEOi0aJ+K5e5qhyhrS2/X0pQENOB8xlcx2wJiJco3HLpqFMBhbK9vS8slnfffGtuDo7fCYK4UJK8ppe1QknTGwSjoaE569E85cZISdc8pdiuXhpKFwhS0m9uZbOhkF5a2z3QXjgeHj4+2Nz9WPMc+d1l7dBX9mhZPR/VS9HohaKmpXepY0kHaiAkAe5Z/P1hmRq0sa46kgGaoauvt9sPIJnAvxHLlySB43eXyy0kkQhKwsk3NDRAgTQ2NrZQMKMlceERwyVRPI4GbHFCodDa2s7mc8PIc89tbu6Ic4z40DyfL8pJJMbkhAVIaMtFs57fHxcMN/UHCllqw9YaG2b9KgdDVCRlkFePS9vbgKAicPyBr3W50GwXSTI6Tt/VRhCqHCGGQNLT2kotCEHhcjWyBBBDck1K4ECChqM7HnAqB/oQFiIURTDCCEMoJKH1y7Tg3CsIP4uiUAaxDlLmqWstA/LHH0tLgDQAAgmnkVIFOQ1IkiHY5jkJskAQvEiQHQXBZpAlPp8jiBgFgWNSDBDhQHwUYMNWKy3IEoLi4CEkFHbYELtg8XPG6BGOwcFBCw2RZQNSKWlpURCSSMiiCXECEtqKuAyJ6luQjGKN82MupWBPBgg6FhxygMBhtSHYayM8uGsQQKokkiIctPVjBN/IkTI4+M4gMj1teYsgewxZkhCkUTqURI6RBYbg4o4ga4C0NDKkRUFY4iRIFE2kPTRLEuhYwnE91EgODGg7hc810tTEEppbTAkCDBAc+UbuWTIXp0UuUkWWR/ZQEgmhoGUqqiYSkowRxCkgIQHmV9QgEZBENNhHcz9drMmCvI6wA408MZorISwR+6OmmiY4rlCYguBzCiLzkoTs/f676FrmNNWgIIoSwWoJR0xC4DgNHUO2FhZ3qiFj0SDKQSuxnSBx56goyOUtOMBgh9Ei6vonIFKCJ4NXruASiSlsqYCA8JKEYLCPTKAkS26GqDyMEsEWP0kOGuwMMSQgoiQKIgvi5XUYV51cEO5YW64wnVSzHv91SAgonLADDopRFruCvISwRFRkAiVxS8j/UGRJkgyJMwQOIYlQrxMlAQQF8WOk4ysR7IyCPiwhZkHkYoeanOxYtPoqiIzD4e6enZ3tNil01P9AMNSRvdu34UBE6/lICoKIB8YgYUh8a+s0whJBhMSEBPyYekWLcd3pWwlcBoT2vHgBLZEQGcmQCgXBnglxudEPSEKUTkhs9WaPvMiZvjhtgWJujtZEBzvQWglREpWW0wISi8Hh32ppOSFJGn1rh7aBjjCtz7YmGwriD4xO4mqKLm/9UQFB82UMRnO+kM0WSs0KgtAKDQhLmAKIXEdO1ddjwhrkWCZGludoCt6rbDk71GPlOEMrCUNaBYSjIJAIyBrWbuw2aLiijztWArSGUDB6uq+wBINChhkNzbjm0XS6Ns3eFBDRBhwZEJOCknCPhQIBgdb1czcs5OCJiz+lIFJS5QDkzBogsiIRhrDEWGQqIY0ucVrJgYKMCshmsnWIJHY7lYFCt+g/N3Utna/DwfJZTb9qVETOlbOzi4bEKEm9hIBx48aNCQsc6FoYKOqD5HioBO1WED8qQogzkgJViGZgCVkLnZaTBHajuCocxb5lk5LEjnMAI9aGDQnFajj0POYOngdv6h5IaIAYkz4kHCx2gGACNvIOMS5dAmRkjoY7bhgiJ3E+iogpwR1qKx2zFQEEbYeDIwrDqztDIDlzxtgcRLYCKAhLGAIJOoi4bGAIvqtR178KIXCwRP9UncgI+pYZd2dn0KogqAccKAmNkeUR+q0VYYQIMMZAUfuUyMLS7BCCnmU4XhQW/PIWWEJeJF0L1QoO/N0Nc3aSIL1CwsuWCWlIaSli4JAsyWsZE4K4DApfRwaxNTYg8+zAttEyMTEyMoEAwsc8EWkxqxPBFNJNED8gQvIiwhbc24GEwhCuE+aHEDsIkryWdCYx6yUXFxcXFiKQ4DsZoqdbcEnQYibroZI0GBCxkXWxw6EcgNxAzg1ir0X961+6ze6n7SqM4/0LyksL6IbTWNk0w9RO/UVaK66zDSGQlsalNvLSdjYsdQPaGxxMV+4GaQJpsowQLkiQLY0MTMNNo8uShY2ZFG/Iorsg0THJAnFLlm0u0Qu/z3Oew6/z5TsHfdvvdz7neTnPeU4dSKUAoiqCOkiAmEzT8A92+MMukLhch19XQSMkDHKWTSJBoozEHIdw3NHZ2df3+SGIUDSJBhl2XCdHVJU0aVGZBCDMoQUMyoRUpqn0y0V8rDcTtXD+auu4EKkSCQkoTLIK6zQ1NTe7oGZ4hiYxRSCQgAgcxk4c73T2vXT60AeHTiNLf/3112crQa56ebxq6JTN7TCJJiEAERK62nLViqiEj2dm3W6LHw/9n8TSOXA+RyIcoj2YptZzPc0fIQkiVjlq2H20Tp3CUgJR/j2o3iAQPn3CwS/qGug0BJAPBQRXRl/MDlWEhR0mUU4ADHgBQTCFmEOLKvjkrDvgs/hjsXhvJpmMY339PwxG1N7WeuxcD3SuFRfGfdT6Imrk1Z30+ekPJULYIMzxDjhaWk6B5H3aSs/OLcpKY13xag6z2FpxLuAt6oaoVhGvrmwN5qCzAQgcNwDi81ni8Wymy+0ORgEiE18JYhLJW1UHjmF30HOOymmpVhlGL+/9n59BkADklFpaCORdZZBOpDrWmNMxks+PYN2zM8gaB4QEol4BLjny1MNFxdhCm2baijEFe5U65ACK3//NjWT0KiySzUSDAAoEAaIdyATRzwUJv7FLAwmXoDab/AvrXolG9d0ZGOQMQI7XL+ZnnWg6XgEIGYRyNvWArji9Vz7EpqzodeQvWasX0JtlColDYapbce7HXQkEaj6CCpRtIRhMApAbNwASRIxEu4IBXyLhA4iMW1BYe+uKJrOp/QVxkIBi7k9JAIFJGOT1NUz88jIm/nqnBjl8GP7u9V7BFgBanFPF1fLCUXVXEwRPZhzLDQ0onJtbTpxwuRikxsQQ17p5EyCZ2WDQgjjxehIJd6YipitzLxsa1xUH5TYmSFC3yYaI+bVwLCEg/YN5x7WF11Gc4IziOjgIxHUEyjuGW7gXhg3/WH5ubm0BAWA6gIDgOT5IxzHNLgUCDqEQDtJPPxFJFCA+n8/r9QWisSoJin8tiPbSFl9YON4o1dbgmI6vKiSQDqmj51z9Z86QRa44rlGVdeLQofdnnb8rkM/Q+rnkmDty+IvzSsfr8RnAoY+iq3ntA7jfRUcee5kel+sEgmR9eHh4XUAqLUI2ieKrgIEAIr0r2TFUVwliLT8rGCW63tb2hmFsbJbqmKNm/zPDKOzYXtMg4GAQdR4EVzjWDJAzAJnzLmI5Bsi77z5w5BnkZWqreL2XyC6HmeP8cYoaahtxh4TCVK+/uOEb1xwXL7eC5OPLy04HybM8ZmIQ1c2bsAlAfrRQwkomY+ElAtEev7VqQCVcb6sADKAUtuo4gW8au9uFjf02W6lEIAh4xueOCDeajp1z9RHI+445KvZOnEZp0jnCJmn/rOfLL+EvaKK3IhupsgOBjMMdmIQ7iYpEfAtXHfY4nCMr17z4OTwzs76Gc4IVjYLbAwQkNxElGctsVzSZ9aeGJnlWQULXAcd2eYsut2kYO9XWJ3hezb5VKNTUPDWe0gMOkQblVTCWpMSaY83tBDLsGFO7X4C888AxRwb57KsvLztWVBudTiuV+Jiqh0l4XurEudT8DK+MeK+urH0K56N7jK0IiqSvGyD55ka2N2nJZOMxfxvqLRuJQKzWHcMoW1XwrhqriuxZNQd8YdXWQCBPjKfkVzyBAqK+D1b72jkGGfGegrhTgW9yrTm8D+BZn+YdnjfkSAAkCuUIgZB3YbMlA4B0VOKTX0oz0kYjf3FsxQOUWtENEkB6LdlYri2d9scztTUcuXSdgrErKRd/2WfBo65e2Niq2jYelwqbiptXSVU1CMlb7Fs4QmEOAXlnmLyDjooXKbBwIyZhIV5IIMGg6YrWSpIGIiFxnuRvL4zlPVeF44VoNJO8mE32xlGipD+Bi0WDMBfNMS5UNozHu6urCHCIQ78EB7OznhiFTaNQvVko6dRgFRAhEZA5xxUF0gcBBCjLI9fy13EXyXUHsGprIbspkoqWkPIugDAJ5QI9V7gCzKoaEMGurtkfkwTSkculM4j4oHwEs4yIKBjQRplBdrY3N4xnep+4s1rYLO0YTyr3YQCBOEzgWgTS5702OCh9CgGhEHkNI8FHVM5mEKsSFYZNqN6U/e1KKk4IhLrEcn01yhp1Q4BcdV+dhVWyFmwT26IBn8+9bx+jgGQbIOXSzoaxylNOGaxQUt0HtZ/fKhSsIp46qcZ4mak5AJC+B47hQfrigebQIDQWFVtUR/E0aBIub2W7LYKxBYQNIq4lV4CAEqShd8XuxCwpbLCybp8nsY9EKDWbnHmt4CkRSHnnScHYMEnonVJpd3O3ZOeCUXmBjpWGo02u/r45b/8gtdVA0Q4IWQ6p84hIlNg6qgYtJFyk69xrmkTmCMFjExLhkEKjK4Dyyh3smLQMEEnGnRgFBaGABEFgxfgQGE85G2Org2BXvWr6WTK2Sxsbq1hbZBcEFojDE1UeAIYdeRf2X/3tpLc1CMoM3FxyPKmyP4raVoW6MlMFSB1J1++QrMJqbxJFiYU1vWvAkktPRS74k12BF0kEUrttbNRjK7FFSwgJo4V1MGJpLBYKDbvGY+SEbatdt+iExwodH0R5208gvLn/6O23GYVKX5wTagSzRyNhbZMiFNEuEoPoDA8UkSRp+gDV7rSmf2LBqei3kVxbPMsgHCWPsYygNVLGr+oNY7caw901jFd19+eJsVO/alRVlYxNMOIVrVfJXHYc/aJMb6fmJoG4AEIkndhVnRfbyTA1CHFwfOm0CdXpuFO7CwIxhdcxKHZ0fzwZjUaTvSlL7vvvptL+jlR6r4axVRWwCnZXF+BhiPSNUrV9C69g2hlkq7DZWP/M2FdTNjarrADp1lL9reKIY4Q5NAiT4PT09Cl9CKFbu2ayaDADGSTPHyBKQEDmBpYml+58EJ2H1ER4/sK8JY02RDLqz8VqRag6YIvC6gZWE2t1Gb9W8Xhji+cbKFurW/X2bWO3vIsFvtqu+0GaZc3pXOvv1yD9LgHpRN8B23g2m+wLIKmq4FaMQSFKJHsljwS3tEdBAng1BZjB7u67d+/efxjJ+e99e2fegm52LNqVTHcoek4pRx8XaBl5DKNXlbh+XC1JTHPmsldX7eLFzVpbnb2RQA5qrcMcxVNyAoAgwQNF0v7SobNnz3YTh7m9qTILNcbYv1+RwBp4wZQUAzYTBBZ5lTjudv/x6GE6nQ22WTraUhdifn8uzMgsLFVHy+UyTxZUKpdL4sv6YKyuoab8uIxbwrcAolumtmV8LwIdiEGXgEAE8oqAdAMEl1EUWhwdjMEiEhgCz00BhawjFRHY8Rs3BgmhPBqKhAcGLJEpNLYiF1ITVaYO4A8kR9+QWY/yC+ILFJnWxoM8PDLXZa9jubaxEZvZZnBoAQT/n8jLDIJ+sJ0iooIC4nGD4Q0C4XETBj9UeIzCIHoKmIRscvCPR4+u++LpAfqaU0fbQOTOhLgsgMnWNpLas4l0L4Ze0wf2DXVWDrlGsha+isPf+WiSIz9RD4G88vKJD7j3SG5pk5M2uWINzz84oP3m8PUjTYLgbWA31AsJoby6+Ki4cH80EE8i/Q5w6zcs+3OaMfNkC3MuUrMnUcQfoOHUwVUZBNZazqvkjrPLHjm8JDHIy+0nqN3QqDhkAwDpAGEOAcFfk0OeEYiNOVRlyjdHMFc/vHf//v2LgUzWkkn6U5HxpUgaHBpEZwxhB4JISOR42ASpR9SoSWKTHBFj8HEykzDIeRiOOSh4xdYEgqFVGkRzKOknBNLAHDpoOAVMAKR4vTeLlqk/PZQbuHVrvk71pyiSwYFPkhidB45fTFQBIjFCIWIli8HRkJ+Rl9Dn1qd9aOf18FeWcVJ3nK6t8yrbmi2iPAvSjlWBIYCcA2o4m4FZAomJnIGOh7dvZ4MZy/hQRzg9cfveLV4tIWsVPg3hdjrx6fnnZUrAeLOJIKEihT2LDGKniEH/vcXFJK0HCORNAnG1tKBHTQufTJA4B7+y7x/uJOMUDhKBYAQa2rTctDMUCCZ7syHLxLjff/JkOJJTJ5JkfNhaQITkeRAhe0GHO1uxCsJDcNzt7j77Aa0ffEYGEnYtHEPgYEM4KlEk1hWCsMjNhYOk07KAsPg957RztCsXDAQsAxF3fPL2rck7GIkG2bMIpO74DxCdCmgowJfKSCzCIP1ikdfwPRIFgu4txwekaXBNASH9x1IiHARCdIInFKyQ0+kMJRKBBNpBifjk0u1bAzQQkAAEBmQA/FQZ3DwVFw6G0IWQmdZA0qiOdnhJbGqtOkBfDQJIO7UKOUOJFBDPDZEoqYHTmBnE5NBridQxlSCh0PR0yOPrsDhHM+kpf3g8xvWybFw5HhlESGS4JofEfkVFp8prKkrrz6sYaTqK7ZAGwclAHc2DiEgodXHeYixz5MokcIu9CGEQTQuZNgGFcxosCYsnO5WenB9Kehak9VottagYl6+q2z4NehR7ADZZpTQgeZoVh1rkWexLDMKHn3gKEpFyVlp4eN2CYBgBoXuCTHKyuUwKCEtAZuBYTo8v5AxZEunIePhCdHR0mOsPcncGkSmCKIUjkKnc1iC6NUcozCHewszq2zwAgQkA8h6D9NOuij9PFCSmpjwpW2SbgAgJg5gcJOGoJFlDiEx7oxnfqMXd1ZWaHI+lhuaLDXL4JkmSlym6zIsvYOpwx0oQXgdU4SK+QRwQug91rQCBWitBBo+/rspF8S8Or2pyRLve/wkIxI7EtxcupUoQfnPdOz097QkE47m4JdM2Eb5/az6Vnu8YXp+5NDOD70sv4tfM2Bj9XV9fx+NicYFVnNkTPrqIV/BOcbG4eGlxsXhpjESfXVz4HSoWi4v08hV68tECLiEXwYf5n8wUF2xw5lq+Bj48g7spjT2vGfqrfszIK/xfPjQNOT2eaCZoCbSFb91bmgyP357PBmAoOBwaLG6/351Inkz7Ar7RcMozlE6FO8LjA7mQMzg6nYBPxoMd2WAqPRAZGD85FUl9klr67cHVUacneXIyEu+K/PLXL9+2xdsuDkyloz/8/Ouvf/4V9STikSn/1OTSZFsqlhqPBYKJ+NDE0tLkgD8bDvsnwhmPMzRKf7yhkC8X9GKJiIyn42i5JZCb3NEABheI+JyBQAiDDGajCUCEQk78cMc7LF1/s3P1LFfDUFj8Bn/M3RNcAgkZCkm6tAGRJhAoGUKT0SxZWwrt8qKDg9C9vi7q4qjcye2qFwcdFN0UHQQ/wNSvX+HTJm1yzkny5CTpUo5tlzdTsSy9W9eepqOthWlq5bvjYPFcj6YsQdUXpu1tI8StqzxCQshp5bBiuFL9up+S77yEHz9CwpxLmCCZiTzRmt8OZBfR588vvr5mu0j0aLrD9uvLSXe9aar7Dx+T/v3a0WHxvusAjAFoSMx1oTkP8apmdrAnLiGoESKA86tQCw0jIRBBzmEmsu31XeRanZxpWufNWC5L1S+unLAaQ0OPHxpqu2pdPNMcJaI2rxVaSJhtBd8B6Zc3pTl1GLdz61uM1/VxmJ09PQ0qgR15/f2VjPHu+w95FuHnz9++vpKa4AY7xwLTQajuMKN7n59Uh8IN/XQoCyidS/RqrGmNawRDIGkWSWHIGQ+QRBhBHjVHqMSmUScSIkGyM7aldRVFxM54CBFh4zLt9323HxhAwTZ0P7FaG3uYtIAScaKm/aI40pmCLeda4H7qpQpmx7V07TSdlN3ksZ1Z0WzTBB+8nhNTn75cu/GXSElNps8cdodKmMob8PjHE6EmwbulLEdr533rxpEkO2IRNR5LDCOA8VbUiHDIYR73VQhZ6h3GEJnNeRszsoOuFwic0dsii1oY25fl4ZQh+eHN4YN1YKwl7WwA1doXQpZDPxB+CyEmRVnMHjV1R4Nkmo/TYXEeGyL6WUKEpSiArZ4A/Pj9p09fjhyQjcg7WoyUmmma3qw4heFAiSBixwnGad2/kbhi2FX+dI4wCBiFBMxjYoThQNK42yEIyY7oaEZmcSMIINgHWjWYdn1/rEQ6k66DyHekHWrT9OsU+PUPH47H20RACCSRxXHonYgy+W5yQgQsxOrng8BJBaEBsmnaT5PccSYVU1hDjorOeOZrX77/8mmREbGXr799fdZOY2Dtm+m0XY8DhVglggDUInjs2n3H+S4W67osHdmhII3eThweQQRXryqel9CvREhd1ChyEIwD2NcVJpIOa0mdPXOpMhpm9ww4eU+XtlJAxwicl1Aj6PeVZnYORDSjrRiKEJFiFElAoqE4Adfr9Oz0dCa1G6mQsSgVUsu09M9ferN/0/en4+P2MLfT285Uw/qms0r6qh2OqT42oumPN7ER6aQt6YhPKG3LaunL4FqHYoiQ6UwmotuV3bYH2j7hQFRdy7hmIgEolHjEiEwlHU6unLnYUZHPO0MLoxEM1XLAAMnkCyWJEuVy1H7txS2IJEu0SMkALjkUMCIRypTpjERjGrxSlUvX19YOsxrL6XnZtwABYMZ+kJGoru2nVpRRm2U/JDYm12f/908LKpgAuqGlCwEEYKBmS2nxvAyQKedPqFDj0HkS4S1ohJRFWWGMIWNSCNPcpRCaoSmWszks1SUDroqqCppzCKM04+nUYm+pHb21QxUB0FfzWY2QMB4XRpl28LZKSEmMNJYp7sKj+Oj602aouvLNRHjMPY3XqYy7Go9FO5CajEVQBfYFJH5Z9vt2PIqT/bRihoBA2xYue8c1C2h8epvhE2wnt0eM6QjBrIAp7MiABkATIJppnIuUiwExdOcOiFGTyxd/Bwr7HYEr5xvy8+yfmvP/KjN+15w/m68tmljWOpflF85nwaae701y4Z9yTpvo3PkLW3u/itn8XLbI0chyvilnw9/4Z5m72Kyy5tb4Zp3vjFz61eUvYX7/U8jaW37mP/7jP/7jP/7jP/7jP362BwcCAAAAAIL8rVcYoAIAAAC2ADXKRyHu96JPAAAAAElFTkSuQmCC", + "description": "Displays historical soil moisture values as a simplified chart with background. Optionally may display the corresponding latest soil moisture value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'soilMoisture', label: 'Soil Moisture', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'soilMoisture', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "soil", + "moisture" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_card.json b/application/src/main/data/json/system/widget_types/soil_moisture_card.json new file mode 100644 index 0000000000..05204d5204 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/soil_moisture_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "soil_moisture_card", + "name": "Soil moisture card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest soil moisture telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":{\"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\":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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json new file mode 100644 index 0000000000..ba153c1ba7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/soil_moisture_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "soil_moisture_card_with_background", + "name": "Soil moisture card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest soil moisture telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"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\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json new file mode 100644 index 0000000000..742f8cd9b4 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "soil_moisture_chart_card", + "name": "Soil moisture chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a soil moisture data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'soilMoisture', label: 'Soil Moisture', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'soilMoisture', '%', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "soil", + "moisture" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json new file mode 100644 index 0000000000..60624f716a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "soil_moisture_chart_card_with_background", + "name": "Soil moisture chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a soil moisture data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'soilMoisture', label: 'Soil Moisture', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'soilMoisture', '%', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "soil", + "moisture" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json new file mode 100644 index 0000000000..946390b231 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar.json @@ -0,0 +1,30 @@ +{ + "fqn": "soil_moisture_progress_bar", + "name": "Soil moisture progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAq1BMVEXg4ODf39/g4OAAAADg4ODf39/////g4OAjTMf19fUhISHk5OQ9PT1YWFh0dHTx8fGsrKzk6fgvLy/Hx8e6urqQkJDI0vF1j9xaeNXv7++enp7y9PutvOrV1dU+Ys6GhoaDmt+Xl5cwV8vW3fX39/efsee5ubmpqamCgoLLy8tmZmZKSkq6x+2RpeNLbdGRpuPCwsKOjo7c3NxohNl+fn51dXXU1NSxsbHb4O/m3dkHAAAABnRSTlPvIL8Ar7DvmsykAAAEw0lEQVR42uzPwREAQAQDwDiGp7f+G702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0in9062JUVhMEAvOvib6GkyIaErTHj+7/fpeKNnmPOLMks5l8wENH0i3Tip+UL+bR8IZ+WdxBNpSx0T4pMCXEs1nRezCnRFY6JZuc9hAU9wnTlhfWCBCCTRwC60rDTlVLpTeZABEW1INxtjX5ANv/NuEF8rXQFQm8yBwLzcRftgBIL+2kqfIfIsSNCDsgaNz9rWpJrtpiYWoGVNl5LLUqptK3PtY7H0RyIodLIYhBY85rzHbL1JSleDtEdZn6JEYg6YIfoKoCs47UImAIMgXg8bhokAVK5T1SMqZnpb0iz4NtWhxQU76F0QNRL31BpGG6QV24kyNQQpkGII4CotHjpjnhAXlAKQg7ZweTlDYhZJmV9Qpr31It8v86CeJIgUEEl6mP6DckZlfsSOIv10SF+n4VED4hrF4zwJEgruY9q0IRyQNYHhCxs4ANi5ruxDwjpGgXLH5CQPDoJkhFGy+uYCfgJ8aYmAsbKrx2QHBcvOJ4Gwx2isG5gpUkQ78ya+uCzmCIiPSEKpAHJkFoNfPaIpCUiuaG28/7/ENoQUpV5za7RAIvqs9H1T8goDRjtBMnn328TwPxAVqAQCxDkhBwSIPAsiIdZT9SYvA8zPW9VHqs/t36/fr+Qf+zPMQrAIBTA0O3zVxcpFErRA3j/21Wws64Z8qasYXOExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGExhGa80gp8btrrUF1GOlvyywrr5yeEUz7kZHTGuktlyuQ5sj242O/jlkbhoEwDG/Hl/EWSaBDCLvabGXwkv//yyo7anBbEBhjuBA9WzLlRb5TPMSJaRWA6IkDoPPxaoUwEJiexnoUE2BJo1aIA5gqL2K2uDcM2X4zG+NpxwCRNGqETEByKO67uICB6xmRKo2QGT8SbaILwDDSxmY3kiKNEAsMJSEB8HVmioVpZRyZhVjPLm6HSD2ZRCsjyQJhqzKWRkd2Ii3aIUyF2S8qqcPuwxSjKFpg7ZDx/8YdEGjFc2LHpEYjJAHy2rjGWlNv+OFVKmZW82w1QjzgXrMi9Vi4fllw5iBZSIdGCC1AZH8HQqkagDuTCWvVU2CZadIyJq0QH1DUq0NQOXpKM0kk0XLPt0KILYp68bHbouZfpUvQMu+NkPpS6Pcf+G+qmj8qH/TO/iZ6iDY9RJseok0P0aaHaNNDtPmAEHa4Rn7cTjgeknEVdybk63AIrnM743CIw1XymY7jJ8IZ13CPMx0fvLXeTA/Rpod8t3fHLAzCQBiGY20/EYcuWc7lOBDELYrV///PWkvmQlxypvdC9nvIcONpyyDa+gEJs3hkbggjABIRigOlQ4gJsiBrLe8MYAyYBAsPtFI6ZOsBn/1L6IAwoV0RdmCc0iHTqAby+j7vDaIFwgSsCCchtLboN2QtQmTBJlgE4C4dAs+zIG8R0rEcgn2e/amFOAzQEsWB/nuzXyuDaMsg2jKItgyiLYNoyyDaMoi2DKItg2jLINoqCOJQRI27FXB6Gng+XOUKOD5NH0Zd3Zur525V/QaCIDJe0ogfNAAAAABJRU5ErkJggg==", + "description": "Displays soil moisture 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": "\n", + "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: 'soilMoisture', label: 'Soil Moisture', 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\":\"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\":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\":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';\"},\"tickMin\":0,\"tickMax\":100,\"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\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#F36900\"},{\"from\":40,\"to\":60,\"color\":\"#4B70DD\"},{\"from\":60,\"to\":100,\"color\":\"#234CC7\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Soil Moisture\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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", + "soil", + "moisture" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json new file mode 100644 index 0000000000..5747df6085 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/soil_moisture_progress_bar_with_background.json @@ -0,0 +1,30 @@ +{ + "fqn": "soil_moisture_progress_bar_with_background", + "name": "Soil moisture progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEVETTgAAAAuLSuHhGdWc0FFPzuHgGjZ19TY1dTg29re29jd2djb19bW1NPc2dbi3dvU0tEiSsHk3tzm4N3R0M/b5dHj69bn4d/g3dnf6NTd5tPg39jk4dvp4+Dh4tXd3dXa4tLa2tTg6NXd4NPn497i69AcHRvl4tzk5dri4Nrl59rh7NTi49nh6tbn5drk7dji5tPQ1c7i59jl7tXU287Ozs3d49TY4NDt887g5NdgUk5ghEDl6tjm6tvn69Xe4NZlVVHt8tHg49JbgD82NDHg4djf6dBtW1bg3tXd59B3Y13r8ONzYFrn593R2cxgiT/m6NXp7tFchT06NjPs79VDPTozMS8sKyno7t9eUExXS0nm7NyIcGlwXleSenLZ3NLn7Np7Zl8oKCdbTUkwLivq7tno6Nnj5NVYgDp+aGHk6tI9ODa7urqOdWxWeD5LQT6CamTq5OKQeG+Kc2paeTlBOjdoWVSFbWdTSEZIXzuVfHLCwL/m79jp597i69lkiEXk7dFqmEJkhUFVfjZqhkvl5deYfnZlk0Boi0QkJCPp7OHGwsF1nUxIPjtQeTJXSURcekJNREFGQD5rj0ltnUJjjkDp69djgEZRRUGih33r6ttwhlBRcz1LZj2mjIOcgndwlUrq8N1kZmBhfzutkoSLc3B3qEa+vbxMTklPbTtYiDRrWFBdWk5KcyxypEOJfmVdijl8fXh8pU/Dybutr6dORER8hFtlUUtXbkOTl45kZE5XY0hsgsqvlIt/sEpZV0m8oJdyl1DFx9R0jVWZf4BTVEVRYj9xcW6Vi2B6g1LMyse2mYyCc2HJx8SipZx8YViYpM88XsS2vayampittdHKsqqxlZWIi4N3nlltblCDlMxQbcbFq56kiY9+kmBGay3UvrJ/qFuHt0+FsV2WrVdBXDV/a250YWWRnF6RoVO7v9GMtWpufFfm1taLd4BATzWooVeNklBISjzKz7vXxMK+oqOPjI1kVmCOWmSan4zfzchcdsjMnXOmpMPZW1i0AAAAB3RSTlMgALi3t7cgajAWEAAAMSxJREFUeNqM1s1qE1EYgOERxTuIkKxEcSUi/hCR2TkgdOPAXEVWs8pGEIdOA51FCIFk6KIpBAJCBW2oIF0JISC47aori5XuvAjf7zvnzJmmafVNU/qT+XnmO5M2uHH75sHBV9Ouqdfr7Uj5TtYb8f3yp2m5XO7Kr4bDI/ouvdX29uS5fzRJ0zQK47jcrirnWpJ0pDSdTCb70mQwGGxtdSjSht1u2jVFnSgM4yyLS9nPJrGbMo7jJIl0g0Ti+1Bj4/RWcCO4fVA5ftQZMwrzPOPb5dI6PMQ5nASHgURRbCCbegqWwmmoJEqhEJAJECMJSSDdiZUIJMxDs6NNK+G8xSGbJJFCDEWvQjoMAuYhBj7E0dNgRN1ZtzuTHTIVJM7hIPvqcMEAMgHCMarjj8djzgFJua2SSEICQh5OkqhkhqCCiCRJwrisJIxEpqpbRHYiWQUZMhOdxZ8fZBlZlvHbjr82GRCNFxhIyiXd+856ughBwkSSeM7RUWg6E56cCHtld1AmYEgh1pGHFyDEC/WSuOvhILrJykSQDAUiCA0FyW87WwNJ+GFW7BoGBmIjhXBj+OoT4ejK+ExmJnJJgZDsPUq1QWpPShx5DqQq0jxkVRLVIZBDgTiHDkQZvIrXDzS2SjLuE2E6h6zzIyQecq43iR2IOziMDyIZw5hOp6MihlEUWRZRKretQqwDSI1Sh9QlHcksrtAM0sRpBShcztFRx6dPn1SSxFnR06yDjib7SBzj/JzPQBiIOfjYOggK9fsiKUaSTlzrEJcWR1bkMySEIrUQHW5tJE4CXyGu2Q6QnWBpDBKQOJZxWIdSGEmcZ+rwkImDGIxI6gNxjG/flNInKCBkMhmFlJA4mEZBSCyE0oiq9w0uxHjKZAzErS0vYQ8CWaIwsf/YrSsHQcI2uQxFGAqhIyh7moH4geglxAGDlILkUCS0kMFkJta4rHUQK5BUnmLR9y0WppVslwkSe7c7goYk2B31eoV8FNW6GhjHqaGwuBgJiRsIFMUwFNqz+Xl4x9nZmVoOtb7GSLSCyRRQSllwossrCckBlMI7DWPsS+PqLvGQOLaOrBeMBEI48tCIreP01C2uWCU6wUga8n6HhNDIUxgph8VhFhYMIFpNctLvLxYLoYiHY5Y8p4QkR2IpQzv24TAKc3GqYyoQlcgcMZBCALE4g6Iqw6EMEoaXzOYVnfvU/WeQukSh47BvvDoPdVSUXyrBggSKcpiKkvjaSGZVRgIoyjILYZabJSORHEIeZCFlCVQ/Jcno+M1z6Y2Lr+mF6a7UuLqNjY3X9ND0THv37t1j7c6dO48e3dOaTT6qzE9arXajcXdN7Xa7VdWodbzglO0NxyUJYprH83kMZMSJXw9p3L2GQZccayE8PUNr6lle58Bak7T4eL4oWZoYaLEI5lVJcuwYvpqjsXYeLc/AQZ6hEPIQy6iNw0N0JDzWQJovmwTlYl8EomtzcXJiIB+1jmHUIXwHxFo8xE+h1TIE79C844KkWlne8UgSCZD7KpHaYuChjpcvdbtVycaLcns0goEDiFPg2Lo8EBy0fiIwqPn69T8c5EeyOg4UxBfVumk3Wm1ULhg4TKtj2d6cOoeHbFHlePLkDQ8nobUDkXN3XbmwvGQdBIRm75JXslarALWV8ZTcy+rxF8Y5fgUfDUT/LfEObfUmWQt58OCBABzqioF4SPMKCBJfdd2bxvFeu0TpSyhwAPkIRST8EfQMnch/jEQcjsITl4d4xxqId/Bj8pAmVa8SBg6fcXvIySEK+v2XD3uJdSGK4zjeXcUrFioeiU41/pGLoGqq0qse481E401kmAQh1kJI2dhg4RVWEncWzEIkY7pQElbcRKKLWjRWImJlIdFEYuf3/59znPGIbx/aK+6dj/+Z6dwBRBaXnCZqhp6IpijHn5CagVxCkPxrbS3RhP8OZAaX/Zt5mQxjdHT0EDKUhYg5TyR2fPnCS8s4PoBhE8k/R+KAgZueiIFwFqIptvbfS9xC+HhmWpxZcIvFAQVnKDMAUT15oCGfANEOOSnJIlZoi50IICpAOKBkIkggVoJmLJyBeA5tThjGMVtSIzEQZAGZ2u1Gmx37kVBkuBqiHJ8+fhIIJNrx2TKyI6mqflFqjtn5MZL5em0BYinGghab/jp84qWBoIWLT5mXNnzFOiQrEQgkUMABiPwCwg78opcZh01BAkBUkJhkbVmIOZDN0hJkEVnF3yORGo3GEtyzFHztCDtMF/ar/U1JXjwA5YWBrF8v1xLg+Pr7ynr7PUneGQgotVo3SmtdigRR7XV7kADS//FDIOpANox+bJw1SyyzzPGFEdZgEwlGp1qy+giHzbRhoy1ERnLBToQhj40kpx3nPn/9+tUq0Om9hPY+hMFIHlFPIFJM1HEY4hFdEojUp5tb7P6cDH4XyKkZHkZiIdhiZCDWAYh2bJORHMruIwzRU8nh1J8dGch09dhLydu3CcUWEqT9mobg/AuQ8RogHXB5bTGEj2odH6dB8pGGJ/IMgU86CrbMSBiyHBt8DLHkPxNBgLRxAJZZw8CWx7yv5NRVw3PnvhoIFGKhEE/VPXvfVKsPkyhJgyDoJalAWAKIF2JtzY9oF7Uwkl403sOhwE+62MLOeNQdzu4nFCb92ckAJ4SDxHe6SX98UCj4A3y7gqv3k8XiuHDhmIUsz+4kdiRoiXKAwUHAd7m8kZPLuJB8+wbIdLmpQhpMqUrvQtpLYT8IIuoEGhIEMY1Tp7DFp0ceINWbFIYUOU5KcWE2ADfJ83sekdcrkIdReZQ6MYUUO2lIHr5dgSn6wCUOA7EIgYjEUOSTRBiz0e1rj69BAQdDnqPXr159Q9O4Zbhx34m8wcN8vvrGC88H/TB88wsSIED6Ybxuyw/qAdJKKNlSeERdgfi8osZpUBADnhwDedTp41XH6VPsIoFg/YhjbGyMHY0ZyM6k3Wi0AdG12TEPDEku3gEhkGfPnj1/+VJBBGGa8jAiouhN8I6iQE3DTkRBHpG/Jd7VYsg3Gm7cgs1TkDDsFPzUF0ghC+k7Toce4e1N8jOQI8I4xJBG44+PkkobWQgcwigguep/X5V7/+zZo5eQnL1x45tFcBPy+e8exaWEBkEpSKjLkDIgZSmmTocGQ4paRCtb5M3fuHQdeS5DCl2snbhb+AuCh9MjVeqiWfMqMxrYfHaM7T+kHZaBKpAwBTeuwr+6uAWHu8jXk26pBMKSg2fP3piSqZ908vnSm5BWdCkplcDpMaSYhZTDeJyGDFm5b9/8+Ut9uskQ/E/7vcij3h+QmobEXc4vuy5O0sUxJg5ARhu/SSq69ggIilGpwy+MWu06X/jSAXLmzJo1a1atOnDwrDZMQPkOxXlsPyB4hRcenS/piTQlQOYmtO9mSyCvqH/q1A+KBNKJeq7bwxuXPPzYkLIQn0LfKafLygypVBqjRw6NGcgoIEzhu3VkqtfhYIT0FFeM7qKLeOS2Hz686QyC5QALRMFhzxx08VQsxhR1I4qKRUCaApnbrNcBqftEPxSkT7sGg300XDqkeLYfet1eRF02DPqu+vdmaTnjGMnAi8tNtw4IHPvHtm3bJockQGzaUZdbZVEbfxhHUAu4ezjkXtcBAol0Zk3eNnnyiigkCqPpxeJ02etX/ILMrSOBVGIaKsjKH7uIdnWWMqRe73tEYYJhDIgSN8W72NMQkeB92myKAwdWOMYYAkcWohg2xXDBkPABjY+N50+fPhdO7rC0HR3ehM3XTeUmXr06fTNqbp5+dVkR4WVzzoYNdbRo0aIFCyojjZ2rW62VUms4PLVzZ6Vyos6lqe9yfuqiNHXLsiD4jtK0jLECMopPiG2SGkhW8jtjAzOwosvFsnKUqsE5ljyHBOW2bhfIVrR9qm4SNxEJowkJEtEcOBaBgR+yYMEIaqzebSCt1urVkJgfP3fuXNfFXVcuO7AoR7ksjkULRkb3a8eVK2Dojhxhz8gIvhULTE3OKep55Kv5Ka9evXouQZM7efTo1u1wcApgmjlz5pzNc3UCmQMHIOwY4XYcP378zu7WWiNZDclI5fKCBYvE0cTWchpSFoNxbBAH5mEhhoHwJyAYu2UoSBGQUinIB1PyAnlpJLmfbNrPS+R1HMfxudXa5rIWruBkmAMzY9O0WASJjrYggjWg4CFrHJXFEYUBm4E1ZDe66KFLtzl4iQ6eEuZWEEEQBRvMJehiXSPaTvkf9Hy/P++P74+jr8ktWx2/j3m/Pz++n3F/l2wR/hjw3ILBdXMZOztmoa3UQQrBUa3OnnRWVyMESafB/y+UwhXIt4wFi0vMQV+J44tLxxfVKt+aQgoFfZpRgsIY46+OExBv8/hFJEQhvYOD2sF+4NyyoDAHDI1iFozB6FAGOTnZ3o6Q91ZWOh2TKGSULCgI0YREGeQddUx+/AUQdxAcGhxAooPwIg68SsyxAeVFhQQMEBwBQlLInTvFojCWl+9rlGIMEiBPniDxkqyuAmlMlv21NMqcQixUR8b5JAPk0vEEB88qEraI4lBIsVjkGUZ4DIzSJjgGFQKDD4F8BIOcnQEhSCQQ7sTwHNmdo6Nlsrenkp2SOTQJxEsCZDNK1GEWGS6JQ2Y9rpk6uKNAVBKiDiAwQnAQZiKVENbtjz766OGPaxGybxD+LYChkGKW4IBBXILDEiEnQJAI5D0pyWyjGi4ikcyRyCDBERsLD47LllUGCY4RT5AQHBIgD9fWpqenz4hCGCSa2tAQjpDsS9lsWSCVvSihPmbgJ+YL1VwOyJWSANnuSF+Ub5CkjilxJI2Vy3PRC5FC3NEveQGJOZ5/KBB2V1imMwIIaTej4iWSz+fLZRyVFU5JVMK8GpMt5Ukul3OIlUTujWYZ8C7xirhj6qqjms8WizqcvOJ8u7XVgFMMchuHZE0LMq+UjAra+k/TGQQHEBbuIJEtnI5AqlGi7QyCBIj3lkt4fW+EMEBwsBICcYcNJigWZLEIJJVAuR0owtAPkmkShfBxxZErlxsURCBkGAiLbblaBpLVXJakD4JEutwnT6Z/b62wUwwFcQeXyJSkFhK+0Rksaw5JJBhAEHosUyetdrvWJikkJ5BGAmH3o6tHOQ9EAwSJ9xYQeitItLm4njl1EBTEG8sdORwDBAqR8gkovPgvuMQWhltRAoWekghkOnN4eFhvNWuaGyEq4R4aCROSQZictbuANHxx95JszkxOsVFZQBFjEHP4hJXLUw+9OPJqTJigiGFMQawot4lArCpnGRxA2gZxST6pCOfqw2/imK1KckFCSfSrgPT3FhLZvLLhY1dh67FBwtYdiDmemGNQM04GY/Rao8TqIRSBiBtIkDDkz77P1CkIEAkQl8ikFQeJQt50CBICJK/cq5BVh+AQhGZjQyHXGksd1ivcW8dc3hYBMggMHLEmQp8nKpn+5hyIlqTZBHLj9FsBQhSChOUDCasMaw0lcYhJUsgYEBwumRPIrBxSuWNUHTBuTKiJQnTb4d0F5RFRy3ffn9NaJEhqrOtuuQnSMAjQLAlf1FBJCnksEDoLh7264mCYjElBksYKDhjueN6jECTaWwbhT5esL66v663tN+e/ZihHq55CLFxnuXwkEhwGmVQIAYKEAPGSpBWJBVFH6BkmYSCTSUHChHUDwyV9DocI5QPJOpjvBYKCSGcBIRFCAqQSIAx2Zt9yziBWk2xeIB0g6QTsBcGRQBb05haHQfLqMMR1SH9n9UuWJII5//VCIU2DDCnEch0yA6QaIV6T672ls69CcDiE44YSBXFHtTRKX0VEP8RGCAx3kBSyRZb4sweEvtKJywb7VUi5ESEsIzjoo35IWpIUwnKoIz2FLJRCZ8URUhCIAdzS11c2Y0FIIfIY2NqVbO32uhcXmaZARIJlKI12TTmBTLFal3U1v4dCk0BWUwhNKDst7oPi6x0660pBPhbIqyp93iHOcoYqhhyCQbO7uy/pdZ9e/Jdpt1pURNKqpw4uU2ckIOIwiCzm94hDggTICpIEUmD3yupsksHxQS/I1+H85+PJqQVpPr/wmOd4GIPFI2n3S0h44GAZP2h3n/4HpBkgx8eHhzdBpCQGKRQihCQSLclKAuk0qgUgsl/SvQScgYG50VAQIF+/z+PDzdmjd737DDJoFmOgKOrNUSLxiuwf1Nq101pTIfx3k946PCapw3ZbVhI9iBUHS4g6vCqxJCuMEofoLcaISDRsxEdDQexkkTBF74zNTWyYBG4S/RYcsurKT9UEiVekdkpqp60A4caKotTBtPjSFCISg+wZxB0uyfsoMcjJCRDdnLNZ1eAolgrmCGFKWL6/82DCJJQgiZWjGDamxCXJIIHRahKF7COhKKenzXprKIXcCxB6iwjkyCF9FJ+4bCE5YXMukjtIRmSThMMgHL0bZLsyvHf/ARK6S3dUJHFoOQLDJ5gIoR7ktBVmXIPYPeJpve6OpCIzevxAQVLIKzwixTdcDjl5ksvFVpAUgwPI5nZgkMeVvftBwrY95tJxyx1OcYlCGNqMbSBPdYy0gYA77BsjSHQDvCySZYFkFQIjJNZFxLaZJwYRiVIIjGypIAV58zHBEBwVJFDG5Gx5hGjPJAXhLiGFXJPUWsc/Hx/Xm10kGTt40OUkvoI+bel2S09RFILDIJ84RT7njtchqwp5JVlv6HRxfLYJhBjkLZOMEbknJFEiBbljA6Qf4pLaqbZWgDBCwg076wgGS5DwTAWOhO4TIKUrEBILw0e4dUeSQu7lpPfuqUOP3t4kON4KlE5FwlsROztHpSLhAqNDIMXYWTJreYBEyQF9xPqnkszWLqMETROcztKJhTWixKmpQvhhfGoQdTiF2K27xiCxXjlSruJQyFuk8niTANHQu0dUO4tEK+JDhFfAk0JMUgNCa9Wb7W43w1sKehZ/QE2CU6ISGaKcQBtkp1RE4hVJLFYSr8i2QpAYhN1/KMiwOKSlRFKJkkaDHs5CEUgy1rMqyIbcCKkfMtjrp+1uT956+0BCZWoOUQrhQD5I5DweFw2nEuIO+QSIjRIgWpJXPEAa0cFvniBhKz3Lhzo4+DYJkAGvCD2hgqKE/riptaQgsii2e7xjxT3WN48W4cT3R5L3FkblrZ4HDx6IY2G0yHObpD8OQeK9ZX/JGykB8jr5fLgyPGMRBxCVsO5wgX2QIRA+aq8NdnW0Dw56QNbn9diRPAozH3EJEyMQwnscTCzyjDpO+jGc1OmamEJkrAekOGAEB3MghElJY6bRISd9kHAFcu1FeflHiFGIF4SKHMu2vV3rAVl/NL32cI2TCI7oYUi8KPou4sQEjgmZ7HlCeaGgYNGEWcuWkkZnxXqrA6TKhEkiZDPUg8jx6zKKQCEnQKqXECTBwU8KjNjqVxy6aTyVRaPb7fYY7IuxIPzCwOBgShmQhJM1X36t5obxyJoDZMUgHV7hAIFIZzmE3xLeG16eKmgM0oAaIHaFdunG8OnH+0rH0tLfjPbDp5oMZxCPFsn6/MNPb7skhKO/cSQaNty6IYp3awGjCMIqzNpZMYlCdNEBUhXHjDtoLTagljIUHHqACUQX93TCSWcfizHI4lKt2wXxD8msyzBfYs7amv+SoyJlEP3CQfLTTxtIxPHy77//fvUowGcSom8LrYhkJUBsUQeiBXkLCA6ByOqqoSblcjUkB2TIL/x6TBEdZH5xq9fFIWH6XVza2mcn39yaNoQFx78/3L179yc5ktr498+75Lc/tGo2Gom1LSlmDcJHRSBMOUh1kx8LAgPIG68BiZKCSXJAdLtMxTVxlN7yVksdCplf73VxPPvr2bMMXbW0X6t/9dVxc7ePcfsPLl0hG+P/3rX8+ZxSrC5ebTbqY9JbGha5o6xC5LZrctIhVhF+c6JIkJDg0H1/kVERE7fDTiEOoVs48j3/9uLiGRHI/7ScTWgbVxDH9yZ/SEpb3PQrbWh6aFpoMZT2YEorihoR4UKL0AoLK8WSIMiqsbCRJVwCvcQQgjH2yb7Yl5QcZOitgaDSoFsTh0igHmKHnnJoTe4N5NL/zLzR7Nppe/I/jh3J1vr9NDPvzZt5m0ShNreys7W1c2kEMgzmaHc7kbex9enhn2NDHXzpB6tNJqw5b13+etZAaA2Amc7AfZjjNDgE5BxA0AV5D3sUZxVwMEiQxJJ6oIRBhAMgIHnyG0AeP/4LMdJqzUwv7GxB+kNSte/AkzroZlMJ5BCmoFpHFzyoFKhVSNZUegsk34gcyHsC8ilAPiKDXCCQC+fGUad3LSpxMMoOJRnBS1zrUN93TeuPGyQ6MfXr7YcAeQzx6aDJmRqTGC4VMREUhzGIBj7W7fYBEgNQ21UAR48Ia46ZBCBIAwXkfYAgV1SD4KTdOAyC5ZXFZnlXdIZswsLzZ7kGE+4saE3LuUy+VNodgFTSBUxcM42F5ZVl/jkF6WDMscN+/2MCYQ3FYv0QiBh4cJwIScB4COQMb6iI47SAmEE+ZykKeC0/RKb6JTfs0C9BMclQghbh39ts5g1kcQ/VU9iESitujhYQeNE+jILPygGD9BD7DBIfw9WFQqs58bMEMmsgEDiuIh8xDgbh8jZr5KyhOMlBFu51xa3AojYJWySf/xVBQiR/eljf92bSmITB4lYbC3XISNoHPTw4FI527+DQYQxKnOhKfQGTSLBj+iUpx0foQ5pnMQZKDsKC8DIUYAAEcr2V4yTWsSoBZPfhk9/+oHXkpwWgVNKpFkgAYs7VJoShIeIZi5DYPM86zNE/GO0/i3cOxFAQx9K3BCIkAPkQPs+R/lkIZPy11z+Rvok22jAyRaEpmXWMRPa/4Y4VgWAGfvIz/ksKDynXdAUgWBbTuuQwMkC6EWgfPOw//e4+nuuNRaKjo/326OFBvN11HHLENvI2SAACDgHBXyS4UjwGhwMZ/4RqWRGWY+FG+ntOXwJDQIwkGjUQs8lUibqHRPLzHx4W+T05ezaZChWJMehOFKL45sMGOv3SNV/o9dvtbjtqIEwiJlEQCEUY5jCQCwTCpeuhmEYXk1CsCAiJw8RIrCwf7FhRNxcWefgEJF56b6+C8jxFSSpUuQfI4ShEs5c1+WAS9tbO/n7noBMxEOg4iLUlLETgWWQQO5irJITCNIFTAxJKcYkRgTASA4F0z077xEmkFMbShWvRj/cJBO9/n+d0xDs42Pva3f5+93kgnx0DAYdZBCDgcFIQI2GRXXQShixCQq0etHMTS7eZ5KG31KLomMT6XpgBiLEMYTGnF7QJiFzKmefAzR2dXqfX7XGUWJCcJRCujFwVDgb5gTl+MM/6NsL0AZBRingViGxdPAsKS1NZ2qVewq4WICyPLJGuVCZThXSNMEzPMPhODLHeGx6O0RTWGen3QDUs6nW6+9FuOwIJioHMEshVMQjEHOZZCsLsMpkriElBqDXBGMZhKHT0WkhwFBChUQDJDGoPjTBIFKNmHQ6To4lgJQjW3d8f6bbjiHcIKPLmvo0lEYVJKVVB+AoOwVAQiXVC59dY49ZAhh0LTKM5sOXage0unyJP7EK3d1F8SJF3YdqqzAWL2FCnzSM/HKayXedAFsdA6h7rPet1eB4EiqyISLdo7OC47EBmIaWwSYtJ1B6OY5gRhkmWyhuHkgQaPhg0QCb4KCBAllJ8gJlAIAOBov3+0ClVrN/vHHlTOrGRwRkXGpKAQACBiGSWFAahSZXI1RzqOuCwYIYII1zYkYEMSGppAtmdmAIJFR+WEB4zSLYWdeOKP07BeUzE17Fv2ApKfv6qgowDg4uthjHYjFCiBSOyDINlv8uuGm61mxgENkCUFCZTu95EKT+Rqj19WmvMsUVMVH+GQqUkKweZ8ayth9nm8lUFwe5ESMbHL5CEA49oL2ItHYEIc+gF2dAaRMrKHzIeWjYaaBvu3Nie8RKlUiL9FCDTyys0duNgWUtCfdUqdKxg8Q/FYniTcmjVGByCottcNK71bIxRKIj6vzhsxIlRho+q1qhMVhYWVm78/mjaKyQSKQJ5kF7cwbDkAwqNFBeWNI2uBhBr9RgMSU6mAgQckGCglXNBQaQShP26uZDJLCK/ThMgBBOs4oyiG3l8jLawmufXl1oL9+5d8pZrKKI8uLV2KzGzLBjHSQACM3M4g+SUgpgERvqiAoIaK0qtTAKOi+MXHcjpT6VbHwwyU5gDGJYAEIm2GbXzuzk1WUslptFuT89597YWpxuptdX1/OQcD58IzLnedCCjcZlh46PkW9whMalxtMVFgwfJAOSLixCRzDIIlRoCM4l6mWUgAY4XREDRvq/by0WhenZ9Ao2ExnSrNO3dubOy+KA1v7rZXKpIgCuHWkUMguvyvB8fGTYQQyFxBRi+JRwkBVESKl+jB699tED/X+LeZiuMlTBMShJlQLFS1i/79dXMZi3dqnmPHt25UYBF1vKJAo89MCHp5DRMBpFXR6IwCYEYA304DxMQzFZkD4p2iKFedyCnCeSKWBAXNgyW+Y6ZY4zlSCAZBx5CTd/P+MlceRXzrndnbqaG+8RuJZYSBRl8IHFkHDYIvV4sPDpy6iUHcjRSqDilIOBgEkhAQPLaB6c/pUrvFbySPRYcAa9nFMZgDsOAJMPE00E7NbP1+Uwy6Zfr2TVvrpBt5vOJyo+NQiG4aIs09KIGEieQVwjEGtRWkz9DHG8Jh6Ag6KGXieS1cwD5SkHI0qCw4I3KZ+c8ivEx5GzCMrwX8s16pppMVn2/XPZmkPj+/XdjZWulUOKBm9tqBI5wpLvpIxpXi7B7HBF23Ri8NIZMBPIyg+C2QwJxBpGgjiuHU8Q4gCESo0CGAVUzyXK5nCmX/dW6t7m4s4Du6PTW9nTTRZuZG5/VZbXAICDgcO+q+qAImTcGLhwm4gDJ6wDBsUhpyumczgKNsRgHMBSE5ChMfjl3rZyZ93P+/Ia3ulRJzC0styrLlyoSbjbJucKbrkwMgmBXEB6ME7Nw9xRlOgVx98qhUSQ3458DyPtfXUEoDThk3Q5ZheNA7WEkpsHDsp8rluv5TC6XyXtr9am1bLMxld6+d0NsoI4qUmNr2i2zloIMfNA5JbKtzxUEHILyDnQERKf0UA6sZ97NIMdBQg8zfi5X3VjPZjLraS+XLOWrU6mVxs69ZTvFFglJQYYGIOAAiHg50SsILBK+5Y9bdwoyTiA4TcjxoZGHiyqILBP/DuL+OaBqJgkkm/Qz1aZX9KulRL4+kZgslCIBYSN1MurdvHv37v37969fv/696rpJnr0Jffcc3QSHKV/3/Vw5l4OL+V59IpVONOeT5ermeuB8Z6T34knpIMRxMwCCJ6F/4ZAnvh8LaCmdWPdz1wik6G3gjvzsfHVjKruZFw6x9YsnJ+YQDAw5bJPngxjMzSBIKTU1n8wVr+UwfXlZH+t8PbOZXWvdirEk/OBZJ6ReiAMgohDI801CPx1cTHwA5IrFa8Vyuehlchk/tb3VmMivbQZBOiflWwffMYcZRPV/IMwRWhaZAirmfN8rJzeqiZVftra3W60h42DZwWhB1G/S9srSbd6kyJQM0T2enG7RrMUtDrkJhnLhLy7LNldzwpjKao6yZPFATeE10UiuCQdIkknPryarG8nVbCmxuTcE/QeHfVv2ndqmoIenHAmdBDpvIFiSBISTemwcscuV9cMIgiSuSKYklm6FMi61CCEUi7kiffGqfi6TyRUxh2VrMkxZ0A1E7GTSdoViEInYBCkYFrvz58EhICNBELnhFyCWKYQlILoiqo6BQAOLCAhiJOclppKruVWYJZPJB/MF5jBzEIBIT98bRoRRuCrxCvqA53HqzkCiYZA3BMR245BxyGWNxEBYR0A+LpIBQJJdz657//Bt/q5tA1Ec19wmrigeOrWETv0DvHjyIEgx3YQkLOqU2IJi1CJTkGuaveDBBGnK5ECo6SxIKB26BQwu9lBDM3Vt/4PM/d49v7yz5faF2Il/nN5H7+fdSW+7V2lnfBbncRzyjQ4QATE42N/Wu59GD0CBoy5/eIbNs9ePwUEge/punk2Q+0QiIg0pzax4Ekgqg8M0CVCYD+lK+ZWbpmMPa7+5P4oi5VoDpR+NRQczo5w8ao9FKFgljaK30O46lPXNIdsgfJqk/WGO9TqJalQYkUDm+GGTSNaCQSJ4V+pG4dg67HpuoLhG+Sn0owUzAjH8WJbNgSAToC1FgKIW6RgEsb5HIK8I5DWB3OO+1BxgfSZoIoejr98hEJCITUogbuA7ueXG6dAZQYKkCw5gmHOpMgjtSkMkGZBHs288hzCHgIADglc1yFaPvc4hFcWh56d39/MxCKNUIVIQRzr/IlLiq8xCxPuRzsWeUzFA9pZFsboLOY7FzYm1EgZhEmw5axLV+fIqPUCeMgivTEOERHEwyENeDsSb1eUtdD4pigLd4mpWrIiE60tHJVvVaLlhYjloVtYgHc1BIJX5bLFfvDFAeGtJSMQzCFh/BiTKJprDACGTKDwNIiScCgmEL5KjGmXPVrN9u3qzqi2L2uVscXJxUjUlcMKrYeZFbnvQsAZJAAFI2MwqlTUIiu+Pm317tTJBuMKUSWASsdoBTEIzEdKTQKiyk7/xAGwTFt0hgEODkE0WALFnJ7XFRW11W6vdLDdAcrebuUmSniaui3us+sM0x1/9fp1ihPLG5e02yAbJvRIJBTzdTaVB7nEgAQRBokRzkH+SYQRE2xsgEAZB8porkAvoDJBVtboF8vFFGOZe6jlo5K33V+H7cbeVJ82eBgGJzuSXt7YJQhxcME3PkLxFtIpEi/YgJqEmBWY60JvDDGLkDKpF67zFi/EA2bcvbIBUSyC2fX1Yn/a7ses4kWtNJs36cXfQSJLDqSrQVEQYpGoahEWRbKuxXyLhvSwD5DFAVNwYp8LMGWsSCIPAIhh5tlBWWQLkdimtIx4xr0rzRubEX5zUarz7dhS7Uafjxi61HlRDFhfz6s0lfYc05DwpJDtNgi1RTYKSQgWpBEKHMUlkZNrSoS9qi2Dk4s3+ZWG/KRAtnxlCP2ddbxQgWbUjgAxefv9+HGSp4+UBlwpwIEBms6LEQcKnlOtW2SQHdHnJg0fIfwd3QfKcQEjfklFlPYV7CwWCd05mxeyzbX9FPSAMfvT90ShyIv+047tWfXD+4Th1suywF3IHr0Hs+dwWDrMrIhBRotyUAaQCELi76qxQEbVJHjOI0QlBXSHZWhriweEeanC7RgqJOMi4WddpOqMgsFqn9W4yzJofP00+rPPO5oq+YIj7kOG4j2At6JNUEjTIIwbRfSPXFoicdkUiIOK55lmSa6m2QPJWHLveVcPBAoSFViv0Xly3Ppz32kpr1mkXh4BQ98tBylrQJ3nTjzbOFYiOGmDQBEVAIKbGO+d1QkJi8qQR5oTueBgoENf14/ZkEo7PxkNSnEQ4SiR8LD44F2fWQwu1O4pjDfKEawt1nf8g4fEFzXhrm8XBZN3z/5wNvVHHSs788P3PazdyexNRHiIYhoiuCqQsAkKuTgmBSCCyUq05hUSLtKnl42l7y+uk4e9G1/O9l8dvp1lsZUny4ujXUcPPj86rEJPlPxxQFL+ss+ELJgo1/fTPARBkMrZFAjHX4eWwO45vGKjbSNpJmLb7037LyobNFm65qkd5K6lqEZBdQxi68zOpKDFjfLL8FRYJEykoGkQ8Yad9TOMHHT/ptfx4GKJp7NXD4WEjdJ0o8KtCwgmoPACm6BsiZZpN8i9+wSiTkIMRh+kRbJ6dXp223w2+HL/83ZtOP/4t5Axe3CeiOF4FQVEvIvi/5DSHQGDIbZiUDEkhTi5hDBMSkob8AQGREJJTckkuWRB6tfRUKNKDWKGn9tSFPe2e3NPqD0TBV9eS2hV9y5al20nzeW/e973MpJ3E0McbZGrACn0BEOPW47+l3NWmDDxeUZxPZwzJrTTcfup+7HRGg+u1y0rQjeT8XZ2uvnbgklOp0+ec6vfH4/1xwgWZEkqIq6o3IDfvfel9r+36UzO3awrXSfbmSx2uD3fZQvwXkH92rB/e7go5phoXilkxxtkkM7kScSJqQAGGvy8mx0Wm8QivT9xAAMbFxrb+Dcgtx02Mr0EutwheOK5ARo6PX+nnrBBSFnFcMzrp/YjrCVMcuyL/AHkdciEZUf4PZOxYLvavIG8jc6u/1yCvuQk/Y0TAhq5th11AaErrCWoKYcQ8MbGjnyku63kjyFgeblz48Ti1xnrwryEZResK4tXrI8vf+nsBvwG5vgn/bOe3O52tz0uWUjGh0D0ahphbs2j2zZgkMHYkeSMaI831J7L+A2TcVb0Rg5tVc/h7LOa3IBCREQTc+N1Pu93QZ3lSy1qdxMZZtFwt7Gd9++M1CAwZ1f1sNyhgI8pVfX4L8tp6XRraK44xBcaI/R2/W5Dx4BeJ+DyNVwuT2xk3REUnduGC9qpVwUzNuftuBBnHvpnu/1ZEwK5Abhd14VXjnWSXf16fKNhbkE9vQa5k65PPn5MqpjGVJZfcwRO7EnTJmQkbpGQReiZvDFLWNNFsR5/7XklcWPmCZTB4dKdUR7K0vX7dYwprL7Bf/yWb9eHMq1zCfatSVZoqBZXMaweLF160KBtT6bpZhMxwWHezsoy45jiMLdm3wkhX+33pfmmgRKiEUjdWKWde47qUMhvhsM+2M6wHTjmFKyij4hVMHTGltt+eHsAOpw5zRVnM97NuPamYqWtcLokwXCJR1mslNTldpiVHmrYoDHdKDDjhqeq6xpdqQdW4snXdgYYTLjOJISWcmeXUyzJBOre9MCq55aHFXmPaYqXhwPe73a7VvLxt8z6sFDMbdEIEFapam/aCx3E6X2lPJtNsS5dUaR9dN6amP2vDfdQOmJtlZUgFa9Rwi8JQwZm21Q4nADmc+v1K1/fZbh1NkOfMQmzPkyU11KTf7eZOUzBumnaATRtLVZVYY7GoTbZcxpUVUQAicaHCaiV4rk6VeZ63unS8YpFHWTazFVNfFUahvGN64CneboCDro/rrruzei12m4VTu9PzdoAhBIlXpRBKc5fP9e2jrkiaOo4wvvxS8KC3So79qNHtZRo3ONOQ6fSoSbbb/b4P+m6znu/DPUel3LdDP0nKIkUa9lCCGuR3faYnKUOKZre7dZ7nGlHTRHe0huFgHnl+mCtTVxVmGgsDwuTWmq6HfeulWGcyGtZDl/tooSOmPL1b2ompr0+bfr0Z8rsAM8WX02nMUtWAkectGkOUi7IwhOk8Pj5unwodCUF5KadfE1qYNi+CNkTztsdCliu/a/uZ5zzf3wfe3pGplxTS4Y1CSQlTdEJgaE1pYyLwZORpJVR9INGCdr1uLZsRGotYNiJGOBuG3OaVSpcMqCvypUsMkuDExm2vWfmc2WE+7Nabzebw8PLycri3tCTbDcOQWU5BVFJzr6FLmtZ0WS2T1ACcStujVMbL5Pnx6d07vevgWbnS0lQxCWm0Jg26AOMs0O62eXdcbyCu9/fbJ8t2SsOIjcorUybUYrVfTQAjhkgLGac8cTQldlVDlTbM7ewucmSjJdQwoNhIL19vdhmvkpQuZSx1xySyoUatKJru4GwWeGmtOC1AHA4PP8N9aD+/HI6zvLMUzjlaLivKE600EaWCpgh8JmGuKrZ596gQsnynCGPptcdZqoqkjeaeXoOoNqmtIVTLGHfddv3L4fDLcbvdPjt+gFIGc7yuJFJisuINn1RpA8+4FHQE5pOn1YbrqiBneO6YmseTzEshHRUt6rqzb/Uwt3QFmWlTplKaz3/88UwpFbWtabY0CFoDx+Z0ePn55y+++Pnn345hj2AiRvksy7FurwoqCCF1WpUadsJtt77fbjaOrIVqUCEXOAiS2LAeMifwNUMVhEoTFVJ/2p4b3F/AACR/XFleUaNGpaZULFwIruFswhLMa0Hqmjl5n3msIK5gNl4gpYklb0wHVXXjtBCNPvPDyOp9kJ9umEFKoIr/+v1HXxUQzakRV4zROj88PJzWmzPIZ3B75Muxy4NVubLyLMo8LhulpLWyWKEqZgjfbY+bX+Cn80H8DWY2vATVSuLoty4KrQDmMIgKl8S8u3+1I+A83wVKXO4lZI2MG2UY9oVKmoU1MVmCkiQVhEW5j5VCxC6hVSoLoQKRgi1d1/Q5CHWXhw5aLRTFdrxwGHpHj1ixfPf8nDaLnxqX1A2Xynpzejh1w+YBOD777LdfujbEgWOaTpBgnBIOMe2HHpuSUPPp8XnbdvfbrB18jcG8S8qSFylWFg8DziKbU2pMC6zIpT57fn7enq29e9KZcI2VxuN0JWnZDXsJhUE0kw9AAhUPUcqxhU2zoXFd17FqTEFVSIP7Ng89jHUv8meh3khJhLlgOG87OEeYKSlHVDT+DyWUFMjTqO9Om64dDr/9DPZybFt/4URIgrcQRukcHDBAbC2cioqhJ8/WPU1BeDaAXEZR1K9zpKT8NOBZ12W6gPap0lCJHh+fwB6fHEcDH7iQtP6u9YMVFYtAP9fs6fuTCRMGTYtGSVmSMJOp6tJEnDewZfKXmA/gUxvbuuNZvl4IStQGktoLwjbDvCk1DYF67X//IVaJqooS5+suC/v1w2+/vbw8HK3MLlZ6Cr5Klumy1H1HD9thaFsPJEStWdlUMYmrYFhngePNhs1m67HypwxoN6e1UlOVKIgzlJiMLeUyLQghoKF8AYXA9+1SxKW9ICBWk8l7kw8MEQtpMhMhSGAQ26Xu50FKXZWdC3M/m1uRFQTWXWjXJKZxDDFMGRTcQtoeTpiYTsvff19RGKvShWfNvWDuH0FhTod7xzaLSsKLkcLgF1yEMPig62fnQk1kFUO3kCKIVGiFYQ7Svc68xUqx2m5zONyxdwxSnsZESCWB4maedamApIOOQBZN2VBSLPaFeH/y3p/lCNCplxrohgAAAABJRU5ErkJggg==", + "description": "Displays soil moisture reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'soilMoisture', label: 'Soil Moisture', 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\":\"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\":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)\",\"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\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}]},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"barColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"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';\"},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Soil Moisture\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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", + "soil", + "moisture" + ] +} \ No newline at end of file From 0448b5728909b537e0823f8122568d3f13957a44 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 24 Oct 2023 15:27:01 +0300 Subject: [PATCH 104/117] UI: Outdoor Environment: Noise level widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../ground_temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 2 +- .../horizontal_noise_level_card.json | 28 +++++++++++++++++ ...ntal_noise_level_card_with_background.json | 28 +++++++++++++++++ .../widget_types/humidity_chart_card.json | 2 +- .../humidity_chart_card_with_background.json | 2 +- .../system/widget_types/noise_level_card.json | 28 +++++++++++++++++ .../noise_level_card_with_background.json | 28 +++++++++++++++++ .../widget_types/noise_level_chart_card.json | 31 +++++++++++++++++++ ...oise_level_chart_card_with_background.json | 31 +++++++++++++++++++ .../widget_types/pressure_chart_card.json | 2 +- .../pressure_chart_card_with_background.json | 2 +- .../simple_noise_level_chart_card.json | 31 +++++++++++++++++++ ...oise_level_chart_card_with_background.json | 31 +++++++++++++++++++ ...l_moisture_chart_card_with_background.json | 2 +- .../widget_types/temperature_chart_card.json | 2 +- ...emperature_chart_card_with_background.json | 2 +- .../widget_types/value_and_chart_card.json | 2 +- 19 files changed, 255 insertions(+), 11 deletions(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/noise_level_card.json create mode 100644 application/src/main/data/json/system/widget_types/noise_level_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/noise_level_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 2c3d0b8919..cc3b703fa3 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -103,6 +103,14 @@ "simple_soil_moisture_chart_card", "simple_soil_moisture_chart_card_with_background", "soil_moisture_progress_bar", - "soil_moisture_progress_bar_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json index 2f829baf42..93c92941b2 100644 --- a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json index 933461c9d8..33ba24a526 100644 --- a/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/ground_temperature_chart_card_with_background.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Ground temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Ground temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card.json new file mode 100644 index 0000000000..a32b3ff059 --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json new file mode 100644 index 0000000000..02ddfe3a58 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_noise_level_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_noise_level_card_with_background", + "name": "Horizontal noise level card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest noise level telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card.json b/application/src/main/data/json/system/widget_types/humidity_chart_card.json index 9b59059ac2..c66869c29f 100644 --- a/application/src/main/data/json/system/widget_types/humidity_chart_card.json +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#D81838\"},{\"from\":20,\"to\":40,\"color\":\"#FFA600\"},{\"from\":40,\"to\":60,\"color\":\"#5B7EE6\"},{\"from\":60,\"to\":80,\"color\":\"#305AD7\"},{\"from\":80,\"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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json index da6078bac5..8e3d3db401 100644 --- a/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/humidity_chart_card_with_background.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F89E0D\"},{\"from\":40,\"to\":60,\"color\":\"#5579E5\"},{\"from\":60,\"to\":80,\"color\":\"#2B54CE\"},{\"from\":80,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/noise_level_card.json b/application/src/main/data/json/system/widget_types/noise_level_card.json new file mode 100644 index 0000000000..03d2551fdf --- /dev/null +++ b/application/src/main/data/json/system/widget_types/noise_level_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "noise_level_card", + "name": "Noise level card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest noise level telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":{\"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\":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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json b/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json new file mode 100644 index 0000000000..8b01223e7e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/noise_level_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "noise_level_card_with_background", + "name": "Noise level card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest noise level telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"bar_chart\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/noise_level_chart_card.json b/application/src/main/data/json/system/widget_types/noise_level_chart_card.json new file mode 100644 index 0000000000..d267ffb8ca --- /dev/null +++ b/application/src/main/data/json/system/widget_types/noise_level_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "noise_level_chart_card", + "name": "Noise level chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a noise level data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'noise', label: 'Noise level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'dB', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'noise', 'dB', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "noise" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json new file mode 100644 index 0000000000..e263ea286a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/noise_level_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "noise_level_chart_card_with_background", + "name": "Noise level chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANIAAACrCAMAAAAkajJ5AAAC/VBMVEUAAAAJCQkzMDq/s58wLDOvo5HMvrpteY/l2cu5sJ3S1NfR0tXW19rU19vU1trT1NTW2d3S1dnc3t/Z3d7OztHKyszd2dvR0NPe4eDY293c3d7X1djX2tva3uDU1dfLzM7W1dXh39zd19jb3NzP0dTb3+Ha2Nvf1dXa2tnNzM7Z1Nfm5+ja2t3i5Obc1Nbj5ujj5eJ8wyLn6erd29ze3Nva2NfW19fl4t/f3dzn5OHY19bg4+Hf1tfj4d7MzdDY1tnl5ebl5uPd4OLk4+Pa1tjp5+Lw6+PU09bg4d/c2tng4+Tf2drf4eLw6uHt6N/f19jk5OXj4Nrh4uPn5uLo49zf3d/s6eLj4uHq6eXr5t7e3t4cGx1BUGHf3+G8vb/n6ORCR1N3d3pIVGUqJivGx8obHiWkpafo5d9EWG0wND8hJS1ISVrSzshIXXNLWmxhX2LCxMa0tLU5RVUjHyU9TFzs6+WdnqFST06nnItBVGg/OUEwLDTOyMomKzWoqq2em5TCv79/bWlAP0uFg4YzMzOwtr6hoaS1p5Wvo4pNY3tMTmFLSUpyXVytsrlKUFjm5eTd2dDJsowWGB1RYXWxsbI4Nza6t7SsrrPOv6OVkJNIQEO3ubyGf3szPUu2s6yqqKmgkonEuqbHuJx6ipCLjo+Wi39wZWYSExeurKammH86Ljasra3bzbGZmJ21sZzBspetqZW7q45kdn+RhHjMycRTYGdOWV6FxTOqp6Chn5p2cG3Ewrtuf4a5o4Synn5MQlC0vMXOxa+VlInCqoRTa4NlWFfax6TStoRSVmlzVFBhT0zk1bi7q6GIemtaVViTyU+Th4maiXWBc3XPu5Xl3c7Y0ca7t6XCvLLcwZGtlW6/onddbnZqbXHl2sWNdna5nG9YZ2620ZSsz4CunJfKq3jP2MaOlKCijX2SmZh+fYiIcWNkQECBZV3t4tCQoKeDkpyiiGqZpK3LxrybrbXE1a2TfmK906KfzGjVrGjDnVhYLC7J17ufy2ilzXSZy1yAbiiXAAAACnRSTlMABiUgvMC/sbCv2a3VswAAMjxJREFUeNrskzsL1EAUhRVRtBdsFSz8AWIh2AoWCoK1YGO1IBbqVEYRnCksMo2MIGsyGnEwTGZci/WRQBJM0GzEmHckpDDiAyPLirDbGSv1F9h4ZrjVvZfzcTlb/uu//qG27SBVIB0T4a6LhnQTmT6OqmYTVjjMozAYouNZVK1xEPp9V5mOE5pmEDbYHaIqsENKGjuo8WaDQJjiiFaRJafObaybNAw7HAUPCLYcaScigeTmPZ0aXAqjKITPFcJz+DGx517irZKnHnVNIOxkZlzj8uny622Z6MmrxIt/xBoqXjLNu2egj0K4iEK+kETTNEe3yGX+Xtm17S8iYpkVbjuZ2mYmzaDvqzaFlKw3fYSXXdQv67rxcdA1fRAMeBPIurbNEcuv0xAT362kmwVBYJoZ8ZHvufM4CMIw4j+IflbOFCs43VkfOKssZIipan+yQQFzjNObl0WKzlzraYFKxi/qtm3AmC7f/iBI//GkmJ9TnMT5iKAODGahp5qCOITsvQ5nHHEDwViXlgCQSV1SXf+TaefQ+pTmWZSadRO+t1JbmqZ0h5ZE64hUeN1WPTb71Ez7wO/KsA/WVWvhzj5b247lkhCfKpyU25veLlJSU9MZUpw6NmrqiRmQwl2RkM9l8Ul3uyVxLItH98gT23swl7T+JND02me21Hn545p3886scBwcG1d/IGPp6lcRuBrfH23DmWFp4CsvPkmoM2WOwGomIZpe5rx8L59YEmjb/0B6/15b5Au5YDU2AaZBZK4X1aaze4I3zmh/01RpjrsQm07dL32/o36zJHpvRgMNGp0g24G4h5EVdq7bp1SvmFOl7jPTr9DMUZ5NjWszCSR3QSggZ0sI7r33RGoTgZ5wcflZwVzw5PaLa4gjT5RPb3svYk2I+/Mzl2JaxN6yMBLmjGzXbicvvfkNUAIXCp2VCwsYfG4uAC2n05U1+wMpz/WSUl/iMQN+PnQgHYIxN1EwQkShHwZm4wTLpq/SsFoHLU4bGtR9txmDRXEYVanfNWaFMa1N10KmBHqHnE9CWIh94gxg7BJvVriCPPzRr9ySWamnp+QTQ8Au3wPj2wzehp5FJSq8+OOPRkf0ow04hTy58ePpp+SLYXCQAGduFGVgfNRueUgosdQTA67mIlHu6OABdOcK+wOJWkFKrLJKa1ZWodP0jdj4gqRNSALSjVSkjdY+MX2/afqwxilxyJiaPkS121IG6tR1GSOkns6R/kHUmFm5/8xkDeIuuoo8DlFDmjOOoqRcAaWFCv69LN0CFOC2Ujz5du/sXAOjcy++Cj3v3Lun7AFLnj59es1A7AuKDcGcRBpiPF5y9YHmIQ0a7kfNEPoDsYBuUZQPxNzTBPgDabGuGgcRDLHJDNsJMY5I5NPKt3DtY7Prgqip24ic6jvf9jtS1U3zo/atzg+7mjnUtH3hUFHrOl2XlFMOHkxDybkn7cQCIoUoAUzxkPEAuPPp3ScKV1bFbTCVjwyr4Nd9arn8NpBAcO0cY0j34qfPxcsvUBFW8iVWLj2N49lMefLm/msLzhibfQT6G01HC2P+qVgYACrTBfAXyP5NtJW+h/baguRx1Gaqqg5qlqn5qaxtxz+WIWujYYjaE1nWnjjatnnUtsOpLDs1jMpOHc+GNhvnjrYHx4bDJ9ULBybqr5eNLeO2PFdPnjz1+JA62ZNPVPXx45NH9h/ep+6eHNl7TD35TD2pTp5NJlcmk9Xj1bFJPsnVSX5zcvr8szy/snp2pXz2eHXz2bPJ48njY48n6uOfbNaxaxpRHAfw5i/ov5DOXRwEvZYMRziJQ66I8Mwlg4QMXQ7aJXjbjZehgxlOgsih0gSFQhAdtGLAQDYLCURDCm2HFIRMpdC93/d+73wvmu957971SvI++R4vwf/D8K73pjd11zfWy9MIlQ4u29756Zoi/RqM7v80mjfTzGq2EbrYNp/RLYJ7MT/MUDDTsyNiWTRS8nkMO3qKxaKZNxOJhGGYecMwEqmNjVcyaT7gNocxlTIQPuZlLJWXw8okuLucBxqpMb7/ftwPxs+LiKSHnjDGaKpEqyTNJJdS5IlFCP7NNE0D4aKCIOHUA1hKhEw4pQgX/g2i7kUwqY987cVrTcYjr3WX48taJa2GHjAc24RZIjEmRBZRMJEe0ySWIBVxCJLJW9pET7gUCjDxbBFMmaDCKUwGlYRRksqN9pEf1TovVMZfTprYk0BitLxtHAuPbcurPChUkkQxcRv3gylVFIc3QWVgKJpmUQ/uNze5qUARIIh0EuYyoiiqSZHc+WkXG1BXe/EmnebootnKZbAs1Q6RbESZ9DAKMDIEikVUDg7ZkCCBQyRTIyUgMjfx0hVg2eKnIqloJHzElxUyJNf523+4rtf1TfzoE3a8o/Ih4z0xIlGkQs10ks00GpdwEoVfi4ShfhLmIq/RFCJFmEEEFomk5ykpnU4rE1BxpKk3r02CoO+tKdL5yb03uji+zcismGii4sST8nDZlPyodjPpEfUkEI2lTPIRRAXh2d0VCGlB5IgIEUWZkGl99q8b3Oh/EFXufvyeBJNb6kgjMV5Dv1q23dAlQzVyRLgL8UuYMvyg4MEJyKCkdjNwREj09llUrAVIitJpfOIkFzP19qmtT6bne14LJq2lh8ZkNms09Jb2KwuSv3dlu3sguWXbHjoOfokCg4FIuLcslzE3a2VdRdJWK0aQkLgrRdNFRNrlpGQSH5GFTDS39PKRanpdq33zH2ZaS/PuaSsI2lNs4YxRR+GAQQQQSAdhBJIbVsO+g2l4FUbOWTW8JFI/LIXZMLLCiM+SkoSKaLUpnBpJRYHo4YJEBp5sTMIFpOW3z4jTezz/+eh3PY3U8Lr1tte5ZTKVEgMJFREpjMLhnvv1zIlCkPyqG2H1zvDAec9J0JT82v4wtKq+9eEzSHFHCEkU6alK16qS/vNhx6BNBWEcwHUXAo2lrVSNBsEuIhgTU3mLErAoQmiwVEGRilneYBbTQYwPwTpkiNA+UEOMYsOTIgjNkDQoqDhYEohBqVOWDJGYoQju/r+773IXK/6fvXe1y/vx3X2XvBAnOEMkCZxRC/CfJnuxV3/cfd40SJ0X31/Uu/WcIlWvgHTeHpAufvp0xU5n5u0rAMxvrDyxMwvpdHo+mcykk1eepNOZ2sLLUkzMMulrLFKkOXZgwhEItrJofBwamVAwKEpEYRHFNEVwGayx7IfWYnf9rnEudepuYbHb/TZEqq5cVKR5e0FUKfMEpEpmvlQqLOSStaQgPakksZnSCyhWPmafBEm1ZkliBc/w7Owy/38cogEpSAnNHEWIxDwm6W4Ok8qvzLvV4mrDqNLu/vZ28eOjymGTlDFJ8x+u2LmVlYVaAnsJO6aW2FhYyUtSbQVVi+VXYjGaTb1Oz4pjh/uCJjEID88abRunSA3nKETICaNe/zHZ7V41n211jI5Xb2wX6533uRhCJLd06brrbshOTYNMLiGTSyQx4LekjJ2c5c+lttnFOEZJxlXMemEDKdG+gUjlBGl2kEQUCbdysdVpL9YbBmnr0fOl7vbnHInoogxOH4BkEhwC6TlnVmb4FNLNbEAaGVEmjBwijewgmSESwiyDZImMra+2uu18xiB1i0sF99HSoZg0YcAPKQwPi3YmEklGcSWjJOLQOSM5JMIzn1MiRJN08AciIcokl95JGaNWoeHlJ8Zyu/Gy2fjSM9rDahcNYvH3L4hAEaNJ+qcmnkhYiXgkIboOTMigTHAokohGQMSqHaQReLQJMUgAcv4iyXIFisXug6bTNKr0Kr/UcfrPv8ZiSS3S0YtMWvCDyHuEUFGgqJsaReJOrSiKQBwx/B2IOKaISTTTJG1Su+qX08y2nG3HqNIXp/G63u4cAykJFf6BBJRwwaFJAMXNRIwI0SxXCSHRcC6PUEzSOTXRIu1h0jRIciEaphBIg5TbTvNDfjNrVCnbbCw12w+/RaMgcZI68W8GaTiWpQ898dnHd1kuONo84nkPpPDcJunIEaCO6OoMicwK6TLxXJtCiGG6l193NvvZnnEubXc6vXe/P9tRmNSX+uQAlavUqnHuBIbGlSRENh4CXT3uTnOTQ5cTlpt7dZEA4DCEcpnCILNGHPZwIOKQTJHsUjZ/f6NkVqnfrC8VF7s5Wj2zBIoSJYrQpGAnvuUKCbtcrtieN+MWtgLVQsHO1OLxslcoeAVrzPNC5WW3fKM65a498x0/Hl5eGwuvpUZRpB/3fHdTo76bT4mgTUq0T8W/z69LtFOkSSiUMimU3Wj0G/lWyfxA1P7pVHqtvRZ/DWEMfqNe5iUQL2HjXZpViZcL5WqgEvdwgVSzMAnctMbce1ORtbm1Odc3dev43MHlsfDVsfGbeO7b40dHrz7zpVi0Hwy/X5COkMjv94vSwOSHZtDnTJFJkgGMUSJbv1vtTWd1dZdOo9f92aw+ti0yqURUXDtRznlxQcKtULYD3oAUJ1LFGlu+NzUnSNMgnQ7j91R4fJlII7dSvru+FHcGChi0pQAi0cSEbtsqk9wT9E7SJDbpnAr92si3ik62Zyy8t7317evF9W8RsfKkRptCVdeztryKJM1U3JogFVwiHfIOeQHX86YF6cEokU6fG11evoXFlxJVGr2bYhJxEAxqzfmDExOTFBJNEiZ8NEyW6elpaGhUqB2Hrs6Ws57dzH5eNUjFTedzs7doS9IsocxaWUicwjcd9dbDoszJtwfyUxufsLy+OMERf9Avs0+WKBicCAIkUJMghSkEmKaExWiIZqQJA5POizKVN64vOq2sQdrdKrbf9oufykyKGmGRJQUG6RSDEHGK8+sqzmmDpEx+EoEkA5EAoUgcTRITImFEmGSG9xNIlF+tT5vr/d5Qx2sXi8XH9WNEMt68sAkeC48vTKIyZNEgfjUKkw4kF0jEKDSF/fv3jzCGts+EX5UoqKqELaVIwIVFgDJIZoYW31Z/vVXqtcxzqd7tt9fyGzf41Z8y8bZCDVQscGROyQlb+K5JQKmcAQmByR9kEUVOWEOZxF4CBiKMuFECAYHSEiNEOn9e0FycScimQeqVfjoPOi/vWKZJV0mTaBoPiUu8X2PTDhJXR4jOYOVBRKS/REGTROuOLplJFrGJcnJIhv2kUys5nzZ7jmOQ2vnOz2z7zTGLQiTZ+c4SCV8Thkkk8alTAVO4pg4dwoz3EK87OodYZJK0CiRyKBMw0oNxjyQFKNwkVAyUDE3cP5TZX0xbdRQHcH0tahGFynSKf6Oxcyo4sYuK4wGGPDQkxqRi0y6k0cxYuhhugkZbqjOxtb7UmnZElog1seGJCQ4fNMYmtokFefGFENFsEUs0RoQEdPH7+/3O7TmVDvVLe+9tB0k/Oed37u1dbHIyli9OirV0uhQ7fXbj04eehgeYh3sffvrhXp0ncF/XH+nvj6Y1KaJF3V1TdEZ4KOOMQDbVHen22XMBIhOcemg4XHdwrwgkiDjoNhKpAEImI+lgE+duG/dZ0crl/kguXMH5MBZc+mY1dj2mMBiP4IkDnftBypw+3h8q9GcioyBFIhFYpjJpzzlXl/+hUZAykVB3xBeJnOnvSEdaAbJJMCkRDCRiElWmPqiNqtWRq64Ch8YDWYgmWDJpa+HnybJliSEe24i/eXapFFWOd5BeKhGe6LtM5owrWuiPOkP9Y7eGugsukFznMv6RLlznONPn0l2nu893h3xTztDdo1FlIZEmwUIkUBqTrrJJSgGOTIficLUau17JV2IbxVhJNF61lKzGIrNRA2ITioVkWtMFT6E/FB3rH/NNdaUV6birQKSIP4rGO++bAmnM1woSX5OSiEkqRDIgMhGLIcJE4fYTJIJFF2KWVSwX5U2v1Y1q8tXJe0CikIhI/kJ/4e6xGun226cyEBUKmuQ5PXreN6ZJkWg6anedIdFcoLXUrmPvWYQwSVoah0VEyhQTq5ViuSIaL1yqxkqrky/0solFR2+/vV/9dFx/d7/T5+zy4GrsiKv1eNeIx9Pl8Xm6XPd4fPiHlpt8ztYzo9Bw2+lA05gEDJvU9h+imy9LIhGTkgkL5yZBmt1Jls+W8vdgLdkoEiGYy2rLt6xBUl+a9W1ePBGfCr7LOXGhSiQSCRKtIkp94yEM2r9IbKr1nydTrJTzZSsnGq8YW7KSKzP3EUkHpF4iDR3Fpo6EMatgx+FSsgMUuFRogu9HggcPewkx6Oab1ZNMTue+KI4fC8mqxIp1VSrF8menHnuaTD0gefEfqF5kaGhwcAgsfb7xaRKFZMgBO4pEqkYihDwcpYGHQB03Ix16OkBkTLTDweVU7y9XyrNWJScm3nKplNzYKbU+akzennd6vF4N6vEeAknl6NFBJjGqswbS+xqphUEUQZIiSYJIk0hAJtqxS6CMLFMslyvFhfIVnJmfy6+WYp+PgmRMdnpAGhi0w/fihYlI6phJMP0ryWzlKoLGWTPhWIaMSINq+fPJfC6RK4vGy+5UY6vZb6MgkYlzvyENMYkJGtW4Sv8gqb0gqQdXCSGSCvbqwxNJmCSuHpVOJKwylpMYDz+eLSVjlS+/A6i2nEiExjuqRANEwvdrGRYhLLoTj71l4jmONCCRiEjOy0WBsGGXxx9LFhPhREU0XunVszvrC+VzAOnlhLXUA9PQIe+hQ4cGMCAGBgaGTOu17DHxIUgyTJKtxyJB0iCK7r99IicGkTK5VK4cthKiStX8ZCn7WiljxjbGA6LqMzQAElA6CvQsGkqZTPM10kkTiwRKiGSVAJG5HEfAuEyeSLiSKy8kKmLi7Uwmp0/NZNVlqyZ5BQkiIt3wLEQgqfjUvRBTMRxJ2H4kLlMzk/67iNNHM5ByJmFZuUDYEo1XxE3x6swbTpB0vDrAgEQB6dixY/ob3cEWRJEOEgkmLhmLDorpQCI2sQhPQdof1FH/yk6kYuGCqCIbL/zh2OzH8WVUCRxb1KMkhw8frpGU59ixFnw8m2TKwxI+wi9xkcjGJIia6/vuv5bI5XR1uNRWmpyRoirTSkLe9MovfxsrLrlAQs+RqOewIrFpEGWiFa/XE0QtGAkw1CCKKEcDUfSeRNii7QD6/yQXPUkkRnskYVXKuUpZkD4PVpPZWPwqTUK06F5oKJoEE0gmqiIt+HQ8w+lOKo9xFkkStu3NEDUjgsSefUkuF8Nk/FZ4HKcmXSXKx0vl5MJPhXO9hoRAdK82YbuHhM9IApDs5sNLSdIONsnLB5g0SJkaiPouJ6KGI578tfS4lauELTnxSsF8vDxbeEVPBkGC6PCDNdIASKKhlAhRDtQKlnqTaLs9w6FZp1aja2zMzX2IU6WpUduRiZpPkqzEuFUcz13BiReLweXlULSXTESCCSCImMSRt0e0TDlIpIDqC20L18hw1I+KaT2QUCgx79hDJtlyTcZEoHpSOJyaSORy8nbKanV9aT3rt0c4k7SISbJMEgSSMTEJUSa9IRGxms15CaSrYaK+u1aTQGlSGOzwJBc89KaiNBk13hKkQCo1EQjLtfT8r7/FqtXVx3vZRCQpAkmbqJeYRCbC6Fnu2V3b2jyiC9dynf7dI1trW7v6j2plAgdhEooEkf1Z6VjagINFcxFZpYlEJWfJIT4zGV4qrBeiGjQEEkQNSUgDktutUTTNQbqwOP+AyvYFkHR2F/Ub82tEgkhXiZYSFcnRZDPszy32pjguJrEpkkpMpCbmUuJUG8+vz0xvTL6gTrVPDw2RCCQKkQASJJioSG6YoDJXeSCtAURZQ42QLXoHSiMygUeQ+kByOh2m63R1RMhqQqKa7EwQRUpZmkTJZ7/Ejf/fWxVpCFWC6MEHQVIYMqkiUeOp4H9WCKUwUCH2l6cLDyCL239pxq76vQvqcPGvS/MKCZAmcZVo4jn6HDqKxJ23L4sOI99PDAesuTmxlirrY+tTxd9HTeN5NeleJvF5iURM0hSlUdtOY1I99sMB5AddFVwwbKt3iDbvRJVs0jWGVG/SXacelwuX0Lid6Upq7uSplGy810qlr35LLtwDD0wQmXDnEQlTHIXChk6ditTuNiKQDKpDVURfGh1UgusQ7BcPqmzqMtlVuvpqcJgEk84/BXcgDVSSNDExbqU+CQjSUnV1dqX6G061WtSYRFPcXk/6Eu8AimP3HLb66MLi4uKaWVWqOhBpiCYdAW7bdB5EiK4SQlVikcgtra2tt9gvRkawSft5dODZFwmkAnjIq4fgUn4slo2PegEikl5NTEI0ScceDgdAct91113wIJ2dulpUL226BAuO17DbNH+yiHqBREVCiKTnQ8MaQTGKmEN/4hl/U1M4EWpqCk2bt/AnfW/jvBRInUoJ0sXzycmx5OmbvIgCEQkoWSU+M4HUokn4+CC5NQikuzSIXgKlGg4ktaZ2ITKk+XZEkrjzpKjWa65RP0I6/+v+pplw2u9oCsb9QDkdKm+fCEwolTgvjZXj8bHZ6kiPisIYEtKQhOFgoklIp0nbXVhNbmzNS8+2ohDpgjkhqbfaVcwMB0lHl4lWkrN+HaE0kZVIRJUoBBhIK+OV10cc8ZW4HyXSKVgnAwGcmcRa+qaUzFbXF1rhIUsDEptQI9sEURuiPCrYmldr29t6ZP/gZpK7vd39J5PMRR7FkK5tOB8ihXChgP1MMKRJ4WkHHg5/MOgn0ttvvZSYO5WQVcpPJ2PV7Bd3QmRbzJY7T5JYdABlaQOHQyZUA5nf7OxkEkSa1NzMJDbZpL2qlel3p8N0rEjT4ZHxkMMRDDqCNulE4NTci8+dEGtpuhQ/n5/+5UZBYpGJvCRqIZNeS23UdCJ4iY+uTbttbdx4RIKFSbJMgiSX08i7H73st0mVERgTcfzGSDo4Y5NSwym0nvxyEctW4hcXfm1H45nFRCCIJGlIi57lrnNjDNii4/hh0u7m5uafqvM2sbT+QVKX4YYkRCA5ZJpqhcKHD5NIxEGhKr00F0h9/YlYSzvVXyezH4y9wN/+iMQmc4ty8FmQuOs6WSTTSS59sdDWWSOhBy9pEkx1oqsx864FSaj2GPYxXfteKvVi4Lnn3pL38YLJYCn/yzXvkAkkNokqgYTYJAYRifPkk3qnpzeR3G5FoiF+k+48KQIJaQRy/AsJf/RGanjiRCJw8kpRpaWdi8tfZG/0ehWqbj2RydxIhgh56in1LcIm6aoQBKGdMa3Bsobxh92WW0efanERBZbTmHBFpEF1JkORGEnEjxAh7w0HTg7PDcsLourFi7FkqNxXXyS5oCCiKoHkg6jzKd9ThsQxlK35+fnN27RpS1mwsJTMkHB0qRl7FGqxef7PS1vw1JM0i8qwX3VGbRIebwyfSJ0cfkl+q11P5peXPt1w3XsvPHtJPSChRhANHtNVUhgfdkbEk0GTNtXp6DZtUsNgE++bqwhEl+1vyu0vJLI6igN4zzPTrsbYUltrDGXslO5DBT1EIzUgbUGLEEEzDXPHQYxhvauIoYjNeq9C47oEGTJpzMMMPiS+RH8oBHsJ3B5q8XUl2AUHB0IRo6B/9D3nnuvvzFyN+g737tVV6NP5/c7vN3fuEuns3T9Aamv7MUIhEg7W8FmTQq2i5fEOnOdC5elxqdJCNj1088svc3pduuF8u3KjfuYpREgmIPVKc+B3TKiSzCEh4SNbAXE+oKbwC10R7iueU7Lo8vumXSL9+es9kO7e+0tInJNITa1PBtx0R2hxeh2ouaiQbmbHxrLpMVWln26/t7pxuPY5QJRW0iWQuiEiEsYeSBIhMUcSi8UAQFXu/YV5g5oQCUr+Du8nunhOPdLGpL/RHEQkTQ9hTLCf8zej0xkizXGVylGMOyKVbo6l0zm9e/jJnqvUy3MdLSTZGoGEuSQTiUhvGJAk5otejwFFJsk9mlI8qSR/Spt4qM0beGcj92sThx0QsEGudU8AaZBQ7YvXpErpT9JjE7mr+oGb8evXt53DqIDMuuS3PCZBw3nr4WOQoBQJicXuokBcql8wozi7cjvlnid66O5vf4F07y8MPJig0abj6giIOapuI1EMvOnQ3OBiO4JCLaRnUKThrF5qt63p7cFGGLNIzSaW4SsmyVzifhdYj2IxJWLU7q937/76gbRzDn3nl7PkYdPu2d223d2zkUibKVO7LpNfFdW5W2J+eHZoLD2EpfY+NZfK9l65fOtFIek+DlGvIXG7I5KEZhGJyCEeMdFZRJIuREDcxWWjhzIdkxBl8oskLCNRIIT3eDdHh7NXh1SV6pZT+2llOw8OK66ISS1L3MOlgyMyn0gUQ5ghGn0mkTIhAoMHaWNTWzPpTAsJhxGJBSftn/2wMDqRGy3p9rBkN24v7YThYBJMitSLr/sREgVJMT8vUAijwiMyhojJhEzmrgqZyEJnaebBaJQOzSUstDfTBb0TX3e2x2/MPsIMKdMleXdLwCsvk6ifREx6HiEQSvAqFwkYMomqCYUAJiRtMiJEyuSduZn/H9TsUO7q2MTomKrSz9vTt2+XnYeO5w8FGqoQGjiJ3gQKIgqLnuV5xCIPE+t5waSV9GCQ9HSbiBRK9/H/Q1rI5tJDE9lhRVq/3XDm1r95yWyCoKLQh9BXWESk1wzpmWcBItHrXCRTpYBLKnRCmZ7GSwJSQBR0BUWS2ezVbHoinSaSxLkx+91KY/wJ4mgTYViEIukq4RE8LhBxKCzoeTIgUqRYgIQWEayTiP4j6YxPGh6dSV/NpdVc+r0+fcvZt89pEro3NPTJTD+RXkM80fOoEpEwQ+jFJJMnnzQyv+sFq+T38UCVpN39vyqdmZ0YGpoYLul7D6v7e7em3/usXTwsuoQicUy3ExLyLPUFDi1BvoZBiCcTkSEhzSKEPf+P5O9tGeORcDsFu4eC3uPV6nvrtY1qiEES7FXJhA0rPabCIF/0zBs87CRkIYWAxEQnQ/JXXAPCNBJSoD0oymkqmW0c/NJsrjQE0owiWUd79e36UqcR8Taol5o5RKgT7xs41BpQpJjMJJCMwkTG3Qv4e5g4rSR4JKJSZQprwOkmn/TtcGFoIj2xqQbegnX4dfmg0aZECJu6OWSChkhYkNDAhcTzyJCCKDRCKlOAhHhPdCgSwkuTLs3pJEYJaaFUGs1ezZUU6Ua9Wi83fu6ACBQedMglv4kLiU3UGtRMgkgohmRMiCy1TfsHReoKkrwCmEqFTyEd00AqFNJDua2SXpdmr9842vumA6IrMF0YOdudr6y9vbycQWcASEQUVAiRFZZIiBZpkpgkLNIkNmkSAlCAFA6fNvKOO95WLpvLjo2qKi1tb+/V577P00qEwrwdfbE70/F071L3Yj/H9G8GoUjkMY37lEgr/zeSRJfJFyG+LWhq3rgulApjuVxJ3/S6tVL/rvb19fshAuBKN0jRa5WX1vrXsLOjBcmIXkWkRqLSpmCIJGGSNmmRRM0kQwqfiPITAgkcdPH3VZUO17+7vnC4F+ru5oHWG41eutB77cURkKhCc5WiJ/Le7OEkplhPQBQkxTxTVyy41GqSRJPYtD7o0cJB0PTcHA9AbFuHcoVCTn8Ys7paf2/1wMrLM4W9F6KXOpaXujOLGW7f0zKPnmEMXBKQYgI6XQS4H10lf21ijjFpEpucVCo1aTtwNZmkQHM4iDQD0URWd7xb5YXlw5qTvwwS5/htH5OuybATDM7G1KNIPUGSEnUxSUIcNmnSGSYZE1S1VC086NiT7MqEkL6+Y9OF0DIu8K3ZzUJhq7Sl55LlVKtH+zWQ2NMtEZJfI5DgQZpIngN/0IUcQZKoVMAwewfcgKC0kkIk4oTYNVnLhPtCfUIyn8F/mysMl6DScwmjrmrfebwfJK4P53K/2X6/RSKJmJJ0gEQaP2QTJUMpipRMJhOJZpJgImpL5JNIZEF2nIzjpuZrefnLCyF63E0+jMGiNFPQc2ll/PDIPqzl+3nM9R6bgBLSwyLSJOTYomiaxNEkmATlfWYGEiw4PBIORVqEiBI2WbTdlL0uJiKxCU18plQa1jeQd6yDg+rG0aOXqUqcAIlNrxgQhpyQ7KIRCUJfisn5xnLKlUoRJGXqaoswBxazx/MUEA1A1GLCI4iDtuvagyGEHklErfCTpU3MppJuD983jg7eu1Vv5/agSZf9+1wgmRolk/x/nEzxnnIqZbGCXycnWZkfsOfnJ93U5EUh4V4XmYSEQCQmIUCECyU655Gosdsp114M9SFMni1tlgro4oq0cuBY9TtH+cuIT6JrNAf5OImK9ArqwyCOiHpcq+y6XKhTRcUfUtbFJOWia3dJIpQTSJafAQsENokICYuiL1+bT7kZn7RQ2MqmS6WSmkuDK9Wjam2pHRAmSW/wPlACiEjUgZ+LPfec8fC4K7v4T7ZT1uk1mrIG5otJSXHA0iREbYVY5NoSJywxIkEhqFCm1tEnwkWMOrz0TS+nUa1bB/ud3SYYcwh/MsuiZ7q8gKRTdMs9CBfq5HztupV4POmnkppWICYJiDOYwuKjHI+faxb1iUmFBh5aeLpQ2lRVqjb2d6r76/ezRZFeQh6AiUSSZHN23B5ECnVCMIksrqgkkXAGipFIwpDu16SMSx2BH0qRZ7zIoRMg0eK7MFYooD/oJn54YDU2GtVOSDhEIo+QzkWjF/1MNWUkVfYvHdcdmWpJcTX1Q3FKBw9tvTvZ4aWzsxNnSZ7zw0f8x7Wm5PmQV3M6PdYsQJszWT3wGnvfjF+vHr14WQUkUyR6UiiRSHLilKQX28alTC4qVBxBbeI9cQomUQVf+b+VQI2QTncnwjE7O793O27GPMeBSJVMqcI09qSdq6xtfpwtlGZmVMfbr97ZOLxz8DiPNiV6wn+qpsuQ4oo0kirKZZz+gmYUmeKciuuW6SdxyG/BQ8fIQNmQImo1ygzUtMigVMJ84KVNI5tbm6V3SppUwybvs/3VDDugorCIPQKik5CSEtf2fHEJF0ouMYmm4jrnzycS53GS6SQkfafLtcGRGJGYFIq7hGkU4b61GVQp+6kmfXbnoHa098U1OHT43/SIiEhsIkICwWXZLbLImPxCTVmp+WILiDgkAuaHyfM+Sd3mstx8OECKRn1K0HXcF0eyk3gV3lEbonq9ulHdOAw1gZ4QEUhMIBGTzieE5Fpx/ipO0YVyBibRuJtJcUXCdPJMeudN/duQVJkYhXMzDmXCi0/n1mY2SaRvelU39lcOq/vtTHnbA7EIJBZV5iXli4nzgkpaLoB0STNJF2pgwGkBgSN1AgkZSVVwbnrLx/1bLCpkYVAgjDnHx8jMO5sfTza9X6oeoUhWPf8SjTwB4TlCmkceacSSYMdYlJmOVRYYmvItKTpTQZEkInEGMvJcik+yJ3FqEUVRGoROHFMqpUIWJ3GrtVD4VDXxevXgaKGxs0zNgTz+0/osAimSSODgYVOeT82XuU62m6BwBfgUyGN9zBGRYkEyP6/fHUn/1qJoMMQJqJiEgVf4eHNGV2mnWt3Z2siDpEWdi48//Qj2LvkIPNKuUB0b3bmY+IdxO1hxGgjjAK7XbSbUQxHZWj1EYcVnmOs+hBB2bRkogpu6kEMCQaLuzb0oBBtkD/UU6SXQHqRQn8AXaA89iacV8QX8z+Sr8zU24L/tZNvtQn58mW+bNHn5ZGRIhzRLCHXISY/uW4iNoXRer/WCQNS/IbKgJhSPXy2y6GQ5Xi4jRjr9/nty/eUsAIhM5gpY9VhpkaNA0iqITDofsB/27Qw/kbQyUSCkxfGjY4x1DeXqySvf5vXZTlPYguS/ph1WSKTlMoWoYO1hgX+116ezwQN7Hrg+XVh1lbkS7IfKq7WH7KFjEFdnT15WFB0SEY8FqONj9rxnNI4ZXz1heT2ApqFEjaVSIZHefltG6fLZCSetFvPLdek9gImREpBgouhW9RDZXXHzG60hWz33ualXkfg3SXu69l+QlLJZxZPEerM7iRipxJ7FZFEGd+8aE0SGdBFcbE9BZc0KAhtUTgeaBhNaRK+3Fem4YB0Sab8IoAZSE+r9clikxZB1vJvrcrIqF+scFGoOmElIcGtLwmrVSUbicFHNayFmcXzYMyiKu1Mk3uU8K7Kko7rImGi8Ksbj5ceUV+n6+ucv7DH59vJrI+JXThkRhUQ2lYeyR4RNT484oEM5oBDGjCQijs0RRaP0eITF7SPTJra1Sk6iKI1j3vFms8tyVv7y2AXymlORuMVpCIEYiaOMR5cJJHPkgIl4V2CpiwiDmzFplRmoSlFULKPlmFVpvfj5+3ryyaerkvTAKiQaSE2xFoT6NivPMcKKZFMT3dORRxiOeIyJYoqFXEXFOE1jfur7ZIPZVJY+NBDp2LNhSMQi/stEED0yU53ERUZiRSx1EUaUCLld6bJovIyjiG94q82L2WJ9+ZU8lmSOhGpEdYUbkWggmq4k7jYE4jkkknY0FsmTRJKMVEexDRAjoVQRFWmU9tmGtyknp6hScMdocGdFMhYEuookiCSEMKIq3EQKPOiGsK7ALyarF4lyz5J4SEQo4iFXadrvxxH/2Fqu3i02s3f5ncoUANStSI5XXRABEkol2sFA6LREFV+2Bx0yAWdFPObPSWTTqsLmkQU1x5aK1+tqGI+juOBNfFFO5uty7nfvmCis4UGgHy0vhMnzep7bGkghBnkgBvdEkOBHiSKpaTvP8e5W4DitoOU4eJWTbJWYiJMsCKmBOgjTdPZMK7p9jot+H6QbjLT4+W7zYp53239JoR/qh5z6wgny3lT+8KdC+WHgJ0mQhzLxQ5RKJSNNkskokyHeMPKV1ACxUyOqEufUS0TZijoksqbmZoFc6N4wTDlpU24m2FEPujARaTQKRZYMhMIcCnJ3KpVI5FTkgUyyXGZimqkAJBlmudM+yHIV5HhvKPxcuH9P26rqRLCmjY6btqJtYGsy8SRFv4j6w5S3h9V8tkpfvLkDEuaRagsIQgGJq1wXJG8qQ6FaSmRBIn1DEq0DTZKfckwpX6pBZki5jxqRidJA8naKJFmR+DZXN3X2sVQRD8fP4phVaV2ezeZnq68g6SRZ1holmZtn710/d11PZZ/lj2zkDpJsILHhiUxiW8N65weomxAHyWgkRtlUDPCqu9/UMI/4NKIiIVbU+WcydcxtB6XOizju75Cerher09VzVMmY9PrUV0le6Bd3026bOz3LRomg1EX1M3DrnaG52XV07PQyRGJx0rCIoqKIecdbb8pVio6nQ8cL9cDjiXrq3+9LDrIYqpD1cJL1NIqQ7XILNGXipOK86J8X5/wD0QofXOeXedeESEI/rEw0ZWvCwqa2p8dFRGLTiMViGkK/hoklGcbxsCj4p4fV5awsJ+XXroPQUXdrwLOaiCHapk66XMj+KtVIZmgmcVFz/rRr9qxSA1EYZkWwETs7wdrflEHGiSOTWWaUySCMMRaLLiRwt8goojJYWAQEm4WkWtAiRSr/wDYptfIv+I4fGIOKH42Ib7KZk7mbyzz7nnNudvfevnT+4hejtunzvMjLGdJqf2Xa9519cuHsZ4ZPSDh8AFwQQYvTKAQ/4RK0QFrUUsyznxGgPgqJl6KQnt+aJd7q0HX0eJyAtFwQlgQBacm0AIo+fekU82pcEC1uwRdIS3t+bFRMvw8XbO8+L8qmfDBLvI7203Hq7qOMFv9bDxxo6dLX7QH6wvXJKlz6yW5ogQOgBdKnW9XvJNzVH5uFbZvnSL103h70gXb0UL1ZIM20QJqlH0A+hp+IoHnKftSP7u2gb9bQ1RnLD3CirqdoeMUcaVX3+wOd3LMbZ7+PdG5JFPV1NS3qbP4blvdC3yaC5t90/iza9jn+zuZJ+vyrzx46tqO6I28vPzk5uXfv1QkGKIb34oDg5OThw3uvXmECk3GM+hhix/bkFfYY4BIMuCLuD+89PInDq4f3EN05eQjdeXiCB8Y7d67d2Z7cvLa9dufadru9dg3RzZsxuLl9cfPFzZsv8Li5vYlTnG0RxgeOL3DAhic+vfboSprkhSxv5V91vCMluu/73Z69fkkmY/0UjgfWr621Zl2Tek2EsEL4qvJqPFbVqGqnKjU4MfhxVNWgVNXpQXmlrGaj8CMZhRuJosxZooneCGPJjuCjqVs2BGMLGspgQkZTaTMTQsg454ZL2cq25JLzsi2TEpNSljLHVsqikElRtE2el3na5DzJkiQtJN5W8DTNOc+/QjrsWU/2vZ4milH3Vvt9ZbUmGzIIZ/ZOrQkDAjFM16OutFIkcg3eM+3Hahi9q1QlPMOzKqZFJbQVFQuaKEZVfYs4umHGGUd28VWq9a3UmpKGW1lossCx4OeSlxJdK89wIhsuMx6BshY4SQnGIpEFb9qCyzbJk0amsSMANuUoojyP93jzd7UT7Y496/XeP+tU6L1lmlomAg3OdsoqLUblrDp6ZoUSQlR+7Q8abIP28EkNQz0O1TgKUbOhckqDz2PhoyPCCZXVG2eI2SgNDlJSS41xLjOmtGVoM9iTBp5JrL+FRZGlKTMwgREBGPMyS3jDW94kbS4BAaYmhVkFDAJQkksw8Xl7mPrJdVT13UQp2b3zYrLEGG20dRrpZIjDroXzcIqZmljnmKiIUEp4L5jVLqLBmwrEbHDEO6Ytc84RAofXwQpibpFMbDYW30Da8Hh9dxOyzGYBCJnkIGoyGdLoS5k1jQRn3rSZbDKAIGqaBgXTtIls2xwMMFImbYMdhZTDISRhOr8TP72jXb8Wh50+7gMjdufEWlNChGGOOGcAMwyDICBa1xoF5RhABz98YPKDdoPTFVFeE68Zq5lhG1woLJzTJDBDAvIOA7FrlBCxKKMSGVfAg5BJ+FM0CYIyAuHQcJ6UHHxNyeMWzSsanmMqTdo2lQkgAVagmFBGxQcqKU/P/tSeiq2h23doD6Nmwk8W3Y8OR2ImodWEPMLaiVaoDFa5QUe60WtfDdjRJyA1qLGqNAqoEmINNlLXdBSkIp7VSFZKaxZYsCRzqClDsPQPNAEUMeuyCITlpwhaQHDeACxPOGyBG6BDlCIHMZUkOAMabxN0E2RlDovQNU7NkFanzhzQyKeDUp3vqbEoJKGRZoR4vTNE6VrHl1Y5hs0JPCuCWK9MGBRw4JlB1q0HMzDiYnPQ3gpqhGXCrI3VayM2hlFqlC2JkVmQGu0ukpQWECGAA4Dgi3UEGCmLHAsvgYMjb1IOYwDC26blQEqy50i2mI28TYvYH07PicD0b+jfQ4okc6g/wvoLXhMQfFerT4cfavXjn62WT1zGi9lfXQ1m/lCrxcmfQa++N7n6HVps//Vff4HeA7NpM+dxMb19AAAAAElFTkSuQmCC", + "description": "Displays a noise level data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'noise', label: 'Noise level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'dB', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'noise', 'dB', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value;\\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\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"dB\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "noise" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card.json b/application/src/main/data/json/system/widget_types/pressure_chart_card.json index 475189d065..db218a4160 100644 --- a/application/src/main/data/json/system/widget_types/pressure_chart_card.json +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#D81838\"},{\"from\":1000,\"to\":1020,\"color\":\"#80C32C\"},{\"from\":1020,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json index 63ba24c45e..5e005284bc 100644 --- a/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/pressure_chart_card_with_background.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Pressure\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":1020,\"color\":\"#7CC322\"},{\"from\":1020,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 80 - 40;\\nif (value < 980) {\\n\\tvalue = 980;\\n} else if (value > 1040) {\\n\\tvalue = 1040;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"hPa\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Pressure\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"compress\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json new file mode 100644 index 0000000000..0e94d387e5 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_noise_level_chart_card", + "name": "Simple noise level chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAhFBMVEUAAADf39/g4ODf39/f39/g4OD////k5OSAwyzg4OAhISE8PDyQkJDHx8fy8vJ0dHSv2Xvv9+UvLy9YWFienp6Qy0asrKyg0mCIxzm6urqrq6v3+/JmZmaCgoLV1dXP6bDf8MrH5aPA4ZaYzlO43YhLS0vn9NhKSkrX7L2w2Xuo1m729vZb/Cn5AAAABnRSTlMAIL9AEN/GQiaNAAAEq0lEQVR42uzPwQ2AIBAAsBMQcx8WYf/9TJzAJ5B2gwYAAAAAAMB/7dpc+xq15LO5vGvElbNvb2SNMvoBZonsR0iRxYisRuRlt25WbQdhMAzPvkBiIqgUFOusrPu/w2Olm7N/OtzsZcGXSpN29ExKZ2tBZmtBZmtBZmtBZusXIUa4iwx3vQuSvQHNE65qwvc2xl3icNffQVz+snEFlPX/28dA2H+FsGJA1CUCUgbymCy57YJci7nWD4GSo3dDyL5DZBc7IS54EYN4OHFjetWQPiCHeNkRHDIThVhZ3wshdj8gFlyHGBf06YTUCnO0MXXcBcl92YLtEX5ciH4+CAon1m4BYj0hTUJtcCwS+IKcizApmxQcQSTEKSASP0MQAytx7oM/IWTqublAvQuSuI0lVCYclXozQqhD8Dpa4XJCZEdmVXak7oJY2McyvnEuZNrLbJB0jkkU9OKQgLijyZhKvxX0spxnPFMpAPbAkRAT7vsLiG0NmyJnPKb1rzVbCzJbCzJbCzJbCzJbCzJbCzJbE0Isb9qeD9HIZ7I9G2KRD5dJS2ShB0NMOF1jEaHnQjwrPqJwPBbyjz2zW04WBsLw2WYnIcHwI6loRaFWvf8L/Db5JAyFItYplRmeAwzGcfLM7pvI+M4DaJA8mKtIKFq3caTmKcJ42LqXfD1PkZAzaBGLuYiodbJuFi98QZqSzEMkiDixvakkXMIXYvFqIuotSWS3lUKp3usDY2MT0i3Ja4kkESdE0n7ztr0yweNgF/NYQYdYqGdFdA6eXHemV9nxkRTHUim5bR0MTGzrUfLJebyBHiTfPiWiK4OYHv+7HFJEc/nikuIKoEotZba/EwUe1IMEPGHExtSSfzQfU+xBEZ2SBqlkQBxJg8Zl3hVZocNP9qNE2BxxULPmyciujMJ3+y0ytP0p6Ga8yAXTwhmcSQrxmsMe8dgrorUurn6ylzWX3fAyIWAcLOQ8EoIuYbIOthG16WgRpFUSBiuwCprGGWZQcypyLwIWg1doGNpD41s/qS1nMBa22YVhIMGhNoLHb+PD7kUqLF1Q0NQaKVIFWiJpY9n/75eHiShhoOQHT+DHkIp4e0DkjHj2pXCFsWiblxLRi7juOwx1Fms3ikVIIJ5Q+RwrcjiubOd3RS6IJ5quRVaEGSoIiBhasCQIJDzNWBHbP6XuiLiUd3Ytsx96xthAH1OJnPcUg1R3RHLXRo1IURRnejkM/qSdgKGMaBf2a1tEI+6BaIU9Q/Nt1EUIfUwpQutMbxcXCvhW5GAt+xnYZn9dxC+WusotMncZL/2e3BG52M/0sht47p6gIsbl/IS4cqGoyM0f3hUa7fQakcKQZR/yY8BjChFapslKdGGHCjHLjB37cyTz58gNc4Iuajd0XEwiAvsUiUyD5ejHzcleXb2Ile7zkILvFAwyRdhPReHbPi+KVpbtVK5zoAtBgz8vhxd5jr8vx6+J7Pjn3XLMQySAu8xC5D6LyCIyFxaRV2MReTUWkVdjEXk1FpF/7dwxDcAwDABB11YjZSmR8ucXChkT647BE/jTCDlNo5BssA4a48uo2WAe9M8not77t1RZnUZhAAAAAAAAWxauHfe/D+cw4gAAAABJRU5ErkJggg==", + "description": "Displays historical noise level values as a simplified chart. Optionally may display the corresponding latest noise level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'noise', label: 'Noise level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'noise', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"dB\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "noise" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json new file mode 100644 index 0000000000..715d0d46ba --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_noise_level_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_noise_level_chart_card_with_background", + "name": "Simple noise level chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical noise level values as a simplified chart with background. Optionally may display the corresponding latest noise level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'noise', label: 'Noise level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'noise', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Noise level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":50,\"color\":\"#7CC322\"},{\"from\":50,\"to\":70,\"color\":\"#F89E0D\"},{\"from\":70,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Noise level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"bar_chart\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"dB\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "noise" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json index 60624f716a..69aacadb7e 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card_with_background.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":20,\"color\":\"#DE2343\"},{\"from\":20,\"to\":40,\"color\":\"#F77410\"},{\"from\":40,\"to\":60,\"color\":\"#4369DD\"},{\"from\":60,\"to\":100,\"color\":\"#224AC2\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card.json b/application/src/main/data/json/system/widget_types/temperature_chart_card.json index cebef335f5..8debe15925 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json index d5be89cb73..54bee4076e 100644 --- a/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json +++ b/application/src/main/data/json/system/widget_types/temperature_chart_card_with_background.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":-20,\"color\":\"#224AC2\"},{\"from\":-20,\"to\":0,\"color\":\"#2B54CE\"},{\"from\":0,\"to\":10,\"color\":\"#6083EC\"},{\"from\":10,\"to\":20,\"color\":\"#F89E0D\"},{\"from\":20,\"to\":30,\"color\":\"#F77410\"},{\"from\":30,\"to\":40,\"color\":\"#F04022\"},{\"from\":40,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 40 - 20;\\nif (value < -60) {\\n\\tvalue = -60;\\n} else if (value > 60) {\\n\\tvalue = 60;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ diff --git a/application/src/main/data/json/system/widget_types/value_and_chart_card.json b/application/src/main/data/json/system/widget_types/value_and_chart_card.json index 20b0245488..a868a8d810 100644 --- a/application/src/main/data/json/system/widget_types/value_and_chart_card.json +++ b/application/src/main/data/json/system/widget_types/value_and_chart_card.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"watermeter\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 80) {\\n\\tvalue = 80;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 80) {\\n\\tvalue = 80;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 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;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Value and chart card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"water_drop\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"watermeter\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 80) {\\n\\tvalue = 80;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 10 - 5;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 5) {\\n\\tvalue = 5;\\n} else if (value > 80) {\\n\\tvalue = 80;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 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;\",\"aggregationType\":null,\"units\":\"m³\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Value and chart card\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"water_drop\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": null From 15b5c7a971eb69e52cfc18a27a648c1499c2ccf7 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 24 Oct 2023 15:33:31 +0300 Subject: [PATCH 105/117] UI: Outdoor Environment: Noise level widgets. --- .../data/json/system/widget_types/soil_moisture_chart_card.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json index 742f8cd9b4..5931b661cb 100644 --- a/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json +++ b/application/src/main/data/json/system/widget_types/soil_moisture_chart_card.json @@ -20,7 +20,7 @@ "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", "hasBasicMode": true, "basicModeDirective": "tb-aggregated-value-card-basic-config", - "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Soil Moisture\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Soil Moisture\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" }, "externalId": null, "tags": [ From c238576e54a0eddf571779930bd8a800f5607a0f Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Tue, 24 Oct 2023 18:18:11 +0300 Subject: [PATCH 106/117] UI: Outdoor Environment: Vibration widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../horizontal_vibration_card.json | 28 +++++++++++++++++ ...zontal_vibration_card_with_background.json | 28 +++++++++++++++++ .../simple_vibration_chart_card.json | 31 +++++++++++++++++++ ..._vibration_chart_card_with_background.json | 31 +++++++++++++++++++ .../system/widget_types/vibration_card.json | 28 +++++++++++++++++ .../vibration_card_with_background.json | 28 +++++++++++++++++ .../widget_types/vibration_chart_card.json | 31 +++++++++++++++++++ .../vibration_chart_card_with_background.json | 31 +++++++++++++++++++ 9 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_vibration_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/vibration_card.json create mode 100644 application/src/main/data/json/system/widget_types/vibration_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/vibration_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index cc3b703fa3..a5644dcea5 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -111,6 +111,14 @@ "noise_level_chart_card", "noise_level_chart_card_with_background", "simple_noise_level_chart_card", - "simple_noise_level_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_vibration_card.json b/application/src/main/data/json/system/widget_types/horizontal_vibration_card.json new file mode 100644 index 0000000000..4a2b878e4b --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json new file mode 100644 index 0000000000..b39869c2ab --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_vibration_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_vibration_card_with_background", + "name": "Horizontal vibration card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest vibration telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"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\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaAAAABcCAMAAAAfz5G9AAAAclBMVEXc4+3e5e/j5/HU2+Xa4evg5u/i5u7Y3+nV2uPg5e7X3efa4ejV3Obl6fLc4unf4+3i5vDd4+vX2+Tj6O/m6/Th5u3l6fD3+Pz4+v36+/7n6/He5evo7PPx8/jr7/Xt8Pf09vvz9frp7vTv8vfg5vHg5evj2IxvAAAs50lEQVR42pSaiYKjNhBEDTFy5AuwhsPcx/D/v5jqViPJ41knKTMYY5K1eVvd1Zo9/P2ux+OcfnXN9hBd/3KyF+DpcTZrP7aXV51Op/PpfD5jf7rcm2la2zzP2/suXHI/Hi/Y8vu97eq6K9qiKFoSrjs45Zta6qo0WaZImnZJlCVRFGlV9s/JxDFOZQnpO0mUGap6iW8xqYxv3VQPZblWfV+tZTn2XQE1Q2eKVGtdQKYpiw1K0xT7uFTFplMrrZWmz53m6eGAJ1GOlyQc3S8n+o6s4z0/HI4keucowrV/UhTZJ6eET2RxIKVVHN9uX19fvwHC3c+/uq44Aw5oPUI8D97oYBv7Vd0dm/PlccbHdgKgYq5mldOt3/lYQvSEXWvmejYAxGp12x6iAwvPaVGudV8YfGyLSGvQiCBdqGZ+jiBEgERK4fKpuQEOAJVxOVQg1PRVP0+DWfpR4Y8oh8Uo5uMBiQwAFZrpEB+lgQPCnglpjffwKgC0CyxwDnSOh9wDAqw/4SFA9ACYd0DKEVI4/PoA6NZ15vIgOldvIMZFO7rmPvR9c/d8oMeFyDhC+VBNQwvdQwsxpdMRL7alqpai2CwgEDoE0kVTPTuDj+w8lDChRBdmgffiLIlx7vs7yTS9W87PubzFIhCqunKZpn6am2btG2IyDDeiszGgjgGl2GkAikEOcFhaKXYMy1uI0KQEKBdA3kCEiM3mAX0wkDjIEmIn0cvMcZEv8clBj7sDBDxXB4iFCgc9Tl3fLw4Q4yHjCyGuceVc9UWbkyweR+kIB8FCfT2ZwoqK3CFQqs2AIsefWjyURKhmsJA2ZnxS/QO8jKXxY5qpHh2hsoGjumaophlFbugHU4Dr+KUI0MaAGjpiJltRMiCIKImDmEx0oL12gHLroJOTLWZH2iDH5zMgfkB8nCQCSMSA1L8AugBQCUDoN6+AUODwzBdRE9pgCPHO5SEdSARPtWM1NZvw8TpCBCjXCwpR0VpA0ogcoHYrp7rPBA/fv70qaLLLyoCADOKdWarnUu6ATNfX5J16nqqh6/uyMKYjQFshJa4hVhpKdUFVn8QodGwdZG86bLHh46W2H3GJEz4CKD94/QcDQc5ArHdAN6l1PwE9AkCm65r7g7TTCUjZq6gJGfBxLiI6BImFF5ecYsLWegMJHyGU52q3UEsl7rXI5W3RcSXbPVTAQ7Zkt8p01XNAgjCJlylhuaa8WROZspvrtenmaqrmZZwXRYAGxXScgwpNQnu6ARDDIYFWTiUO95uobLDc5ro+ofsDn9wD+ihpQbbCCbHkFRArBPTXK6BT0tkYd31cr77KQWwpRnSxTQgP34UYEG3WQgU6gPnpoJwL3JG7UEMWkhak8YNP7pRrtaKSyQe3d1bz19KU2uq6MYXKFKqcI0Sm2b9eWXbTc2yWqaqqfpjXsgDBwbwCAhQLKGZA2Cwg8CDtRIqtxd4Buh8DQM45eOvw31uQAPI9SMVBjVM/AYkrfM7W3dJtZ8B5EI8waDsLPdB7h/zihRR3ETjECYDyAfXFN6EfYQFdSCExKyEk8i5qCypyRhzEBSkS6axcn1OpIA9Ixc1c91TkhBBF72asoLWfO9S4YQSVoMRtTEUAOSmUuBdAGgbyzXFrX1qQnCY+nwBFHlDoIHpK6Hzi8UhKCFNcULrYSRaQwp2++hoXAvJNiO+0Q0SEJCdgxzFhxr13gOjiHFB3RFtX1SN3Id3amI19QKip68UYAGIHKTYQKzHchmJDgJRWNmsb+t/dYodorKuuWQFo6uexNGZZu58OghiQDgHpn4AK+lRc9gAozAgHDtli+fwDnxAQicD4FhQ66HaDg157kIfjALXdspjTA16Cfd7Fl7Ujeu+FekswqAobrnOXyzYi7VpAQkgw4fmIp7bon5UtO9vW0t+rlzSni7GuS3iIGFG/SEj8rWwbMgyIIjhOAZMZQFSK3A1RDj2uQS+qqnnuO0VNyHgHGQGEF2UpIUEc1LbUagSQVuBD4rGo3dKjNQ895Boh9H9CXJIQqj8AypIQkL3lFNFEOMy/lgUxDkKZ+wOgy9L3Hd1teUACSNI2ryZUK5I2fBMA4phtc0KLLrQyHypzEVJtCCgvaLrZJzcGRPWM8g+3IXQoxWJvgVBWIoB/uS5LhGa0oboGodGYZhzKN0ApXtwEkN4B0Yzqe2Gh95BGgHJGY4cgkPtfIS50kA9xUuI8oO8sKHEPJvQ2CC2LxLjrm4csSWTxvh9bweOb0ElSnMSEairDLkTPHOKOpHteIAg0DtBBFBa552gsIZ2Qg6Q2EKEebUgiHjsL41CMdaCZlhJcUECUGyeucp0p0YRCQMXuoC8LKBVAL3GSmlTrOk26YRolNthkSvX6wEewBA76fgH0/Q7o5gC963EhQLmsxb37hzGd1Tj3ZneQj3K2wNEOMWGpqrFtfwV0oiSnKQi45Z6Iy9xBHnZcfSKuxaRE1nYyqXIYTZ8roxNEOrEn+1vs5iEatdCGoGmkJrQUoqbzJQ4OYlYS4mLNYW0HpBwgDt1pyv6RkP0fDSS+8WMQZjc+/BVQuJIg1nkDFC9Ll+Mu+1HIC2cI0TnnoG0J0Xam7cyNSMIcLISYYNq89YAYkQiv1YjAvBVKcUqjKhcq1bTIRoCEgigiUDHa0OJG2YzLnw0KZfmy5oOhFVWu76QJCSBUOw9IYrYFlOjU9aDc9qBIAKUbSpy1D7b0Y4UTLP5Ixh420McSZ/VHQJQNksXm7N8sZKFdH5eun5HjZB3UCnUNfILVBNygIZWcIIyOnhCqOCw0K8V3SsNDB+8fliphiTjzhL6lzCV2GrplJpa4zS5SNK92HhCi3NRRG6phoWYcywCQDgGxxEGplQ1xilK35iqFc1tLgICI9ofPFU4AhQfQS4jT6reFhNeY/V7kbM5eFAC9ZwTP6YKgvRb3txIngCRpT0jauZXwOXJW2D1UoIh1mV0qiCJHxic5XjWQNgQMWeK/nFmpDSkBpBkQnawav2zaoCs1Q/V84gmTEIK2ggiQi9nm6+YBqVdAvDSHVOcAyYooVbjPgLwiD8jiOERY5OUTvwFyc1CY4t5+IwRA5elq9QdAj5ZrnMQEi+eBoCB4bI3TlLRzkVjIXi+AWjPZBR9Zy3EOErVmRBsiPtggjfZquxAIuVFWAEEqpujnAIHQ/OybsX4+q7Xs1sEIoIXyAhN5AaQCQJGk7DR3M9EGQFLhgOL/OyjxIc4Dgt4BhXPQm4HoN0IhoFdE+A8YENW4fsjvgki0z6rShXIk7X5rPSBZmHMWyrelrocCPcj6Iog8rESXHNcyJYRsE2JlGU9DsaGF7f0dmx6MJ4QoNzZoQ89pQY1rFKsEIOgjILqB7KCD70GFPjrJ2bcW5BPBu4N8hZNvJyHhIyAJzmGJO3LOvorQcRwdeeImVPZzv3k8krVZnOSwv1PSbto2BMTKd0B50WOiUQndX9dEAwtFqqmefZaJU6jO8YU85VEm6Oh0mCFiwubakDEc5ebns167YV0SBZly6ShnK8WAvjygmAHRJusIeMuD0DoA1CbRrw7yOH4CCrjIgXoDBL0C8vXN63q6UYwTPt5DXgTovI3zjBrn8TxAyJuIQN3vXVWtmgFxyKbtyGumVvl9A4AVJYonUJFYSMoAPLbEpD2wERsJ2yPRzUJAmaKTXSwCDHq5TM+6GpZ1LBVc8gHQLdbEZ//BFWSl6B0Qyl8IyPsqcnZ5q3CJPUbWkRJnSUUfAMno6cSj65Vi3LJdr2fAAaCwvjlhnh3m2S+YhqMQPwCJf/XNw2rbEhr+kTlVLHRpC4raCh/eEZIuJNLchjLuQ2ShTLI2bYYLYAgoAqC4R1Ag95BZMkNZnYJCPS/r2ilrq4Un1R2QCgAxGBEQqtQrBJRLjtjX6d4M5A78kXNQpiN+rf4F0K8ZDhsDwnLp7qB3Qlzjmn5ei8uLCIqsJMiwSkm7zUUM6fiiPEWUnpVrLfLdXgjNz8mAkI3UISDFo6mBAeU8hJGoRDIojSoYEEe5HvMqcsLYDyZBQyvRYynQMaDuKyZUgMGACIMHZAp7IHyi464UKfAgwrvOQH8GFLkepL7tUlymss+A9lTwyz/sGYYSd5nxYPuBiE88zsU6+1nV6wQJJFjITDSsUhvCD+tIwt7lhKF+LolNcY5RgKgtqAqCDjaS1oIo0gjWXcXLQfiuQuhbJYbLpjEuyiE3UFCY1n4syYdlxylBkUMIEKNyDkpbhsItSDIDM9NAEhgoCvi4FqQz33B+Akp2QHqPOS7FOb0DgmV+1jjEOAD6h3JzUVMaBqIwjTZrWJFgl+4KhULB939Fz1ySCSHexltF/UR+z8yZyYRdwhOiVo6zOmStEORD37RZBSCT0IqKkOlod2SF+GBVyDoiySBx+fgxeT9kO9ApISAaqEQN7MCjHoGHgBfh7zaunPks14+PKya80BqgnCcAApQEKBCrIsUdxSOIqVNF9Q+AghmZDIjKitEwPvYSC8knQE4U9CdASkeqkY1LCdCOAWk0AGmOUzy1guTbS25WLbiiWh3CVHvCUNQMtNmEFD21n2LMbPLWSURHAzv+dKWRpY6IjAL8XXl8975wGUKOQ9YbaE1OcpwA4vymJiEE4tN1uqGg4qE3VABalYACAOGLAGq77I40ZSkuKSj2fweEaOyNnM/TFnysDLV8nKe9pm8URseWktYUciy0HBEJkGD5XBDyN/gE0kUIoXQJRoj3qqgMsYqcD0U3NBI9qCKVIZsoZEBuvMHKgdA7kvIQPQBpz+oVECIBwued6pB3XvIbfcoPClqZ/S5SH/2eBO3ZzbUAiVmgt5i41IAazeqn7y/DMi971o8BqjFBaDNy3JFbVYuEB4C0WX1PJ6u0JYcMV8eKrPappx23wOrXiUi1KDdnQD74rCDIhegNvb5O5IIPwwEvvrkcGxwOTTMROvNWCTKELwHhQQERCo0AQPyjjBXg6D63AXWfa0B9GxA99ynF8QN3Ei7H2+afAK3DMs/Do35Qip5z3JV6VSOERrVgxHzgtDHwn1g/R4QBstjtz8hIIQZVkKU3I7T8+MHdUAJkh0OBrZz3NmmIFOQMbLDteOZz+qCRD/vseXoEFDwFPp7SxDmnJUkHp6agrQEifsrn94AQeYQd/V0eDdCmTnFtQPm89OtummfYuK/05ZMZhQrQC3zc9UB07ODb+MhEQSR0olPtDOiJ0RabwNzPMKBWlguUs+S9M6FggGCrycq5yIAC+0EdM5QTBd7zudLIZ2BAC4uRnLqkOAU0Eg9TkGM+9K4oBxqgzpeAVv8AyFatoktv3Mf/AWSPnxjQ9A01CIRs3lNXoTX5uFnncRZGSI+FTpAQr48e2SPkQlQ4OXyapxg1RZlPKLd8aJvbdk11ZCr/UEeuzRQEdnhxIFlunBzgRTfSysL5QhKKjg/AVUGHSZ8UkBDiQuR0IwuE8FIBaKdDAAPENqFLugoAZM2PPJiC3GOK23pw+SOgOvDJY7C47IiPRY1Ie9WTfzWbwKd2SijPtHcTJOSJTwJkhF5Skrt98LlD7EgZjTTX9VSGhqjzhBDyv5c1RMcWhC9SeE5zMAq8zJiPwGc2Ch+XhYvQ/JZSXAnozQGIploGxD8hDe2goK0B8tamsnP7LIB6heYToKjOoMNTn1OcZjjtg7wrtq027d3s2saN83wOBMjoPAP6Sr3q5cB8Gl47nazKyHSfUhxvK1VZ7tt2pHMHSV3tJNd56ob0foZqJestjjNg0OBAKxRbcRoEHZJDkj0fMgq3sQK0KQGJgFg3nv4u9dkQik9SqQBZigsGyCsgymKKKvbsfagRUEAuAxrbJqEdPOw5z7N7Kfqg1sx0TTnuMv8UQgmR/Ag6jEckdKFNetGQzBb1S9bRak/nDpK6lE8dHcrQx1gUoTw1PeLfChg0N+2D5r8+7SjAYz8YBcgKvdCIIuRSitM2imrB2yiKUZftAgXe+bZjQOYRGoCo8gQ12QbI96IgBoQXSUEKyAmgLvw3ILFxh1ctQWbmagkhx11OQ7oAhO/NJ+i5UBqZvh9sd5QBVV4B1x2o4QwiimY3FLgbcnk22lkZAqEDzU2HyPSiOAjen5uLOx0H7PmwjuAZchESQMKIAPUMiJQjgLb0bRdKQKSQPvMxBeXxgQ/6pGmMuaQHA+RjGvXYrsg/Atq9kUsAoDTtac97kOMulwVY7ALQixm5tOEjVcjuMOwyIwve1b4O0VN9RTTNNs3YHO8h9FEWFAAoE8LQVQGFvJ11Jvfg6pnP6TCO6fRuP07pTEkAdZ3kOAbUJ15Bzu6ygLx5BM18WoJUNzE/KTNMouSoK6pJ6AHPBxuW/jsgGOj1NwBajqCTytBzo0rQvlOOu0mOq9vVtUICIT51UAklQHUV4mboTEYORkEVVEloS2VoiXLwYCWII8hZqnk8vTJJZxXj48xngY7wdFsGPb0rAW1CJ0lOAHEa5TLEgD6rXTNAHQlL/sMZoBBIG50Bwnu5xzz78ArIMSD80oOCNgaI7ID0P3gyPgCE1Su4hD0rKCOqAem56uU6Ep2mS0DQj6/H5Z22TDkAqMJjQ1OUkQBAvytDx+GmZ0POTIKGnKXe5LMWdeG1yLVpcJtEiO520fx2mG68hQVAUwWICZmCenrsRUGgUCsoeHVxSHwZkFcX1xUpLgNyXnJz7+iP0mORhQsbN62ISiZkfD7RLCGesUYGNoWRe+YDfMfb5brsajpyF0X5UBXyl1SF7KZWTSjQxIcnngTHCFVDOVpRcIMHASMkiLhhZVmQzVYHLoVLe1w38J4PLpdNtKGwpxH5uGSf7QhQTzySgkKxdOplJrpiQLEA1Ok/Jiuo9yGmp8i5mt5JVEBeAOE9DjLYurvN2NhcPOhxA4BYpG1gdQmkH0PEUCpCr3QXdJ8AWRniDCcuQU8dPm5BAT1auRyr/YwMRh9ublYbY1PkJxp3Zgl1FlxyFh89B/dTycrZos90xeHQDYTO8wLMdLdrGZ0B8oGHowTFKSAkuARI3jaeS0B6x6EE5CtApKXYKyDHtZMB6WjBqWwQ5mgUkG5e1Z0QzxJ2gsfK0LOG1oOMtA2QpTi77/D6jYY5h1JBmi3K6IYrjLSeaiuh2mv7iey4G/IVSPN8KAc8PfAS+S4E6aoyCrByJzQSoxNAB1PQmwAKwQCpipwPCogVJDZGAOm61V8BrTrBcZecLAd2D4DeCgkxoE/0jaO8bocgl3D+ueYwq/2soPW3+YJWqMlnbUmOD+5uoWMBpQynEqqTXIh3OwCvJdTJply8+wKQ1SH+1dwoqYbOMmjV4LtdE6zcbZ58dAwojZAUUOj6BiBVEGLLCkrno1qaVtanZgPdKSDEHU8ZkBbIgetTBrQRCRkgLUGK53uhHz4Smmef+Kz/NO7BSNurxzYlvViIT9jjqs6mUx+niKqgZW3Y4mIe1yhDYaCyH13M2wll3EfqZvuoChIRObw2GSHd88EJ+AIlegCaXMpxAoi9tQ9uozVImiIAymnN5xGbl5aVzxoMEH65BhTvySTkYelwtxSXJzwFoIwDjOr97Bd/xpKStKrrhn5MQriMepnEJpR3Vo0PfREjd+plHKeRBWQHyZzkpAnlKBT0OfnakRZFHER0fyKEVlE2HQmQaUhnPhrDyAvBWAtHK0S+gQHRVwLkfHYFAkh/gjBAzgfVN5k4+YeQE1dA3mmJCvIkFO6aiJ1LNttVgDYlIOmDAIdvMLRmCTe0qpbiMqRGjntHK/Rah/Fhp0BVCEaukkQ5T3gBoZ+HDzq763yzBtkSyVkXRaoqhIhEY4h51x7RxwNbOQ0gIaOATHeiegVAC9ORYWU2blsC5INErSAXtLTohE7XHFU3BaCkoB6aVytDXCgYEP1qbNps6YNYLhUePhFa7yYZaOPXVUWEoyGhV7qMOj7ahJf60EGr0CmYy06ysIkcvm338w8kuXswDcmXMjzfG/KI2EhzPSvMx6JRUiuX+Azsx2Uq56hTXXRcqoBAh5XHgLzw8g+A+Fl32wJN5nXTvg1IaNSA+gRoFcvb95sa0JemgOASDtKqfq8U1GyFLrKlbYCMkC0xDle+tFohMgXJrSiayW36zgA9R6CDhJHqR28aMhX1vJ4tsyD9JRACkjEBiuNZrBzuPDgC9OYlx40TACWHESnFaTCgIO+XALltZ4MEAbQLuTBFA+RSnzokQGYShCPBM2fwAOhXZWeinbwNRGHsg0RNfwdTE9KAjYOh7/+KvbNoG0QXJSE+TpOm/npnrkYjRdtFDCA1crsRLmFM233qiCgvfdwwFfIlIHpJ+uHxcaAs9MmEcjyFghDk8Cjv0kFlFGTKpmFjgymv4p33GGsKUkANrJx2EEss403gd8ypRlC5nehHBUA0XMhBLCEb4hzsXQLEa1sEqBusghAms/Ic/4q5zSZ6rK5EBSPlIOiE8RiLIID2nzRVDUkIHwKnIqLdOGPeZwDlTk6d9tHf0b1DhEwasjW50IXVvNPQgcumCVAThzw/XjpyT6GsiLhKxHyYENzefcIyyDS21CXXel0z0hYf6mBpJQd5mGqfh7ht45NJ8AxIq6bDi4Ja/9RtqT5XUB0QXk9GQWwQagri3fhpqqodWPWy6e6Izqrlr0AIn0AjVRM0xO0Rv1bk5c9MP+Xa0E4LCrzw4J71ZYet2lc6nMfTyCZNKciRXs5Aly0AOqrKXYKEhpEbgm/4PwtUbqvcxeXUd14BqYsDGy37BAVlgOiLejfVf5zqpqEJ05N/pRKQi4BcQ/Dem4QCkF1VvSwPmar+MknIjP12+qGKKY/cw6mEFJLOhSYroJdB3dpfo0P5t9CFna/+SYIIPiE2MQgjx81y1N6TNKR1vNZLb52cFrPA34wAdBZCIwCRaAIgkmgqnEYBSz5quI7gIiDvixAn/BhGCcgbBQkg5YO3PMQhnoVRW/bmmdCvMgtp4skXHXYOtS00yMmIgGwLlqwL3R2diHAsFWT65FYKcgMAFeUE0+YTNzYEQCohMVdstsPOO30yly+2cgzIy86hfqbFodtNpQVAJx8VJC5O36G6DNDQNXGeqsI6ZmsMpUloaERU9JMiIEBPgHoWUBLTJqUgerMd2piqLg8koV8Cp2jvKXUEm0A76RTPR8IS6egFdSf8ueK/JapoWxPRFQcofF+6ZxbjXgYLQnZAxmiIu4oTNMhYf7p8Z5gbJu7Cl+Nl/Mg7jlHzWS4AJC6OAXUBUC8KYkIFIFx38mzpS8dMQYJNvFujgNi5uCogXmUFoOgSeGQKEjxWQXITM6HH43aICsJnE+OShDAVik3A9MKHCVhIIqE/f5yeylPXEG3PveLhf/Gj/QdGbpJu07yrO3HiLqCbB6AmpSFuqudgNgwgRCqjI7GW9aYGTxXkycVxM1TIQEWI6wiQPPdOFaSA5IqkIaLXEPcWkIRmZxfs9HJj41saBOjX7yckIb/Pxru50P7IFdM8B1lE2oJ1fWCxrCtzkLyUi3daUGiyLrkKIXi1EXnmWRTvAiH+MsNLHgLuGmYbVEEIr1xRIIezrGcFpMurzkUFidG2gDRwaVPINuUgSfq4GQDpbxQBdQzIOQYk8FRBvdR6koJ+KZ0KIIz9rqUkpAr69Y+T1e2JqgkK6EOMXAWQtJn+jBs7lE8iREHulgDVw9znQl4NwyhIq19s5SIfnRJyU/2oDXTjhbpPiZD2oOryaocRAOFzTUGhJQ+AssykCRBfDyZPr0AyqyR4+k4NccnF9Ri5hGQeVFcQzAMCF8pxD+4v/deK3M7PahPqAko9cld0KC5dYwEZp/BxxP58eboutZnizc5X6SQSllDRkiovKDhQVa6QUMO1VB+a60by2dTns0whxE3RWre9tNXzhwHkEiD9ndRxa9IviqUCoQCEwcUF+TnEpuX3ZOMsIDvosR/Xx3y7vgCqrdsdb7qwGghFQKYkR2dgfZ0rJVMzaCr6M7KEoom248h77xhQQUiNgvgIX9ZT3YXNtu7Wow2sdzq07L4GBa1nHzcLRRdXB6TNhzkg/j2DgiScbQygFkOq7IMASibhfyiI7qPrbZkXk4TqjfSomFI14SgVOfqo8NGaKdLA3GCYAGeDXIeCwiOryNWi3NVPyPqDRLksXwXJEeVlSHGSqeFeOl6mxXz10WNxaNEGYekzJQ1lCuq6ApB/ByiuLHDmYVTe6W+UK6jVppEMEIamIKsgGcoknTArNZzl8TjvmEwAVCdENoFWTHVZCISknGCW7aRmSv0jzfVYVVAqyh38/P09vS34bEVDI++vI0A8CgVRoUyMQpfw4Z66P0E00kH1PUW6AOjESPAigJhQoaBDDqj1BSD5twqgqDXpJwUWBZS4tCnESRYqJkJS6vn1qqH41LvbY54+kn7yYVeFLuS0j1mH6VYA2dnQB/WPUM20fNr4MIiuKCj8ORY2AW8JKY9Gd0cCEEEqa3KgQQDHLutw1HvUE0dPnzZByNmZ93MGyAugfGtXAtQkQAdPVLYCiNVCAAkLowIr75RkoSDHg8ykAjqJgkRChYIIkIgnqUdmrgDESeiQAO1fO7V/BZtAPabLldHEgsKuNrgReDKSYCwEyXjte27QKiW8jRt5Lc47m4Y0zLUwBZ+mc6F9yDl03OHoOQ3RXxI4K6A2V5CMCiB+/nASuUlQQF4AYQQFBUDuHSAewidV4zayWFcqiGgxIUlCj8cymhRUiXICkwpyLCHd7EBKqFnt64rZalt53GZsZPEuasgykhqy4z33frCINMo56PAR76q9C1U58hcDz4bO053T0PmyMiDOO6c3gFoFxP31CZDUD/iBc588A/JpV9BT4pkAapwzIQ5YAqBeAf3BwwCiwYqSJDTP0zbxwUciZProxzvatLMdqwWefbrEIVizWu3G+ATFtAslH091bevO7KCcso4t+WmTiOK+ojUDxAlBF1jZAD5b3ou3Yp5AgNQlSAfJWfAIoM4A0laSJnk7Va2zCtL17RjiRrHZSUFKyCoIBbcaIP7gV05Ct2PgIy91PpAQFeQ+w5ljskS6ffXZMltF4kh6qCuISz74BzkN5YyshvyNMAYJ2ZTVeJmvNi7T0KjnX8jG/faGfuAztZuqjRMsAKSXVUCNFrmzECd+TQA1r4Dk0uuVAMKVE5sdc1BuEiqANAPx2G+mx7x87ipBzjbIQUI9OuSna9wrpIQqOtp2mK0+rraU8Arp43NCGhoKJ1fr2J6B0T9Nn1w8iqWl+Wq0CZq8b7CIYa3C07H1PeciAFoDFZ8AeQuo04ValxTkmJWWblzDV0UOUiwM6PlsQg5yEZDwwcgB/bKAFI5We/plVqNtCdkkJE57/uvIByoyo5xN0Ux/PH9Rk1xjfNzr2HQLVh6SBdtU7Xanx/20L0ZhE1LOIwGKRuGrHxTQSIvfZ37J+0wNIBfyGl0LoW6IgBrPIS4tyUVAPBz0GgD1CmhgQLgYeaIaXVyfAOnqgQ1xeNMk5Baq9lQBqYWLdm6PFkZ0AdPBY6IiANK3wmmzT1iwGciZnC85yBCiRrlLk56ubTWVnW2oqS1u6AbTDJydObc2OSE1CiMB0tNovygNfS1nAGrVaNOjMoCighRQCnGcjvRmwuItICcmoXnmLm7sZbRlsYcUlI7D1iY5RaMvSCxstMvxzsh17LQFT2kTzNLq9oPmOGt3NWrAsPNVSUNJQwWcOCWSjUN+MGlIETWfnIaeTu/GisJjUNH5M9JQf16AiRoUWgaUFNS9AjroPChXkJcfnwOqKCgBevL8jb9GUIiQKigBCgtwf9hDzpkTEstpnh/jzgBKnQnWaX/99MdjPPMyCsjGuC06fDDHOZYZpSahY4c0NHdN2axtA11H6whnAvQ0EtLZ0AMxUH9GoEZQb8MTwzluPp35L0PduI1Rc5BMWk0O6hKgrgDUyk//d0DPBIj8NgNqXydCBCiGKF1djQdghY6ddplpWdUCUkalT9gNM1a/DpBQBFTXEBpIPELX0tmUwlGtNhvKCgrV0XDH9vMZ20nLiOigw4WfRQhy2obfD08u4z3dBSWfdkJ5fFn7IQKyClJAvesqgDz/bJ2o/gsgnQeJglVBCZAQSl09SoY45QISoz2jol1RUKU7Yb+90elw4fTyndWQDvEJSBtqtY3btlHuiDT0fcnqCXgzOUiNwjwwocyVBwXR4h6sOEZeCeI/JQAYhKjzyEDTmYR969u4GcXkoCbZ7LqCMPjKVxSUdZY6HkNQUDpEKSgoATJ+mQHRhRLab1epaO8inRTk7GSIlr7lgMVtNko04ZyyLfmzh0YNm4bsmYxfKKi5ZwBUH3ACHLEEkPUUjbshlVGOyiAPPa2KC6CG2lXv5zPcy2OqAerzHNQ/64DkykVAPgekNWwLCPfCRLWuoDRSLY7eNcb1j3nGhvyKhiq7uTYLJOQhoZyPqigxYkIbyv6T0UMmoF16RRqiFBJGxcbh/Uhzpgk+TkduEzigwWt35tvdin5+BeRcj2oPlh/Qsd06C+il1ON0IhpdnNMQh6GAdPZTAdTmgDBYQWEqZBSUCtoAY6oJHLbcghj3UdLBS1krzSX0sx74bNJ6HtrHl+vtT1htA8iEOSG08UhDS1dELQMV70deAS/X7jJXziUfW2jwD/bajZzuMyHItdMPdWwzlH6KgNqkoKbBg5TJs7OA5DpUrgtAZ6HqmiECeoYrbwCd8kpCWhOKagKpFOOO64wYt3uVkHLJiwokITqXh6ZCCkgXvy2gPVe1sZvxxScYPNKw7ZGGprwBu8Lz40qF7WGoGG0pkUIuY5gL6TiMKKW2IfKNCwU5lHJxi6lMJzzWCKhLgADgHwANre3gadL6tgHU0S0BZG2chjh8BEDKJuYgiXGXaowDoiii3CacfiAhdQkKiN5qTVjHiXzCpvnH9e9daDaFOvThRrNtVXSQM7hfSnKx1fHP2d7uJtrUOki8osnrwgdtLy1DSTPVtghxvZajhxwQXb5knhxQyzp1BhBdtG8B7f9AvPpDpVBXEFe01w8roQDI2oTrTFsYjgUgS4cHclPz+OZHZmy28XES5U446W3I/HPFWkgj1jqKUShoCiEUmKJfj/2PC1YewrkXGuTmP3V99TT1YBNDXFMAap4VQBsF5I2CHAGqKchriMOoAgoi+M3ASQraX2/zHQVTQyj6OLvqMP1wc4J5xmYEn4DWnbUzD5s/cgfIDx8ujJO8NpDUvAU+a8nAakiHn77/bK2EuEFVg5znINevX0hDAwM65S5OWXOIY6dIgPyrgoaaggiLxMXhBdBACjonQglQSCD5fCjh4Uv0vM33dz7Oioi3c1FzQkpC9YKCBLnrisOsfWPzvtEPM9qM6JRb6wt3cWyOXNjWIGcUJAeV3PV+HB31xjkM7hM9k5M7L9pXAkAtRgSkYHEtP74e4royxLlwNUovz9NVAYGQdQmxWPpLAEmcC2yS0R6X+x2bIStZiJGUiPYfJKELubjN7++rCTS4VxvFalf1Zel78RLS0IX91qayJ0UB4Z+KnVbOFMBlNnszuoLquLJOgPBsKcgN7LVHAFpPjEf6ObTDDSgUkOv+CyAx13Qlv9RzDIBcAiSl0qSgXgHJiaS5gghQpiDu0eYYJ0f+x/H2dJgddn2zhJB/QpiyRe3YQnI8faHqX0spikjo8LjSMl/rqhKKdTxKNLSR35s1pLDh7QJbUn5/c2hn1CAaHS0FOXjt75/JJQUpIB4S4lgBRkFeAbV1QCN9Cx2dVABqBJBNQgoILkGeM2lJ/2SnzUJIKzP90dSd8rGMrE/Ycsn0o8z0bzS0dQsmQ0PT1BUUAxxT6lZavSt9GKHEax7lJggt65Mr6Hfjgh9hCDc9tlyEH9txkBtvtFMFgMgs6OJQAUjrFQlQMxQuzpeAHAN6AhBojHVAaSRANIwSqGZaZCEpmM7r0eCp13u4Y3hGFjrkmQTDQtorofanNhkKCtpFSnjZuAVGIUgj376Sv/Ef/2yHNycDNrUg57DWcA43HTu5y0x/rrCHjWt9kJCCbRhQx7IQscQQ5yyg2MWt69tO7iVAuKwpqC8AFeUALSToOw/xcd76uLeHW3ygURNZaIM8VCpoWwFEO4sp6lg8SjZ9IqPAvYxFi48REEmI56tjALQxavETTVeNhsYZc9NGB5wcxIO2kq8brX8TnghIWkFw7TuIQQFtLKAheTemUgLyAVBjAUkmsgqyf6/7xcbRPpT5h3xcGeRkS1ctCw136TI1RdNtRUHSnzC7xs6GbFlbrZzMV2WkYBhElE78WToXu7pVQiEUwcl9mhMdGzi5KeB0CHLrOPL5wCu7BH4/oUCqA9def/5/AMRmJQJyzhsF4evk4qJNMICgH35P5VJr4wCohY+7HdUkWBFZQJqFziKgJIVcQkqHPo48GTrUW3zsfLXBfPUrS0MsISuiDSUrPG+zuhCDHGpyyT2kIEcS6ui+X/HbuzP9j3MDoHFs5aCyIfQzABAUGkMc7haAXGtmP7mCHBSUjhopinGtab0SQPty8ZoXVoWQvshc9X5/oLnHIqqfr7TfUe/o0pUVGxPhRI50ebihSDBurHM2362Bzq3f3/eiKJ0UlAi5B3lDV93Kf+hWMLbuob3D7gNQx0HuQQdhXKDWmQFRhBOTEHfNc457mhCnWJwvADGfFOKeQw9AMjJAWuohLnHFYQMPZ/9iNwQU0OQSmniuWhFQdU8kZaEvykJGQcYmhL3ffkYTVnewNiEHJC/67LWwLUSFTaXV5CffNZTEIpPZ2b0Gua9To8Nhi8zkW/p7NgufxtgqIB28N9IPLsyDGgNoMIBIOP8EiJACiQIyChJA5bqqkRBswsgxDo/T8NE+RgMIkmMJbXNClYKpamhzwZOYDnWrnQhrGhruuVGI89SCqZwPjFAYAeU0GnxxspHPL2z3dVPE7Wse0bQNaa897ZX0OaAOz3D0nVdAT8GfBTYLKDViO75XUZDAYTz4eA8otZXqhT5ymqs+RmqGtxVteyq9dmBJ+8hLIsn7EtKhps1CFR9TXnv9Xn34XNgu+xjtbIiX4r5XivhRKk2ecaCvxgRViO4WsFPh+0YnMCENXQBIFNRmgFrfhcf+3GiP4rsKXKkgcgQGkNZ63gLSHp3o50wSEh/3oL/JyYBsSbu6KfJq50KpplDsFxIn57iDpDITMj6OKR0u+B/bFX07aToUCY0L+73ktYsOk/ufNyuhDv77rGo7wIzDJ9B0lUs+nINOJSBZ1hAqoiCzk4GuiBrjUUDkzRMgYSV9PQQotpfmOUidGBMq7HZiFepxy+EVkElEsXr6+/pFWcjiMSkoSGhDK0NT8y7ElTXXI0waJ5FrU+GpmDYHiIAafis2QRodz+YeTbIe8rAbLqsuY3dGqZBXHgpATvbnJ0AMvZyoDi6r+uSAoKAU4ghQmwMiRhiahP4Geq4G4B/msIIAAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json new file mode 100644 index 0000000000..7309e1b1a9 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_vibration_chart_card", + "name": "Simple vibration chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAh1BMVEUAAADf39/g4ODf39/f39/g4OD////k5OTYGDjg4OAhISH1xc3j4+OQkJD64uY8PDzdNVFYWFisrKx0dHTiUmr98fPy8vLaJkXnboLsi5vHx8cvLy+enp7V1dXwqLSCgoL409rkYHbzt8HpfY9KSkpmZma6urq5ubni4uLumqjtmqjfQ13gRF1p+9dsAAAABnRSTlMAIL9AEN/GQiaNAAAE7UlEQVR42uzPQQ3AIBAAsBswFgyg4fwrXOZgTyCtgwYAAAAAAMB/7dpci08t+Wwu7xpx5ezbm1mjHPDofZYY/QhDZDEiqxF52a133YZhGArD2xkIEgQlgIMu0BLb7/+GtRu3zdAARQeDafVPkjh94KJoTUi0JiRaExKtCYnWLyDOCNgTCOcjebgXAGvmkSGEbyo3x2X9HDJM9mrHR9UAmGJr30AKMXoOCOH1vgxNK86kOpwGtgShIgkorTR4kxWcaXAXB9oxcOEmjMt6DimbnhBR7ucbFSRiZIOQLSSQWjNXy9TYaOnH0DSrgalmVVzWcwilL4hk3LOMxXCHAFLfd8QJsAWF+FAW6uhU+DT/qOshUp3SJyQRiwIQVbIPSCIAJMEhToP4AeKi7x7YA8QBanEgXL4g7jgzMpyQxnrDAWm1FzV0Wj0Rex28a+NA4P2ErB2fJU0AxoJ2W0gZzQA30sXgStumjE2pbmAt+ykEBBi3vFc7XqYnEJajhNfpP38aYzYh0ZqQaE1ItCYkWhMSrQmJ1oRcGa/F/wCEjfbk9SFapZdM49Uhb+yabZOiMAyAv2UyLZairQVB3sS7Uff//77bNJbDWbrj7I53cufzAZTYnTybBBh0Lda0a0SycJFsAGIrqoWLlBvep8dli+yps4imXLbID7EPs7JfpkhVimPChQhDskiRtdisSnoamwGEIVmkSJYCVCIteUR4SL4poiyMWAWPZJelAyeeiIbKkh13kxrtvyBiz0b6feEQdQGe3iC6XE0c9RX4jIu28Bt7cPjWRwY73QyiimQdHZK4iKWM0YsYRO0QD/S6RnQacZKWxCvwCRJzmJCjKZyz8+20fd+U/HIunFCRxLC+V8QhITn3E8CB32jsLLQOCwj06KQHPiHHHiZ0BqDD2RXcTmLHnfWBfZkeB5E1g1jdKYLm3HPuHV6oQj75HrEFstIQOFP4Ftv6HJVs4YrTIWCBUU7b2WvfT+qgNK2qtExmf8YwZFSNlWjubC0AGYpw8F2OHUCB7tpgnIWXMrf/++5EI1Urak2tgKh9Z9kO3zGKJ8v10Wsf37YPe4hDJps7hz2IIBac4YU2+hpRY5ugKTpzVqMI4sXQJDmj0UuGNnpDl3faz1frdAtzNOKuX7uwyfaLIpo3Y4Qx6AmJ5T5UczE6LqBCPS6SNHHSuVpKNTfrGXyN74t0zvSyQNRBhIpgeVHNlat9c7a8iARYvoCPlM1fE2EKPhJE4EbEcCNSp50lkJMk1Mwoi+oPiJipSAs3KMQ6JqLwwp/JfQ/2EGcndg8TCWctg2Y8a/WIFiZw5jGRM9ZBt891KF1k1rePE+k4NYeHkNl4HWEnxQPQx0Q0d5asJbk4ikRI0gweJ3L2u5PfWq+jNOYUL5Q/kntbVBERyUeomvz5uMhQJg8UsTSkb0j5eh9tHKeE2I1HKPGISE6dxX9H5wdNayOsRAUPFAHV4TsHC0ThENG0nBjfR2pEdCeIiegwT8ogr41QiRU8RASUCilIOQ63Hc+bNqTUyvZ3WKmwlN9Mb3wVrY2RlMNTP/ttawX3kKRp8tQi97IR+3/jaXxT/R9fK7xElshL5Nl4iTwbL5Fn4yXybLxEno1f7dwxDQAgEATBwIcC/4ZBAuVzmXGwBlZIN0K62TnLncqYII27pVr/b6lmJY3CAAAAAAAAnhww9gaQpe5WwgAAAABJRU5ErkJggg==", + "description": "Displays historical vibration values as a simplified chart. Optionally may display the corresponding latest vibration value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'vibration', label: 'Vibration', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'vibration', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "vibration" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json new file mode 100644 index 0000000000..21cf352901 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_vibration_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_vibration_chart_card_with_background", + "name": "Simple vibration chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical vibration values as a simplified chart with background. Optionally may display the corresponding latest vibration value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'vibration', label: 'Vibration', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'vibration', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":0.1,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0.1,\"to\":1,\"color\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m/s²\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "vibration" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vibration_card.json b/application/src/main/data/json/system/widget_types/vibration_card.json new file mode 100644 index 0000000000..5afa70f0ee --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vibration_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "vibration_card", + "name": "Vibration card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest vibration telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":28,\"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\":\"Vibration 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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vibration_card_with_background.json b/application/src/main/data/json/system/widget_types/vibration_card_with_background.json new file mode 100644 index 0000000000..92b82633f3 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vibration_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "vibration_card_with_background", + "name": "Vibration card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest vibration telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":28,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration 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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vibration_chart_card.json b/application/src/main/data/json/system/widget_types/vibration_chart_card.json new file mode 100644 index 0000000000..32fc30dfee --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vibration_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "vibration_chart_card", + "name": "Vibration chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a vibration data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'vibration', label: 'Vibration', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm/s²', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'vibration', 'm/s²', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 200 - 100;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "vibration" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json new file mode 100644 index 0000000000..04e3d5ed24 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/vibration_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "vibration_chart_card_with_background", + "name": "Vibration chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a vibration data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'vibration', label: 'Vibration', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm/s²', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'vibration', 'm/s²', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Vibration\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"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\":\"#F89E0D\"},{\"from\":1,\"to\":10,\"color\":\"#F77410\"},{\"from\":10,\"to\":100,\"color\":\"#F04022\"},{\"from\":100,\"to\":1000,\"color\":\"#DE2343\"},{\"from\":1000,\"to\":null,\"color\":\"#791541\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"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\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 200 - 100;\\nif (value < -100) {\\n\\tvalue = -100;\\n} else if (value > 100) {\\n\\tvalue = 100;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m/s²\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Vibration\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"vibration\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "vibration" + ] +} \ No newline at end of file From 7f87c7c926de6a91280f02199dc663543835d619 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 25 Oct 2023 13:31:02 +0300 Subject: [PATCH 107/117] UI: Outdoor Environment: Leaf wetness widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../horizontal_leaf_wetness_card.json | 29 +++++++++++++++++ ...tal_leaf_wetness_card_with_background.json | 29 +++++++++++++++++ .../widget_types/leaf_wetness_card.json | 29 +++++++++++++++++ .../leaf_wetness_card_with_background.json | 29 +++++++++++++++++ .../widget_types/leaf_wetness_chart_card.json | 32 +++++++++++++++++++ ...af_wetness_chart_card_with_background.json | 32 +++++++++++++++++++ .../leaf_wetness_progress_bar.json | 30 +++++++++++++++++ ..._wetness_progress_bar_with_background.json | 30 +++++++++++++++++ .../simple_leaf_wetness_chart_card.json | 32 +++++++++++++++++++ ...af_wetness_chart_card_with_background.json | 32 +++++++++++++++++++ 11 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/leaf_wetness_card.json create mode 100644 application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index a5644dcea5..f66977a66a 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -119,6 +119,16 @@ "vibration_chart_card", "vibration_chart_card_with_background", "simple_vibration_chart_card", - "simple_vibration_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card.json new file mode 100644 index 0000000000..82c85c3c94 --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json new file mode 100644 index 0000000000..57acfcf515 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_leaf_wetness_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_leaf_wetness_card_with_background", + "name": "Horizontal leaf wetness card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC+lBMVEUAAAAWEwkpMgE9TwRZdAt8nB+fuVC8z4TQ4pVJWiJhdisXGA1vhj0YGg8ZGw8aHBFhgRnQ1MLO0cLP08LR1sNDad3n7c/T1cLn7NvS2MLl6tnMz8Pr8dTl7cnm7czW3cPj68Pu897U2sLl7cbr8NrQ0cPt89TT08Pr8N7v9NoQEQDs8t3o7tLl7cPp7d3k683t89jk6dXo78wWExTo8MkaGBnw9OHb5MMYFRbe4s3T2MfX38M5SwE8UALs8eDp7tnd5sPo7tbu8uLb38vJyMLW2sXV18Py9uLk6NDt9M/x9t3o78/n78bq8Njq8c9FWQHh5dHg6cMmMwA/VAHY28nIyMgNDQDw9OXNy8Le5sjZ3sY1RwDZ4cNxf0ohLQDq8cwxQQDs88hTVEy9wa7UzsXh6cljigJLXAY9QwZXeNrE15BeewcrOgDX08dZaiBzkxq0y2ppiBQhFQGltHYbGgEWFAC5vapTcgMdEAFIYwD09+fLy8jI2Z2HoUdjgQ9AUA52hUhRYhW/xca8zJCNnGRegwNXeAJObAIpLADR4I9pdEqVtjF/myedrczJzbnb6bJgYVmio5S50FyjvVGoxEpsgyGfvxAuMgPU46fF2IKbsGlxdGmQqFgfHBmPtgY3NgZXaQWIrwIkHQIlJAByjdeHnNDS4pusuoWzwoS6zoKYpG7C1m2swl+Vr0d0ji9jfBnPz8izt6Snq5mFh324zHmmvGVygDU6OjVRYgR1nwNrkwNAXQCDndyfq3idtWBaWFmyx1CbtlCClE9kakeBmjqPsBxfbgOtwnGJmVq50UuqxxxDOBN9qARnhNessZ2CikpfWkh5jUeMqTexyzBcdwzEyLPCz6KvsqFedDhfYRmzvMjIzMSLhzdgcCilvz1EVRhueUZHR0EsJxZ9nxRLTRJMcNyTp9O3xJOTlobG2lOGdUp0a0eFpS4sKyhXTyCmuN3BzdvY3NSCkWalqDIyKgHR2bubglZ1bDN4iVqglEpTYixpZietp11yWToGetwrAAAAEXRSTlMAICAgICAgICD9QN+/v1BA3+/e250AABPXSURBVHja7MGBAAAAAICg/akXqQIAAAAAAAAAmD36aU0bDuMAvqlJdBvb+9hrMK+hoLCLrHiaEAumRJFBnIcfMWTpKdGxSMjmDi7B2F6SsTgmZm0qOqE0jtFd7CGH3XwBO+1JZKyDnXv6ffLLkzxP/pAvwTAMwzAMwzAMu03pnVQiDYgsRVEEQVJkJkNQBJUloCezcaEoOBAwIkmCJEnosrCgy0IhknO4Aa7BwwAuwHtgCDUeEdDuZDKwQwVJ+0c6DWOo8Tj1DxhlUnf/K4lxL9du07DypXKsRF9fWF13zummidCUQ2bLRK0WMvvfeWQ6psUwU01RHdViA9myhgwjh9aQHawXS0NmHFVToyhUWGcztm05iLqy6hmKJinei9BXYUXeajCIjsPoGRBqnc5JUxCS805VFJtN8ZMoCOJevvKx2jt9U9hPFAqFg4MyXelt3z356/FOo1G//xByXP3KXUMOurTT/mC6rt5v6X3uPYd+ImRynH542DvReYQYBrnzabCQRiPpNc/zDARhR57nzQPDMLoMP9NYTdJmK1VZB6wceF6wGk8GxmykKZEwORqPbb9WOz47C6KjSfztEORbR+wkQYQqxKg+LxaLdLJV3p7/2O7fTFLeO99+bdwMkoRp1Ov1R3cePH15mmsXaTofa1+4qtvidH+uc5dfPiPU7+uXV73WdA4hNG3IWo7lq+vFTJYYnmGHGquqEiuvQsYObMd3bGdjLJdLww9ebWRNkjaeHIbxPwiMgfebbPoJTTKO4zi+q4cOZbi1XGXl0jSdHtyhZiVBbSNtebAgKQINHPQ4LGLhamVrOaUH2liPS9afg0706VCzmpJkjeyPVNtieCmjgrGyyyiIdenze/7Yqjc8P5/n8fK8+P5+GXe4MshOU5PTbGW6Mk3h68NuN9XZfaovM5Hpg6ubZG/J2m3HWuw224Onv15eunRpPxxEQvaL7dzLW5sFB38Bgpksq1n4ueCUnG2xg9JSfpYohPI5X3xs7gLFpnPRsdu3Z2f9KOEdT14JxmIpigqDNPM84mUYJkIHvVeGkgydvJmKMcH3M8n55FBo+MXwzcFQyOOdmcEdy7LuTHH0ZnFiojiRqbBsxV0Jp/PUZL4rTIVJXadOdboxH0D6u7sxlW4YCATrjQcvrxIK4ijY+cc+f68ORRgJsdQsOBcGyuUyOSYf4umcLzfiG/H5AvHJYjEcH3vbR417PJ58hgoFg8GYN+0JVaiecD70PuHxez1MLOLxeoMM7cXfdCwWScWS3siVRylPct4/ODo8PDxaSRXYTBEzGYXDTU1/ymQodjwQnUyEL3ZRVCbjvtjf6XZ3koFczNqz/f392azNbgcEc7E9IJKrPIPbXUe22Y9dPyEOBAmSmp8lZ6kskUgGFuLjiURgbnZ2Nj6G9fJcHLfRKJsvJAK5wo8ffpqmCwxDk5rXMXQgN1igt6yjGZq8i3i30H7GH8S5weFhEjEGI3o0Pz+U9sRSQ2L5aHowlc6lPRhyIMX2jPh62J4/PZ6a6p163Ovsnep1Op347X2Nvnx9Qhrg+jDwAa+dT94c5fu4BFIqSRZLr+pJdXX19Yb6Op1KpUNmi8WsM+zbt8egsziQebtBr5dptXs1Jsfp07vRaZJJ3dSkNpnwiNoUanUTkuOdokmu1cra263txjUb1nV07GhuPkhy6fV6V8cOPDYf2orWrl2/imslIutyJJViwXPtytpNSuVq0gouKfePcvWBXVx3T/CSmnfHjy9KFu8YRIjBYKjXcakAsajqINOZHTxEK5PJtDsB2e1wCA6I2tRqNRw8pI088Rh1k1ze3m40Wq1WY8MGQDhGMyAuV0cVggAhCFxIdKDlpNraTZuUK/6FSFfwkvO7rgmQbDZbLkUN/0EwFTORmFUqFeaBLOaN23eivRs1ChMHcQgSTEFhEhicBFejXI65cJLDVuthY4MLCA6CkRwEQ4BgHmQkQFTjHEu++q+RiEJpdSYnTgqQc88K/v8h+H5ckIDj4DJZzBq0UQPH7iqE7DETF3GAQOIhjVxyKyCth9c0uEjgYDAigzgQv7eWOEQIEiUYylIIUgqUb/wZyU7lwl05EQIJVl01ICyIGwjC51oUCoUJEEiqtRELPwu1CIGgFQy1utGKkbQSiZ5EJIhXgCFABAl3Uv6BSLndJUqqELzkKfd5SLpwu+9Mzz4D50BYiACrCpkBwEiQRqVREJCJQKopED4bFuFoEAp309jYikABxGhtxdqwRi+TEUl1UyERAgkXfgGRAiJuLoSRQCLIlIID8XsOEFSTGrl348JDTESIOHiPygwCB9GYsaO278WWIhBsrd9s109r02AcB/C+BdFIlbbYLpktnZpKqVShcWpl2lV68FIvxaf0kBdgboKUXDuSgxejINIi9DCRgLm4yxApSCcexK3dpYdpQabDk+DF75Nfniz++Y5sS0/58PvzpLiQNE+OJzLi/IICDgpBcFssJlPHIUF3XYjUI4MfOBBhIQjl/xLhQPDxjCCjzaG5uRF1AOL/qwXTDoMsy3zKs+krMMhqvV5P8FnO+xA8PEUVBnK0uAPzwSEY92KxmCJJExVBmqIqcEQl5ICAQn8jEkU5hFxHvr57do9DzJ+muUFzjlBf0c2yxpsrK9tHoUA0OZvPb80+AsEnWVXRZFUqBTGEI1KQli9BijznAcHU83lvrqx0fMqlKOSPYQ8dCI0EQbhEOJBXO99AiT14uLm9/ggDjmdvNLCxKLS+4tpZWdbYy0Jh6epVTW4ck8vMXlxsNhPNxRNqrloqsHZjpQpGppFTM01VPdHkikhvcUgLDoKcr9VSKZwinc65paVzncvB4hIOAYGEBoRrJj0/U9pd08+DLiSHkMyrp09BiQ2H7zcfAxJUIQ7RwffXPJ8PIEEVshzyklnzYzOHGfvWYu6T02Yrs+rMYp/2HXtmeWnHYhnX8Yy5A6gIquaXpNXijrs8uMMxn1yAA4d+h7YXJKKx/tm/gAwkPxN/dXX1vbE0ESURkLdvd2LmaGiaXw5Xb/y7LgV5jckBpMIMWbOcudewXS/N2jdvFpjLPjm2ZXu32W3bLXmFJ7Yzd52tztzaKqsJ6r0EQRB0FhwU3HJJMlWrJU/R+U5FAYQiTnYB6UuDHtI9wiU9qauM+4qi904LiQ95i2E3h6PnJxFaV68hEJA4ghcV1r5SsVzDsJ2LXolDbjJme+25ZRjpALLfblfXDMteMxwXkCB+e5EDWRUU3C0kk9CcggQWooQQ0VxCMpa6R8KXlYGkKP2xMtCnIWQXDEC2Rw82zCFVBBJyBBAOOwvIjDlrzHENz+IQLFvXKezny57llC2HQ0ous9ZcdNqcsS0VklsEuUEQBI7V1aAsHLWAnKLwsoACCTFCSFARXToyDSU9aXJN73elHraYD6lWd3d+/Xq1G3tgbq8/3ojHCXIg/Q3RIEEq2XI2K+cRFbOcwxKuLy9fxftjo1TiB2QDm9i/8AuSaEX4iPPtu1AMIKtgIGfOnAkpvgQUAQm7CxJpD80+7gbnBiZG7/b7CiDkqI7W1/H1LPbD/PDm/pezwZneJ0JfQJY1jd6CK2AgOBgTiCzDsYTUZTw8dJUSPGH+gqRqCdQIJSEJSkMMBBQKUcTARyFTPM5Al/RpcABOJkpvD4tLAQSOO3c+vHjx8M3D32yYz2vTYBjH8y+oi3au1h+LrLDKFtklGyzG0hGokQg9zOLt9RLG0FGIJ3cIVU8N7OBF9LZSGbKZgDcnKDt4aT3FQndSWPXW7bC73+d988Y5/Gx5m6aXfvq8z/s876u83tptNr7L5uRABQcjLxXB4qtRLaHqDhMu4jizsyTCTSwKEh5DRJrgldcUke8oIoVCCfdoUS7NEXcIeEgT/AGY3JJBOW0ywHLrqUNZyqcCbxgM2wMSgUf9yw6hvPra7DQ6sqqrwDuCBzEqLoIioFEDdD+dwoOCucVZvC1NAERSExKpnq+SSLVwCQleoPHOHIkgKjIkN1KVLOlP5/t1rMHtrCnZ9ALP21QH8CCRvZ2XL1d2lN1Os9HhvVYOUEQOh6rgEC2KMIGGCUgEF7dBjDRe7TVy4tNPimR1nnuUBCjpxCUC+SK4IZEmXOVfk0FrcO7cdSkCAjUYqvtnvE0SubxQ315/ghMLZbfZ/NLYggcX6arqUAbEK6a4iIXJ0ejiFN1y0TRTEzx2NFe/zdMFVxoWR4qQB+AuM2RCEny88o/IvfvUtUgTEgEttQsRT21JEa99oe1NTXW7S9cql8H2CzrYU74+ff228wsanEPVy41UwQhfVyNiJIRhWYZZC03Csm1TP8dMw6qctXQ0ZPMb4yU7nFhczOWmrdz0tItEgZQGj1QEjQmJzBRm8M9NuI+YVsgZ8gDYeN3KTMaEyb6HZO+q3pl0wQ26Exdaaivw2kvom8Eezvieryg4+9lqdHKSj6OcXLnwK9Nv7jix4yQJC32f4S5yojDq2XHEksRnvTrr6ZrJjh/0emHRZX0dHzC/f5U8nPzdqvA4fxNUIQIwvSSIyOSkTP4rxCSfXzJRREgC+kLdACIEVKDDF2EEhNiGB0SQ6o3GW2FhAtdMi4hbskAJY2xZCYvv+2yc5a3IisLxJGQVhmfHIYt83XHYcQiKrh9f8w3oRi5f3vJVQB4QmUO/KNKERDITiAiTrKacNkGu7wf7tNwKREGfCJb4zKJkX1lbX0dECIhcJHRwtHmgHnQPXTtjw0/6/gaL+vXYtvt+L+nH5dhnEYsv9459ZkFk3O71Q63S33DxQRJFDsiTB8LARXjji34xVZEylCmSk3X+AS3EZJJtrkjkIeD1Y2p1dRXFEB7g6SNC+fTpM84Kdd3lGEbZAOVyuVarlU9i/IWFhutC2bZnAJ0PAY1wtNnED/MSvhURWQ4POJEIwiIRLv83WeAmsp8HEFklEYA7gKIOEYrIs7W1R8rjdx+2vv0+AjUwLxnjzJ+kQtTA2FhmWS8bFDq9ZJkinzTdRSxKBI13eZZUqyQAxIgBVvQuFaHaghspQiakksbkrweJLC8vY2v1MBXBWdLC3grm1pry8w348V5CexdiAiCkWVVKj2Ck2x827Bi1YSCIwrDuYEMKkzRBpAomEJMLJGrSRmBUuxMuREqBOh/Bpa9gBClykVwgB/Ad8s+8VRgtfoUsN/Z+PO1KqyrhKmTWFhUBQvRk84oTitKqyycSBn8la63GMAiiR0kmiiT6f2rAYRBlt9tXE2QgXXHakN++7+u696xiZCLCwFFdmFJM5kXF608yaIqG/Z5GnxQg9X7IJYa5n1FetA5TCaGP4JDkoQLCVvncdoduKDYm+a6VaAGQkwgQEiEeNYXH0zQzlYs0fipYcySCKLfpfo/FMnu2940WjH/Hq2e7LYE0lvMPjRzUyAVDtIzjyqqg0JyzWOYO2p/O/bUUx4rWVZGaShiDkHTEMeXO8qx9PRhuKqKkOc/maU/kADJJEuQ4tMNxKE4u+apjTDJyXZJFLrEKIoTn7vCFLPnkBO8HQRQoPmq7q3AgM4i2XwSJLJTilobfMUcZHEjKG4d8tkPHslWggHLJJVCYX4w5kzD/fXWPl1aETP2I8kaASCKLFfPHlvm8pg0FcLx/wMb+GCl4SP6GgDmNMAw7LIGN+GMds5dqQJhoD5tVww4anbANHXqREZCxYCczOlCpF0GllF2M0MMiOqnCvu9ZHYV+eHkPPOVDkhfDx+vFrkUg2xZ1I+8YihciFKqyfeof48pSj/tEPqVPfIFA4BlEgBsq3+/yFsQRWiKX8fiTv3Fwm1uQYPAT6TB7aHuhINHQBaPR6Eci/W6/22j9iUajpVLpGyiVMF5+Wf98j6Ba81tWrVZLfvSXk/6kaZrlqZVMlpMEc2qlrFTqzCx/fmfb9gycn/f2PO31LhuNVqsyeH5S+eE79e1EcLhdbuAiBwZZs5r8W9Y1kQnLoizTVIyOJ4g0giGdItcxQBAYnsVEwMwyPMeyHLImIqAkcXllrEiSOv66I2+ow2V6NGo6Vso0z9oodIlpJtG02r8miVym0GwWcplcrlDAYq4Xm05H1+eg+IEQDAaPjl4BwTCMPL5E0oF0oHJ6sPfYAQ3XHnc2e3Wl67IsMCJEwAs6w4SUyTDK9vb0Wcx8mBHgI0AC/Q8DMqrEoW++Rt9UlTGikoJFMThgDG9mdnfkTJ3JxJy025ZlXQBYtTFdoA07zsreXM/nsVixWCQKGJRQKAQRDa20Wh0Mqngd4hl5SEXAfxFqssd9SFw6soxz1zy6rBEP2r09HpGaQAMwLMfDg2UEnopAQTo+lrYib+ABCUMZG6qiSkjIyOmwUYc3y9lyBFYrZ712VovFaGUvFgt7udlcd3QtRi3gQa4DdcAAMJElyciTf/DYtNIPDh4d3rK/rVyYwF0XyGgyZERGhARRoTIC7q6wIIi4uRimXocTYPk6z3KKIpGThdI/du0YhUEYCgOw1U4tlF7IMzg4dskWQekgLo5O9gKlY7yBq9BruGQQpDh3FTr1f4lKEYQe4H1oBAXx9+UhqCWCSBMkr9oKWwSxgqJDgXTXjbrQWsphiIhS6mHcbA6UIzPmekCaRo2s2joGPNgPjnM6UgpakGCeWlhX0DEvTNaLLxKhkMSwH/FFQi2DYoTULpMwL5/mvmNArxRE5oiERIFPqJk+fT9e3wNEKrIE9aWyKZZ6ZJM5CBEN3jDWcXuP2zNywO5fLnjgwppnj2HdgF9iMBi/e12c1Z4aA/EMd7F9NfuFwxhjjDHGGGOMfduDQwIAAAAAQf9f+8IEAAAAAAAAAMAo9UG8fnFs6/EAAAAASUVORK5CYII=", + "description": "Displays a latest leaf wetness telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_card.json b/application/src/main/data/json/system/widget_types/leaf_wetness_card.json new file mode 100644 index 0000000000..2c19b88b1f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_card.json @@ -0,0 +1,29 @@ +{ + "fqn": "leaf_wetness_card", + "name": "Leaf wetness card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest leaf wetness telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":{\"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\":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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json b/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json new file mode 100644 index 0000000000..5c61b126cb --- /dev/null +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "leaf_wetness_card_with_background", + "name": "Leaf wetness card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest leaf wetness telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"mdi:leaf\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json new file mode 100644 index 0000000000..39692a4fce --- /dev/null +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "leaf_wetness_chart_card", + "name": "Leaf wetness chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a leaf wetness data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'leaf', label: 'Leaf wetness', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'leaf', '%', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "leaf", + "wetness" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json new file mode 100644 index 0000000000..6a162ff6ba --- /dev/null +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "leaf_wetness_chart_card_with_background", + "name": "Leaf wetness chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a leaf wetness data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'leaf', label: 'Leaf wetness', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'leaf', '%', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "leaf", + "wetness" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json new file mode 100644 index 0000000000..7193fd4568 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar.json @@ -0,0 +1,30 @@ +{ + "fqn": "leaf_wetness_progress_bar", + "name": "Leaf wetness progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4ODg4OAAAAD////19fXg4OAhISFLcN3j4+M9PT2srKxYWFh0dHTx8fGQkJDo7fsvLy/Hx8e6urqCgoKenp7v7++7yfKGhob09v2Opup4k+WXl5fS2/fV1dX39/dhguG5ubmpqanH0vVsiuPLy8tmZmZKSkre5PewwPClt+6aruzCwsJWed/c3Nx+fn6Dnejm5ubU1NSxsbH6cLmjAAAABXRSTlPvIL+vAC9A4IoAAAQySURBVHja7M/BEQBABAPAOIynp/47vTbCZDtYhD3Udm4Bw+R6DYN3HjAPlSfgSqQUIaMIG0XYKMJGETaKsFGEjSKf3TJYdRyGoehKcLFk2cixt4Fskv//wpHShkzn8TpvFQKvFxor1ln4oNb0bvmI3C2/XiQlulfeiCxSvtXIQKNb5Y0II33XUqzyZiSj0n9zD5GMmd6EQT/J9SKpquz10rsQlcrogyJjxOvsnerA3J1z2lAbSS1DpQS1aJ9ibV2HY1RGbFwvMhkY7C8bmJEpMcD5OZpCE/RRCOBkmaM9fIcNyDtkrkbeNy/dmrEx9HKRwi4x0I8TN38cjgMLKYwo/A6OGBRMpWQOihdl8yI+DStNwWTMV4vs5yfjx63bIX+JzOjEG1pDjfPt3CESjLr2FoUgZiQl7u0FOVFJ5WqRikeIhgF4ESHLDc36QDu4LyKGPZVmBrJ4qzulia4WGVglQoI1UX0VUVMm3VYLYQ1s+ioikXn/tTNGDFZW8OUTacj+LHGqxR+vIgJTJ2w9uX9FMtq+X1R8cWioQx3tOpFePYkyVKp1Gtik4lWkwO2KxebBRVHbKdLAQxQzsUnr0JhsmxjpOpE9jZICyOn53UbfRU6qPK+gkxNATxFaGLDh/Rx9x6sBJnSJyGtKKs/1p1ysZ1I6+8fGmc/f+I/IH/bnkApgGAigGBoYrIH5lzlUejjt+3EQWRFNEU0RTRFNEU0RTRFNEU0RTRFNEU0RTRFNEU0RTRFNEU0RzRhZ2+ObIuvdDphMke+WyM9+HaxaCEJRGB6tYA2diW7kCDpII+j9X+5ysrhwB96a7ciPHqAf3aWJrHbnoF4vpJAznqIXspB4jF7IxhXOPGBb/RciXIVktGhUJ/VCIg8FXz6L4pHphfiYg5sruToAQRA2GIFOLaTLtyUJHrPAJ+h0ISSRHoCLaVmsh1IXQkwLganFiNp/fCckeT8fJ5UFjbehKt1bnRBL1mNGLHYmm2izhUadELeSxblCRoNdNLYi6RyTS6ffhF2psMv30ah/sRKSlACcXNyiznnvhgAuhD/vrfXs9Y47+5OMEG1GiDYjRJsRos0I0WaEaPOCECNs8jwpcj8k8ySTIp/bIfw1aXI7RHjKkyL3V8RkNqJpRj4v/mo9zAjRZoT8tHfHqg0DMQCGz0l+Z2s9HBEaBAaDt8Mm9vs/W2uo14KznOLoh9v1cYNGeSsg3voHUjrLVK4vAyBmJvtAhyGigk1UrdVVgaEwGpP2MstxyPKAXP1LZIOo0M6UFYbxOGQc3EC+2F7OAfECUYGZ8iJE5pbHQs12iE0sxmSgz+MQsnZG1XbIU20TrF2XeQFC3+Ml+Rvoszf7exUQbwXEWwHxVkC8FRBvBcRbAfFWQLwVEG8FxFsngiRO0T1dTnB6Gr6vqUknOD4tv4xbc72/e+nS3H4AH4urRIckSugAAAAASUVORK5CYII=", + "description": "Displays leaf wetness 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": "\n", + "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: 'leaf', label: 'Leaf wetness', 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\":\"humidity\",\"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\":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\":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';\"},\"tickMin\":0,\"tickMax\":100,\"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\":0,\"to\":10,\"color\":\"#4B70DD\"},{\"from\":10,\"to\":50,\"color\":\"#FFA600\"},{\"from\":50,\"to\":90,\"color\":\"#F36900\"},{\"from\":90,\"to\":null,\"color\":\"#D81838\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Leaf wetness\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:leaf\",\"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", + "leaf", + "wetness" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json new file mode 100644 index 0000000000..8e04636f0c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/leaf_wetness_progress_bar_with_background.json @@ -0,0 +1,30 @@ +{ + "fqn": "leaf_wetness_progress_bar_with_background", + "name": "Leaf wetness progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays leaf wetness reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'leaf', label: 'Leaf wetness', 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\":\"humidity\",\"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\":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\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Leaf wetness\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:leaf\",\"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", + "leaf", + "wetness" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json new file mode 100644 index 0000000000..9dc2ce8fe3 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_leaf_wetness_chart_card", + "name": "Simple leaf wetness chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAllBMVEUAAADf39/g4ODf39/f39/g4OD////k5OQhISHg4ODi4uJLcN2QkJDy8vLHx8c9PT1YWFgvLy90dHQ8PDysrKxhguHV1dVKSkqCgoLo7furq6u6urr19/2enp5mZma7yfK5ubl4lOWdnZ3S2/alt+6ar+yOpepWed/H0vSwwPBti+OOpuqDnefd5PmwwfAtLS3FxcWcnJygPPf3AAAABnRSTlMAIL9AEN/GQiaNAAAEwUlEQVR42uzPyw2AIBQAsMdHDCRs4P5zmjiBRyDtBg0AAAAAAID/atpc/Rolj3tz4yoRaTxte3OUyLMdYObo7QhdZDEiqxF52a23VTthKArDd4PBZM4cNCSiKOILtH3/l6u69truU2lLi0TwR0QzycVHLrS2bkht3ZDauiG1dUNq698gOaOW/hQydPjcxIJa+iXk+w9dM7ykHp8S9vgqKn7fSZAcuDd/hDhNBsioA6xj47alEVgErt+nAmUYTPOoAtioad+l8rLr6AyIRD5KHyAamzZAYtMw2cRpgw40oWKa9qlHw9IL90eUtmk7pNhN0cSvu0YcnQAp/Bpi7JHpJAGlgdA9Fl2KAbHfpkYH6j4aKOu1KqwpMM2OGek4kjMgmWuTJ+neQxyj90ym6/0VgjCGJTpKfkyfEEdReu8puY0hAQ3LaHh2BsSRHD3X8ntIZhIRS1EQDogWWpgK5DF9A1mYRQRirqMzkT52eHYGREjtuNbigLg1tCW7ybqYnT8gjgELGyCUnCdDbOwFYrETpwiTZc5LFAsBr50AQWjtG9cUzxa/FiCFUbd72U7EO+yVHuZnQAJjByibbZS9YG4ZR0jZ1zsyCI5OgMg8kKzoc/e3kKM+8pviQt0/jbV1Q2rrhtTWDamtG1JbN+T/Z9k5uzzENHArpGtDXGRYZjdrSy8XhiiLw6O+jfmykIGN4Zm0US4KEd++e43hohCl4G09x0tCfrJvd7uNwkAYhs8+jTw2mIADBlJCEshv9/4vb5fSirAJC2wqQSWeO3gzmLEiIWiFNu2pnxiyIoG2NUU/MKQZSEOS8/NCmoE0lK9nH+JspEzU/UAkHm1pM++QwKWKK+9evQJPaE9NHqKk9sjTgcCDiPRWAc7q6yLiuB17XFA0dUjikY5kFJKbPJ5hiVrsk5Yy0uQ3Hf3n/fWQ1GKo+OvaJHyK0bK7Ow4iDok8vVPooHxXvR6SmVpRZ9yYzQmDCAoVair0RPvqEWIEh3SrZB0EiRgbcuBaicqVi7M5poC16PPmi8dLU3Osx9g1N3qVrDyquIEYFXLjfF+xqFwMkHEGGNM/kLjrOdckMM7WJx04Yr2pXh5RIIQTa6K3ZERIzgc0TF6H/OJs3HZTviuaqA3GEju/nkPk4JNY+eSuxNCQC5/RqB6rA5+sKcdeN9aeG6AiNEn8j7UTbAVatm9EOhkWwnwo8luG2pnNlQ2uxo6+bojq95ORJq9nHmMnFQ4KSbl2SfEhy01pMz6jh3JX+FusPaJQKnwvNSzkwsVpX/L9SUmNQZ+AHEyieyGm9ZE/3r+RrS2uhcU/uBoT6N/sGbPFJ8sHezxe2KToJCnBYFOFGJMWfMKeD+gSU4RJdIeUbD73e4patUJyBiyX6BBRqDCJ7pAT8xmwhnPUPlbIjVO8d4UELkUTdPRvds7zY/Nk2dxWAyrei+fL3QlJO5hAX0ha8h9mj5aC+elAHE3+RBn9hz2tb4xt73v7PCPG5JqQkZoMT87hA8AXQ+RMMl4OiWaSMYc/6JaQJWTelpC5WULmZgmZmyVkbpaQ3+3cMQ0AIAwAwUDDUg341wkSGEtz5+ANfDVCqmkU0ma5E9mgZOe4W6r1/5ZqRqdRGAAAAAAAwJMDbJv6K5dRMTYAAAAASUVORK5CYII=", + "description": "Displays historical leaf wetness values as a simplified chart. Optionally may display the corresponding latest leaf wetness value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'leaf', label: 'Leaf wetness', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'leaf', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "leaf", + "wetness" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json new file mode 100644 index 0000000000..9a2fc593e0 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_leaf_wetness_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_leaf_wetness_chart_card_with_background", + "name": "Simple leaf wetness chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical leaf wetness values as a simplified chart with background. Optionally may display the corresponding latest leaf wetness value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'leaf', label: 'Leaf wetness', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'leaf', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Leaf wetness\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":50,\"color\":\"#F89E0D\"},{\"from\":50,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Leaf wetness\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:leaf\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "leaf", + "wetness" + ] +} \ No newline at end of file From 5a9f352f60d788f7cea60d1440846077c893dbf2 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 25 Oct 2023 15:54:05 +0300 Subject: [PATCH 108/117] UI: Outdoor Environment: Snow depth widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../horizontal_snow_depth_card.json | 28 +++++++++++++++++ ...ontal_snow_depth_card_with_background.json | 28 +++++++++++++++++ .../simple_snow_depth_chart_card.json | 31 +++++++++++++++++++ ...snow_depth_chart_card_with_background.json | 31 +++++++++++++++++++ .../system/widget_types/snow_depth_card.json | 28 +++++++++++++++++ .../snow_depth_card_with_background.json | 28 +++++++++++++++++ .../widget_types/snow_depth_chart_card.json | 31 +++++++++++++++++++ ...snow_depth_chart_card_with_background.json | 31 +++++++++++++++++++ 9 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/snow_depth_card.json create mode 100644 application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/snow_depth_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index f66977a66a..2d6c8b4247 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -129,6 +129,14 @@ "simple_leaf_wetness_chart_card", "simple_leaf_wetness_chart_card_with_background", "leaf_wetness_progress_bar", - "leaf_wetness_progress_bar_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card.json new file mode 100644 index 0000000000..690a99c3f0 --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json new file mode 100644 index 0000000000..76fcd31a5e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_snow_depth_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_snow_depth_card_with_background", + "name": "Horizontal snow depth card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest snow depth telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json new file mode 100644 index 0000000000..664cb5fe86 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_snow_depth_chart_card", + "name": "Simple snow depth chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical snow depth values as a simplified chart. Optionally may display the corresponding latest snow depth value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'snow', label: 'Snow depth', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'snow', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"cm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "snow" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json new file mode 100644 index 0000000000..f12e8d75a9 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_snow_depth_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_snow_depth_chart_card_with_background", + "name": "Simple snow depth chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical snow depth values as a simplified chart with background. Optionally may display the corresponding latest snow depth value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'snow', label: 'Snow depth', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'snow', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"cm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "snow" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/snow_depth_card.json b/application/src/main/data/json/system/widget_types/snow_depth_card.json new file mode 100644 index 0000000000..af275581c6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/snow_depth_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "snow_depth_card", + "name": "Snow depth card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest snow depth telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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;\\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\":\"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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json b/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json new file mode 100644 index 0000000000..1505e705e7 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/snow_depth_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "snow_depth_card_with_background", + "name": "Snow depth card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest snow depth telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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;\\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\":\"ac_unit\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json b/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json new file mode 100644 index 0000000000..f63e6fd7dc --- /dev/null +++ b/application/src/main/data/json/system/widget_types/snow_depth_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "snow_depth_chart_card", + "name": "Snow depth chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a snow depth data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'snow', label: 'Snow depth', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'cm', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'snow', 'cm', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "snow" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json new file mode 100644 index 0000000000..3be7f02c98 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/snow_depth_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "snow_depth_chart_card_with_background", + "name": "Snow depth chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a snow depth data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'snow', label: 'Snow depth', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'cm', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'snow', 'cm', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Snow depth\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":0,\"to\":1,\"color\":\"#6083EC\"},{\"from\":1,\"to\":10,\"color\":\"#4369DD\"},{\"from\":10,\"to\":30,\"color\":\"#2B54CE\"},{\"from\":30,\"to\":60,\"color\":\"#224AC2\"},{\"from\":60,\"to\":90,\"color\":\"#F77410\"},{\"from\":90,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 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\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nif (value < -10) {\\n\\tvalue = -10;\\n} else if (value > 10) {\\n\\tvalue = 10;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"cm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Snow depth\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"ac_unit\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "snow" + ] +} \ No newline at end of file From ba79b58d9eca439481d04428de886e6fd1813fdf Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 25 Oct 2023 16:38:40 +0300 Subject: [PATCH 109/117] UI: Outdoor Environment: CO2 widgets. --- .../widget_bundles/outdoor_environment.json | 10 +++++- .../json/system/widget_types/co2_card.json | 28 +++++++++++++++++ .../co2_card_with_background.json | 28 +++++++++++++++++ .../system/widget_types/co2_chart_card.json | 31 +++++++++++++++++++ .../co2_chart_card_with_background.json | 31 +++++++++++++++++++ .../widget_types/horizontal_co2_card.json | 28 +++++++++++++++++ .../horizontal_co2_card_with_background.json | 28 +++++++++++++++++ .../widget_types/simple_co2_chart_card.json | 31 +++++++++++++++++++ ...simple_co2_chart_card_with_background.json | 31 +++++++++++++++++++ 9 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/co2_card.json create mode 100644 application/src/main/data/json/system/widget_types/co2_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/co2_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_co2_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_co2_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 2d6c8b4247..ed52d20f5e 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -137,6 +137,14 @@ "snow_depth_chart_card", "snow_depth_chart_card_with_background", "simple_snow_depth_chart_card", - "simple_snow_depth_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/co2_card.json b/application/src/main/data/json/system/widget_types/co2_card.json new file mode 100644 index 0000000000..908bb82c03 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/co2_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "co2_card", + "name": "CO2 card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest CO2 level telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/co2_card_with_background.json b/application/src/main/data/json/system/widget_types/co2_card_with_background.json new file mode 100644 index 0000000000..f897d0d7a0 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/co2_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "co2_card_with_background", + "name": "CO2 card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest CO2 level telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAMAAAAI/LzAAAADAFBMVEUhJx0pMygbISMvNyklMCcpLiEgJycTFBYYHh0dIR0yPi4rNiwnMC06QCRITi5ESytKUTEzOjE2PCc7QS8uOi4lKSNNVDViay0/RS44Pis0OStOVC4iLCpQWCorMyA9Qyk0PzU/SS02PSE4PTFTXS5ARjVHTidcYS1GSzZQWTJFSTAzOCQhLSM6QjUgIyQ/RCAVFxwnKyldZihVXCVLViUdJyMxNS4mLBw6RzEuMidhZjFLUShDSSNdZDZibjhRWDg3QipGVDZiaSNXYSlCTTJFTiB3fkczOR5KUDlnaz5VYjdYZDFBShw2QjAwNRwXGhZaYkRCRihMVEBZZDspMzBmazMwPScRGhg6RzpBUDhaYSJweDU9SzMsNzNoc0NTYT9BSjpdaThVXTMwNSJQWR9aXzZQXDtiZzhhbEBudz45Qx0OEhJpbzk4PhpKWTwtMC5nbicqOCQqMBkgJBZ+gzpbaEFYXT5YXS4rLilWWzgvPDZsdCY9RyZyeCEZIBZ5fTtmbEdpdDp9gkVUVy8ZGiNgYz2NkzlvcjlqdDEYJRxpcB01QzpKUCBKWjRzez14fzJcaDB3fidQVCQuPB1FVT8/TiZWXhtyeixGUD2CiiiTllJJVy5FUyszQyWLj0JSWUFmcDA5SCl9hCQdLBthZ0R4gz6Bh0EkMx1LVBxvdEd0fDWMkE2FizxPXzVCUjB8gU2IjyFwdS0zOxZtcUGCiTSGjjJ+gjEmJilxekdrbzCBiRiGilFCTkCFjEc5SSBeZRx2d0ElKhVeaUyCh0pUXkiZnzZGTxadoFeZnUyVmj9MWkVMXCs+RhSRlkWLki11fBZtdRWgpjuepSmXniU8Sz+QmBhkbBSSmTIuQiCQliUtNRWnrS6mqkqfo0iaoRZwdlAlOh5PVxONkFx2flKxs12rrzp6gxioqV17hzBbYhOBhVlnck6jqRtCVSW1ujCrsRyvskojHCWJkBQ4Tii3uRyWmWKfoWS8v0rAv2qtrXBBPTNUTzzDxh7IyjdsWk2IZVelbVVXAACZK0lEQVR42hRX20/zZBzu1nYytrZbu0PbHQotW6HdKGyy2rXIBGch8g2rm9HpEl1BlLB8uCkTRTRORD8XD7vA8yHGGDwkCh6JRkATEiMerrj4LjTemKD/hK9vk2YXb9bf4fk9z/ODzuZLzeZJ4+rBycLCQl+L74lKpTf90b5olHo9QzdKBtZoFA211QKXFq/GIQiSUdU2Olgzbm/UO7Zzoi+FOL1acJju4J1KhWAdDsQDE+282NmfJmlGu90mDIYkSbxSmbnr0CqQLEMQNsuwsKMAfuq6zgxiOEYTyXYERTmsq9uy1Z3unp43eD3c3q9ayZgNM0ZQ+WuRSwyDf7SS4xPo/HzRtFVThaCgGodQA5Wh5kHzpNUolg5UaGFsocTRkk9XeplDUTTEWLuXVKo9rHF1BdraapilotJAoSCqYr3DNUW1fJ/P3XSM9TlzQVeQpX2rk5OxJRxOaTAdZxlSikTEMIZ4PQ/yeQ6GNbgT6eQr+yLmI6VOmMtpvg1/wBPEZZwmZZojKbrewVFbzh6t9fRer7qbvTY5k5yZqf72eDeCa2gB5Xfne9T2uqZiBqbxRuO0acfjfNANoXE0+VsTgkoltWSWrh60tlrXXLOwYDMyoc8r3axY7cWy4Xy1280qmyXe3bdw0jxRzBKogxvlxVi2Ki5tgOCWPyfRpR3SJdxISqFIuyIIodDcE8egfFzlxceevYtCYHz1cB/XYKZQiDxb+eoLER4sUDStMfVVFuRNDLIoKTEsTXPLlY4lw93z6V62p4hra00Uk0nZXtyd5pMkS2ma0u2FJ9dZm+d5jDeU+YaKuoOjbghCuS+vtIKQCgBkqo1Ga2FrYcztjnM4hl09m+91Z6qgOkfTeqnXgLbitgbFm02jqbYgDSVlC3zOiuDd3kx2bnmk/kQ+wTCwPBkRH+JumXzquLJTmbQs/PrDoWd3OJskC5lMF+VIkgqJlfYHJMc4PAGNHnlhLi7TNIPA+ppCUgLsW25bSRmbP0r2OCupZ0T5ESQFs1jxXEm2kzDC8qfFbjVLcCjGcyVFLxom5Hb3ud1u6fP9tRIKFZsnW62S0mhunUAL11zTojuW3Ww0FD6yW42Fq2uNUrJ7orqDkBtttopqK26jmsxYeszSaKs4X318aZ0k5j6fFTxo/YGlkXbHNzXS2VjOt3dWN0M+fSgcYUB1N2M6xVAwS1nbq3fVGdjh8QhMaGS1g8EsGpCL1WkN7mdlliRt2+IjHI9hHJHP6+SEK4UOJqtVjOOQVFBW5ovZva6tKhjfVPiVedPtHBsbCy4P7nzw8u9HkNk8keONXqMxb7QOrnEHSY4w1ZODeT05v5vsdXvJk2aXdy/0uSHQ0iYvqyqqgWnGSrDD1rvKXnh5lrkx9OmHlEOSKIHFN6Rh34f1KdzCl7dpsh65mYMdP9dlhkZZGB6WKHwnv0QLSNkBM8PEcjuGulwMpmSrWI40Io6gIwVbvYj8P10Q+tp7XddEAEHgoSuLGhyNxvnG4tmKadioBeIwGorSdDv7xvpYMN35zP570NbCQusEa5ycXG1dc3YAsSokm6WSMr84vzK/qCjFBgSZysJYX58KaIPvJf9/i21M0hAEMYzGXz1OYCnG9+GGX7guEKASrCCw0vsSy1LSxpQDv5m43QO/NfkkHtpgcjkmREwt49bgpPZI5yNAA3N53DvKFmQy34V58XDfgpGUHYsRoJcyiVvZ3z+zow7EUeCuNFxIFDXMRpVHZQOwhIqqnGkYK0FnXx+dP97p4HjkCaikQuaZcjV7crJ1cvZXQ3OQPNY8wZS9xsHBStdsdBvKiamOgc64IVusHIpQcLAd5uHxFAKowjIUpZcr+DbmpgSPwxFIX/IIQppKCDAM09R1jjuJgiNwO+mLrIoPiRILU/TURn5DkLan2vvtqeXJY+aywJCUjXcJg+i2CQRxcFaBQ2GNpLFkcSXTHXeVPYW4bkwgmMLzxWwXtTmUB1EDcsCMBvT0WBxtLy11dGupAm1dnJ1dXG0+vtdUzs7+Oj0As4WpLXP+rNQsKSumemB0Vcjd17fgdgMh6LR1mR7ERU7SRgEsdp7KJ40eKf6yJHnKUW8ZCQRYGs/lAuVoIAcLiMPjcEX7Cww7PJl/6IknCAocur5xIyMNvSSGOQl/ihL6BeY6khzc1G4HU91haSA/l2AkB/cTOja4+PLuaPTu2x2bM5yxWEKVZDerxm3ItlXIJktYsegeGxu2aYnc3MQjBQg6++3i4mpy+u+L3bODs78u/s8GbTUPVkyzpDeaKECm7B4NAmTmyIKMEfU4qOQIHyGctoLPHf+4Iz50vPrQJx/0e6PgYS/7OpM+bRxklpY66zCCeKMBlk0wkvXEQz89gTNS+pGpJTG/M30orpHW5GTuspelJZx8MOVybGI7dx3jcD/s6UceCaQKPFkQp38zJ7zjjvuwzWL1wDRM5egAkmUgdhBnciZmjo2OBWHWxMgSjSLQ1sn5+dmJ8uKVi+zpQaPx12kJ2lJbmMmrKt9RSs3s1RM+CMjP2Q+QgzxIS7DHQf1PU5qDpqfWPz9OLh8eh3YqPiLqjEaHp0JLFQP3uPzeuSee2sFnPTUk4In2UwL94c4cuEUJvsn8XfmZzP4rh0MsNVyO+nHRJ2iBqCsA40s7H1QAWANeJEKwBbJQGKpeeTzlcnlRwsB6p5u8qu9OE5gcdAOxU2VUUVAWPP+bEi3ucEEn2b/O/5rWxY/WensHJ1dPT1dKqLtV4pstyNQ7DbOT7S3G1NG+sRSCBBxMgfUgCAsnKAZhExQ9/P6TtG/yuDP31M4hP+7ysiGfT4zs7X19qzT3YeWm4zkQpGPC6/HD70ih2z4+XmKpkA6MwLPh/f2KyHjKXmw5v/Mj7o26ot5Egpv7fJJFolGHDycCl+DbYWNmcRp+JKeBwYrvLfIyaug9jFSDExOQHEf5TQP12FgEJZWuGg+mIKy6e3pRxay2mO8eAEqeX4lvud0QFgeo7GQVo1dUMMVQx5xuD5JCHqTSKSfgSs2f88BUgqam1snCw/WnbgLhDZVdfnYKThjXLp6zs9LG9vFc54HrvN6osyYE0gnqySe/ef14PRJJDuJT+XZ7f3+ISeToJWL58yd2pJRzfHhWEIZDc7OuaFQosMKA/9LtZCx27WOk18P2jcKqksRQm0xeO0Si424oqKGyqeyavGiFs93po7UrCgGVVk7PGrzN6e2kUTopnZ01AFNstUzw4qyOZXUOcNOMj426EU9qAkHhoMeBOP0JVk4iLD0r+R7w0dItt9z0VF1/d9AlrD81l2D0YlaPUMPDHy6Ftu/xTjgfTecCfkGQfO/f9OGHn0eWfTSHE/jMY3nGTw1LU/jc59ff63JdSt9D0TlmKlF2Bfx+v7c84IdZPnbtWnbCGXVNIOrKJmPLpKGTuA0sTBBCyRXgB4pk8rHHH6v2lD0Mg0qmclCSWSJCkKWTq01zZaW0sOBeQN0qanZ0GbOUjNItBfuiwAtPIP2eCSSAgMgEXyYeFEI07fMNs+/MPvnpRjIbs46/BaDvRJTYlUrbF3r/87kn0+Wo81G/xzOQFujVpz6cnU3Q+DCz3V4dqYtrunDP7PZNO5Gp7VseGfcHBhK3+Ol3/IFRf6DmrZUDA36ZA+o/bbuiCJKSSRTID4ajARxN9fU5R4OKsaknzXi7l+npa1lTZqDm1WazCZMYR9ul5rxSOrhqYk35fzupyaYlY0p397GsEh8bm0BSDkfK6Q1SbDrn9RN7WYbK6GS/kKBvDc2tEqVedlVc/vGDt79Kloxq57HDTmJ9Nj1QKztBYKDOiXXxmU/fHxYGafoROiLW87FKRPDfsz745FOhP/+sZLIDnoEB76u3Br6rgftRb8DjH6AGB1967Lei82knsKuYHLdJqx23Yva8HXQ7bZ0vGZwtWxhnWXlxhtEgtak2wSUMs2TZbB00wXajF3kg931bEF9S+Ga+ml1bhIAD6pt4DhSExgGfPVr2FrK7Rnb6Sj4+AINpmGtLmNLbz0TmVp+qKHavp+fX2p0w7E0/6n3a+3w06hVmaenFl5+hHglJlIP1dZbvjQz5/KBh1NIHy6H17PmVWLrm9Xq83pq3XCuD1twxIJCDI+En1jbHnh51aSRgLGDcesnHF4/Oj44stxkhUdLWNJJkGa6ji1wOWojHsRGOxEFrsGarpJ60msmMAVqzBdkm1jVL7Z6Sqe6hwT7nBMBZUPKxfq/LA5uNRSOpTIeX4QTgtDlCsSSrE8OlyeUPQyoBLEkknLlijA/UalEXQBAgAEoKPfveu/DscH8qQQD1vTEQAL3wU+9v/7idx3rTMzdHy+k7yx4/yMXrr5VBM32RyevX3stiUeeoE0WDKKrxenfxtPr7379fdLM9NBVEtUdglgHWj5JYDYJQFRuUGYaxmervpwfNeKuRjF2rNwGlbbWaJfSkq5ugFGcmn0qlokBAPLXaOFwRxW52flOO3VVPSKFbx7kRDJPwZKfDza4vETCWxAvWTj6T58q1aLnmL5eFBJVI0xv7lYgk9I8LdKdn0YHo84Ga557E+ocbN5OkHovkrksM3DGAlB/1egcCXq9fkOqbhWsfn743+rQHmUCDKTZo6MYmt7n7e/JKNXlzST3K9iRYE7QcSxg00Bs1frstdzCa1HePzv8+bTW7m7xy7WYrOAoIA8iRwqux6u7F0bSR+t6D+L3RaPTrpZmXH6sqmI8zMoVLs9KsAFsYRksUsU0PhyRS4zphPZbJrmXuSkdd3rLnUZcf5MKGlp6o39g/4Ln8CDM1OVJ3TJT96XR6+Id/P+1QGidGtiPDZTBe/xcgUANj0++jNgtEeP/N6NMuBziIw54Z4miO3jyyYmtZUSxeXMnoMAz8OFfcVQwI0mRHyn7tj0WF/33v4rffW5BN8HoMQ6H/veXoKFCceHz+6BwsA+QRWQO5uC57QknxlV+bMq9H2qEbb7n1yblbUJLs+Cgm4X9VCmmPsEkx2c4ryn54yn8ZoMY1ILBpP1W37lqiEY9rPEdJPjwOyMEzKAj0+9v/+DiNGBlZnhp4tPaot/w/lQEWHGdELnB74c03brzkdU64gPoGI/ggWWA4otqeFKfDxKah8Dp5+bLGcMWizkBBGXYg6toff/z219He7uJZU+XjTavLW+o1fX3uUXectyG5qOz+pa/g3cVC1FX25mici7z7cokwFT0izn0+tS1xfpTs0X7A2e9ItDaeI5aGiZiiZF/Ob0z5aW/0eX+Cgm8c4juZQZe/lhYSOE7VAs/7uQoHpHfj03VSmCU69dz/4/Koy1tLDz/iGsfzr73ShtOeS5eum5hwOl2uUc2iCyTwhslMLx8L5yMP3s4lY2wuCHPAHjM5CGXZfgc3/dtvv59f7PauXVFszka5nq43UeDIFlQyjrrlldLiRVYvzi/uBl3BRLpQ6OdjYbENlihdj3zDaUDmEIrxC4xwR2KWDgapjXqII8Dqmw23H3qoLiSE2cn7tysRmzjMfe2N+gV2MpGrpdNEplIJpRPEiMQKFC7qZVetDBjDe+u3nz65IQ29m3ntZfqO/oH+SwHn00+PBoIMjYdklmGI2Ewm+e4aYYjVzF0zSoTmSQ4sgRDsCPhRrFutZoxr5+cbpqGSthwR83odK7mh5vmKmnKjWLNxUcwa5srRtXD6Un//7dfdGBnqYSMspcR86yEKgA/QnCCsMwPp21Y/pNhOxMeQGENM4kRncjBBvdOpr4YP95PMCH23N3rZDy/BoP5Ub2YonLzsosGSkLPyHY/XVQbnh1dvnVt+4FgfvHGw/lV7MFCuDaQnQDbe4cHQ/SEP0k/RRCyPWbHsb1eKmS8eWxNJhtXgHAI5AixFFs//2ttdacyvbJoYB2S2I2Yaln5tq6Xsnu+Zbitmmrs9fUWVi91BBuTSXyDEa5/t2PZSRCQidcblvCxojJC757t7rrth6vObfDgnREiOIYoVkevvHxCGfaGNDqgQ7Ivo4zXXZf/I5VzCv1THR8LP1oVcUJM0ThcfrQF2qZVvfWd2ajhUORy8xC2NTO8nc4jnuprr6afHGd/G8B0DAAA47muTXDuS7Int8M1hUUP+3wwdkCOVi4vZxYu9+ZVsxmgYssySy7py2FP4pFkqHpwemWhE7PGGYlk8ZyocSKb/0nU4sRLOkLaFtTmL7AdwZoOJxHcDj6bvuCN9y9JUSHNxt9tLFvEmwfUHAv9RZB5ObZdxGM8WsjdJftl7mIQQSDMJhAChkEgS4CIkNiQESg8IRSQJQywUqQQpoEKqFbCilopipYJFelWLe1Q91HOcvXPUPc6reud5nq9vfv/Am/c7nufzBO4aoGVI4woFVWAj4ZMGJ4ejo8AbwJ1J1vOTSloyaZIQx+Wz3Aj4Nez1hF92OhRnlgjWrcZ3R06dbE4N6f+/jEypFQqjYDWBJ4ISaqZIHlOzUpPjBSQMEN0oHLgMCm1vq1v46Pvq4e666Xkfx6KZn9QrFFaBRtx3332X39bA9Ap9X7VezPf542IWBQenH33YD/HBcGRzNE5IY8Jhjqctwl3hfsP9Qi89OqAMBCQGLRYpgGzyNptISAlc+3EAMI6UVQ0KD8+1rUgRCESETiNS/ZMXiSwTYxtPVSvHCRhuA5hm0fvNpaWtqtTFyYKtgsnzc1ffG3KdiiO2TVohha7dFeKwXlqCpQSOlA5qRJkgzY7juDguBgXjAlDQbas8e/m9733AYhcTLBz18LjNrjAS0NXiR++rs/P9muoj/LiPz2Dwh4+ibuai4CgaSQ4seErMoQj8acNxQHsYg9nsPhCHDrowFJXJzAgKksaR8fR8NBceWN572UmiqccVjpSKKaDVSmsNxxFaIkuAZNsmpVGTLG3SRtkpmQxy4yODOCxpkqhWA6u2uLV10Xp9p7fINtT8/3CHC+neQJRL90qcSG0ShaPT4WFzrPOEFRhDPAYB43JLxJWVR84ufH+1re/IEX71ARZBI05ddBXF1foj8Cf4p6vFgvjwAQBEyhgM9M1IYIS93ofFbEKcUKcxmSAqW1NYqCspiUQG3xz0BjPup7LZQfBR4EgkVUSw8coiud1AQMmiKRNWyEYmq3U0qICNKHzIT6XRNKTed5nRKMVkorGoMhY7TxgRUlhQBc3MZmcyjYrzo+NzQwXNQ1NnHmIJKTg6xZvTJoUUtYeDx+NRQBBhkUFiRxGKi8encTBuSQmfIPZ1GxemF/qKfbdrSGJCPO6bnhoBDSGN5+Wj0XxCtQ8oo9tn47r0UT4cCdZXGBvnEUTN8TSFJYEs22RCyf/aUJitT1w0yrKD4BeiYyxlSQZchMTt7ms9SppaohwnqSAC0snxkIxqTPYQW2bRqKHzp4pCUVPSMJ5iUQTjQW3IS2K6dohes1IN0Mn4ouLUyEivgigVyYT/30Zy13IoK2FiSxpwdCEOHC1RNHARjtMbz9th4HGG9fw+3/S8cQFgGpiPgOZrfNDQRzv6AwIbOt+iQ/MBUIKhELBOaJtxFAVHmoX3oOBNehKg/ulkkqbBUFemEQZcJJvlSiDr+CK9IVuOHRTiDBZDOsrADO4Lo2SiWsCmJVKQg+xU0zLMWqrs1lAIKTGxM40ji/RDIYolNaUnbnbePbbqcEFzI9Kol6VUss2g1vrnRnpZLLdXqwXaE86u2lCmKTItHoXCCYG3wmGV6vpNP2Hq6o4RhkDk87t9hPlmW91C3UK37/Y+/+3xPr9x/vIUXyCHlRxFW44ebX4WaDhabQs5iQHzAl/CBdYmTv2bNEsgWQyG7YpeFykJ5lgkZKYRrVZcw2DpbE4LWnJ7YMOD2wXKWcamqdRqRSPRQ2OzBEqqtfaQGRsyUNJMB2/xVKzU/CY0/d7cWuxY49hYxWkpz9VbFpRpJVrqbdLYykUrm+ykA68mRCrv2oh1vbgaoQvpQiEcDipNSA8w3R0K15TrpBUG2B4AUID6+Svbus/WiWEHxAIqST9d13aGYJPzLX4B+uYDvWcPwCwZKKWS3XwUqcOgIlg60oK2CPRyIvBmJpF8RUESCkPZqJlGOuZw4A9WLDq8FMq2Kbj6srAnDMQjoJlKJQQCDyXEkUlQCqvyVs/mi05TZ2z44qlaeggnidsyTmmNdb2/6PSsXWGrZUbpIazn2KTUZj3f6BZqwRKitI5tqjx31dSYgHoDoggOBgAuWp6jrY0WLBTxTsAa7cMEX7W4Og6gtM/exweUoJpa7e+26xdc8oxNbo9rYOjpV6vzDWFCTYxVUpKP4Ooa6EDBwgE5TxE5apaM7VdJ6RGhUNbezhI0TncizbWu3nDUbRhgRt/cS5QPNjRQKCZldDwFWWgn/GyMl8e8NbC6MValhliCgq1qupCr4zA9pwsgUkHFSsWJ4oIpBfBAFHXQ0SUVxE6QURFhhC4J8k4WKPeW73h8ktLAzZooERw9G7pVRlFOSG0VUvksDKB2AsF+xEgQdLfJ7YDViu1EDVVubF6wjxDttjaCBZgi/bwdiCdOkIzcZRxHIHT4NOPmm5vS8GE5NW0BqhNSlcIjWHMN5CdQaxp7VSKxtPc2J4MykAu9OZAoNw/ikxyAbZn+tEVttcYt7IlwdLn+5WsbEwkBBxrdUtQnEVotrZMsElhXiASSYHzIyDIL4YcTxM4a/yTJG8UP4oiLDqJifcKjnNn6MGVoGGwA5Q5aBksT1qvt3RVtEA8GyQGVEft8PrXf/ilQlZq+YjHaL5/vnp6/brTzCvoYKJjlgDGeB6wcU0BxM47nYRowDEwJk2zAMEDDINDiIZBjmGXR06kYOUO2nnfJy7DFKy0xjjaQzVKUtFtvpSW53LRJrfSoHES/muZkB6KBgCfwcv0ymS0hWs8t8nQYvFbW2kokiaQtw2KSQm8tkGLLnEzVMba/hnkQh6HP8khu0cTjM57Ed+ev7tAMwCcNcvFwOPBYkJ9aPd2WIsKGgR6Lw9B9AF34fGI0Gn27z8/XEHg2e91Opd4qz89npNEH/JbCNJKh1khM6SSGCzggysAWMZIInQ6RRs6eUjidKln4KalDAQGK1WtrOjpctKhQ5faB9GeFe7BeFhaXTDSSE7XAjzgZ2vt3wcnl9pYDLBaHZQcSGIFhkN1uUplIRCpg0aQpHo8nbz3MVBNjZP94jCfDk+RkUZhVbn0s1lnLc11vBK4vLzxvPNM7nqGQjhDEtmIbBCPo9b4DaEZcwyZWa/gc9O0Wdj6fH6+er6y8/F7RfKFOt52XRyrVGGRYgwWouR5QriVc4C9KLODf2cYY8HSpawpik2Uq1emnxgXUxHhjERqOrK2EPKH9/f2oF+6lc5Amikk+Y9E0xkUl8OReKBvK5uoDuTf3lgck7AopCcnFC2NdTzXRy5pOF/kJZ0BwEyOliZCaFZMSZU5mjYVJZLKiWrNqsosMPcS7vuXH4HXSqanrZ+ZOdmgqqwWEMhIW1gdodJ8mzo9riAQ+Og7MJQwAtrjY1n2k7frUS2gxSEA0PBvbQkXikoaIuxQNkhIMAjROUqfDbKcxdHPt9DkCzRKQkodP02hkNcRTEDluUVnQLcxmsxFcGGswYDjbCJItnRo9IUXho1ogEIS5QG43tL/3I1N98QQPCuKSqtnWsjCqKWaT8xY3HSmOQcJUyzStRCVHnenKsJRhsza0vEYmM8lQ784X7zK3JVLjuMulKLoot1X7LYN0Ouz/bIkPtgiI9sQwdDVMl4+OWxhieaW8um5qh5TyG/Ly++f5Jo4EVKcBjuShC/PAXTDsjViagtFhANF6aPpEMdUwkBAzSVKSwAk2zfxs571lTdjs4OBgQIaiICkekQGD5FBGOxIqmTa0n83u7rtmQ4Pt5aHoaqJlkSiFdAFiMUTD4YmzRjlJ3gEMEdSlLgtzRCwJkp147Utyk5BOuT/sVrqdytOz0pGdlgCwE8VGEtGaGtaIBTjAQGG+rsZifR+gOD4/4QDaJr6TgQZxDFrcrT8inr88b5RTCznWdQcDCUM14DF4rzONj2AKCyVfvvban8+XJfP1MKldb+PZJczhMjZBXi2SQsbp5nMz58I3N2QbBgM/vPCVpMfCVm5vp2UWpVLpTHIHd0GRBYdcpsHWIEU7Mdnfy+LRccGDcpEpCcc+VHnVn0kVSKHWKibOrFXKGMqJFza+XMZpvaF2qJy1zFSTHlItXmiZYLKIRLe77BGRBv1EExZgUFjH+xcKjlXDqrvRVL7FokEzGAwd4Bh8aV233j/yUZs+H0ZWjfWn4BwdOFwUElXyfyZ67avbNl744667oAW7gEeAiglq0ulHvDQRsowpuFzJ4LXWlg1iGrjL1+rXvgS0ArxlchMiy7S0huPHGwZDQvKxlTOl5NKiIua1S42TCnlM1Sp9CEmRNHhd7334ql9eMdwTvO0gDkcD+ufLJ9d+/POaMzGQ8YTJczGnOvx06eLcyXEay6Mk5+h0LzUNaGuay4WxTz5nlLfeXnf9VTDJYODLBw9zU2HeAQVgSfqdNhsV5Puxx/sBrN7WYUBUguFiAGGsXx6464c/N9Ye+n6o6IE4sZhMJg03edlh99NIDrGXQSMzmXDAMfdWl7/69oWOUgzm+MTSUgeAUgC1NgxmA6WKtvNGXm3v3PTG85uzRn/4cGuwHWBCdvHO1eu/fy+iugO3HnqMiSU7ajb+WAuEf/jh9dee/HoiZz1jdAtE7smtuRM2jlamZpmj3kfIhpvhKODPQKK2vgiR+lxT7/ksAJOB4BKdV3gTKDu9XmyXXz1r17Bl6g6Q4akxmBJKhMJF5CGA59tTZhwPPvjnVwKXq+gBLPK0k+kWuc0SrIiKkzjH5UQ1y90Tiuy+ee1wzZev9S9BOnVN1ZVL/S9mto8jItnB8paVtpYKUlO4IjUWs89Mlububb/3XiaZxZp6773rv1+1m6Ih+qHSGDNO/nOz6rDZ/NW15/948uvXX39xtIjcOqyq6Z87WdSo1iJxwPdCZF0JCt4Aekb10nOn1q0Fl10fnRUQ4joGutp3U2HhcQ3Yo8N2gqtOkE+nh6Gqx5ca2Q0IRloCKK3jxdybAefYpUtX3njQbW+TP4DlsERIJK4JrqVgcWmTk7/4XTkWi4lk90MvT0w8+ELjmbsdHXcE77hy7p3HadwQnhvRqmJG1xArnB4t6iCpq7o6g8FD7e7DHFZRm+vVj65erRPS6Q31rTV+4t5Xt3WOHVqtutZ++K4vX3jtwSfXt0bmAGZoLEgNTfmRXLqq0UgFA6mkBLzMWP/dF9YvuNrqis5eLo7/HzP55AgDg3GAL5b7NDySuNlFKAuTasbWH4MmVveWg6SarqW1VaUnkUhMVH3+jtRmpyKRdHMUrGS2E4u6eTtpcnY+1goYPha/HwrUr72wqmpZ7wou97RvbDz+5LFwg45rruXI7UVzaAynM0F2e6DOmoMis/tghlU0NV18pHihDa01C7nep2gm7Y8Tt3WUHvaU39Gj7Dlc+/m3V5bOfDJU0+Igq05OjfQWkJDu2tkw9ziCWsHFwwqkK70rW71tdc9O11UKwI5h+3yF+Roq36ffmW5W++d//+J6I/mg88WxK0tLf/7wx9Kl5xNLow9mJjZfeHHjya5LtXINGk4HptKzenrMoaU3ZdjMY50tJ5BwXFYIHOby6mrn6ZWP14Pth9o319auVGkxiIjW4VQvNj5ztpXd4YREzI7x4K3h8qefLvPMTxX9/EDl2bO+NnmDCdtKlewNrAVbjwW17jBootIrT357SSG9+uEzpy5OOppP9Z5XTFV4lYDAE3tdLk4JzO6vlRpbKqVnu33ibmN1HoOj0elofVtnmkdu/PrN3AcffPHPP7/ezauZdKxdWbr25UbXWidz87HOidX2gRefrEpc6XRAfK9FQCZfurS+9I6CRuL1HQyqOmbeKUWh9vbAZpTVH3y4pn/0QrDH8+ahry49KRkEXFxUxh5qee6yAOqyk2meTIbZ89TTj5RTVomVR8Tiit7rQ0ZUA0Wouo2D86wqVZ2dAprZndO2Z778I0Mm9g5ZT26dM1qtUKNiqBeLM5vHK0famouQsEeIILUz2oa7F21iwvQB9C15heii/vVTc1M3fn3llxs//Xrjxj83fvpsruvYRNdSzW3A4/e4me3B+vo95dqLVSBl2pQBk+S8NFPT1f/+559dGD1/rtP9lCg2M4OM5EBv5TKH3E2P8WodmwMDPfdfu1L15h5eGBHRBHO9WyPGCR5ES9ImJlpnax/yYplrjorK+NCHF56Zqjb6GEmnRStZ9rASjY1Wp7ZnT4t1XmO2pKCCFaJKkUjEupyqi4tbw5EszjZ0prlgrhn2RFlHlYPHY/a1ucRA2fiBnnGdeffXXz/88NdfP/7ms18+e+Wzf258duPG+1+PWUe3OsqjoVt76j25QDTq2azaJAcTQaHAHSqdccRGn7v77rs/+3i9v/XpctYM7wQSl8tFc552dyV0rKW15Vim3VnvvLZWL8TQQ4Cir8yvzC2QVEq0bFWeYFtb2NjS9ctvFUzZF89ZT343tTMympmZDDqXe0ROR1WXMtcT2M15AqxzBQDwJMgDLKXotpTDcX7Rj2/7Xl5ZPCw/eQ529D5yqbWWKBAfcYnlcr4mn2CcG3KB5/jpn58++fjXD944/8EvN8D57K/fLkw+x1Mx788dCkSFod1cYCCjFqjXg7ethqJM57F3Zh4bvdi19M6FURVAK50tKsr+bm43p3SSHjtna3adO3nhjkO5l7/6ak+IOI7BUQlSIqm2Qs7iuJn/OlPApN3c2nLuVFHzjr71ILn1xPWRC+tLSzOHnWoZjeNhKWkTMx23BpbHidIT5HJZfdlBmVeW6FAzZxbb2hbeqys7Kp+zxv7j2MyD0s7PMK4xtS0qRzTgESNUUHBrth5rCQYQNZRj7RCJjgiC2MixQ9G2oPEaDhekMYJmyapoxFi0q3jWIxg1az3qVd31qrVqnKqJqWaTNInZpNt2+k0Z/2NkePl9j+d9ns/r5nbeI5lAAF3Ar2/6fPzn8wkJX9YP9N5//frhw6f3Hz5/vb766N/PV58/+8+zreXm8E6LMQcdmVHp5105ik7lOKjwAAOZQEVDRPTFpfjJJpJurq2VhAwNDcjRB+NBzaPZjv60ZuOXSdWocLiyDqed2p86B2w29wZkIzuegIXhAooYDHwOIYeMoWB1AzG3F2IpINuo6FPp5Xsuhz0VEXjdPxKBtxMUm4apbP8UKpFXl83AcBlUJFeGZJLSvir5+B9/vxGSFA6Du/34V+mf/ewXgNz40S8Cv/jDz8//9JbRMvT63+tPt14/Xl/afPn8+dMV49LKt4+2FYWWWwoVKqcRaN619xLegYQzI+BwqTALnZIztBRGqCaIbRSyApkd6S816ShMGXp0LZVAZlfMSU0NXVUyoUs7EfopMFo9aRJYxJX46rDSkJAcakERISitkwXFsGtaYhrAOSyTSiuYMqZjah68QOaO9MbBQ5M7xnHzeQh8aAYkGxEpoLGI2Qy7gc+vMcX85csb1+KxZ864pf8qvTG29Gfnfw5S2uiYzJygCk3tUO9639DsRm3L5tL0+vN/P9t6Nrg0q0orR5XDKlT8BJA6AG2fPZWKD4AFADQpGSfisZsHW0vBb0V3SHORkEB8LiHIfIWMy0jFEwiYIGcfP4kAmuvdgv26C6c+PVecIhOGBPjTML5u/g3IgmpSknmRlBxI6KsfqCZQI8gKaVqRyzH6/jUFGDsMJJmkQUoHmyWVgBDICFJRiyEQATq7LlWrGA5XxHz1ebQOmwaHuH10OiE4/jMP4ZWflv/S55d/gIUXfnhzeDi/aXn5P1vPVutXawZXNpe2pucU5sIgaU5QUhIf4lcMqsmet9uzQWpEIOn4/CCIKzhMJS0Ahxxjv50aOsXQkqpLQ8m04lAqPOQMITdtSBrgi0FnT01MrWV5eiqRFB0hzovonuKbAENGXNH3Vag6YBCMYihNegXpcBRo2xTcuoyM0akpHD7guvdVSPXXclJNrSkj66o7OS1pyBc4m4jU44kCaUVQWmbi50mwCDjD3+2D337vZ5qf/uSDkMu//On5mFu3UMH3X9YPmea26genex/3DZZ0bmc+edFmG09jhxkiigotFpMmNKP4XigCkS1IhfzruwgMRUXMVgcjh+VcqpII+pP+AJw/yNJx+NyLnzKQAR6BckXQcKFvBqR4rY5jR1dO8LiUarYoEuHnDnF3j8jtz43fGFDNQRERCkDBpRZRC3b75WZq3VqWFVQTGRd1wRvNb+kz9basxpz1w0OhmBYSOpuIrmPYOUzyeEliTATBH+1+McDNGO/Db/nQ//c+/Mwfut28eW2p5uX6ellJvsmUZuLHZPYODo2F68ZJ4825MGAM4IeTOlSmSBCiro3GXffyCAzEw0OQ37tO9eeXPK6GUXF1owb6jAb6XQEVDy/yP5vFYAiI+PKIok5FQIp7YHHP0tgIhyapkrFYIpHaXkcVIOqYtpEeM7l1ehyBMzD15CAy1dBPlytYXmujqZzRtdDQvGI/bvR64kJ07cv7+ZFEHJJQMhzqn4K3T+E59PGYzJs3MD4eCL84X7fVZ+CSryff/aRl+vMf3oyuna796i8v79eURcdIpZ2k/Fozf7KR0M6cIQeVwtJIEYkt0aj4QhygkLxC/QARcx2RXKQPy20TYweW8hMcR3QH3azRn4lgIEKL4v3zvHEQHC4AQCmqcKZEHIxXfbuy3S4UcWViG0snb1dP0IjaHqdTbkC2Npk/CMi9VN7PJDANhkIyIbUYNNXzxTitFg2BomJrYgC8+riekpBxmijABlOHBpC5+GzE7vitH4Vd+0Wgl9f1ixfdnj58+HxltY+dWb/5/NLPgtnR0Zc/+frrG19nalRsFDatr2SAfTuH4prMgSY0CHO/K8yMkYbXBl895YnG8QSQuKi8QBiBRc4JuoTqe7g03l9hYGHDxyMYF+NC4Qnu59Ap6RiwFJFQ+VDMFXPt8n+Wdx7tzFL0iqadts3VrmMeo2C/v7+nn8oISmtSlKdRc5kGKNfAZOrLGRL16FqGWcuITPGIjv04vz7/SnX947sQdFalX05h8/BmYktJTlzQlXjAYZ71QuddjItze/j85dPNzdrNr3p7N5/n/+GPZTc+/vnnN17e6L2fGB2j0M3VZmqMSQTz2KUQDzgFRg1K44c0XnP3PvWTcxl+xd5RUXFxiKiLZ3yCa02ZG/Vh2EYYFNnDzGHCAdqLFgcLkonZkfgIZG4QfajvcHvg2fbMjsVFMq5sLC2/XpUci9UcQ7vTLBYhCXyUgplrh+VSGXApXaGRM2WBecWyuXZ7nG9w8IfA4/zcAk9q9irOuhoHezLAZg8lNi8NFMZLOyuKPsDzPKLyoq67fb3+8P5m/ovnj2+sv1x/HPvrj298XvrJ32uvfX2jL4nARnU0o4LH0sbIEf5nfNhhQVTYj5JgpWcAMuUJLBrvU5738vLyogL9c+o3O4anS8Lyk4KQVDqUVkjxxReJNtahyYEXffEMA2h5VY+2UKaNadUsxfxi6NH23NzrZ3TFrAOvZeR2iJEhVLpOTIYzAEoYEUEmjWtIub6+UdDgekscGYMphcUn/iV/Z1+B9cIFFASZMtmEHHFzEqpEw+zXMwsiUlP9os6evu6WWbb1+t+9z57/w7jSe+NazG/cHvzpD5999cUnn3/5OKZUXF2ydCPNHHabdiYimM2+TYjIDYEi85sjK9+bGnEQALjkXY87fdEjsKTkVvhKonnJoo7AOxI4uWcYSLbOstKR64uI+I5BUAQZTuYG2NX87RfPpncW5ywHs7WW5a1pVQ9Hy82tJpRGkPW5XQTgJFzB+/oXMZmwkAj7vbgbNTVLSVeCb18ijG1r2vSHto4AlaqpE1WIlCDJ0SYLKidXzWGkFjhS66YQeVFuqJKh50/f65bplZYY7LWbPmGk4F8GXwlO+uJGtDm6mZTfq2kboXzvt5B0n0swZCAiMB2AZRmiEKBJzhV7ewL7LM7PA3D6IAQdLCyMJgj1DrtEmzqaQUQNtNYOLV0JzP4O71sRu29TYMU5FYlLT5eWm+YqOuemZ43T249meor00pwwSUSuPggQAXg7DhEXSiWPO4qg984G15aU3H9JgMWPzcjfHB7Q6YdvKsxmvaqzEEtI5lIoUnYBp846n5o6as1m5F247la2bFn9S/3Dp88fPXu0fY0di/2w+jIKGsS8+eXjday5s8PMp4hbFRc/+rF7AzwhMC7UKwVKOZMCvx51DxhPIIGJ8s6L8zjbH04pj17dqDDxyQRHqj01IgXhLsRGo1pqL8Zh6v4VACNQFhYac7Qy2QBK8+zpBmnnmhg18O/pxdmZHDiTRJDhMUVwzMXQSJAHhgIFmdsvRQY9qb+WeaP2Wm77iN6mPzw5PDg8nJEVuOTOzs5FIY8mIlB8laMZo6MZGRl2EAmDYnofDa3UD9T0bq0OvpiuDvnZz37JZn+9SZa+/Dzx4d8vfwAs1y6d2TlZxZMk/9z9YoTBwysZ5g7JQ6DXQGByyj0Qd++f//KAYlHBsFu1TPJwTCvBXsfA19/3P4sUQ4OXak9dgBBD4VVd3d3V9VLQHFD4K6uPBg93Br8Z/PbFqnHZKQxFJmGx0AgonObrEReX5c75IKec1NbPHOg1xcb0taDS9uF0mRBYVu09NmeBo53c36/Xj4kxyUIHOju7bg0NEuF+16ij4Lrbjb6lDVN0Yk3tSo3GBP3hb7BJwYRbJYb4rz7JvH/j67APSxsXusQ5zQ1VVAnXHQI1IeOiruchIqk0IkiQIpEz24aRETymQhwUEqGQDn+ZZspx4Jmm1YfriQ3iRsKgP8I9AYbndjeqq9jmnIauBqyxpmSOnaZqrZ5erXmkKuFy6vCF2FI8Hs4NjYsD2WaU/9mQ/KXpweHamqQHn2RuPrYAfcpySRy7HPq7I47WodU6XOOavvpqbQZ6bXStGFBdErqB0V8U6paYX3stOPbLpObEDjG7iugf5hNfnhRUkPbVzZjopLKbsQvfsLGwRh1LxNFxkeXGTii+8OxZd3yYV9a5wL03h2+/PZg5dHAm2wjJ8HHDzmA+30n911J9c03vU0VOSHwnEy8fsLW7qhrU3VVcVquYzS4r6TB+w+Yvdwy+Xpwz66ZchqI0WHoyFS7hROI8713wBudjR4eqfrD+L2HYS9GJ+dgpkRJYM0q1lXN05ODYpxz9+vbWxU5qKjojshJ9FZAUnPZInIYa4RYdfaMv9g99qJ361oUFKAPv9oMQQkN8+PoXDxqTYk3xl4Kx7NsJQqetHSq3qZrmBst963Mh7tdBU7Jre/v24P063jvZmxkPgpdG5PbNDf7cQI2oR1Xzw4c2SOF84xOZZaBtx8mVTJqruho6m8y6b+LZsWOdL/5tHDSaTDq5a3MlPDeZhpGRMUhWNajkXtR1nKxLJEaZYsJikxJ7E3NTrVbQ3TomJjgc55aKXnDM1B+5pGP20XPo+UpQCxpY8NmcdqbQDfX5F8bnXy79SdUprKri0Fg/+757Ag0W3PJVWGliYRgcZkqSJ9MmbU7bntzcQ5EvNpWrfiRmeV/1/FR7uDP77tC2p9XuvZlxFcHg3423LV4KDE8racaiBnotA82kJx1kFkpH2XnT0y3XdakxKFRm9V0iRWfqfDL9jN8sZnd1bC2thvsLUogsChxzW+0dde9eSW2IJEVUlFsYTLiUFH+5EUnlCeaVIhFPtK81q1QrxqJd7T63X8OwelVmZJ0rvorg1eHsDoOsyC34y4+vlSTWfBFsquru5hJYhIun/X7VSLqZeS2ksLMlAOMW+zTa0OO09dgIYoNWODI7OzAiF59nSpEjNtvYyN7Rvmx372TyzTst/ujEtjM7UFhoysw5k7RU0pxZvlRTGP6k2bU4t9/VJaiKp+puJzWk/6rxWhIqunORzBJ1dan1Has1/qW4wCJ8JBETeA9smdrVJ90ptKqcoNjYK77J6QnI+QzrPI83X2edOC6qUCjMxjYtp92mYflloNFXsyrfI6rFkbtaA8MNW/Pxh7+83FuGbXeKnU0zBOLp36WfvxMcHQwSzsSvzvz0p4PTj5rG6Xs9zvFxQ1H7pG3GOX7wFiyuNyP9ihFX+/5R+/ERfc92eNLTcwiWXZ/pR/W9MdBLiajN4NI2TY4pLV2AdSpdVV7NZSUx33Tdde9uXLgND8/EImmNjaxWHenJ5mASMQXgasmsgEjsktm0+bgTExkpCf6Rjy/kdjfCOp/NU2bMWzNAbEgVt7ZWD80ZelxygxByOqP4XPGad1YlLzUymwP2TGzs5csP+MbpHXobv6N1wznZ0IU57x4SdDMWdr60rDQZ1clf3ursb99tHykq6JKNvHGSDg7ezhy6hEwDs12mFh1pi/r3Tui2mXdv3x6+fTs727f5sCT4/AfskmuFRWRStD8xJYHnqydC9IaL7IVXVV3ixkbfOgYyQXC3+65pupkgG64+L4wgsgIg8GRfUz2/ebq+g+UHaSj9JTYZkQ7xm7LOpwiAEMywc5QNOWShnN87rapwGnZFfqe8iyuvnruaXWcoqMPbfd0+fvDgkweoR8uPyjIbsWyVwpQM/8FPAn3YsWGXox/cxpwpMVGa65fatA7Hfv9gVXfP3gwTbPqRkUmtrF0r4or3T/b293ra+3sm34HT4M0728lI085AkgIKW9pMjFEAPUzQWC56ddO6mmwG7KtXC9FsNsXn4r/+mwJ59aoL22oRc3Xxiid4MEXIOkMYQJlzKE9qmwnuyT4fNDYGBGIaG2nWtUprXbEVjZBIaAKa2iys0HcOhhcV2Cs/BXwasBTdj1MZ8zhcqtsnnz14cDu6rH69viy9aHr6xSz3e6d+4nbmNuzD6OeXdTmEPlK8ZWijop/q0CqWVUH0kx7G3sjepEOmlmm1om6ukNluaNdO2t709DjBuXYk3G+frB8YGA4PKetFXTJRc3KxfQ97/XgpyIqB+PN3Xz2IuXMbyHESxwtyt2FBVl1jTCvUdfDzrnoR2dCOzuHyhoWBIUtMAAaengDBIW7HlvKso5XA2pr38qfRBDwatyOtYlKjMrZMa7iE0UpAp2aNptZFQlJxoW6f/fWv1Zmx1xK/uNkGdxiH+G1CmvtPTv0Wcv48dmWojRQbXd5/yWQcNpYbdqX1W03OmdmA//b07HKTqVwugUZs2J3s4rwpYh44pZSxvTfgYYlE45aSgaU0n5rwD+ARvsn46PXeh4kJPeMkY5uwu6thobHxC349u7uqqjVpcU6HGlgee1L/C8SE6E7rjQFFGgGO0VSoVMbe28lVAt+LHue/lzGazUN7ZwgYVbx5Hg1aRBYWgPba0texOVTjY8o5/dF7AjoyNDUU4fbZZ3+79qcHCwu6YGNtkumaWd7QnZDt7vdj94uFG87ZX17GwkNKVcakskJpcBoQC9u2Hk7E/pt2iSBZSUum0RzvZsDaahIL9130niPtBMaqlNCR9A0jvHCzxbIRfBWR3VzGH9xomqlImxsyotgLsdgH31xOWuh+dXehlU+BFmmGNCtlF+ZFMiVb0zae1IiJSOtUKYajI5oveeBD/dKJELS1EoRtEiVNkBGZDYKgXReY1WWzSZtDnQP5i0xvtCdgIb0zEKFun5Te/utnd7qwNxeSkiix3zTKEpQSj+KPLpzGNO/YZj88fwUKz9HcIq2YB5cGa1s2ept2d2WTbw+1xxPK7Gw7jQPumHfv6ELXm5mDnl3RBE+glDDLCXrNOGkpLBo1ft0bmY8aHqq/X0GKbeucZsO6Flhe33wR6+/1ynV7oRrpD4IR9mJTIQtddxzLzmXmwhJAMjtb2zc8sNIZAYP43RHMF6+lFlitNJpImY1G86okx6wcsriIoFt6QiKzO2r5vggE0Lxo0Gle/uabri7QII5pOrA6dldVA4PW7e7+6fc/Oh/PH+v5ICInOAQ2Xh7eggKTh9cGjINkh/J473ByX6bOSDmmCrkyiq59Zk8sm9HsHQlF8/NWGqegoIg8PDupGb75C2ikJ6+hITNzSCUlUMdnm+j0Llp3lK8P7KpfOoGFRHZD2YpdW3N0U9faLiPgrr8/FJYOZ4ahmsrbEgenC+MAo01EZ8xPiVIFRAFPaV2LVJIpshwWASlhSflDzZpOjUrF9QZcNyI7L8vtTuw3DSO2N1dQfEv4TuI3ugYgj0Xnz3qev4IFc25n4QTYj6Ty8rT4cpMqPylp2kKmJuPIhip1O23UOiHTqiliar7eSRPuvBCq1copqzXFOpVaJNe3DVeQSCF5ce5VUPITPhNFIeznajpnKygTgMO8dy/K705jVxUj1J9cQNdYBuXC0cg4MO8J/nzDVOR+5pW2xcEb530/+sjdDwTtqRx0HS9FKeCtZSUrJEgJtQuOpMmZA4ocvlgmweV5AvkcF+Xtdjs45pP2vaOjPTlBcz9zoUHAE1Vhuqvukpurw+BM3+/5+PiAnC6tSNqZpgm+XDNNIBJ9R94IJZKMUY5WqE5mKbX7eg1nRLOoFoneXwlWHnq+QKGoaFPcwgI2xUvQHYqBwjTSQltuG0osyphPyTp34dQ5v/TbOrWIEaHo6enrq+6aD8UHSpSpqTicP5I/pNE4NWnNbW2YdC+eFQ1wgqtogbVBbFYr0b4ydTetKLeoiIWkNYiqKFSkkgmgWiC3QTELYc2d8qO9vf2RPbn4bqAfREB8JeiiYBeaY+8wUgMwsEZMVVHOpcJwlS0trHSgpVEgyGhg0dTdSitPxFGL1BKtiyvbpVc0sZTza1arVbBWPFrgGtdX6DUBp/KuolMEKb6oZnOutMjQZLbystFWSDHIAXgSMVekFMnYqnbF54LKKEcIEs9LIIYScREdi/E2gow8TiK4nxGBYoq9wY7ASMTN4clqiYjFbYhZ5cMZBlxaUkERS0mr3hgGCUlU3gVPt9ufpS2tPnEeHR/v0d+PBaR0K2k07lsLixBbmowLPMP6ESzZP4JwBTtegcRCO/K7iRCipDtFSRQAWJunVB9LqrqUSBGxcLFBqYTMT82vVZ77F5xMHyfBGIGhcfe8Umi8MwwqCyOXFMhHBNa1UavVG3ghySJul1IsUUODFTl0FktsSMVBsnm+dYAcMjc15e7qpOM+dz20BSnvH8y5SF5V193o6C5asrhhaHUdRJPDHVKpQsHNJiplqsXxUqM0L8/H7TPu5sv1hxt7WsPeXvnuO7y7QKlbOLKYGgTpn3UH4CMw3XfCAgK4Ug2pMAHe0MhqAMWMuvPc0SmnrawuUVcyrapbQKNJmK1379Lmp1IBqOmdgc/V28aaDN9FIhwTXine1yNxmAbA2cO12ZUQnhLtXXyOJ1JWqWUWybHMkiZdJMVixR6hREjd1AQD94GpYgDgMShj/WM57Mx19FrWOUF3VzeNh2pIcU9c79tcf/ry/uv1pyXk6t5VZEGRQ8ZfGejcqB2ac3uArf/q69Uh7VxH+8nB4dt3brRuLAxCYad0/6ihkX7ovPi90gryGehlzcfSHPgCHIr9HUI5YVX6oXkiNUtQJZwQ0BIkIpqSTM4Vsmjzo8VZp4rXcEjD5HgFOSK1XQymzOIMvhf8UgQMFxKX4QfxApcGuk5Jy6bRutRKO9em0lSkdVVV0WjufvOcfX8cokHaybAnDQ/UDJZHnI3yBBsmuVtGS1byEN6nN9dr+mpqBlvWn6487UP1rQyMQEUF4SqVmd+paXJrVJv77tevWlbn9o5mDt6+mD2A+p3+fXoDLeF7zEPnwcF4wXm4UPHt8nbL9tCHWHzCXRrvxwlVVTxiF4ulfkXrOp5XKpU0Ho8mSZVweaPz1iwgZO3UIi0sSIpMnafThRwPXyA1UpRUPDcXkbFW/J56po85J2g0pXVCQnfOPQpHgjVLjMtbm7IzmOPpCxgfHC4srSTf0tQB9zxFVPKI4POJkMqoT0NLylDs5jZTSW1Ny/OHD3t75UUOfWuzpalC37bY5EYRtkXfQj3++uEcXagzH7xYPHx3hpNcddvdGz8pd80cHNr0ue3Ona3BnaYXA4924B53Iq57SXhA8D1ITxcolSIe4GBTUmipIPCrgtAyrGvFV7Nw0M5waDkj26oUtrPUUXkIIo9L88MJZO7FlWtro/OiQ9u7EVKbUrSvFkqNW8EgSxbQAO+k3mcYNA3pGTR0SinBVBhmqvb0HOXRaDSeQJCSEXoqLjCYXc3mdw6nFY2j1kG418v318p2uWa+ztmpYroFW0hDKGh8/mqZrqeVLN9RTR4eToqFpZ5e+0KRlm47mJnRvxsbW35xePDti28fWQLjLl741BPyqqvrTvpHP1ZaQUtrzYCkKCWpdp5VeCBEXy1G1Plfe/38aSYiI0NUpXw/jJDlTRSl+6UQiZCrp8Cg2fFx+/7e24NpiVKJLKDPNvG1AkgCBnp6bV557DBwAiEeRHwyFDXGaqWBmx88lgyigAhp6PBnQJlD0ablraVwco6upP7hem9fZAQVEAZdFCHQQm6B8GtlJdBy0pf3WzKHFXKbmQSuULrN54Jdy1JyXSO2mZm9kTHzjHNmZnZ2+9ly5lnGD35yz+9XNFaXwAsiESmtKX4X3GlE4igTiW11Tg8GROFwlvz1p0/Xs9E8kBYCKyzKE3HW09urDpINmKaMyOOJCbV8783Ju12GHUfVzw1tdbCIHt8DmRiwLEZGRqjQDxqT8Qy2vjGWlS7hIouSm5sS/FgNmGwqoWJ5uq2t6dkjs7b6Se/LFovmoshuV9K6hWqZ7sQtBs++VnZDmvY1v/arWwQCS70vG5npaVfuCiUiEXdSPqbbb99vNx84bU7QMS8uo/QzmqAe93Mpr17dcYe86rbyKrOi/CDuV3FQ0vQif3ZZfy4oXmqy9N7vzc9hzs8rQ9FrUXkZeafy0KFX0fMQz+OJ44kp9T597+iddl9Gpc5aVpenxwQ4X6o/InLq5GhkdwIRFZrOsLPl3Y1cLrGuvY0unx3xxbAIsDCKyqiR61qXH23Lg8jNLS1lj5F1do5vtlLCyZbo3W7HxvrcLLvVTr72j0yYg5C839NzYmuf8Ktj8GjqdufioVDNyVbKZ216+otvZxc7xya3t6YfxZz7cfqdOxBe910vvzUwtpni5ecbFN6hNzdpkOcC57DRS5tP1x+u3obwAFsKQGDPCwhEXt65rLt0pGhiYqIAtEJHu/snJzI13VZRuDPd6RF1wR9SaQXv7U6EZuflZcXVYRowGEyyHWJ3KFkjLpEfg6oTB+md8h5zh3F5bhZDra5tyS9BMeqm5ketgoL+dqbbHcCrlvwlreDK44c1Q9LuZMmRa39kZDcle8rLl0tRtNHVHHs7t4fuErqa5rZfqFz02c4Xy72qX6Wnp58+/Srl9NW1yizA/Aj7B5c3FPBZS0dD5mZnczS2pKS3935XRnEW6J/iUNgUCCjJLz1Jz5ma4mh3jyfaT7SHB9JJvomUu7O44/vPU55rlXXHE7ucKcT8hbx7obj0lBQPP0gdgiMRiPVqpQCH62dSwa1CbgVnxqAQnmbc2KpJy1Gnzlsh1NzauY1pt9/5Jzd83Gc0hDwGTMZ9VmOVsu5o36Hl4LpFHBlXKJZVsZizZrFcJqePtG3vbIPt07q9tbNy+8enPO2QV3d+5edXWen9kfv2t9++PRjGNg01JRlbTMGFjEJ2PWqTXQyOL++oD1eXn5R6x3lfRSSIQEZrP+Zwjk/evTvYttHlKP34waMlZ384etTK2d2bmKdZ6zIu3EMgiHd/JUhBXIgTSmgu4byVIykooDnsEVwA0A6sbpFlAx2PVqZNNHAdjGab6zcGV3vd1AaHLPxWYv7m+suXT1+WmBqrCrQT1gnRMUdyfExTqyUSdU+rXNwjpMvNbbOz08tNh6gns7Nbt/2sAa6q7m8Epz/yAoMsCbNNy//5zwyZbBlqWqx9gqIkU8nBHagFvyywpfKumztXawG5H+UeOQ+KmbJPOI72e5yHs7WaCvJ4z4lGNTtEiMz2y37/5qh1Ku96bnmgx53byLiLUThOakad6LtUe4C2gFrAoTKAJNcMPBvMoejGdjbTcj0QdZHQDoWcD56MTGobmww4b1p/+fVfnj+8/5jC/y41te7YzigAhcyLlDw1iywm81v1XWKzWEjvbNp+a2xatMF+fC5FLZOw7qR85G61ClkuvaVj+j8v9Ln6oSG9pkIKM+TkSFs7LJVgmQl1OrFpgOLl5XcOFzjl2N912Cf2tccFh9uDtRpSOFNhrrAMqyIz5gFr+39XP9R3bHBrOizwYpwfBLKWap2yO7T73+H++x1nClA7Eq5O1/ZCE8Hqt9nmjC9snF0qU6+gUNpsbpMU8CVDoPn3y278/fH9x2Udc3T7e7vNwRFyaEpgiwqFMmnr6jMF61jcJXd1TLY5D2Z2FsvPe3onV1Fcr34fbGztNjtVcoqrde4/LwbaJpup0GpsUM2goSKaIqgEU7LVGx2NrZZfnLvgeZ2zqwUk7L6jYN9OpU8amzR8ko7UpCJpnJ3jEPRoZRaQB5FTWlG/9MBo1EOBlhkdXeNZd3eBiYnUFjkY2UALiGRMnZFeIFQsHu5sP3KWM+kumZpLH5t1s1DEIwrhJX3mF1/8ufb++sOhJzmpE+BwIKZylIL5KaU6R5ZD2th6OuhkNbJRzTOTdLrt7ezcXKbbp9SR7YPFyabluXaFTtdsHqODJ21UoYin42AwTDCfWX032kMATXU366oEHUbm9wK9U7X7u0d7PXsnAH5wLlLkrRqTVFzNH7BU0NM66FnFWe8H10YlJ1yhvPXRgWqOkwXI6IzRCQ74N1v7fwvs2V7ZAKvqEqsmhYZcJr2nYumFasksM3C53CJdh1s9uaHz1gQZFRv74BPARfVaaoOEkXbcGmhW56fqsoGclOWantSvPt9oZi3AhEKucH/kADjm28Ymp3Nsbnv74NGyk5Lk0tHNPU6zTW8LF0ThkAk+yFx2W8dqb0sNxnUJWyXAsCkSah04d493tUc9ewWpEz1SVvVic2Gu1KwZG+L7pA27iOeystbW5qeEI/2TQuHYzuzYztT7xmwtcsJ+fDSDnyqYwGWDRAYp0cl1dK1Dtm9I08+2OmFgYyMlWoPQbdWkSyRBv7zxcWxJWFjM/Sd9+Sb2fETBGRr4KVz2s3UCpRoY8gAFWn1dk/NGz5ILjyYn38y8VYzPuugj24uLB9t6oUyso8j5Y5N628zheMinvsmBEbk5pN6k2JLg01lilYWVIjB130NMgWuEo+2Zce612+09Qm5Q61hJTLhGUzI9tGTM/ASZ6ptVmSETjzjlFJnMvDEtHNkDsvSqt/fUd9qepu/sDDDcUUe0S1y7Dq2DAQd7zax3TqaxkDojisPB49xqBioSOxL/UouK/bzkE+nm0EBvGZlOS6aP9M84neo6ImRCQKkW166uD65ujX37741Wes9s68zhwYl+sofutB2MzRyI1cdqOVtHnzk4eXcwY0NeIKZ4pZOZqM38n/8Q9JR3n61chnSbJQwOhwOEjJo+MqIfsfXQxRhoW9NAcxLfYnm89dSyNdSnqSdbd11koUwo5srG2raNi/to0DCseeKBQJy1aadwDEa2n6BbZufIODyOtEeWS3d2mHT6MaNxcJhAdBvmhw+j0jKjY0Oayy6Hr8Tc6B3Kr63KpRvezY5N1tmnrMRkQpe8ozWxdmvl2cbW1rPt2bcam7PpcNYFnoxtp9M2IlSLZDoKZeSEvndie3dy5AuG2wKWpwtjW0M+/fRTd/nGVicO5yEkCkAtEyK11rALhpqEQmEV1azSJFH61uvrh4xL9arGX3kpU4GGYnUBbJjZOtO28mi2bq34XJZ3/4yK1PbocCISFwkMMhoNfIiEKOEUOOhaWG6Jhm/uHJhb4he5RTOl2MJLscGln50P8TFNS8tivriRWBMkFc4cHtr2gUUhEVeLzebqmAO+y/hia+vFs9f/ebHnGtvrER7vHrlmF4XHE+Du2EWxhHtHb0ZsQHLtpwj8Plh+ZumosVw/dYpstKxsJSG87op4gNgElFoBkDOT46xkTAGVXBhOKssfGBgc6Kvle6GBnS9zjqklyRK1TDY20j62sVMUeA4wVAYVX9rmZEamgGG8KO9IWjurgAGRKI+P2jk4D2mrXCfvV20YjW6koCAW0gNTeqex9NdJvaSwwXXL55k+2hnmiXNs0nUMIMYudheFoqjYtgn5xs2VgenXr//z7UA7UiZUTxy7XK1q0PdbZTKZTS48lrno+0cn+/iLjYPTW8s1y9Xup3z7aps1m8NxXgANHgVoj71gt93eP4kVs7kcO5cZJEXFohQbLSVXzpz2AiaJ7NnKtJqGqVJr6TK1bXvHxYkctaKL+JT+2s4THCISABoZhNYxSwHU164Ebn6Pw0CWM3V0nanVMvg/Cs4+KO06juMgaAtMQBSfZkrIBBs0mhJqPCURYHQE0yCMpwKhI7Q7YZgugVK5CrVy+YDJ3Aml4sPOOXBqeaLndKelVp43nXdblufMVtequfXw9Xfn/7+f3O/7+3zeDy+IPiXnBA46WPsp46uiNz8TMj87t3X6hB1nlYG4e2dY9d2ietDbNcQ06odNZrd/7GPl6j8PH95osvbKjDPeO1Zr66x8cXLRstTw82ZApeoDMu2f9/auPKHsb77R0VaKjMkYa2ElrT1XSI+CQ8GM3+6TSqolzJZicrGu2iHCxcUlx7GSLo38XqNUXmmLmFSbB38pp6ZkEvAe3p6Ymr8llRpxk7bxsDA4d62RkAkMjFZRt3lBbyP5DAJf7ygJB3rQLKbTZGragrxHQtmeTGQw3oZ98fz5nAe4Tz6auFZlMajv3J6Ydt22gL2QW9bTk+X1lA8ElU7tWFFbM8glOK0ytVViHJi33lEr2nnbuGsrV+7uzPWr+obBnuJo9ivdVc0NaaDEj3SnZykblpd36RSGRrrom9X4pDOqdBTey0KLBtAZ6Nr0pspzT18d+bix4MpSlda9troyd7BaZQNu7L2Je/egr+GAM2yyOeouVS20wWOjYstEuqxlv1Qj8RHpFEKmxKovZ8pk2nBjAJIGDHgYTDYE/fzzZzJynkybjrj6t8w4kqVsux69mAnoL7yeQWcxnqgyVZ0evN7vvNDd9pyKZR1UW2ccM8N8B//sUmR427Uz0nFj3SgbvnX/z/vTcf6s3fWG3Xzw/hNQxcU6d81uEVB1pCAKKZ+UkrZH00iUMhGuHRWfUi3Mrjy3Yc4ObozML01HjMoby0ubfzx8uCAc3rsdGeh8OVNWbHIy6x11le4n3kuVvybQMnmGE4zYCg0AptAz5QaZ0ciUqY0SWSMk5zAZjeeh3oa9UPvE9c+j38vuMzX+dbf7mp/L8Im/A9IoRe0tbvHa2kWsQD/wiVqcN+b8Tq3IClSM1tY7RsVtpkprmVQHxi6vLhhvTQ/v3d97EKk3eSt/rPOXP/ZJWsvp4iZT9u6an2IHczHQLGeINh2QmblcEVEn0rkicfqkrz++uvn3z8pw2NSw8Jdy1L/effBwZ7pvj783POxIE+lYxUyhOyk99VTs4xT3uhnfxWJnVsxK+ozE92nJvUMGmdVgYUiFEMJhjhGF58Dh+U+ef/X5/IocfeHZ/rbL48liilSeKW/VtJZ5PNcD/EHPdfAkxW6vaqujZdA6KJArFKCE4ZLdGgXHj1wtyypZKK8N79368/69w36RrKdnwL3rb3Gbs7xefVZ628e76EnQMWuV3HHYeBY2rywVa01mk7OYOYe2xrmLq3f/vusfrwpU+VfmXOFw09bqweZOnWNvm6lSMVkirU6bVZSUH0XjKUe62woFHKRGiqTEZNIpRAbX0Es2WGa0fiUEm5JBIqSkQI8jPs1L8UFC9cELxaattedy5gWZoC6jUCBp4qGWZrdWNCgylHqKZQYZ8Ig9hvbF1u++e4cx0BmZvx350SABtzXQ2a0X3rp1f5Ze0DLE4SgvswQiXXoXaFfqmbmssymaozDs4rYqnYugiMXJghRxNUqXklY4/uqVpa27P26uN0yZtKbg5W6+kN+9uXMDnGWzEpvJJJRVn0AXVzN12ERzScmVhWXwX+UJKgjxL1HfD2E0AH4CxIjyug4XBGR7ElPtoG95Et0Tn08N+QqTigrm9ue6y2mk5o2k1TENGsL4/LrI2SLyeoZ6vB4LkJPVXjWjVQ6sxjv+7nngql+bN7LQ1ZGka654263palJ29vXPOf5iEgVVi457rNqGJrvP48u6jK1g3BP2+zllSCjXoKFjvXo0g9xS1985MfHnz9c6q5pkRqcyGOh2TfADDTubW67v3qHaeVxyNZmdwUMVj4KiiKugvwBRO6RApZs3fn+y4hTBYNEQkGWiqSadDALYQBWafFrUsbyUTz+nHrObS7Ro/tbBr1vz763/unP35h+F6x8ZuJ/XZmUNktWBIpEageAZFEMW5HeK5Q5y0q9rbXFcmavOVJ5d/3Pd9HZK/XDwkiOZR+4pHWQNgcAvnifTCXw2ZcPp8bH9Grnc2uRkiVhDHAmXgiHySpqI+Pr7rr7RvchEhG/SqqzOiHN5BWygwL6+tjQFojExSA4PbTHEnTiBry3pN5mLLtfxpy1c3dhYx/fPRYewIqtUUO13uswBIYSUaqeTsCEMFrBdIFGPOhqLzsuCdQuXmrub5+YC66sHH6zduC4qGurCa8lk43VjWMEFL5sn4Yx8d/8PIFr8eqMxNVwyXqLfGw0uTQxvA6d+rx0mZrwNyj3WP+9H4t6ujcfomS3NIO59YzWJmNFSVOzUxxsUYk28jiegVcBw20d7QR+/TyWzlkt6J5hO/8BKc9/80s8Dw0Cr+DA24W0Djt2b5k/jyrTF5Pq2pXJOQmJ8M3gNlfn5FrBOC0enXPzm9UZILSzargH90XwE5NixYwRpfGHL+MLZxo4rwDK+vAzs05GRTXzNOVFtl1Ob9BzPoJIZqmcY8LzXrOf29/+4eXX/178c5QXC7unO+uEt1+gof2l0j5CPhJ4sy2eopuc3J+IZ0Ap0bsc3BzfGVpcjcTqR1yiSQaEwCoUQh+AhqDNhx+3b23yTQ2WUgN1Vxt8Nq/gNA32dAT5/exIMDQQpz0jiKluenhIWZpFRrLqBBeXpQmZLepLbq5Ye2SpHAdyqhaUgBJufSCARQUsZtJZBpfF9ql01Hkif3tmaW7kY6D/69C1f9rh3a3Vksnbj+yymFlfe+Sf7WF7C7ljHzYPvr/4+8rF5Stl4SVlVMlDVGIks/blnI2LA3E5E35ufGPj5bxyWmVIRv3Gw0VC5vBpcXS7Uej2DvDINhUYncIYG0Y0Ox+1h/9yOy8ruVUuAlGLU3hkOLFTxl8q3fSApi5UIkpNB+aK5xlRiVaNxjYHGhWDHi+e7JDoZGiudmel1yITDJv70QDckkRYNfBTy4zSqHcMpg8LhiWeX3sg927DSHWx28lcazf6G6+7Vm0WQp9aSDg5Avupe59S9bYldw6qpuTTSsfbtDzXZr+vKhaONfXVTaXqt9s97xBhACIJqOuen+K5rP05H/PEYTU1blfL0tzdW187VeCkKMcUjzqRVVODRIHZnDvcFRsZWlFyLzddrlLBZU+GqQPdWk7N3ZhYAaTTEVCAJ87iyLnK1p/ZlsrmhZLzKacEPWW0+HDVEspbXMYf3VEaZlQ+poOXgAQ/v+cTY2Dw4POZkImSv5fmi7Ctr1+ounEBVNdz9eWlq7uq5t+ZWr26s/XFzLWtiPrI3vF1e7mnJdS9fWdu99NnL2HJmNTO7/vZUiUoWvt8bep9Ki1JMRKbNqs3NP+ev5eqxF68+Te7KupCrbFjr6KJkSgXo12hUECwDAU1Q7DNfbqhaWO/nAQGq1yfhB0aXVM6ITDI74yDQXkMCbqidjuXhGfh4kiCuPs1Z0n8pHvH2END4UmhUAZNfN9w77LBMGiYg0YlRMfn2DBg8hnqKCiqCcDin56us3e5z/c6irtqVyoW/KluW1jZW12uefjVp9+oH+Y7wreGFizs7wSL02TZQJBwZeRNix6PJOb0P2CQBKc4hfLQiFGWXkM0mFnqi2zUN1t+UV9fcHk/xLvN8VlOxiKtJMODs1FAFLTa5T3g7st4WHG9a6KizqWaAraxmuZqChr7wncXFO7OZNDvwKmNodpaOxyOzk5N15eiCN8yXaqJ5aLFnEIX3OKfMxSpZL1vqE6kgCcdO2VPLSuGn3gfMLcDkQ0BPijm4EuVKM4iI9uj7Rqfa+HWBy0H+068+m+u8uNsr2JvQ7z+8cWNnJ/1EUmDl4OH+x58lguanqfrQQcJSymZ1ybSoKAx/wsSvJvv/mhq4u3OioKYNNYRHXwDvn5OpA4A2DS8jVQN+Gxq2z6jc2BxnmlYu1wWdYBcFk7DWNKZ1OGaOVrlFKcAnAG/ajj7BA3I03lZeH3ehcVxP8vIwlJ6ez73GrGLyoEHi8xFtvTYIDHLKLkaURp16hEoF1c2TMZmleANZrxsfmZgqOq2P2Kpd49lJbS+83rSawe3yDokWw8JA28WGsZVzNW2fvDe2cffXX29WZrE2m+MOhW5sSjyPTP+NSiU1RYxWqc25VOXyg3MgEHyMy6WQRFnFLU3XptlyilzDZQA4XhyJNFp/pR/wJLaCBVU+os8KdlEpmhW+I52xzM6Gb+8RY2OPwoGgw46AI6Qkm/697CvPaaHRYjoUwUGWGTxdHrVBMtuK7rXJICknqRnuaDstAfIoAEpQ7XDE+cEh5mh6ifLZ90zrNXUPmFsbbmdJZ0lSpbGMW8pJbb+1/R5TqRxvuNxR2bazsrDzxyr42jTPlQiI9SvNEoL4TChEh0nCIjIXDDLDE5GBic4flf49Hp5AMo7iGRy2QqGRQ89AE2KotNRUTDk63SzLSWsozqm2SaUgXtRn1RgMPkVxGDhVMgng64TsFdC3PRyGIY6HdZxNAmM2PtFur0CWwqCKLu95rsejjrM5tg06SGkp9dmiVNqjZY+HQNH/WHQ+nP05p69b2SLC2ZwXti7Xd/9VJSys68cb2Gx8L1Z8PIF0x05Ibzq9c9F8Oti8ENxcPVhda0ijp0o1Dy41oHyD4uPVARFe9hi5h21TTbumWTKZaZTT41EoSAU75XVJHHhCqxi0CDA0TAXF/kBvPSLsjE7jctA2i8EaVrG21b0KRas2ENhV3Z5ZzATUvZgEaCmjrCceh5XgCnNL4gzvAt8/gQGHl3pFWVwLd1BNbLf1qiAMyBH5D0N7NAaQf0/ZM/AMRo/p2sfB897zPKN/3c2sFw7zC9aKeL1pj8VfMKJAwkuqFrKchUtz6wUNc+Nm193lhrrRynzN7L+kB1iMIM5Vl4weVOnBF0P6YHp+Wujr3b51KwVQwaXoYBbeOddG5NTC7BVETCgWM5NcLRiUCbC44eyVwEKJTLGoVg/P+AQKYCAarGoLn3z8eFQsLSoPKgYiOs1Ot6HwXWNvMpmQTBoUmQ8TCwTpHjDWi6R2itQGic+Ppp46heTBHq0rUhC5XhQHln35yhMXzg+hUERBDhEnwK18XLn7Cy+NcRKW/N5y4vsxeVJWUTorO9ioD/QrzaNbB67ppZs1S9UPHpBAXlyMKoAlcsgqlqEMm8zvnLD52GxnYCIxiq4hmasZg0mXmpqfw6aQaCEqhkTCZZBIghysKe1sENSnyUT5IpCh24EUqJ4x3FlstYbbJ4+fia1AKADp5jgSk3IWVdpzqYhTkkaHA+byELkojjzYUzZoOROrmRFAHs97FJzJj4OT+ZFnHj8Jffvxtx9XPRtN9Q6BzIkYJqYk+3zOudzcIWMOHZ6Cqj0BozMsZd6s3EjadMmzJv6F6+H7gc77d3ce3symER7MVGDkMYkg1Wc1cEGlSR+ZCgMJfrs+hYSRE+iHrDfMaeTTXmwiQZIDJvVEm9HAO+Ilk4RsfX9581mGZFKzaHRqPpRPysva5R86HC7N5GugEgI/uthYekoWh9dj4omhKbS80tejuR4e6ERzPSIMYLVJKRDoMSoVoPWj4HQ7hwMthSHEsMdTYQBlhuBxEuQpBK/OZpseWf+oFpYfA4NBY2LhMBEng5wefLa4/KkWlohc99fOtKlxamUVFTo81NhjY0EFme1QkxgcSi9fONGHE3h0nVVicSaUPilyF7kFKiUZdRoGoC8YuoTLk0lJOr1ACviNyTwcXuCbtcxIMQnvvPMdyMsuFvP5mUjQODi64KI4TCjH+znxUTsUWcZV5MdQ4T0epJgxmWmRtMvPnJFPQjiPPQX55FzWKycBbSIv7yT4y0tMhKQK2kkkIoVyiNDmsnHXV/ermsYvFsLgyOOA1JCg4AG+Ioqsr9VqRUMD/+wXFCj95mg75rAiBMguNJBEICAwWKnUBuQ+XHtrGR5/L3qSDpZ2MaLMW8qprGp4+mQygU4NJVKR3DhShhVgTAjtmkxSnK1ssbV1kat5TWHxmCKCit5wCLQ6AUOThqRDMXYavhTeTgOMCSSMwU2kweVIBJfS7kPIW0F46/iHkBMboPj7sCMXD4jOqDch514E+OBTcM/MLFsWTyQQsDKU0SuaP4suWDmoccPzTsYC4sxxXBpAj6W1eEUeQXvajyWjSzvK5BA4kUPUUOi/fw9D7/9GxFstGpLN4ZsFCq8mtV0jEVApXBqdwvOffhrP8wyxKez8CgXgCyMQqViNQIBJlepxMrwYxDFbLa3Axhh0dptpMZMAUwEeB8GAARw3FYaPfkkLAxz4BHAn9oozcKhCjDTIpMAZ8M3GnIEkrf26v79/7umRn25++fTFz/Y3TGAV+FDMPpIeQS/aZiPg2+3ClYxqlrvy+dioM1GnAHMmpTD+cVzBaR3OQiLZdtav3/1jZ7UyJioUiqL+e+u/B4d0WiLOwykTCF2SQ4oFK5dyDbhqQD3IrKggFn38LBIgglJp74OdF0HRHNVMKFgBhsIDIGcF8vgZEI36ENxAcSRiJUSBJwEXOJpj8hAnQ/G5wJJ/IREOP2Iz0o5lapCZCQwdDjCHpJJFAATZvHh17adfP3gVJIUeXl2/eXPNffGFY/IZdesikU3Sa7OSUpGYipyVQhhC1n8kHYOf/VReBuoJ/BNWXbq6HQhHOmaaf71y7JOoELjo//333+EDOph2YyAaYnXkDhHLpVD+5+hc49k+ozieuK1N3Io0LeKaulWpCENJSdBK6KoudVeqSEexT1SLzGgbRiNJSzUuaWSNqbsRdWno1qmk6l7UiE3r1rVTum7tuuuxvPDCCx+//P/neZ7znN/5nn3etMMOF+AEDIjpuPW9wXoob1e1rctbgKYHqhcQ9A4fdzZ3NtfVPfBETT373pOSJ14xNNKt2BNKdqBm+2SipoTxdNh/9c2r6ddLCXCEdNhp52AH4K40dfVwF5dz3ree3yq5iRiVpIum3ibUiySjG4tNo3PTzMW5FjCRbPcVHtW0aKZ5wt6WdgCDDHCJTWbDmc/hcrBLba2yMgD1tWOjXPYd1faI+aIVf2gbr7W19eGff//9518IHozu4X1gD63cd+DEPn0rqxN/XrnonHYAvSugWktFXR1liti6fHkrLRiZEX7K+aLuiWTWK/LefdCmBBRdE+iTLUnmVH53Kg2ezEEQA39aySEaI1pc7B1bXHzodNcOoIoQS9GQNxkCEoR65njr+dY7IGZy8tU8efS1CCt5xYsYJTMkq2y4EYNmXKglXmzOV71gDqnbNnUcDGZoFHgId+pGKavUsPVdVVEu+ubH//RLwtEGN47sV7285fzPP//er+Mk2WG8Yr1unvigKz1q4nLz+4tXrqSII3vS0AAkbE5C2IHdbM/dbTF6//sR9T1u8f6a/6vN3LnskUl2cDbYy4PLvJ1LstUuK905fRmkQJ+ekcaF1eleqFQuDnxsZ6gGhrptBghkb3ph5lpBZ84nMXwREj6P+XpeXiGfkPP5f03NYbnrFaEuAfegLJRZ9kg/XqxvhzrgYGfncA+w13pIQzsHwx0nVZAodlU4AA7ASHfrw5/3pYKJd5MV8Bam/flvYQN/kb8nINQ26sTNtLTvbwWgA6KofdottKQLacAHNmwRcpEQBOoO8JptnQI0qPOFSzxFysTE61fJpV7nHoGYYCe1bHUTOCynqfYsdNlcVlKHkrZo1b53fGYGBI1NY5Cepr5h2YCpNMw2yX5ivnuvm80+bhEin0K8Khps6iziMOcG4DxP4RbzqlDg8Hv2PLHsnjoiVDc0yvzuBbsDt+DrCkPCUBG7HR+pthzf//Kl6S7dPYmHzf+0gukFy3kKhRnmruvK3MbEyiSZxkZ5s8NRammHEwPSwAz4xRWDjrvw9QLy1wFVG3UTjTZ0uAxiLqDR0WB6nB/MEXP+ejU/r5kfbgiMjexovQOuVvrSnaOD8kkzbQzsmsji1229M0DIfNU7/fgzbKWgsspEBSiK0Upq8O7/WCe1MvVHUIgWeY5TowQ3yiRTyJsn0zjzG9c9vWPZ1NjwJ48e/dyn+fOVm2k/WiUmAgss2umgg47Xcehi+y32x5d3EpWN9V33nf/nYpLlSh5dTDPY6/b+743Nv+VCWq2K6ZFgu7u7rc85bAOYPIlNe7e21SAxaWpqaABgQvzDWwnUQnL7ygJrvbG04a/XG6/WZ8NLsuFjovc9VhI/mj7IZwRqjGbtOEZBDozBg1kaH18cH0jgs3ruCxby9cC7qbLNqw3GxBM8drsj8MORDYcc84ooDQRH65y/BiF3WQ0Ng/3XuxYZrJdNbcr3lfm9jAFv6JOSMJMoJSWvDig3+/6R+Sz29nErK13XKx1XOs70THdmmQaRhu0r3/2teNe1wcO3rNel2aXFHD1wwSHt1Cl93MWtra27QDmDvFEJ7YTcu7Ut5i4Shal7x1qBakiIYA4Kp68mw7ZxYSXw02ueWShYyWmQFx2x77IXpY6PDxQv1UMR+QWFIJTkuzWwqNHwXINNgtXRaCWNq/6aexD9v5w11tByg2as3PKz2CmGZRJNK8wEFR4VxMKjwlDhz/ruKIZab8d6hT2BfbYMfSLmt77nlcsLv9O1ZY0dRnv3W1+x0RS9fv1mdbjGq7qgaUQhWNjs6krHswrtHMB1pXtb3xnlZS289AHE3AVFafsCE2k007sgBn6jhBFKBRyBmGJJ6lyRT2yInmTDpyScXRK2MpvX3kQR1NkTWBGY9vSZmQH/h/72hDamEe8hmZgvYFRBE4CaUnAw+vhzc6Sxv4UpAmkUqq1ho2NJ/qVam8R823Un0h7i/6iXN1UaFwWrT1Ujfa3RNwgcuWBj3WasJb+EeBpaHtpc2NxcyxvhdNz+8GcIf3q6N4dbMFIk5dfVRSp4Oav8ThvYdcyV7w+978vyG/b11v+wlbat5vIFEjdSSMPAngXq9muPCn3FDdI6N5KcUyRpiCspATktQetl4XQBoy7SUSKiNzB57mYVNx4mPFwqJmOZb94szmFJPkWDktOQ6CsBo+n4d4/C9M18NBCQMpvmauhfouCrNYjkSGLK26n1CipvDrrhnwcohbPj6A8aW/FtwyXbWtBhj2Jak4GF0be2tlZQubY8srxZmZLkd4jHnJomDHvIFHl1pdj8dxtzr3id6TYqu7T7ZNArunxfFYU2h+cA//0F5x0tXBp3+KD+QRCzf8U/v4hOisznpkg3ePzVKRpJfC/6yfMYcWxZHCePUprVM1FYwWknpo69KE6IaGD2iviLi+2WeGscJVIi2wVk422mn1O2UtTp3COIjIxaLaqGayDN57qxQU7R/HrvbFsxboDi4tFN1z8V1kyilwZFcTZWSM1gvkTGJgclv0zO7IZ3zbeg8b1sSAG3hQwSFpde3DZcnkFpL0hJORP/7m+miCcYlFzbWbewBnrfyW1s9jjDKwZLgLBQZy+tmj2shbfbXgEkTVlQqC6S0vygxDorkTcNTulFh4U1x8WdQ3EtCYLGJIaEb6EZkcBcSvWnELC8yZnxYmK5WTWOEBm3Dx0NGw7A3JXskICVN0NoVRHZNadPUx1ptTU6qcYXmZNAzXnz+rrXgvhB3LlHLXF+LS190sZ30xx0SVliZib7i8zk2OSY1u7uSPry+0rB5lAlvbq8praIUJuBrMKm3PE7f/j93yubE6ymUsssWKg2NxcW5Ky1EJ2t7Q80kmubUj09m5t1YJ+57MoI6RMSsA1i39vn7xeOrGysT77mCauDS0yo1HAcgdwpcCPPTkY25HBzxl8QLHEUES9nxj/V49AwsSEkQlXJcDvZgU0V2CzKRhqI3GFadf9Z61oNs9rymtNHjRnFsq7Zv966e8tI4AcNyLT2/J49IiaxJiYywmKPx5aByymT1O37Y3eyry9jeVM69HtlKT6otqbcx5adu7ejw48eo125PFK5ubk5D4Ag+Yp8c21zQaF41gfxAkGPCahll6MDar0haH4M3NIuosaUMrrW6ef9Cgs7JyWi0cn5+fmAaJSyheYhx/R2ckEXv4JAcYzwryfWP464OjOzdCMB10PJ6m8ffVtcrqZ0ELQgqYOD6R8bHUF4woCAQA2jrzVVP67xPGe8f0/g5BwLUBRmpbnnXn6X2OyCfBJwrqGOLhej9MIPnPJiZ1KpdD/wd8bkFwwtP/CVLfz+QEbN8Kwhny1PsQgMqStIudJRkMSom51YjoQQLhXXKWQycEyv3YcFDOQ4ZHxdY74rtFbb6qAFB6fMFXM9UlrrSPT7fZHiOgI3ch0r7pRrmSoh43Fu6W6Wlnn8dUrIi9XVGw9hOoF9xFLxjYSBHFH71bGNqZnRdNWDB3cyj1Uo1oHTmopQUflSFWYhGFkbG7PxVVrKHwJzWCuDc/OUahRapSyTrXbySVhsPsVa1spORDofB5IHREy3R7PHF8kkgUBAr9z8A/csxgqZkcB/WurRfT6O4vasr7JwcGWjsKO0MKQjmd46JFurlK3J7utvQdw4OKC8XQ6gwfmLOTAqWueyaQThgFgcl3L/WVORMITRkHgxpy0dJ6S64FPcei5dIeSwxB545urY+MP+cv+Es/3E+uIl/hRYtJmTbXwK1f7jhLb5CcYEC3stAmF7UkndaYeSa2Au/pfaWjPXi5ashhCKfKNUx9bJxCs53MXENiPWt7T5cAwpCOkSC30lybSQtvXh5GQoptEVy8tNm0P0Pu2PfXrHhy17DAKrQ9Ya7wxFjs4T8ipSoLnOg95xXypXLC9MDP3pfHTrrq5pi2dGIjogA7PrUCePUUS0pmAZDSQuxe/nFI60sIK1DnilHBLWkUazIPTs1nIbnyGL18dn6uv7/Y9dv3FjJsLiatti25vptoG5RZ/Q1KmxqQ2WMK9CeLWnC+HylcrOkycx+nhieX/G6T0avM6uUUvLkQkWbyDX4wu0XrZtWW1iHMnrhFc4yiU8NjExLi55/jVLlkQ6gy2lkhobSxvpFAF/buzN6lV3t8LOusoVRYF0YWq+J0l1dww1M6ZA2ti4AKI313x1D8AUnlB1Q7sDzt6xey6w87HClCwt7UshSfEkSmEdVz7I6CGki8RFeLYW3pFoYJlkYxlvEIn9of5Fb30qjDl7fOOHtjZyhOPsyhyTPNA7TWay+PKKdLx70Wiv2xIDUV2u/CVq9x4Ho9pco7P1GtftiyVNITg5mP9l70RiPdsMalVLMxuOnuF6ATWJu2PZXhXpvfyNd9jmTLBGxNHFlSm/t3aQ18dXc+rjtfBn8pMLRnwru2Y7sR/vrhPHfv9cNrspGGmULywvSINOAJEQrYbxBhwD0MV147AkQkg8Fpt08bA1rVBAbtqQlMqmpgaLvkTuNc4i4OLjP1wzgMFdRQM3YDyRhs7pVMq3zMW2ka52Tjq5njnKm3s1JyKnY4d90lmzPRb1iPJqLU+dKk/lnbYZJzWIPv2klBASHt+kIEtlLImpLdzsVJ0LTwaXf1T0vXPs47HHv2e0jU/PjlZ6BJFEQV6kAvqdUnqrL3N8gEsJDCqPp8ff7rjtx20otDCVKiIPW51XTMxvTEwMwQL9IPweSt8Baefg4untDOUgXW0KjZsl3Rg8lFt1+MoXDNF6V3uDsF2gKKbpuAOPVNMHuLzujof8q6uCrhjgjugYwVzF1VFeHYNASMDWt4nGQM0bRx8cMaGBJYk444j4tQWmhn2OtHVCZSD0jSo4WKyBBS6CI58tzItk1HUXZBoaoqMyz6FQsRklLqiol7Fe3pTiiJ63bb3J3EE2uqzPyuu3B4mn0oEoQCPhyrluSd1J2rdDeOuTHCEr6Qvti9Imxcrg7KasacS3LOyBXFXT4w7MvNh1Uxmt70rElW4qFiY28FVn7vsVWkq62i0pQn5kSmeOCJJFM9yl84H8FaZGTU25hamyqquq2fWrvaIcApAKBhIe9s71jo3xigkp0FUubK+QY68hypsRJ5VVYcLc5y6moV/7R3ApePcsxexKOzbSY5jrpaxieNIpDCYBgL3LMPrLHdn3gvCUBKxQwhzI4QCS1aqx1dc3yMorKYHoT/A3ytUm5Y8I9hy9QxGKD2UV3bp1NI4mLJJz5POzAhI9/Enf30PvB+V3nO1UQqOcTLWMTLkygWxiIUs7ScxqKuSA65WC5WwzWPivp0btdfT9rnUxJnHlnx05omOLwWR89tmxAVFxPdHgkCMeBqKSefP8nvtulteWIhrSKxp6EFDk+PrX67affoQxss343IxSn0/yZUgmWILOBIvacLSTreGXaFsV9BMTJKSJwXrqO/Y+EOaQSxcq0l+t+qvvoke0xPheQbGLIoj9FMIvx8zYpKm3nMCjHm7WmMAjNpp7wKuS/6CCNTglJ3V7hYsXpJWb8jxdtQsBaHQVkfojV0wfUSwkGZxJcnsg4VdwcoqXem84RmBvtE2v8jz2G3Q1hbCY+GM+eNUvnTK+Ls/huF9dSvDxsSBey2IOjK22FfukEi0CHy/ldHLIxYjQX5/+2l+TYQt3fzt2IDQJDbx0Alc4WNw+MjHRDOYdlwCXgAC4ZQNDf7S60g4VPSN3nyrtRhmD2JaQgSfRc73jYlrjMnEPaU/rZ7JSrlaHEsjtHn5+RWYYIL2CmwMqMr6RYEwdGfLtZg89qBxZeB9JhVoQnEGwMVKhOCV/hE8W5Xng6F15CXWyzXebluXD5dicinYmOQlrQaiXkHciSLkwatL264zTEUsEbATZ0Yd49SzFLcE9ovjbbx7aa9rfuJGTI5pGfF3z69Py6zWenhi7HZjccndK8Uxxe9M68RAusv1wuGcAkEtPolXgGkavRCl4F1KvBotNH67e58aqjjsXJBZ265t7J8bd4RIJCaEtRLzqJwhlHU8d4/SN1yIDCw88iSYUj9b1pUj7Kkfg9CyVNqasCQr3xMAlBXAMdLjiOjqVLlBMjPZc9Mi/dq1BMSIdWosUe5gOr1d0OhZahHjgCF3Hdh53VVI13uFkpHps9cXj1AR//whHf6IjwRKQ+ampR8x8lsYtKeSxGcTTX3/56aefntZ+/slOhGtWlYbRsf6zOPez/bl78Fgtze7qkzuUsvWcgCNgUqaspI5sqR0m/tJ//ZacoWlTPUyrcVGxBZpnd3y8P/HpTU+jnYEYOxgIosl/+7YNPIbE8jiolHWAiTpOUCd7/+xBh4ff2khpx6Wt7aLjKS8adTizWtzUI5Beuti8zmmUjDS2Ni5IRnCeuUSRCEexdMTHGzDaPPZjbLBHlBCULB9INh8+/uYsZGkRvAFs+lWiI5Y5VjzTlu4/MA5i+qt++ul6je0nrp6njQx0nFWVETpmRwjEWh3PalPj/DqTkoAAJyeVMNsLUbG7dqF+IVYT/Pv5FGts5D4v0xOm3j8/fxkeluFS+7T6aQtbR9f7oAMaY2McsvJ2vh0Glpri8ckx1t0deCr03Uifd8fDHMARxYiG3RZc5HlS484HsUlSsWIwZP8HjbgOg0ZpSpxA3unIMdJKoOxWtbEXEnG4vLlrOA+Djz/+MrQ8gYinEN3d3R8/9rF40Tv28M2qRarFw4gbM70DS0svyP9xdN1RTZ1R/GXBSyJDJCzZIqM8QhiPsAxhy7RoScpQRKAoEMoD1FCGgEUbyqbBMp4lpBhBoYhAFSqWWqNWLIgHDbTa0KpFK9qatnae00s/9PgHAudyv3u/O38/hJTLZTKKct28ig0c/Pzs3IOnu+XjvUOGDCLdVGRnv17ZZUNDkeLPsmaLetYauyMMys23fhwE8VWEnCiE/hCb+oYpoRCRTgJNHHSuuCbCiLiFZ5dbps/ZOLUIksuTe2Izq82men4SnI8qGLh+/48rtScteVzXWDfjj77c319zoLbs04CygpjzuWl7BA9vXR+7X91a6WjBtDWwsfG5OPZ1mOA1DhNDbeXeaoBmd3QPPi0xiKx8sHhn8XG8Y3Hxyqx6fu7ukxVvhNANaVRaLSbDmAE9ImDZCgmH7EQeNySUehEpH3yYoE+VvUHZy6K8SXt/w277iLg1UiSKjz0ETYKdCQpRSopHegYK1UWCEDnYnJgWbQZk6l+EQLFcefvRi6vbjGOTr716dfsEIB8ARAoAfcVMTT1Mu3jkehTTTwjTXqGhQjdwAkctnX1ubd63b//BoTPXevuDN10+J6FRaAYG3uM/P//3kSH3XR4VRWyjL0cuJyaOqlM9l+OhEDs3/2BSkgXkWMsrc0/UT+oRgtSCLCKCUNLl7SoRn8JhtE/nqYxbDBifWqxuS08Q8/KpetZQuTL9UA+l81m6aXnEwtc+rw0YW3z2FXSzHFK+QqleTFNC3u1uRaFZZX18qkTKkRoVpH19bynLUvDzjfu//vOq9/4fMLExkVv2OSBWn29uipo6RBUe3D9c6O+/x+lUUy0n+dSZ2hjB/oyemutdAr77qksk0JJ1h7V+fXXp13sBUOBGbbEqhK9ybmhxifT19VwduVw//3jxZX3xaXW9+sndFfXdecRfptRqlWJES8eBOpRBuEuRimmN061wW44fZZ+A/hnbmqrPg2TOmh3BkqXHNYamp5tcnrOwOv65JQW2sDDsqw+An4WF0cmbFYS/g9HDH191vRZgZRKQ63Lq68Ds28+/PXt7/FXzVG1B1KGPcw/H/B7zU1ngrtidXnqNInLYf4tdl5ljYDN/6sCeCxdg27knqmbw5JmmvCyWlNmxOvLNjf7BF1fbPFGUiikxBrNKMhu2MjodWZzXUX+6vnxkvkQyWzw/+fLFJNwzRCWr0mqUqEyrwphvB6DAHAgMzUqyW65Q0iyxhIQUTI+ar+8FqDlseENZw3IFSbPaErplY1TdTi5mqtjF2cCGBpRCi9FpZE9uzcNrcK2uPX2NxnUXGru4jD96dKnp0cLzTvMzgc679m+ry/n9UExU0L5hSrrVRxkYkf7hnlMXcpK30T6OEgj274l1kLfcaq4IKu13YHCl3b1jp5rikp+PtL7g86CVghH84o6Xz0Zm42cj76rV8akdSxIOf9RxpXL27uLc41lEJhYrNetHpaRzUXcDJMCSoy8iIxzacQAWSHjzQ4oXFxgIuF44nk6jsKCGbGW/xS9EKo3Z57EVMh5CypPaS3EZTgUm76JX1378HjYwf//7pwBpgKVZ8L17q8daBNdfPQeE1P646kNmH5n9WDZwXGCWAXt01REpexNSHPbbnBkTcWlOvbEwLulw6MCZLiPz0rQ4W4rtWvh7AsPIojuvbizMgCmiMqRhbvZl57PJ7LmO0+DR1I8n+8JmgP13Ng8MZw40o1WRIApoR0swvYyBgMKSRQw1Cmkssb9G18hipfhttH8H4/F272Z5YEKFAtA4/coOBGwb8zZ5nSlzsJDyvPy4KPwoEcfS5uGl7wemrv3xSeCVv6fqAgLsxkvTTgw6pV2vqWnuF8Q6OLiGbM95fY/ZhUOuoa4Ob0Fnn5XOGnbYdd0piyFy6J4mydiyXPNrN/pOljZ3GVRmO/qG+5Z2dnaWZ6MgDMcq7/Fia2vl4p1EiSTPpyM+/smTlUrzqpLlWSBoHQUKbZVSpVSCP9OQWjq6BajCqph8RNgjZ1D0KCKFw3Ahh7uRCe0y/Q3vmDpQRPKbOpHT1ZPODKvDxtsFHCqVDtMJXB68GiKC87Tr4ZW6mD0//nnk2vdR551plumDpWn9ZwdrthnFZsZmhOwyNgR834+nNiWwQhlSfwWbIhIN0zYlEN+fumDmny5sLEx5ahhbXnT2VnLUlevXyo/1nvZ+r7ehbWTpnjsk+8ENgD1Z7g1bhnMdmrzReEl8X9jdx5PA1j77Ui1Rd8QjShkG4pC6NRVJELaYTA+3bUcphAJh62Eog6xoNOV6wGCPPb7BFDcVEXI5KSJOmNtS6FtpW0TWXlQ96rt+IAxHSVK8Bh6emTpY9/S3P76vPjRQe6UrLdp7teZCv3lvf0+m3C3OLdPEcu8W14Kr0PPz8MI3YkAhT/P3k1KJWJfMCNjhKExpnHKLDUxtAWSOh98C9p9A0LLmmzq2WjrZGrjJ+WJfZX1gQ3hY5fx8pFwTneebV65euZud/eTu7EqHWl0PNqOq+j+cWXfQBIGiOMJHKLhYKKRhBJOL+ZtSZRtpUioQtZGENUbXTNNsaQycalQREWDlD1YGPHefwrIzo4KGB8R8/+fUD7+duvLHbwOfn/nxTP+tk7AjDjtKLcbbDzbdPnaze+dOD+nrGT+4fuax2/6z3RwTdyhwwpI8JnQofKsQylj+ZMahzAOlOXYRsTfudx2IPTjUmJY9Xt4X2JpawnQOPlnvDZzacw8aJO3T7e62o4BUP7rcPqouWR4dhVsmQVAl+OYqjUYHHxqCwDBqPlqFoxQwdgrwG8vex1lCMkIBn2L5KyiYbbcC/g/KtQqO47DlQqo1jnK9UCrKlDOZrqfORz2tvnCga+r8mT+mumoPh3vfWR36CSA7DoXY7evvcghxhabmzs/27qTt3Kv3hj0tgY6bvg/sekA1bwrfPoFFsCJiw6P6L3zZKAAk3YOFjRlmrZ0T9b9WPns86pzo2daQJ4mWhC0+Hi1u5zOKJZOT6uLiGclysWfJjPqJxB0Ry2RKpQrMX6fTKmUyJm+deZIuZoqUCXg+1+tDkhTp5PJh3boMFIwk2XTIFnAutUJOlTqwoQDntf4IQfWKF1B3prq6LuStWIAXOd915UBsnW+44ERm48FL3fsv7DeL3UOjeCRQvfy2frlpt/1XAFTAsgeSMRhA3IAD9RIbpnoS0kUpQ02bb9a6DfXWDIUWRmQc/KF0fKz+xcKLyfLTDPK0JLIleFtDx+Ts6Ghxlmfb3GT9ZAdwGkvUEtvZeEc+oi+WQSij0ioUWo1Wi4uBeYK5A2FShP6maD4rAt4VIlRHKkTp69xzGOQ9dByn6nE/pbK5HHIYhbfUmoeCNFz6BcGUa4bZ9kO7ql//IacsJyozzge2ZPZkJERdaqw54BRnyAJIZOj20r70x63hovHo1lymlE7BKfR36Hp0DMI8lmVKhJnFUO2V7vdsHP39dW8NGKfdK62/s/jgWRrcrdE8YDAEW4lclsQ7x18ufQSl5M7RZfXs8rJaEp14FxHjMjhKraIdZJGhYjEkQUwyS0VYcsXi7pswDaiSA3YXrtBpdSSeDxmBngyzFr+NbvTiihQYGBmdCpVr8GehtZ+4K+rcjIxff/23uuo6t8ye2LLYnoxConE4QwBhuIcpa6M1yvbDv9y0l86y3PA+xSEeRaGMT7UG1g12ylspplKom1gZ2Bz1Xnjwa4douLv2932DZ3/uHO+rvzMyNxg5PeMbb5eYnZfoaBA9sTAWduPnIzfaimdKSkpmRi+rX75E8tF8sVgGWiEslevCQEZHF62t9ZB8KlXV7duzJlfIFTo6kq7TrYlw0AFVxqRQQE0iCpdObOTp6+lBm96ayvOjFX73sUMSIOFWV58/dTRku6GgpXEIJu799wjc+r8ZTHMnyGGanv0GqkUoHc/ajkZ3VHbaMOHLIVNj6u2G4q8eO0AxbHbkXt/SwotfH08PHbj/ee2lwbPXewOzO5f62pyzEuN9shi+0XmRzknOzc1HLg4GHlt6ObJcUjK6PDL3YBEpRpCSfKVWqZRtQQmZ+P+zBmeaxJRxvnlV5M219h5SoVCK1kilEofPbqDgfLqYoLD0qJjIX0y1BmHA1JCD3TV1H330kdnA0+qoWyE0xqZ9TkLQ6U+xoZcuweTsydBGp35b6mefUu0L2RY2dvzKxccvT0MT/BfYGITfEZa+kcHy2iGSH3u2ALp48aAvN6bgVFdtauvYYGTRvYl7px35HWkuJpwsu6S0hrbottOHA82B8W1poS9xZlL9uPLlJNKOMEr0UbhpYhyHf1B9lKW5KdeBNErl9Jqme22NHNa1a0gFqdNiuBgnRBgmFiF6NCqFwcMJBxabuh5Uc3mI4JvOba7bt8Z+8klIiGGAlwfFxBLIVWjEW3vdPVwLRVLWcIu5o/DDd6nWEYJj35wIgzmXxZ5Idy74DxRuK+rPtED8OO7hq1eP2dSkrT5brPR+LefoxfH68Ynw94q860eKXMKXszgIP6vExaXAJrLFJbPX5tzYeGtYsWdla3n5fD2irMrPz8dlYjQ/X5wPmsnHNAAQtqbTalUayJDb5XKFtv2mRktqtWBP4g2kCq6fiIsQKJaAQugnw63BIaBcHv/c819bMrZDNe98tStA4G8sDM0wGoqgOX6RvsXv9QQgON6yPVNwUIpSpdduQb8jrO/FsxGJd5YeTCCDQ0Spu+n+Sg4RH/6eS1PcPl/z8RcTZ3Mu+bT1nrwIuLYXJ1pH6n34lpYISJPYOd50+D2gabMJH79VOr5Un9QxOf+kYwWRoei6IPogCwgjE+vLQCtrEK21a9emNRIodwxP35wG/Wi0KlAeViEUmzhTeCgdxRMwHpUuo+I8FFzzjra+kdt3fHIAPMlswHX7zi8zMkLfEgoT3HcpDm7a29QDhJQWTj3pOPdt6uarsIb4/NnIyMvK8mQ+HeVB5rXuRChCUWZYmLmPoVNshfNEa/PFyzHmZwuOH3c5XpdW2Xns3qNA92D3KoZl9GhqW3BQslNQ0OFIANG62NHacXf+sXf2E4QJzNn5Yn0QBQ6Gw19SNw1x54yqfW0aYtBpUrM2TZAaHUEqxbgpkTfGjwmGweEdVJTN1Od5oQiPHq1HMHeE1fdd/Wbh6mEA+bfYCrwTGemWIpE/jb51CGj2rxi6ehiXdRfi1LIc6pHbd1bPPhoPdOlL3ZwoXQ8h13MvFOYw5d0AS+ZkaOwkBJTxiaLL8cGDTWEuOcGfXymCimzqrRuXPZl8w6BUX1/fzCCjoNyjkRcnUo+NpS71zadG5qkROHSaKZ2Oi/NRzBTDUTahmdaRSp18GvTRrpWvydtFqAoMBhOv36q0b/tudwZx9PU3weOqr48vj/kEhXkmu/G9zc2vPmgtTS7OS9q05c29AVutEOY693BARrfFTiv2lo/MhBQ6+m71o2jnkxM1x/69sc/9spOjO1McAHqF103GNsWGI2A7YMjApLHCpsV8aT7VxbPXx9AiqbbgqWHFzExWkHczn8uUeCZKgp18fZ2PNgQHX7xXX78U2HHu3Ip61BPBYHgLg3dzR74MA246CorDhVJCIK2dntZAaACvD4imJTXD4CIwVHagFPqYt/jcUkc+D24I0rnwYPycU9y2JBdz7xO3+5YakizZfn/t9GB/ttcKeJatrBgBe1qeHoVhyJrQ3aa7ebzzPz68Dy3dn12K7YJ8wr2hbA+0Svo8PTq+XjOhOAhDHUx2CTLtjFt8vK9HOYV7Gm5Ojvkk19gt8LhLeDwTKQlzMbBFHPPUh3M2GwQ1r5ZP9J3I9jkKWYA3IpPhsvW3cgeGESxgDKazyXatUquZ1ozCI6okVARIptISWh2B0cVit5amwCv3z7r3hxUF6jN3iM1TR/pqc93cDbb1erf4NvctPOt7m4OYFNrDYJQHI68HLhrX0OTiVQabRYCr4FkkI2Y1TQVHBaXPTwdtyx45logweXDABhEunWbk7yAUGRtZ2rS4V8iDDGza3DYHJyUdBUh3OwODtgZgYQk/UR49G+lokDj6WpJhUkN8Q2qlc4lEHRmvXnmCYGD36x96IAybjbFh5BZTye/Or3SsaUFFVe1KJQHCKCGy3gA+zyCuILD2x7P9E1+fKNHXZ+g7LpUHVocEt9sGh/f69jgXlXd6SjlWwHaeQggBPq+CpOlxB+xivuVIUS7EPbyAG0faXMwFTvtO3HvV9fHgqo2Rs00WF0VNOJ4dTB4j1MzORCQ0MgqOc8xriC+uAOI0o6SggZNnjm4v25Z8/HhymE9bcXRH6uyoDRCSbU467FNhU+SJ2I7mBQeldiDpBCaGo4/ToT5O2QB/cDq2Nv78xeSi9xp4aPDRhBJCap1GBY5bJiPifI6fHPf1ObGcVTDovGw8GhmXaxzs7OLt4+Ts2x1Tlyi1stpF+4WT7mS+cDstiJslo0u5HCYH0iFrzJrHYxTkbjMX5OYOnowpM77ZY+cocnRniBjAbtYBMSHZI9pihQkN7OySgOXXwMDEFlF25xa41MJ4T9q5ic7svGiEOdOe5xkcGWy02S0pCaBmi8ydq2b4Bj42owhdQeSL4ZrhbDqbrcSgv4nRq3y+vvrrgxf1vu1QGlBpwC+TJChJtn5UAue648camosONB1J5FeGGbjn2IQ4GyfxE32dHY2vDBga78rcZ48yLW4KVjsvVWS53YS457+irjW0eTIKv7rFJEpVpnXO2Qzj7NAWO9tonKs6O2O8xISBrlD9o42KqcE28craiIqXlnrZQjs+3MC1YIKobPXGKqbmhwVZtdUP66ww7A8/LDjF6S9/eepEz8bYRprmec85z7mlec+AQHLW+QRsQD8rQSJ79g13P3LLjP9CbAGjLiPIEBURThwdqChD7e+9tzxCTUzRyRCDYWbAM9ycfJL+8O6nx2OwDWBU1EkJEmFDy/p8ExcicWp+XmGme4GxbDT9jILywSEvp8C5RyHHvxhi/MXVahSen3Tw60n7jup+FSggWP3jR+usIEQhsEBu/oUHYBYFM8XHPOTz1+3dOH/uE/QVFEYfbmWXXn79ko3p8NlXXjWHAre//PZ4+OdpemIM4hBEpLMgxgYl7Fx4PNT997/wyTuJKTRHXT4pkSGMrbSPDipFnrLee285eckEFqAnpy47mwpCGCQDN1744XW+YnQt5J/0fTZD09nljIWoqQDsYy5w94d43cmqoYlQowlHnw56gZgJQaYaHIVaBaqWEysrK9+v5srh0o95qHLAvKxRC3Ce+UqJcR657rZncvc89k1sZgr3JoPWextnX0RhAc7Zf3fqembv3Mun5z72Xnjjvclnv+TGH4slA1MkNDwIAp40etbpV/0+cfn0udMPPP3k3V98/fWJLybPJsgoY6S3T602GB8dMJeX71wYQWyAvhW0wAoae46CeflQ+DtMTITDu7vh3Tcdk2IzlyQD/NmhkJD1ZP0ir9GX9uw+CgKVpUDi4CqZjeVhdhI3fOPy+ImDk9vfhx2uOvSpPPBaEOqbzS2ndJ3v+Yfe4uT0rpTCSXzBWN4Y8wbGPFzJeX3qwmxp8zQSGGDuwoX3PK/ff+F0eoc9cxTGJaCau07DcIgoS6vj40/eeOP9dzz79svhNZ5ErZXQm41Y2WYUqMhP8yKMncMoD9zVLqorKzlxwvsUcuyXQw9cNxMSnl9T3YBpwiRWpzzzblIR+SzN06KLcc0B2GmVSP2DJk+tf39CXrgYFGUyezurX3UrB4JciBtDxQBLX50/PZ8pbTi1jbMfemnNf08olQpS0F/xTGBzlN9HH3JhH1CRRH58FelFgffeG/HdP/F+JT2xjI2MEiCzEp4ivbN4dPKGUunBm5fOPLO0uC562W53CamCvejj3hjz8VfC/p1wQo9HDHDdTvtghh19iqCF8XBi8orzPIqgIDZjOo5GekXfvCbyPXrB0kSR52trCFnB/D+qIbLbcLv2qXB+NJ53OKfy+Vcn6205ln7y7icV6KydCflG8NqtLL1nmtfPPPLR80+CYvSFDJWNjnnp5BQtMvOR0hjrfepjCBtPBbw3XX7R/a8GPOdedM212Gjwn3QBjNnvw3HeMS/ZevfxF7KZhXNYkEH7hSeeVzhVUNTQYkMhyeRfc96kjozOESTW34QCiEAaLyeepwOerEhJGFXFdImk9GjINcUFXTJYdk7TAzbEmWDwHzDS+nYObktbzR7+6CyWGNiF7ES30a188Pn2t6uJlUopY+SrllWlKMX/Vui5Z+7m4dKMhUyABxOPTpFJgeNp7BKP96IkO3sVFsCu2Hgj/OlfXjTlMXTstNnZf7CkAouklNzKLI+cszj+IkPNjWQp1pU5v2KZClfa44ROuah6pgJPFXOq3oFx8lH9ZGSEJBFGYdgYkhDt0ZBEIilf3TSzGoXQfmnBYK+Z00ldQxmAEo8P4aRfe7kbi+2+3lMch1mceV5e/aUT46K7J75fz23XS5vMu5ZFVePVzegz2geR55/ESMKLRk9DT41IIRGjKbq0jLIbQWszG8AufOLcczZ8Mw/99f4H3/x2dHJydBaQ4LSEC+EYq5hb1MRElnnxRfnC6SkMsfuaSSGKomu8yJ892f62IRcDLz1TKKuNQq5TqdfT2nV6uUsirzeZlCSdhICEEIBxq1oS1OKyyTFMd10DZUaPM+aUvsithd98eJrOMo6yx/iERPvbg07TjhROHnR+XpcPy4ebphUcXV7YmA/sjvNjC5lR7ygiCQKhpmcOoXMO95G1twloShfMLVHBCS9592vf/fDVd799sFRFOAiXlpjF9Pj03htz1zy1dTj90i+5CE+SJhPdHCERovgA7Xv6+RjcNPHL9w99tz4vNGKRRufkqXa302rXixhpsJlrkCHhOImqZskEU+nxmqZrySSSaoMQNM5B/f+AUbm9EL10ztgC7QjCYqwZazd++fbbTqz+/Ve5N8dfF0p7e5DbUJeMUCz7/HU8G9y6hGKrCF2JSAwzUGCatrDM3gYcIk4RKBi8lCQ9UXgMy3ffrtsrggxgdF+EYd485DYoSKdpptDJ/cQaJKuEDrMIXUSyI1hybGo8Xd5eXY1NPjn5ZKQQSwwqsFloHfbYPIrNXeM1SDpK6wDGMEsKJUH0VDya6z7tSrjWbKGPdtrfNtXZFLW6s8vQsEU0xmpJ3dVq9rhwXa5TruTSsTIoarHkHO69t7lFYWwS6fyS13vJys/TcO2kJElPIUm64uykxbLO3iZCs9KV3szyHMGS1Bfb6x/+8P337UYCPN0HM+nD0ht7JiJHLvLSuZMDNjPmJcwxyjrNS09JVxNXzXmj4Z1KbmW7XJz0N3KnVr/d7g7q9Xb9aKAbGDVG6ZqSZFlU1RGWMaQUK9K8q86omqupCmoc/Fk/0oGYWlwo6jknEFhGGlutGr3xYmgtscidODiVCJf+KB3u7f+xtbk5RQVJMk5OXEEYTHglvLg4NkvgBNDXueclRZEi0eXk7OmzpNebP+cpsq3JhcrOyneF8Z2KZiyyouIw5tYbb1QJ7FqSuNqJVaIZ9ik8TpCGl+wJgpQnPGuxnUSnDeOjwqBcr3/byW0PykAE8IRWaCsnKepcHTwGpIqorSpom3IVpmWrMAYQe2jQPviznQIjq8G00MP5gTRG5sCchFU7pApMerDaLcf2epCgbezvL2TMBWjhzHrZS9De3h1y5+U3RUkiCNA7KeGkjq4kSAIHapZI6TQkPfZYIgyGlc4lYgVesaemskp2uXQ4rpKj1xpXnmGUXnuZxJ9CuESgq2bdci4hRvvtbwtg4J12rnCqDkgahXqh3+104RMxR0cdkdV0Q4rnEWKNqmYaJJ6SqJ5QDLnRXqvWQ/3BwTcnG7LaU6YCmiuKGCINOJTtNfsqz3Fy7rUIIxwuOpsOI/wBs9kfq6nULIFG0O2y0LyHKdFUHFgXyApWiSAA0xAMsMLoaQTOLoYXQ3x0/MNcO1fTNRGxHsYyS36epX0YeXXQXL8DEdgEabhXkES8dXRUbnUL3dhupDAIJ+TGSkJeGdTBYQrtbqV+sN3UwJrxIeNUg0beCkhEnkxJLPTMyyq0AWsuag623x6U4ddaj6V0ROvDpoBhaLrdUmMnXpMj3JuM6TClqsKUNqFU+9GqBqU4kck6e29sOmFnWQIcxyIRElRaxLAINsirvLPAxbYtKmt3z8wUEvYw8VhOYuiwdNolpXM8oM+qaW4CJ+u63hPgTxbIs9Fv5GJrxb4ty7Ytl/vdbq5+UGmAwR21d3T9nxWLS4ZB4IbF4nGgZQMZugtTALXX01Gt240Wm2trNbdHGbrmMSTSa+Cox7oa34QzMq1G1+ktTkMV7bzyo2VlLCsPhJ5xNs2areb8TBY+GfRPdCekY7UMw6M+EiRnIagysup78rOlJ21BjijsMgS1jBkczXhA/xjKW0FqJDDn2oPOtwJBSIn2SrkVCRebcrPVanK2bPdPNcoxuNe8DATQOdVSJVgxaTYOhiZJVTKeMvIsC2tpSHqv5+oG6sstNarWXLdGZyhdZ4eGUqUsQ0d6bVFgBEdhVlcSXHnR/NHZs6CChkIAXZ23YE2dReZNZ0/ZgrJtuGIGCdkXlCtDMKwRJOJ4nFVqfHQJ9n3x+xhB1zGI3eegKew0H+/1jhAkysM/DHXQgU3vDAlF1xKyLPs5QRA4yDoFwBNJF2LrCTvRj7WPCoW+gA8F9GMM0zwCeJR1IdzDexuuBGcYNJWaqtZARMqi3EA1j/LgY8AYlmP3OKW3r5TbDSUhW6ZwT2vFgoIgD0kDZDbO3j57TtKloEuQl4bLA0s1C+aSmnf1AI5gnpA3ayEAszQfijZzMUG2wdMxjIkEGWVOmsXJ/NVeCYfRSqfTPtJScDFCxI7FShxXlCOy6tiMHQ73Y7F+P1dvDjr1g9VdgALXHseHKsrHwSAsKiXpuiQNv8Geaiq4vev2etDAuaehGWw1bxhSyIVhp6NE1ZJpRRo5uf2z0Fjd/r5tVQGNQaRY3dh0Mmhe2Spl909DRGr2eM0kkdC//n67oA3XgxY4ZWx+6QqfWGiu/lCpJ5DoQcgzSXqmSSANYmg0BsyKm916+ZRh4MsKV2QYh46GhJaqtmSYaHLNTt9ullfT/Vz75GpFx0EADIiRj0vS0IkADIgEF43A2jQQvbjaiHHyOuM+y6lGii/3TUBjmqbimLGCUINOb/fEoF5YHPY9R/MpimJNZ5hQmc4GvQWpnTSEkmKxL3bf+fqbzxvaGGsYiqJGA8nkZLqb63z0+cmDcrJhAxlBFMLG8H+9ywD/aPVzu52eiJbprCMoZpbOKqbKMbYMdm43+i07AnPLQSOWKB8TDVzD8CcoQ5TISaArBGBANygPGZqm667QLwxW7HKYi8USppgb9GuKpZv7lmkpi42IYndX281+rGXniTx0NuMSuEwW4uejJLLMfQADAhbw7EdfvQ273Xz9IbS4JIlEuijSocn0h6vfvfhRfTtNh/nZK0lSS2YQiR8L8GoZrrTc7phWT1AcRTWtMdqkBbtoy5H5mtAqNN4M350oy92I3NTx/1UTN1y+39cYxQUcRkqXcAS4dHeY47QEOQfMGIuVVxPldr/ZNEEscCNT5mLpmiA3BduEGroKdEZcnapubf5oEPBpSRJ8aNRIHct1L752/f2vfrT+2mNhkfjHBKLPQ+yFejeX286dms/1CcTCFzjv8SIbtXJLAYdtDHTLpBTFhO+eSkOqwIFCpmu02hyU05F0UU4L3Kn2Dv4fmpQkaaBTB4QeVjCukUL6MKa4UKepYsQG98t91E8P+t1+osyETPAQAwoNi4OYWlPk8UQVoJgwDohTYIJVI05KiFoGSsjjx7oRX4r4ozPPpBNPvsxTYMOBWjRKvyzUisWV8EePnah0Oi0hRKNjJKBKQx8GuHKzV27h8E49xeTgYC6khDhFsMt+T4gTErJqD+Ryu51u9g2AP3zdMQ/oTSGkOk5J+QeMDmDcnr9ZsEVa8+d2Eivd3Ha7obbK/ZUC01uOw8WbzuuKb8tSBF5o2VWAAk0nIw84EboanJbIU1sGDtMOPOXx8AKUDr77/ImTJ9YT08u0pvFiaMwzMxmKyI889Mxrq9uV+qlOM8Tjx2hSEC5bJttTes1mSgpovNnzqHyEy0ajvAKctqZEm0JTCRTTdqNd+Uguh1KaJgGO4WtJ3VChiIEX9/B/wOAInCia6PeVHtIaabkoxDrtdsG2y3bYFiwDumamIAPrm1wL4qxlMGmzGs8PCS8O/haUcC9hSASZJ/MSH1qPCSG/b9q/FBm/e60RGec0l9LtGQ9Nc2v+RGHtpcrO7kqioUbYWfxYwGHhpGoNGA0zEKVpJh8CGCFaUKJrRYYTwXXKMlcscv1BodKRi66WxFPHatWBOSA+mrQBRg46llLI0DQuJDRaO4i2Y2FGKA+ag263227JQgt8BNxGTFdyES62Uh+AZXUrPQtKUytOAHNJVQmvFpuQagIecr7YbzQviPo5mvdzql+Z92VdXdd0sWYGok+evbYSkRMNLryzpuv4v5Jya5prSGpPrQFV1DTW5WuUyfIK2N45gECFyClHilAtCpDbDLr9XLPH68dGavRavZouaVqvZ9KgGT2V+hvHixOsxkW29QAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/co2_chart_card.json b/application/src/main/data/json/system/widget_types/co2_chart_card.json new file mode 100644 index 0000000000..b4b6fe348f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/co2_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "co2_chart_card", + "name": "CO2 chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a CO2 level data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'ppm', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'co2', 'ppm', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "co2" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json new file mode 100644 index 0000000000..e4cc301fb6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/co2_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "co2_chart_card_with_background", + "name": "CO2 chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a CO2 level data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'ppm', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'co2', 'ppm', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "co2" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_co2_card.json b/application/src/main/data/json/system/widget_types/horizontal_co2_card.json new file mode 100644 index 0000000000..85b8ef899f --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json new file mode 100644 index 0000000000..be668528e9 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_co2_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_co2_card_with_background", + "name": "Horizontal CO2 card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest CO2 level telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json b/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json new file mode 100644 index 0000000000..9a541665ee --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_co2_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_co2_chart_card", + "name": "Simple CO2 chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAkFBMVEUAAAAAAAD19fUAAABvb2/9/f36+vrx8fHk5OTU1NT///+AwywhISHj4+N0dHTx8fGv2XtYWFjHx8eQy0bv9+Xf8Mq/4ZU8PDwvLy/3+/KQkJCCgoKIxzmsrKyQykbV1dWg0mCg0mGenp643Yi6urrP6bDn9NhKSkpmZmaYzlOdnZ2rq6vX7L3H5aPH5aKo1m5LZ5BzAAAACnRSTlMAH8cQMfHjso9z2hGKZwAABOpJREFUeNrsz0kRwCAQADBuKP4Fd+qgT9hJHCQBAAAAAAD8VvP16tdoq+/L9dlqymMHMFp6dggrlR3CjBIpIocROc3Lbr2s1goEURieL+pC1aQbm6ZBBEXf//2OtkJOSGBvCIQK9A+6QBz4DRQHJFoDEq0BidaARGtAovU+ZJayXFvv1UkK48oE3+TE+MXeh1guQjNQsmzXpjSlpMBfg1RiYMpwWs4ldWpo5MAN0Xlm+AK0Cvi8RIGI1H58VDIA9mepgp9n7RBOZpkrKTY7uVvagkCMF95c8JGk/5cmAJwEVyb9qhXNFXQoHXBqMSAr+wVhSw29zxClGdB1VQAdsiazbDBZSJ1WW6nGgBSZVeTQXRx3e1ZgMd3pXCe/SIyeCZK5e4Nn2dBodneNAXliq4o7zUVbsnO31lICSnZmBTpkyqx7g+Z8nCdhlVgQrZXxtCQiY4DvZboSoENUiFZ+PgktEZUgL/u3sd6riq8pf73z541flD/cgERrQKI1INEakGgNSLQGJFoD8hu5mBXHG4WGsFE2yySKl0WGcMrHtRMZXhYZItTQ26niVZEh/9gzt+VkYSAA328CgoRDOIhURWk9vP/b/etmmf50pgQbZ8yF30xhMbnYj81GikUITGwvicci9JLZUEprl3gsUkkYCeQHWPBYJI8Blq8t70TWYVwFpgpfAMvXlm8ipSximQfAv8csX1ueiaxliVkXebvaFyeAB9bWq0VWVS6PDTD820WbS/Mm+YG19WKRIC/CMpbH8VJW5rz/XP+YiKWaZUZEKz2NR5SCZ3Gidvgcswx/f4EfF4ExapqJo1Xk3Akhut5k3tVCJAcgLhjXkQY3pj0c5+ayCOdqV7bBOpZI3gBjFzlgtgmqpBhrDBJM/wJIZgY6eAZ72fLD1No0QjAjHUqkKINgf5QhT7SLJCLRoGpK+EI+O1FrACVERp8c4AmEBbd8XjRtUMlqvn77Zr3i1s/R3C5C+V7hnrzA4yAiPGpKPhM1IFtx+24enaZ6jFWach+Nse5TBb9wPI05niRSPbBJyI+FInTLMxJBKVOkHcANa0SGGyAyscFJIrlgHIkouse9mdxRfK7xFOm5FiHaplk9tG0vEaEqdNQcEUshdLElEWPIgRi2ppkijmuFk/G0xTjBE8bZTIu4YBfpsUmiWiTqW2T7i8gVqJlIpAdIhdhRjylamje6KwP8hFvEgrMI5YBcwS7CJ40iGzNvw+WDlCrFA1O4RSy4itAelR0iIS7LRM5YDMqXP7KL2J8E3UVMBufxRo8iw4wIZcz5HpaKVDIAC84inB856OmuNfCuNRX5Q0VaGYIFd5ELloILMyalxu8RDVSYiUg06ZFhiciXzFdgwVmEtx59E0JR8njcUdzTQEpSLJKhZMK71plW1s4mQh5Hq4e7CCWVdDVmyc9aXUIx+SQD/gGwiLkWir9H7mPKLlLaPNxFmAwzF/WVYnWjmAdQT2w1IFyRBAfPJt/dfUyBVaS0vwZ1Fxn5/xlJU8z0PWuMPdLjIOdLEy2QB9hxF1kOiTAksohSVvB3PBL5/AAHPBJx5/ki9D8H06c9vA6/3mu9Rd4iHvIW8Y23iG+8RXzjLfKvnTuoASCEASDYgyZw+BeMBZ7QzDhYA3sbIbdpMVYJLeYq4Y+sMUH6oud4f0s1s9cZhQEAAAAAAJzZz8keC0HEP5QAAAAASUVORK5CYII=", + "description": "Displays historical CO2 level values as a simplified chart. Optionally may display the corresponding latest CO2 level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'co2', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "co2" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json new file mode 100644 index 0000000000..a498ba3501 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_co2_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_co2_chart_card_with_background", + "name": "Simple CO2 chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical CO2 level values as a simplified chart with background. Optionally may display the corresponding latest CO2 level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'co2', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":1000,\"color\":\"#7CC322\"},{\"from\":1000,\"to\":1500,\"color\":\"#F77410\"},{\"from\":1500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "co2" + ] +} \ No newline at end of file From 98cc9ee188e081f3e319ffd0fb91f0a3418e2013 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 25 Oct 2023 17:11:44 +0300 Subject: [PATCH 110/117] UI: Outdoor Environment: Flooding level widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../widget_types/flooding_level_card.json | 29 +++++++++++++++++ .../flooding_level_card_with_background.json | 29 +++++++++++++++++ .../flooding_level_chart_card.json | 32 +++++++++++++++++++ ...ding_level_chart_card_with_background.json | 32 +++++++++++++++++++ .../flooding_level_progress_bar.json | 30 +++++++++++++++++ ...ng_level_progress_bar_with_background.json | 30 +++++++++++++++++ .../horizontal_flooding_level_card.json | 29 +++++++++++++++++ ...l_flooding_level_card_with_background.json | 29 +++++++++++++++++ .../simple_flooding_level_chart_card.json | 32 +++++++++++++++++++ ...ding_level_chart_card_with_background.json | 32 +++++++++++++++++++ 11 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/flooding_level_card.json create mode 100644 application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/flooding_level_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index ed52d20f5e..64f427fd69 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -145,6 +145,16 @@ "co2_chart_card", "co2_chart_card_with_background", "simple_co2_chart_card", - "simple_co2_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/flooding_level_card.json b/application/src/main/data/json/system/widget_types/flooding_level_card.json new file mode 100644 index 0000000000..6a96ac6457 --- /dev/null +++ b/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,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4ODg4OAAAAD///8jTMfh4eGrq6shISGtvOrk6fiRpeNaeNXI0vHIyMg+Ys63t7c9PT0/Ys7z8/MwV8vy9Pt1j9zOzs7n5+dYWFj5+fl0dHTV1dWwsLCQkJDx8fHu7u6Dmt+kpKTCwsKfsee8vLzb29tohNlMbtGCgoIvLy/W3vW6x+6enp5KSkqRpuNmZmYxV8qdnZ2QpeN/GPn1AAAABXRSTlPvIL+vAC9A4IoAAAZ7SURBVHja7M8BDQAwCAOwcSDYAP8mb2OQ1UER9lDbuQUMk+s1DN55wDxUnoArkVKEjCJsFGGjCBtF2CjCRhE2inzqyXDFVRgIo78mceraaEorBCVhoWU32avr7fu/2x2ntlu13kIh4B6Q0YnCdxhnbTwVOcDv4JnIIc/LFH4Bz0RKQWSbR3Nxsgdq62COtHQiYU7RwCOcraOKfIuBcgtTEuxRCUqYo1ABVjCn0o9zYBJT5I/4IT+mUxFFE3HLIsqtRSTdixHZZiwir0V63fZBzrqtHBdPIiaBxlttJHcs1UGkNrqS0DUA3oM02tRxRdJcTMnfJhNxLKJ14ZFio020oVA+aUkELVRoi9CB4s5VRAZftAaM4fi6Lbrgoop8iDmbyY6YXkRhAX2utgM4o7MIcBpENEf3gV6/iVzOZYGOv1XgMIkp8i2mHDd5Ot0RKvKENSdEy8tRaSojEWPuRSrsUS40XUftHhtR5ChmvMPjHamHieiKH32YiHD5EaFzpjIhoXYdc9l50WfkCyKg27qhJDYkShuSsKobiXDnJqLQ1yfjqAYHjr5VJsqOzBd9n30KJoU7Ci2vRRoMDd37gEYCCYVKK9Bn8Abo4o5hEX4q9OX11vcJWgwWpC7iiFDyYSTZ2/YAx+uqv0hNLuggFssiX3vxsRk2nAckmPJVDzQGLURk+dfK0lH4y3j+wovIs1UwJ74Is7sLXwrmC9bK/0TeBbMF4vafrZVFkW25ywXzucuO6UEwGayVBZFtJkbk5X642cA6WRB5o8zXiez/sWeGLW7DMBj+pFlcm6UmTiZjbHDtORfYwv7/r5vUpNddYR/K3RV/8EuqvLbU0AcVF9Rl3E33aE+c/X8umueAdN8BXuTX5Dzx8sTmOMHhx3gD6f3doxzcy+IONP8DRwQiPT8DZJr2+wHuDN93ZZLoouPIweEsSyOX4Q1JWZTIQKsBMPziqEMGWQiI1G/PMGKfPw66gRgsGA1m9JSCkx7IpYNGYzAEBMLC6zVDH5BARAwyJ50EZOasuxTKFrovAHnphuH1F8D0ZxkWGaQczsOw/LwHicoUiskYC2jhDWSG4pUGxatoOLsC18T0BhIsBAaRLFoqUoiR3/PpIL+7/bi9nlavuzkd34Oo0AeCWeM9CGXKYinQBUStWmt3BUlGauCStZmkcDWc+YpTa1x2mLE7bWYQ070HyT0UsgS+ACrpUALFIARhtheLausIR7DXjmwF7INyyXoNHrcmfT7IeJZvUzd+G46THF/b5GE6LjeQHhF9RNTkMoYIfpUPWlLRoEPSDnqxHkuwDgMQV4PI98yLWJT4pLVyJekgW7m62e9jR6ubodd1DrF7+xBIDtrUCfKw2t8KDaRaNZDa1EBqUwOpTQ2kNjWQ2tRAalMDqU0NpDY1kNrUQGpTA6lNDaQ2NZDa9AGQ6S/7ZtBiIQgE4NPMwUkJIr0HQYFCxP7/37Y+ZXH02R7beUvfbWKI+RrLEguDc4Mi6ONNDTRIEbHHjBndV5mxYoQaKSI0YuGADvgRItGDEzoZnyHiMDIPwahkdFpoMRiZChpqZIgQRkYq25yH/rZ6C9eIEFnZTk07v6T6KXCNDBHNLnduCUHDUuldY4lKQGTvFcGIbtrTsJWUDkZHPNDyaufsKB9LvXV0n4jHiKtu66HXtA2uUBgJK/6gwEbzzGluEmlLp6LFmHKKJbJXIjsWDAtOuktEvYtsvdH3dUzYHy0KM5PWmJh5sPyhiIYaixVHV2Q0AEALtsEpSMTgryaKTUSQ+0DsFc3LEQl5wGxuGzFhrs+QuuB4EOSI+JfAYlN2UtHXZ1D8+T2kQI5IhDx/WqP/WJHmFXP9ByIBI06gSOjNI124qkARj5Glja6xUkXqHhiMrB/ZEag+QQY+TXC5pYo2iSKO1c4/TtrBxNOVRJHALrHhNRNxO8NXKkiiiJ0xcpQqVa5YI45UijtVyXASZ/afH3nHZdHIGuLYnbHjiz1mJGkkmSLgkDESK37vrnytIFQEBu7Re40l5jorECsC5PKY0Ws5tFcrwWbLGdNgoSFMkZUHATJrCu4R4Qvuvq7R0nsGQQ8Z61oCeUSk8YhI4xGRxiMijUfku707IAIghIEYeAV+agP/Kt9G6GQdREFoDKExhMYQGkNoDKExhMYQGkNoDKExhMYQGkNoDKExhMYQGkNoDKHp5Buhs0Ysm+9OZUDJTeXU7tdl1fkBRtfYgo4/u3IAAAAASUVORK5CYII=", + "description": "Displays a latest flooding level telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json b/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json new file mode 100644 index 0000000000..351a40fe8b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/flooding_level_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "flooding_level_card_with_background", + "name": "Flooding level card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest flooding level telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAADMCAMAAAAI/LzAAAADAFBMVEXi4uHj5OPh4eDk5ebc3Nvh4+Xe3tzZ2tzg4N7f4OHV1dfW19nZ2Nja2drk5ePS0tTT1Nbb3N7d3t/e3t7Y2ds2UGQMJTTY1tcKIjDQ0NLCx8/Bxc0PJjbV1NU9Vmy2vcdEW20YM0UTKjoWMEMmP1LJzNMfOk1WaXlMZHkmQVUqRlu/w8u5v8ewucSosr7Q0tVBWGvN0dczTWIySl4IHy1rfZA8VGiutsJAVmg4U2g2TWCKmqpJXG12iZocNUhyg5QuSFwqQVOBkaEFHClTZ3gpQ1i8wswgN0pddIg7UmXMztGirLpQZHa6wckjPVGstb9PZ3tQYnIOKDlme5BUZXVNYHBAWW+Bjp9Van4TLkC9wcqPm6pccIUvSl+lr7x2hZZKYXQbN0ubp7ZZbHzGytFGX3UuRloSLD3R1duMmahyh5lcbn0XLj6RoK+FlaZvgJCgqbdNY3VGWWnS1NjMz9WImKc7UGLEydG2vMSRnqxUbYEiPE/O0NRZb4JPan99kKJ9jZyYo7GHlKOVobDJztapsbtAVGWCk6SGkaFicoHHyc5vhJdgc4RJYXcmPU4vTGLP09mwucFmeYpCXnIsRFfFx8zV2N17iZy9xM6zucWyvMdjdosePFGNna1peo0hQFQcOU1JXnF4jJ5ieY5ldYNSZ304VmyqtMGssr5edotYbIFdcIAjOktnd4ZGXnEdNEWUnq42SlulrLelr7l9jJ9idojJzNBsgZRtfYsxT2WLlqZreog0Umi4wMtLZ32dq7mXprQcMUKzvMSUo7NHZHoYNUkyR1dof5O2v8l8ipdYb4V1hJCdqraapLNEW3I7WW/Fy9S5vcSxtb6grrw/W3K/x9Clsr9vgJWbp7Fhcohaani1usBYc4crSV/DxMglRFnX3OCfpbKirLVyf4xUb4Sboa5fb36ztsF4hZqprriXo6yCjpq+wcXb3+Pm6OnLy82hqbE7TV2Un6mLl6IuQ1SruMOjp7ZBYHd7h5Pr7OyRm6WvtLmVmamNkaG6v71iX2LseE1RAAB3h0lEQVR42nSWO7LTQBBFR0KWNfrZ+lS5HBASEVBsg5WQQ0hIxAJYCvtgAxQ7ICOjinP7jo35tWZ6eob3ij663aOXDod88MT9adlnT8p48oRJpEDOBw4ezGcsrBi+OuSUUl3nOm8ZW3Na11wetgtjDWM9LstyXI5HTlj246DNPhwJ1uPOIuMI25djPIvmuqRHgiePgdzinabMUYFw8E8zimYxSMDJSdEKzMbgSabRSQEhRzKOyDvhrEdnHpudQaSx7v4J4xvmnySO7tOD/PLhSfUI8U8iMyfzBEuuUkYcAqMkLyGLYZR8xolpITgqCoEWOcljIovEajwf5/g1Xpktl5Kw82KX5Q1THR4BOPq/lRKsQGFWVaqqmjrTkzOukwuDAZm2bTWRMLIWslvJdt+ZkfNQJMHFw1hka1RZPq78H4Zxug8wtnu33NcHGvw/eRLzMDMrWWKE1RheAARd3txCYNRbs7VbVNqyj9MRFIXy8BQCxMHhB5WaJduFQeiyTK6e4mWRQ/gAsbFLqjDjOJiN82+LaqzmAlOnuqpBYhVV14G1IQc+524jXIHZWjIah6GfjotQpIskYEUaxTe0IZppRRmmaGgeYEiRxB7lwENjAM0n8kUxjINYAoWM/zIg5wMsNguTKyuTqozvVGLBU+d2ExU4zdpubdtuS98Pww4KFgK5LTyxIVZL5Zqkn7SwSYmM0jxXhccKJSKXH37OEAiMo3mGU1ElmEe4f4hkEokBRNCIp5WpqoDopIpC8ta6NNuyD73axIWjN07yDCJOBcFJmAQxJBZ1mZS3q9uvGSegNClIAtS/CQ4ABrUTEsXZP9SZTSYnFqYezNWGJM14Ol2mpms7syCMkcQ3LVFHUTUaxA+Zy3MNcJ/ZoHbbMLBU1RIAZSyGswMg49EjVWIxSV2ongAVNLaDEOZQCq/HRSb3WGu+AOpmvD69Xsdmg6WGoUMmlhwCSbPA8A3NNIlWgw2lawYtbBmwK5Yy5OEXrmxY4hrScAPDEmkTYvAyxavMjeOf1AEjqAxgpKDA1TyVcJrmcr1eT8DoausQBBh6x9aoBtFFLCIiRd1dmk7+TiPvb1ARb91TNc+peqJlFkJVz5Xq4xBG9kliuGTUWaxzmqE0EObAwuAPkiYYCEOR0ESTAUA7XfrT056sO/atng2VEEYcDThYfGEwQazRM2Ihlgz+asaR7dwPQZrI0eayiO5JEsvfyMRLD4VwPoXEotzNFI9WPRo0GsFTA9C24zQ10TPkz6zbDYZOKKikpaH5t2ZaVFqBglkY4qJKTLiY12tU3aK+dKXd7oGg4anUO1jpeXWNK4rUMQV3eWJ/cCRlrF80yr3/Q5uuxhCBe2DjCcdWBJs8NFM7TcvUgKtyK32+DHwqRTWwMBejsfIEoj5HCZtVaZE0BlasWlRiCmZ/UMUhyrn0DhZFZQacg7j0JPitY2QiuYU0fpe7tu6EJoFE02Cw4MLDBMyyTO5/coUCV/5sdg+pgwKLqtQdB0qaDaFc0cApzEz6BQDOGK4thwHCVjCBwTwA7No7ZnM8SbgoroZZWBgdDBrYhkqxUmci2FgwQEa2o74t7I5uGThAYMXYELKEOkx/g4CpwGFExmJQIgZSgYRexpWGiuR/VRrm2MhfX35fwcLqKLCuEka6uYwwFgeTayCBw4OphlKIb8ZpnMgaCz8wRNKjDI8MCIbQJFFwqHEOJB8BCDdj69wTMXXoRhC+8CwEtKjpGhPkPpyywPzLArBFqXWQhN2WVqoEiboGgpE5SRpCnp51GHrhBAnxcGYej5ypzFaGOIcFi8xwNrKxSFi6XccicauICmeByg2ozk/B5u3+/W2eH6+xuy4iIbIuDJqlCRpIOqkiKZCkuTTjRSj9NMoGg+ysYAynV59enGPPdOH5D7V9T/P9icoyW+ld+5q56dw/wAwQaLHyKghKMRo6QlGISDDRLDitRRfuMVjiNsapqkQyjSABcwGDiaFD3/ehC77/9OXLpzOx6LAejeiek1ATFIGQyuslSE5FDzv8+OP7tSpdUeTRTjecYKLvFFhivxWLYnNdlcUeNHBqfWUoL5caQggFA6UXS49GIEiCfuix4fTu1acP796cdToN/RSA+uNGEiVforSsLXIoshxEovn02fNB93SpLS1M5xz8GpUsC9QUbhgRIG25k8WRBFGUAUkYE2NSiZlkulye9pee8Km0gQEVzk9ZeF68e/Hm42uqbTjv7IMET0SZJUtwq4wv2VmTkytdKeWvX7PfeCgFgVlsZvLJejvRpdwKJZoFTxRPJxRRwUGZqVXGDQpo0OIyEeBZL33P6EcgzuLATuf+dHrz4uNHUUFz4iyEG8fPH6BRmUVb+OOwf1gCzqY1kBwpX0O4nnwGnPFianfrF65hzIJs3f0ec/fwuU/AtO34rWlF0ojlMk6I8hSA/jICw0Smsbedr6fT6dWXVy9evDhfz8D1Z7xuty9fLnhlGBwFIDsVm5S461E2v449OPCNV1fYb50S8kgXE8BgRbxyF2t07QJLVFjTIAm5X07k//TpBaQRsKekjCg8Yf2br+/e9IrOYETpXa+f3r/cgUmq8biIQ4GDP5op0kuH2cpgxnD+nGpiLPZzyNNVgiEQiuxy+3PMlcUwy0bYAvKTS7N3bd0Kw7jj+iOSIiRZBiMLk8mT04pM+Q8yqIS7FAoeOnlIt4IC8aCtDbSekkHuTecOnlPw0K2dOtaGQmnAJIVgQt360kIovTeXPs/7nuub9rWkcyT3NueX5/045yhSH0kCaSRGaHang0gBjHiaAyYv8iMeqYcDbZRGkXTJiWSdpkWO0NG0Y/yeJinKjLHEW12eGXUUS+jls+myZ2zTK28uRo1arcwuFdkWZXBxa5qPGTEIF08EsTv8wFoecDBgqBJ5GHSeegmIwOHleEJHw3+dJ0nGKOKvdfNLFjlk90IGqEBg++/QYQwZpX2CsuWxqzxKs5n3K40qI4qU30wqeREXQyImhwsGeJpHFMGAMox+wqSvF6BIp1ECbXDJvQTO5nh+hiyQScyU3wxcWhhXz7jbyCA9KmPM+JsOVQqjWHlnqg/5NK2wp/NLDZb1Dm5qwtKq0UQWFyxMYPAyjReHnkVNIAZCooNh+kQhTBJYPn0rpTDA8W05kmz/JJNJjoxGOHhw1c8Zl3JtHmuPw1YUSqmsaHinnbriESfY0vgXZTRKjDqCAZMqqSVfaj1CxWWFBEYL+QyBv84xQOZdRDpQoiT3E2iCqjmNUgiTJlnugTjJerP73Aa1Zt4yh2mp30AqwpDlrUlMGzCxTV7QnkGTKwGsQGNFS77JzWgZK6j6aox+FzlMeRAkOxouO1xWo8b79TprDAMGR5oz8EGRXi9TtAig3GeydpK+v5hCmqlxBuMw3CbTqslD7f+BgCcbmLe+Z0gNotZJzci4McGii2YUFwPU2qmIf2nod6KOQxSPJARgqmr6dDIpl1GSrD3IkadBkCR5jqiXrICvBtVqM0kuJvzBQLGq+EAbwEiEbNa8OqlRMy5pQN6UUzVF5vlUIa0zyGGAIQPp6Gkhz0pETVw4FSPeE4j7FKEPJLL4iJpImRgyPgFy6gH3StIcHZwJpgF5XP0jP28/W+LXJi8bmJDlWmLwo08OtmzekpTfIHB8T4i4lcxGOZWLB1MxTxyhKTChi3hBtMj6i5MWrwWTmO9EWdNjUbElSuhdNrtTFv3Iz5N87zaHKqILUUbTAjjZeFydvHt49h5/HFng5lXoo7KQhs/kTi/KYiJM5GTfMBopdKZsSX4TBelhOAmOGmNXZDPZ5eqYeYxLFlCQh0VFknBkOyKIn9poUkpiI1wSPIUgSTJyyJBRGEBQp4zm5A/vf3L2TckK4WANCxd5HUhxGs0tFciUkafK8Pp05rj5kh2DbUxhBMUZBSwtoWxcbNbErbqNeAFNh3WFQkSRKGLjhL18TOBkoMmP6w7YIEmKmMHBTwY4HCj8kCaZTQ4O2iVLjQHDKwUJgrealJ+y8BSgJ0UGDrbhlVb+kcV/TOia+7pSDmfzVQ0mWy5cHaMHAwlVoSxAkTjRaQtbwMxTVkR8immW2Pg2wwkIxYAdZ9l5e34Vd/fbyxcfvvccP7FBYVQcnjIgbXTYuBgYDp3+r0sr/XazJ256m7YsDrftNmuLLy/Pm5UaLeRF1pQRFviakcmygzoi0c56KLrAzZJMZph+1LR9uV0ljH5yJGnCTm+4PFi+uvjpOD774ruv30PENJTG6MPlFWEokrW1raVSNRD/YpZViYCk2a0m5VYIjKIGyJKFwPbj4zINKjJJVmPNzyq2z/Uk/KvT8Tve6nqNOkISiJL4vNjC5CAFZD4koSj+3iezIgVMksfzZe/u4ef5XnHfi9+ffPDLr++XGiqLMXlXDiIjDGe3ZqqopRwdQulHzGJrgKUrKHJacrGspNEtakwADklsqZEVhIvTajmUhb50fU1ZPMwjIUXCiy+exaqZ+TYeXU+vl6vR8EV7WiQ5UsHeav4wmQAkKCZXn99Ojr4flkjCj+qCwBdJZJgcv/YhCPpGGjQGSMSTLnthmSB6Gk9z8NgKHWfhh6HTXJ9QnZ2dWp2LZBT7NWKCC15UxIuj8bOcdd5P1PzIhkpkgThe5mTxw+Pjq+WwPjz79m64u7xcDi++mR3F173jd4rbu+GsN3yXMGIbNxNhBEK8RCsLOYTCOJhVlikQ3QuxwYbJnV9XS1qu6LBWV176Q19kY2yBu7pIZlpu1l1ggAg2Sm2qsUj9iHGSsCpGETkAY1Mkx8ny66vVaLFaLSZ3n//5zdX8+Q9xP+4t+5fF4GZ30u/Gw8uzEjkkbKrGzzgIFJ2ylgtiUBfjbOp1/J4vJNEzaazMG5wWHmBCxMZSINxwcgmaIKzJ/gtQAhd7EC0XWZVDnU4x9/W5o5Tz1gcQcB5WCXAhC5wszezRrPB3vPXL1eTs6sWzyeGPP/X6vf7RtHC6g8PJ94eDxcGAMA2ygGLzgl5EERpcdIVo6qS5ZYshWhaDggYccnPxw39Fecz/UJVn8Dcq4Q4sqDRd7KZybclKSQFonrTeFOWf4W97Wd32KU4CXc6Rvgqn0ahW7dnZw/3F893Jbtw9PhmcbGX1k/7J3u5ud/lwWmoEIg3FCeVXawr906ooD2rmC5KhtpYxOv7y6ZhoZR5EY4vvyUWd9ZfUsFBe+A7Wrdj1IKhgr1vqP1bHyYh7RULiM2achOURH9mrAAhbaJSd3FRvfq9Wx1k8WT47ODod3xzH/cZiGvfn3fbu5enB8LQUNIJNBgjDsgkJKsMPG+3DtrWiWJoKaqGAv8P4UBbzov/lWbO8RV4pyBV5DW7hBEQlqMibowr2w906aFBqfIccjuORxZ9i7PVKYIvj2VCIxmpjd8fjH3/c3x84+4Pn7361N/j9/OSzRfP+rtcdHO3uHj2Pe12JGYhCGlk0AUmFURYOm46jN3LLPokoidiWxjwcjrTb14NpiRm+4bpwrPXrlR9Y8lcxeDvhBkGd7/bcoOE43LXgesy1nR14GD8cfFSPWkjWuOMpepE0Pz7u5k4+soK9dw8++vSHH8/7Z7e/TQaj4ihu9/ox8kGJJAjshlXmFF2Mg9VTMpTKI42sF5GcmBK2wP3m9y+za/KqZ71jwXvr9nrd8Rb/fPHXyrdUl9BFDqA2wGo2UfVbnVGxhiflEivG1+wibXV0Zwm3izU7XqTO5+RTZ+/zh/nt1VHcza/uX72a++lJ+7Qdx+1nw1Kjhp/ExQYXTmg5X9EJotT/MjxPcxkfhwx/g6p0T+YwqTwmIVhcfzR7uVin93/99efrTtgIaw1OmGWdzAY5bcdvYuFSb7Ts67lfIGlpOvD91W9/r71kfjvvwQVzqkKVOCXA07vh5PHxflbvtcc3y/miWDbTRS8+HZy2D4elsMa/LEAS4yY2kWSvHgQmCRgMhowsYkJmbuNwFrfDjGrbUZxINgz51r45LY7ee1ak07g9HY1c+TuSirDU0BCG2YzrY7eD+QxDpNNhIrA59NEqihYPk+W3H+MmYSjxKZcHxST2T+o348EciWO818uQue/vVnH3s+7+/mEprMjCL1SMGnggELvwMHm2vUUO8mgcwb2AAFYeAIEp2dhyGQXNKMHcqegffj8cFcX0/MSpW5xb/nqhazLXNRvllVZLtsZX/4zQw+FBHRyypZyOHGx836be9LYHksiHpQd3t913quP9y36/N+uePEz2sKQphi8Wq1nRvpzN/yXSSkPbJ8N4PWZt2tp1VkoTahUMHklXo+g8EUSKRmsVFDUTzyCZIh6NJmIFjxZnFGyFxFXRD+JRFEVaiTIVoYpsTOXf6HRaCG2l1N61w+EOp8+bVH2WNHl7jPeX5z4cVokBtbAQW1D/x4RWNtqgCxD8bwrQ9qcWDshawnfRmzYrkS10jw5rh+ZIV6WMQkl4JZ/vyJREMrMohVFVB+jMv00YizUoDwiHgqU9CoMgzcQ8KDNDXhIoJg2GM2y37VMopWpaKXS62OFiMylx4IqRwoxLM3o3dUhGqZWqnZg4ayT4BDKxdmyO8EDJMagc67BY8q9K2L0Vu69qydp/Vb2RCobPYxfGUSdstD/ZGx+qEkXTFJ8jE9lmtcplBMGN9B6rz3mBpmrjcYLWwA3C4x5IATBqYI79YAssPChvYUV19NdGiK1rKRaUxvSFFOdRMxol6sUaBxWZdqvRphqt8XJnnxr1elWcKDisdpzdX7AYBFIHqKaNIfuKdgv3CKKFF/0EMcYafoMVIhh9Gx2Ox/uHSoykjZrK5Ph4JaGTpFAX3JBjIghWvxJu1Kc4J6iMJXHgbqCB5EWMsvqtiDOW0wn7QiNsfVKGph9iFeBJp+rOVG91wrYogSTaVJsStZ3e/igkdzqt5fWN7I7Dli5bVSwcqNGIHrXNEct42eUVgAEHuiJLYQslupn+KmQe1pRRWtQlWqZIgaxEEhLJSyJDpiwOwAEI0KWjj3yQNE/LAB4w1cgYhBWrLuOB19lDE6oAPiqfvKtZUViSlvNsLLn0GMX6zNaYEeskvlYq4Ey93gZ1aRdrxvpBa/n2A4ddZASba6eCNrZplcvy/sdbENAJBLimHyMU0+PEEKiPL6SLMXeKFQmOJniBqWxFE7iUT3IrfNprFZatNgwUyr1OFMxAoR+WQav3F0admWPd3iC8GwrDnND+oS8MVb9BpVFoLX/z49bCY81nP73s9Y0tnFCLxTqxEDfK376D85xqHByUpIPt59rKA72nAMx/z/dY+0ALVLKxkxc4LXjW50i+bDjT7VlvoyQlHEozGlgxiua4Ki/kMsmtAs9L2XI+SfmmRgxtHK6WFfOgF3SE7QvYMXjLjfwJ4HA7IY1+RcoJDOf+q3hkZYXLvnHHJ4tbTxFHCnwhWbz58nKnKAjGDtUryZ0Ps8ufmvJ2c9GBdgdg0L5QfxHEGw7YMDBrar6Om87u2XgsJGDH7LGQKX5vMDRyawFwK3SNoyhSy+FPfRPnxVxCLm8pweOsmQtkjL22oHmsBoYPNZYQV6zCP4Z5w1AzN0chn5IHR0OVV47sYgeE6HxHKnKRVqec/HCbXFlJLJR2inctXrqUZWpk46YImT2QG+PJamXxQcf0udt7Q9u1XiCIRP7FmmtB5S6vhQdAIHmzLp7g1AfCH9sxzZA7EBpRySRdJficJlaZAMGLAgl1mbAXBAwBABzTfjJijheBADQjMwwUsgsbWFDBfLXrrnhp0kvimYzGtUgh90qxTTOxVIJ+kGQJMorjeDS6cdNHuHu8s7hKHxQZTdO75ex6ywF7BCjWRr0nQhoIaOznjTwHGCyIC2AxZdl/5PWERmGPNR0C7a9QzBxBB1tR5GyNIyVSFImtbyqEKGg6p4Y9x9lV/qDdSrYXVqMP1fqtwCuEzhDwBQsBdZulSVmlcGHAZFt5mNiWBSkVy0lHxCSZkhbvvfq2u44kyndlEouNg2xxIRLJ0UutYiS/bQmR3fRF5IXTSgvtiUngC7xlvcAxBYPMmW90eDgKwg2SsdDhIWSFENSC+UkwDEPqup5v0iwjaCky5rH/L6rIhGojW0MsGADkG70/HvdZqO6jkwiHECZfrD7DaHoVz52oVphNZmZ/L8bwWq781IKgpbNPXtx45YuFtXhvIf/gfCubWyhKO41seSsajzj+n4xCMuOxMZ049aQuOKcYvfCp/V24htX9cac/60ZSE6Zqh4espjFK/JV8hcoAknTazVcVnWSw2ZR3+v9ButS7lls+hAVZLYDj6699Pvn1ue4oNELFTN/83mq3v2XAUmep3pPlGfqBJlNodwyfUk13jAfz8fhmpNSKMJHo5hfPf7PQjC414tQavfCOVFmLr8VpB9rjdLv28/ODH3P5QW2mXEBGyIo/gtY3rHXosCNXyTTksqGRsbqjkqDyJB0tZys4IfdVVkgpuEQQvCkG0A+mLaVmdoEKgUPpIynDQrXJk5f/9tet65c93TLUvrrX/XX+oNVbXi9vN/68bLK3ckR75JzfvILgd6iVca1m1OKJ+cLal1Hmm8dWjmwW5j/fXLkrnszOS53S4lfLqru/jTgDgg97tQiDO2t4yxIz22R7LUC29tqwg+ahSgLxh31VkcW5GUbMKVWjPO5AANg3TXAzigpBDUcwc2iSzPpd0IPzkQfXS7XWTTe1tpdXFxe7W5+8n2t1uts9ZvXX7l7Ve8LwGFdd87y78Wd2dp/NZdafU4/NcS5W2Y9h/b2JtBZfYeJgqBcKm2uRz6ORyF8GLmWffHD85kaHTZsABnaHTIzfY1VOZDVgjUj7bc64oDL8v8wDHLSAlOpQScVIieqbVd01rOdExQQb3GhWFcVUFZPPMTGdAhtNMIgzU8YEM5mcWiUoul8NsRR41nRfDXgDcx1qY703nsiu3eFMqK9pWrr360NP75kPrI4VjwOf3G5cXlX62w1GIldwBvKWwoPxlQwekQ1DhsksYzIxzL7ZV9O6A5QBccbttQftINhDaJyQ5FqDufBqiRmQxR4Pagyzal8hdSIB+V16MEj1CTzfTn7T3YKYTAfiIGgSRAKS2SoVQwpo/c5nYhnSPxdrD485Zjfl0oa7u0PtmJnMwG381erPqYXdE49jld6fP/eqPfWEE0IPbOy1sKNitQtq48l+tQVgMgIzbxDQuygZHB2nEwel6kA3a6qi7283DDWNOawQ1mkl5tZUFwaTNQiWNZyPuAN8s3kDKBB7nBC2m6aiKIkEmVMSBKcQPFXcyubLWVlW9bTO46IISnOEp6gEjWNeL3IpxI6cEgokFMZmdoeAA5DA1e8eDgbS8MP1RUEb+oKq2euWDvoYNtx1qtjohY7vmPgnpluVs9KHipaLFhTe2dZdc24Q4Xj82986M85+DXOrzT83Nh7oyQqAcQLZs2mYNWkH7AFBQ6yx53KBkH+wvZ0HxBFjdUUXSbrKyI3WQVtXdbPZzeeTWTmhx2JiJsMIDMmKGQmHkFN0e8P7N2381hIzUS3lcs85NKdjd/cYYA/Gynx+0lwy6f6kqNSazfBk3DKw40PH7abPeO+TF25Xj3Xd+pxX7+eL3FMLr3B5RdVZhfSnUjw3315+1wi4VdbvwtgQoVYnT+5d7vB4A4gdQIDIusUAG0p9reAYsQRO1TJoTjAOUCOaZXVR5/mKXFvPtgP+NGT73TyVbI6TFJvSGFEElwzF2BTD4xQvpmurlz8oZ/hMrj43BGYoeKbud6uuALd8vzFebzW4QOHzHabRaHnlk66ahHwwoHri06fcffaFtRNz95927p8ttf9hqbWUTOAxVmmrZns/uVP6q6HSojnZaNfYwGjWCcphdt93oAqWF8GwaHo5MeCBEhfyljaxNRWZCeex6MvYLDweShWJRLEYOhGUvzbZm9AEnZ8f09A04cHxC6lY3a9pa99effWDH97UMqiZzejmMXMmp8xHcNwosqpYWj34i4NeZdDl3x2IrjSorXrNPY+fPjoKxC+oGt1aRtMeeev02vWlgNpmmJjRVlIsxeiNfblRI9pSyql8eu4Fn3RjUADZ10FR+l2H2+MEoQYZ84ALtEdTkQGAvU/jAetIOWEVcFofwOANT1RwgaE5qJeKjJptNrMELlHZpupO4UQGHL9eXLr4mZueySZyA5xT8duOxDedDC2rxIF8hDJ9LNGUWffw6FhdSfsFRyCIoURz/aJ7rpiEZ8qBkapUO63Caz/Ueth+d/neK+OFQq5eO6BF3p3ugCTwIhiZ2PaZ7+2rrNJ54JT3nmz2sRDl8Fhdd6Qs3rAXdN9ij8dGggglINOIBGEBNG6oVizMU0wOp45kxIwoctFohMiQUk2GhkSCz+UE6rLVstwuyPGn4wOgjDY8xp3GDZlKgEkYDrAapxy7OxOgmG+vHgors9ic39ts/nrOjfd1AmkIgT9+6AxDSbPL+aXO7TePgiGwVWZbEulEgzCW/6KIKJdpt1X6jps3zP0/fzn7hfPPevHCu9eLVQdEfVBPhMNSb6AgZE624bLxeGdxKgRXjHUC1jSMSKi1ZDLLZUicIkVec8fw5EKFUhgSnIiikDlBwJ9eJVG/MTd/828lWNcHKYUqPUPpRW4OLJmLoFlsd6bqnzlmWK9rzuExw5SeVpeXNR5KMsNdnTox/FhmkOFW737zxSvG1f7eTULD6Cv01Wt88aDAJm4D538ksvpUufnJo6edesvDD1/73envv/nSogMpPhq18yBUmBPiJicKnywXiaZyvW663KTcYMAhzsHSagUeb54gKI7n8Q+/JRkNErIqx+F8yhnrG6LAx0uLl3WcBCPHF+qfF5hjMCdLy2mco6upE3eHQAxHpBwO6uqCAEFpJk6b0CoGjI7ZOSnjCp7gFFLfLGZ/HGwW8tufbFeVyWyp9HJmbIxKnb/KEZooVIufZxiJLrYTEnXjmafeeerXf9/w02JS7j7iQJNdYG2DEG6E4R5uMYAFBBdUysL4xCvzazHkLd0hU+Xm8ys0J+U0LYbjV0eJHJPW8wTJZ0jN5e6r3E+v3r76VGe89MxjP1+2IPoDbNrIFuUwprh1PzDlqDmXTqYGQ+egrpG4zBnJctOomgS3Uro6Wh/6A7szrnzzzDseiAuXP3jzWWe9fd7I4QUBUpRqa13ROY4qMG36201IZTdxfKVzwZ1vX3X673/3lpe/qOy96oBoFQZqgSEYUBiY5LOGIyFbsrpw4OelSDKvgxzOjiCjpyqoyJurD5xOkRQDJKGSOjxfUszkYmm1et6rT60R9OJS96abHlgiwnMKGy0VKJ2A3Mq5C2CO0Xh9luRJkSRoIlfni1VVARunGI3OrNmHgOD7rTR9xkO9xsLH15UueeKDsz/hj4uVegZBKAdUlecEphjdaf91e5Ir0ST169mfvfrCn889/Pev17178jX3XOiATMKHyqJBvaP+O3IHOKx8KYyJK3Kk8sofZUphFZ5OAhiK4JmY5h/URaK9IlAcTpISKD9J52sJYumtdz/6dunpp3daSZmgDIUi6MRCtlSM/MOztQc3MsfxzFDG+3lm7NI1Rga3D8LU4nRKhx1urWUMOcnZEGESpF2SyoZDXqtRj8vWNM2Ga49B4nVi11UbopXzSElI2kmlgmtCtUm1ItWOa71+/CEzSWby/vx+39/38/j9Ytl11Mpyy1EnXeAasGAuZ0gLVEK5DEsFZYoplAtKFesTvnd7hPTqUnv90S1unUuXbl7SvpO2HHHKsVIlXIDX3SwdhaxwtFgu/fJNn4ANdF596T0XnvvsQ5c8+Pc3V+6956ytL2i+H/kvbT/mBNSwCxxPBQiARfoFHOj6BVxGIDQiEdXpaSTCCGUmwmAoClwrOrArPCJIZMpggLUgIQMPLdRXS2nZW2mUDQaD04nhlmKRbMlD6HbYCd4SWnGguyCLdkALaSGAP4AiUcQFozBbmcIAF34fGvh+s1At9aw2+2+dds0pCyuG83x/nL5y6IhjjlSVk3YVEvPzCoJiEIxh/tLfA/Wes4aHLrzyyke2nLP3gb9/vefGt94ae1+DwbsAGjANjl2O/x3sL9t/GfgFSNEykmGkEh4jcITFgf4GWTsksKIiojCTxiJMGQNYnBZYUqrNzsXBHAQ5gQJoOdKaz4cCM/lTW5whawhyzq20BPp29R1zgQW2WNA+2KkN6SBBFSzV1eYGWxDgAbTw/aoiCUzzef2vW4yppwhZuPvujanjDq2c4C5VLCHRl6yIQkGOaB2VPyfPffn91itfN85PzsefvuzCF+/79Z0nenwPf9WlwRnLrhNAqYG0HRzhBEDAFcTFYF93s7xZS+NImpCkKLjlyEzeGQoPpAlEEJi8RRtywgKYGJ0T4GuUPCWJTjut1oAWtlygI3XLh3TOlZaVo+aszvDyBYYCLKAwJDAWSx+kDQVCoVqthIrJ5u9LzVKJ+X5hqflyydQ4dapgrcRPss45HMGLnkFOOlxz+v7z7sZcvNwvMnBaIWVdGMKH5hu/7ny0X1FIg2Q676e7uoP1jXj9W2NdI6rln7/fvh2U1EjfL+AezMm/SP6aKm+CtBXD4CieYqMZRJ0WUzAEImQDBkYWgHCC9oha/p0YyCBxJlOiIricDosckoFrQ6yATsD/h+d0VsupTrS8UBAkhBEgBrNoXRbwAsi8WseaL2HzLFpQlOq+K18Woe0Ooe9Ex1Enr7hGiM6nX/lz1+En1PaP7e5mjtTnBstoQUYhygpLzB/lzU+f7vCppAHx9Q+tBhvVNKaKIpnQyFWRZQxlqVzbLP/8188/AyA/lzfLYqPRqG/UZQiNxfConMJSUUpmJFUQDKCdXQAzDAPIBQr8W3gwhdlMOWVeCzCGneEjw1aLdu7QyvJhLQ6tFmO0oCwFyEBWayiDlIFhc1p1VphIl6V5vrIIOV2N+MZ5NdhpaFRHwCbanpfIbwd7nq/mtmsGpPatrXd2oMt/FjYhhskHYDnO89gfz3/x4IbqJqmAOtqhLDCIYJDrJEnENSRdKlUltmT0w1hjs6ZU641GbX6+uVoP/q5fxVCEWGPTBMtQFMUicN/PmABT4PdjAithkMWiRYFLokh9NQ7svwEKOUInr1iXweapTteycpLT4ViPI+L8gEiIDGfmwRCkrctzcwEd49Cy82mnFNGFhHhcaS6MaDcFVGz6H2u/ud576jEGZf3IM48um99tXnzLHxZMSE8RwIZDhjhehFDb6NJSJbkO52tNMa2SIpJOIyoehzQsPW3vzMZZNIz1XVDbWF3aqG9sLE3+Pjk5+vL7VRQsmkyGwfE0RTGi2nfyBQYMRBUG2GXAENDZABzwBLLoF0lSERAUDoEd7ZAFUPvyCpibOQcqlhW32hf0AVlaEQmGgv/FYkCtIZdYrquQbgTdUMQ4hg3scgxs9yTP8vRv+Vjajv6y6D60ojnuzMLrO5K5sCvSEAy1GhTQwRkySiOc8sdbqiww4kKfBDjB0EAiJI64NEgmGuv04iRBuQLxan2jBouNjZevvmvno2+MbhhcDIlIbIpk2VQkU6+LF4DWmqcAEVORVIZxgZJLpYoZ47vZupdXGMgJktkAbG0J6UJHHaZTkHVxHWt4/W5erWDy+hSGMJhLZ8mjBczpdK1X41URc8xXFcYwoOszTElrnqsvvfXp2t2Pvl44pmXl+FNWDpWf1zdr8DJiUSjl66DLanViJNXjS9S779DXK/WEgoAidyEU1ew8MENpDIDXCIlhZILnuGo2rp2Da41zxy777sa6RKZdkXRBYNmSopbWCJqrcxKgFgRDImkkxTAQhjNFJHjzoNsc9GKMAdVpl1usTmcopAWdgjf7vYqgcImsz+gPkHzMIsEZ0M6cWiDuHCGIrbFiA2erFZXBQE9If3H9lzfefdkLDzSeHmq7Tt/h6fW2t4090xdII2GICPq6vbxTtzxHFYvSOouNnqs3mnnet8GQ7gV1g/9iSW+TNQjOysCsszgZIzguqlvW/by50Tp88PZuS5pmAxFJkKSYWJrgzQSulmIkEclEMykEFF+KQRFKSy6aumxmWwl2Ok89yRmyBACcUEGrg0q2Va9aHkAk2EXauVh+eQ6FKSYdgVCYxIAwTQOjXVM2VhuqwlIYpOrva33gjtbL9ptuv8g0+dx3W3fPdjwwfHEluPi1nKcQ4/y6LhCZs+aLeZ1zvoKB5VAlUqzIbiRG/zS6PXUWcx2jMfptWdSFZuQoS5A0h2DlqfXV3bdv2dKpTVNhK4jinAKFExxNk0iMW1ubziKgxFISsDBYRKRtX/fSYnxBQC3WlkMnwzLIZbQBXdiJJYLzpWpccEIUlrfGxmkGSBgDBTJJF4SXGGEKlySBrW4EjayoVkmO3fek0P/+G5ectfrNJ2NnDe/d3bp6oq99+PzzdgyZEiSfiWPL1lAkADY5wjpdRdYq9SrDdoDoTVHOneQItm5wLIc1ps5Od9mic6Iqy7PZcRKbqq5Ofjva0yhpocByvgg4YftJ1ghOEFGEJdSojOMpKk2mEcxlmBh65flt0whwLMArLx9qgXUtQOIvAzwukDs5a1NT8IjWGWG8fJSioxhEMUUKk9iYHIljaVxiq0230Y2TfDOpbkneBdUvOeuNh7/48s7h4WsuvGZsy74Xth5848v9ifm0P1flqWWSzkFhSGcdqQ3VxdUqq1Q8vsLPMLx/Kckjur6wbkHTuceezUAg9UbAzECOAARVS7wKugusRSRxmgQieNfJLXNOi4HiSTlalKP/5u6pKJKivF/uGHTLuiNX5lrCVp0jrHWsHApzwXf32BbWVTxkhaTGvDgFoVEBBF5es5wvInJGxutJOgAUVhphjYQCGkecUxMdF5eWTB2tW+64/YU9r7/ywvmf3LZ17/DBT/aedYPJK6B8KUom8gYxEnYA/TSiVEjZ5nZnEyoCj4TJIL9gGNlVQAizZpt/mkhngAYES9C8uMijWE2VYUPa5cJKdbsZg44EZyi3n3TkidtRnMQjeXYmiiAxdi2DVC8732TmReO61sXFZRLHlkOWEPF8sGpUdDoDtrhz0RNs0vNsHIrvoXWM107moQzoG6RRLgoLU3E1W8L9ClFKlHifabDkNd24daz19k/aNm0HP7nz0X3XXfblpVffet7VNsqKJCFtikGs2jktnSYTwVwJcCNglvQUZrBAU5sWa7hv4yaPT+MncDqrVlnGGZLe7eI5kinFEANSxdKEncozArwd2ywIgtNx8jE4ngGJdSoSJexGM8d99kqbkSaPrFkMvNvIyQaga5bJJN8nGgSrlusw+WsGSELUEd2/QrnoAQqeiiC4VyBUBIkjCF4t1ZsJwa9P2DbO71f5of0v3n37rTdc+TBk0+//5M4bbuj2rJn6b5x8ieSjOKXN5wOUziEm19fx0qrKNkRBwFyAuyMoY4FiVPCmX8/9XXMgFYnZvVlvCZiddQiJpXh6XDWUmpmIlAXuqa/w14O3MIUsIR3twBHA/K4UHiVpM5Gd1XMcjmvDYa2SM/I4pDt5pYWyuXELIqiVJLEAa7VTUAFmSQaFrUpvLCUSRFqi2FQMkep6Y8VXLZWyvLfbbcvZLkzS85PnPvzMM6/u3tI6di3Scecne+/ad74JZV430VEuzbvWaQhZR2BvBXVZZMRoA50Kq7JyusDgBrS678I3337z/rM1B4qBtW1dZpvHJwUQNM6nAuq2EuHFqUBgzaILzIVP/+HT3wk6R6TB+AjIQorgSYKdGJpNKkBnzoVPcvE0beZcJx01p4sb7T4xZ1tnFxbSqCsdlxG2SiKlGBdxwhFOwVM88BLRcaLX0zZksiX9fq8/6KM721cTxJpS/+KtR+++feuFVz8w/NyPu1+4vKP7+d+F4upO24wRt/WuDzJhjs8FK0Cj4l5bj8fNK+kNr3kKrRLakS/efvvs+087WzOeD6x12Ph6p2dCNkC4REbkAzL4UsziwusY6tRqF1bf724SkIH2U5kUy2ez06UDn+/+OqbI+aNWWlwcQc+D3GI5HzR32uJMnMrnDRhY1Fx2nGAXOFEU3TkiArlk1RtLkXhGwXo/37HzB0+CNxsTwUHV1tE2VXEb2UbPaP9XB/cePHjZ3rsef3SQF9puVHE12ariWFh83aOk5lwyKedhRCb87ZN6bxSGVE8Sk2MTEly+6dcHn332Hc0Eldpj56oE4XbbJFc0KkeK0wgBlA4Fq3VWoggVT8zOuhWF8LonZqIkDkT04DOtO6mAxZKfs8L4DM1FLYCZOxIJDqTLCEVwBMFPe7OK2VuvgY/wTmfdNOflorSeyGRwc+fg/tfubW9vloDE9QVtk5P1Und3TcA2mjeOje0d3j08/GJHMI78+f55H7TOLm7FiVDe4yu9x7cUM0U0lOIrJO/nvbEsit/1liiyttVVRA4mfig3/9CMR83+RFfPDMElfWl5sRMJU9HYzAwpSUWWYHFMxInZV2ZLzZ6ZHM3F8BnbZ0917LhZL8Prea0uk8fN9pzWuWyV7e+m03IpkWXjZr+b83f502wuV/EZSzKSo7McPR2L0o8/lUtl3R5T2/N6HwhxzG6fJ6gPsvHpTjsUqqilsbEv9w0fPHj70OnbdWhNfeXW1qCykyNbMrGp92dvlklS5v7k9UKgIC7Y3ARDu1WJjU8+rXcnauQPA0tLmgPTBzra99j9fM49wYrJriAaiMbcYCjJKGBKFyaljOfO6rODz1y749Zner/+/LXuTp/NjIQdhvyyleToCAyEpS4wnSMQOgckjyRzQd/4NEFN+b25RFDPu+smo5/3vZY90PZue09PZ6/Ho2fZpj6YtAV7OvpNvmmk1BOzQsFJ5eDWurrl4N27X120oIuLWnjHDrdo4mM6Z07Qz349QcksHsi10WkMZtylyZ0sSc5WKsEnEqsJJh5cevA3zTbzAX37Nr95YsLtFUkqE1OM0XG7eYaeTlljk+MGZzro47NcZ++9+19/Zf9gF9COMBoIhfO4SxfIh0+GgOiHJow8UOYcP8PRPO12J5Qc73XzOTqn73660xcEYJIdph+Cbq+/p8uYHKUpKeH3uW3dix6TMenz+pdIrUVcMN59cP9PozvHLjp/MdRywvrnn/tGO9bEVIt1zq9v27EzoRPyLvJ5z/jgPDcpSd0dSZPyx0jjipsm541Lf3zz6Ztna3zubZ3bJrxcasY9DmQk5LWZuOkZ87h3IhUiOnbfdG/WTrO0Te+b/anD4yckKB9ztcwFEDJadAWWDx02Fy4GuJ3GXI5OEbGZbDZrS7iTyWBbu7maHffqu9sGu7q840TW193RQ2dz9l6T3s2N9xqDk3tsvm2dXm/wz0ZJkuydnRP+/rHhD1+68Znqd/u+pJHZV/tHn9mR44gWK2TU+xe7cEqmyG3dg0ujDzzaDol/9I2swgvS6vVDRrP796WrPvrobE1vZ7ve6PEQkeiEPeuORgeTQ36ej9Ex0lXkvG89+Fw2y5GRqm+wx2hOmMVwKL92wG7fRqwhcRIYfatrxs3zqZRKdLFRPDbt9hq9M1mkmU0OVkBXYe1tnh7buIxHInywLZtNJJKDgyYjrm9Pdia9Ezl6JoblKZwjtL2dJf6xrZ+8cNE1r152516ga/aOvXH1vv6yEF+O0Il1MemH8GIx0rGvf34BG53RzQMDXWdGCvNPmhqSuvTkR/fff4am7T1QZJ4Or4Tb7eNpnKYCuhSfnZkhUplY9sAEETfb3bnBd7NuuxfPFEGQFHt329Dj2+xA1QDzkuKDnG4uxBLmLqoYzfiNfpxj43ZEYRmtVcJjpNrW9oWRQzJr0TQrmhMROM2qXe/q7dfuMe6ho/w4XUWKXtNMT45KJOnWrZ8M733h4dbnOgbOuvOFp7vPev28Wc6X5xEoBLQ3yeLM44+qilq3dSsLtnVf4udjypvSF7/j6ewtH512NiDNf3g21+fEySiMd8bxD/BDnZ2uU3S9oS6M1Y1YY4xGRTTWVtEGN5jU6GqDJuAlYjpDCQkVlFa7VDeUGlRql1JvuA2iKAXLamm32CoCW62j9YrXUdeq4+iMr45jvjDwhZx5z3nOOb8nySJC2QxG4xQFyiYViJtNBbLByzJuiscp8MukLpQ4sViEBbMVLEcHTCG9hYY0IgXeJ/ROVv8yrX/itbJc2VKppLYDYspq2fuhAtZj73jwRzM5K0bQvMVgKYZa6panOuvteM8a/7puEGE1HGaqDMe4nHb7zAtTLKfqtM/X1znwxmtjiYTvM0f3DL0hf7QSngwWxuuTde/uSct8z6f7ivBehxzeOXLm71tHvjiH+uLHxOv0yPIvJ+3YteuqtmSoXDPXYymmxhSLxRIh4u4WkiyDLbRWWO9ZVQi9SAUYS4np7fj+wPf3WxRNw3GOTI0Pfp8qZiyxrr2/4oASmlOlbSrVMKcKeGX/zwoQmqNimMkck/yCydTLHKFlZevQiIIbvN6dg98HLc6mmM+ibvcVfWNj0LQ+ksKLIpkx9BIvEBtOcf7d3V/88Ze56tzY+qqDlDPmwuxX+3v3z8bETEqZjC4G95PLrz/r7n1vZH7ryMkX+d7etePEXSeBmuHhGiyWYYwTMK5c1CzVEYtA1hitBKBspWznNYthJ4Dug4PWcwoxUw1PMZZJwFsHD/E6wILxEj47ks+b8VJxKUmZqUBAwXtJQjz6zTGgmARrs+MjpkMsqhq6UkSeLQKQODjONPUMgrEJ1X1sfj7SN+Q0LzaKFkPvlmcrnMlwGLq6E5g6XYb3DJO3d52TD8z2fPXV7gd7DmXCn4kKGmCP5lk34T5y5H6PwTr/xV8PPf/mSTt2nLRnTxuHSf6khEkh2i1hoWKlUKiEgZmjaOVUkdmw24ux4w98ciA23mUmccra4HW54h0fP2DNENX4pAcv9Nx/ujefx2vFRilSinuADAeY35cJVlGOLZNsYJk8umg6SkyjKkxVAllaiQ2uh1utn2fzSgilhcys+PnQaJMM4GaP4Zy9v/759f5MOCzJgSDAh4MHvu/o2I17DJXdew8dMvTED30xu8rOvCr/8XvAs4yHce+hc3q913x345u7TvwnmBPb+GQ0F4n45Xx4mRYIczC13ajI8dUks4hvNBlqu+PA8QfGt04PVnVeKVAiweAUCI8S9b8IAi5SKcA21y1mUqsVt0tcwEyCcqv++ifLygFkeZkghWqv5ZtXo2UhB+ONDIGpMBhUTVbroLWwSpI1RU37sqNh4Fo9srPHFPxk/JPB0+vUCIUXJg2nf3L84Lsds54//2QMhl8XDYe6Htw/Ypcd7DfLx8wjrybQL46+G1Cs58y/veukHXv27Nixoy3pWlry6zRLSrQgYUzTPocoWs2jUKrKAsDR8f0Px30CkGqrhRcVXGMKHeNdwa/yoM+KcisiwLDJ2xMvKgJXqyICw9JEWABpEcBJpRqFsGNheZWi2QzDSfsWikwglpL5qqFeoIAttgqaabEhrthGs2xt5yeDHSldrwfHg13BILDfJnd2nXD896f31GNb5lnAUgE8iFmtlilakfKBrV5Tr/k24pv79h5ZfPjhvx569M1/wjlxT1sy6Yr4EbisYQgnygIWRbcrhQCht8IxM9DUGHCVC+UArDcMmYy5WCjsPT1F6tWMjNEoqut8k8iIYQhTwRfJxSOoBofAccig7RPI69+Gv1XyNBsQMAx64w2WyYNzYz2p+mrJOk9D6rIucmUpO4VybIBv6nmlQTXyvz5IpXoMnkM7Dxw/ODm5aHgQQMcubw/eiKd6e/JrRl6CzeCkVj2r5lj9iMV34+/f3nvjo3efdCI4nDaM53kU5rkyaIpcCPf2etdjf5rX102ZPFkZicV6gutYE93gV9WWeef46RVKpz2MjikuP5rUVU1dDbSaAypDAP+Px0IJhEabGI+8CkUxTAp/Ky+7JVlR+eThx4wYSLIEpMtEolZhSBSJJjZogSXcr0YJQu9+0m6qwRY632tqshazx+wJkFWGqk4CVy54+t4HR8wNmd1C35gL5EAGC1n0zHlvRf42suvtB36594Ofnr/7kpdAmmlwOcSUtOR0SMDfOXulMLhuxWNxqwEsZwB+TdYNXBPK+kuGvRY89v1u3TmTbsoqkg7xNIKGMLil+QW3pE4GsSat+auQGs2iYTUfZqvblVVCZflXeSWUTEZIKJon6VFoSkVQeUo8Gk5AUamVAJLN0ijJlY0flcWWTIp4r3n3yH4TFe/FycAs/l6HFZTRuGlrxBNWyNXwMMTN5auevKgc83pRy5GLfrn4sp8e/uzIo6e+/MFPd7fBgmYp8GUBJnWhhSXwwfVgzGsxL/Za6sFBgFPQTjdq7E+NB+PbQQs048RCq9xG0wUnXS4EzFk8rLmwENFIcdJNPLuKCYoCB0zz+y2rFssqTDMYVxNstqmQgOV0DHVk0ede9EV9kPgNJy0TBI0CjQiR1UCqSrJs575PVZakQJKLipjJi6b7v/rir92DQBMozzw4q/j2s8ao84pm1aMEOK3upekXbrzpossudgnz5z//8kO/7Grz+7eLfq5UEoQIbvJUvygWYr9+f3ywC9DxHrBxqs9UP00pTjkcIBlc0DhN5kxMEhI4GtN1lYb90sWPXnXJC0JKw3hLCiwBplVuscf64Ke4jAeSAoMxZZd9KRty2ZZcGhRFXEj0nkSURmUJBCOBdUDihDJVreaG9h3sj84QDQ/FiorMBnApvNs78gWxFzyYBz6pDMODos2AwUsjrXExtErUEr/Lz1198aP3fnDbhXfc8ejdOy5vc/m3uaSOYHPSAxnvJ8d/r7cOmYIHuur/yGRwHi8JCKHaMqNPX+2LCIKgVBkes8OwH4HSzVBIpTc25KPHVAFywcVqqsqGYa7kOcfbU+mxeJiMDqsSjEXsqMvl6+vL8VmnOzvl9k/5QAwyFsAIVToiH+NKAYdx88Xu7m/PRTIVb8eHMY9ndaQ3Y+l9sOfD/YZY8BEDAPf7tzxkwUSIDO6pFaxUHMtbpHDAfeFPL71809uXXfb8JSeBYNJ+wR8K8GWVMymmesFgshbMDWBIHP+Jl9TMJg5O5ibeGL7y1ic7V1SUC+SrZH7KH5l2Zl0IlMs1W1x5WRJ5DExCUjRBCATBm617gWczUhR8OQyEscSjCJ2zDa0kbMNr+2ZohB6KLC27aEnC/jjkUZe/FfLEuQc/ev/gR30DaXuhK3i7lerdHdv54MjI6cA5jBXiltl4zyuPfPjroQxZUjjO0vAUOA/BGCD52jPPvGrX3W9ecvOuN+/ccfnlbUv+ECyEtostBtY88bi5Vo9T5VjQUjE3eCZu4tzPtV93WufVF7zTeXDaTYyc02M1NWpL9hXbUBp1uaEQJFTD7uWwMDrhSkaQstgMpR7sMSya5ll11InSnCb5/dMhl9Hmbg5NDB9GNHj190R2WUSXw2AcmEfyokQQA+1vrK2t9fX3zwl1Q9xMWdd37p6VFdOHs+ve/WAbsd7eBWzgDlIozuNlJbBqwFCxQWVvPOPGG8Ekc+KJO4AuXw6C8fs1WLvYX1RSqRQTbzAKlbKCNwi9BaZYigfxnK//tUtvPc/H3tL+mC2M7+0a95pMKWRjyjdmbyZsuUQWo91uiE4YfYikujRFyuB4WKzmNQFNhAMYGnU5chBIM12wHabJqFASb8s+N5oQbLS7qUqoTma0EPncvsfGjHb/TKeTpwIkOWmNdVR6RzKspd4V3KbM8QKo4WBstgqLJhORASOgrWmOm8IXXN+4F3TLy/+7bgATgMa5oBm4AcgLPg0zgclgsB4HUEjk7REranO8c17705193WOOfTMguvF1Sw0uqRBkn4KMNIogSI52Z+cSdNM9tInoshiosipKEwpB5qZ5uFwSUB8MoxCE2YYXpLAcwANoNhtFS/4WABvOBCYERME9OvHY+0O5UM7uLxG6ylQoxmp5YnwvKRYOfGJumHsBffSuG4owHK4ys4sAlySg/Lwlc/I9Ww+c+H8sb17clp7etMM107oipVKKWEvV69uNukaaWSE9LGx3zjmMVz519mPv9BvHTn6jv1LpLbeaMJ+EXem+aBayS9PDw7Zp3+cQUAANRJaMRt2jCQT9h7qEw19uCEU+GeH8cEmAJReU4PUQAzqeI8cqWhSD6ZW+PgwJ8ejAxGPtm0kYTrtCkkwwvRmqPrt7fotUqMFY1UMBp9FqqKzSEEpkqlbA7jKBQJWyBGCSeODfWPb8c5023DadBvfz+eZK39rQzJI9opUKqVgBazBC5PNQEP6o3Thxy5XtV3b2Gz/ufvLW6Xc2QgQhwnCJVyMr04k5dJ/RNjCU27Q50KU0knC5ss+OuuV/2gcr00riCjrnZ3iZli0kQhNnXrCvfywnK2wCLVHyVFEhbGtrNkkgll48+IbRlnOFIEyAcdMkScgpT1jMk4yMr1c98eDpsZS/iSwQq5mSKbbbSoGmaolVi1MTyJm7Xnr+zV1XPXpZ5yk73myzbU4P7fstnZ4+vLCZbi41ivHtGIyV8WJ6mj5qe637or532s+75ezzbnls4uO0llCVEavBoIRAeUFT0Gg26pjp73PMRPvotI8dReGEM+EmMDctuTFfYm4KmrLzPJGQWZ8L/faF6+cuuAdhSVai8yVuoywi9uHNFQx+Nf3bcBoNKBrRwgSNWreGInpZZlklTLRa1nh8HXhmuCrkaaonOAlWcJMVWCrxGGU+LwrddOWLzzkuuvj1I8+dseeGtsj05sLhBbtr6fOJoaV0srG9vl7SYbCw9duH/dA77e2+4YOdF1x2660vDiOVokjF6+uxWAqANgZ7zp1Fs77R0QHjjNPmR10YCiHJBd+on0ZUmcip9tEE6rLTrgiC2q6N0q+Gl90orU653M0wwR3NR5gNxyhKS+yy7TCky3KREYWp1hKnNHOom+NFmRQ4z+KvIOVut9YBtmZM9a1W3hIHiNdaAY4yXtfzxOPnQ5K8vBw+9vrbJ53UtmTffP9g2s/nbMNLiIsxl7Y1PyyU0xNr6aVN+z7nQOdE57n3nH9l95AeoLZLJUvPeiG+TXILNO/wQTn7bSqobmIZQbOopM6NGedGIy7EHcI4runyf56DEsmpqamJ97t9qKz9nKFVJIq4aUJNqDRTS27kJCEfig5vpmm4xILMTIbYsOTKJVhOrKmsHvqi0LGYMhdi4O6pyfUCKzbW4wHGXDEVAyaciaeGT70DFSs//mguui+8e0/b0ubw4YXpZORzUC8cUsuQvF/gpNxE/5jjoxdtS9PXvtP54oDxPPfQXWKtVoQZHKcmt4UyR/OZlbSj02GTji5aDfsz0Y0+x9xAZ78TTCxNhA+xJGj8Q5tNyGVbs/dd0G8cyhJmxqM6XifCbimqEvRGjtmAJFagP5+2+xGtWBXzmD6lCWUof3RVpGqc6b1CwbDOVE2pVTxVMVgsRblRLzQEDCQO4qAlLTux6+47BsQMSS1ybuMlO9psCwsLwytDS/5yiUvy5bIWKoGg1pztAxsbYy54qPudfUbjwQsceY/CaWUtyWnFcjltLIll1NE90PfApa+uLtZj72Vac1dMOcbSPlsC6HXW789jkDObS6OYcykZgmYco8uIRJlLjJTMYtKrhB7gc354JqFjGO/XFA1uqlUG35735AHKxRklJfAwHtdgXDE3qGIjRZk6zIyWMdcLeBZScWYhDzeMd96w55TzZ3IQWmZg2/uP3dx2+PDBtTX/ZjqplUuhsoZAJTxUVieGhhKInpUXDq9AxrG1duM9ZB5oLFwE24JNJ5B3Gi33+Ve4rjzjjktvycpaphxxZn1zAyvpK6LP7VuLJJcOv59IgH0F1UOf5+zRIZtjyIdpwj/rLOKLuoHW2estfVufs0/nkjxH5lRIJdhtU8+ikqmmKqYAGbLDPS67XYxX4FqjkY8bUkypwmZS6wKk3m4IvYaT3J1gHDvpyoWJgWdQQgcOwlVtv62tvTEc0hDXkt3P60mfKzKdHh4edjr1UK2W++234eGhCePVL2b7smhZgzWeR11NP19bKquvvdZ3xegtt9zSvTLVGpjrX1t4YyI3du7oye0fp/0L72dnppq2iCukQs3WwsEokMuEm05EXbCUHHKyYRWt7W/anQujQHVyyWYEwF0eK4PWzcBqkuklGwzGWhIkFSjWamUBFSgc8FQIookUxzNmxnmGFj/31Bv27Lnh5rdOfatzYMx4y61Pv9X2GziYTVcEzrmSep+ejhw+mF457ITAv25vS2PDEx8fbj+rs/uea/tHpYhegjUt9JqrVoZgV//7nd2+GYfzowtu6e9r7+5POzuBXPiwaPdBFwFN5TqzqmN4CiMd02OvHfybRuv9TZ2MwvsnIMYsdYwFSxPNFSzaYQFRXBd1NmvshVjcmOmdQ2FqgskgtPPOBBNuxYAJ5pZfl4YaUOc1siCmdjMUUXIFk+GQBMIH+bD40WThq+80vlm6prDuPH3Pec5zzqkTljXJCXpA4XqaotKAvbN7T7wSHI+JRrnTIZL1xz758OercJmXhpL9wbeXgETyrSP+iTxLle0Re2H4/a9uMAkZbR0d3Q4fnJ2+9MzNRG/p7ecWlzc3jQ7E4gHz6Q3zgizP1XmyE26Uk6gkVYPdbiajJod7rRaPFrx07ZiIY3J/2waR6SicaJUpv9/Dult8EsWUp13pETTBLJ9ajoVBcr/r3aYtilBj9q5e/OgGs+8muYa7wH4RFwi3hCZa9nrk4Gzv9mv7hUN7/aMXH/n9Eh930U5STPJJ+9Fj51kp2a0R1EfuQsFJiPmzo3BdoGZ4OBQOH51lRyNntnBZL9uHhXyIOUCFWvhLvcMUcyDrNKTb2N3MxRa0gczNyvkgwdvzHJehuxQ1U8Ut94xlHxVnmeFNLy5CvVqRruDlo/PRulW3ZLN4dCqIoFaBoO+gJH3j1fc5rXBYxw/TN1YCfmx095GXHzvD4+6J3CEAJXCVTjghis53Xv/1qcevHv/97m3n6f37F69/tscH1QrlFCkq2Shnk0QHTZ5fnefr+KXYrTUiNahCdNjgQWjv/lMHl+ho7+EHQDQNw6eJ24/v0YMu0QwYHZ4lbgv9oreyqPc5FuYDmZ0F84kWHuRUDssl+Q9wkeSiUbhqH0qNy8saXBMsJPb0Sy95xYyMFK3rqy6zGe5EOZRpRCnKzodHItWnWqGb2X2sOLWxgnR+bgcFgVNJVamQe0ygQ3eNZC4fB72Sd3jwoOtc+PYHZ61QGDgrTAUlqtvtDt3lhhc9e+T7zz+4dCdwFEXzaOUgiSYj+UjkgxdfrKsJO+997SAdTlz+8GYezuiIBrzu9wj7v9x27z//8fJu27agzebjapinWkmu39Qq3OXwtYIX3JyLx4NemOzRil8YmF1QBb5h/dSqAxtzQ4Ay/kz4vJKy0CflckLqFg5PRrWt1z/7zK0UMzYESymsMgsm+kpfHDNRdYx/FDrM3z564fcLvMuxjLvHivhZBA0fPfbrgGWZZLTTqGYT0ogaDR+7f//2TXSvQFWBjnjnw53y3Vb58vbO6yEcxQ8S2ZDo/vz+i+cNGBY4kcuw1t4hH3pw5tx2LTqg/YW5qs2iCdA94x8QmRlVBpkQUFlNqJAwqfO7rCnET/dcZhfN2sxtz8bqum4bwhvhYUQ6sSE6rGbn4UrYnbeHQS2d7WqDyRdwisWwuaYopSlGe5BMhmg9dj9y+tmHv+crg1TBq+JA1DJD+2XiYifbIKkR0LrBhLuTpNRB7fKDz15PSuL+aIRT+M5nocTdPO6++OCjbEEMZ9H9IH93p3UA+11Pw0zteZsFgXD3B9+eRgqru6vo8wuDeVOWLvB64uKTHxKqRHAC2WTRuDAS4jZzzrzh95t1upWVTxHL8UpgI/ap1SbcUDrBINHgYbNZgWqVSv3088/z9mSyrGT6Gx5aN0nJqQHHTqcIxnpB5ufLiSzBJEKjXg+y6eh7yTI7Z71B968vnorl8MEejhfwZD5iF6P4+e1TdNAVx1FmH1w9/WBrGKkHR+77Zy0KjZygYTuQAnu1JbaCgP/zrpe2Le3vnT8Ifee9ZR7Qqwvzuax1zuw8Ffztk0M3r8qKlpvKcBdQk8sUaJemntIG8K6VjQy2ektn9lg/xVxFy9Lxuo58ibRMEHobqgHCbd3s8FkBskymc1jwY00lyiAbDvN+Njirimg33YVkmmEFzEzbyHiDnc9Y7x540eU1O79lD2V5u7tc5kXy18evstVolxqrYoGooZT9ZjZvr7tvP3jFyXWGYsXO2H9vVYfpEWGzWp5G/3zp6drWwV74kPHHrLe+BATQl/tq64cQkfjhw7tnEquwgynih7RM0WRa2zXEphsey1S3/r7OZV29V1myvm9zGX058JXJxopXa079GIZVkvnTHXci3LCo5KA77muzwYjyIoFSsZF/bW+nXG+IliUdoskDBSMyx/fSA21Gp/+6uDr/OdGtZM8ij/+8R5Ub0eH9xxIq6dUyrDruzqlk+bbb/cHe5WWwHmKIMZ6k3mVOw6Qg7js7OAwna1FytPW9/aaT0fkeMhpixoXJRG5qdjCNDD12kQcRP8toSkbHpswmR2BteTlQXHGB0Lmls1rX1yvPv3Hj2IYFNtsbAYMjYCwJU7/Hv5ErnuCtEB7MwxZYUKISRzSoVoJ5w7gRd9/97Off7959cFSOJAczElTHorgliuSAU9St1975/M3w2enBFd96zW1HGXorEuRmQMQrrKZG2dDO3dM8HxruJw6DNzsVscp847BInHCvsH+ZjqbLTCUTLzjTKLHds60tL76tW1ooFnNy/1r+lDtdMqNyMzaDQRNX0ewImB2by4YiuRRb8Tg2ELMuZVu3Pg0NMMRhMvn0gbYvN7CZYhs+c0mjIaEX5MU4A2vxDhUth6lZh1tzOocETHS84ZtgfNOAa5UoVT///PTBnigE+311+PsLdgnUG1TS/srPrYZ6+0GZiA44LAVBmjarXvGngAWS3XKdTw8hvNZhnq9FMxZXtZ4ewUD9Ru+QjzpRIg4/Yy1htmdXXZaFYqCoaWN1NpvIGS0z0DiWhZBSIBBbCawZ9HpjoPTllzHEg1gsVp3Ougqx9LFWaq9bXYgLQRBLzhJwOczAsmYO/C3HVasM3pU6RHc+Vu8FHzxe70bKVZKh0Hq+ddU6/zzMDKn04XmL6fs16mAnW080kr++ePb66/woeAZMJ2AdrQB31MZSpDNkkuCKtJ/4vtBPESORc7I5MxbF973xrm5Ax70k6SW7wxpI/19inhyzgBQRbT5XUs3pZKrIzQFLDialUrtkXltzGPTLhrYpZohtrLhcLj8AtL5qc1kxy/q9d+HjY2vM6Ck2Ec+KDiNZ1SxnOqAtyFHdMawy6Jhj0mihLnmjZZ7IeFEpdETMQIYGmYtNJcV6VBvwR3XQTLDv8EdoC0jY/LAa7Nw5gS1yqpnq92fhc/dOQ60RQzDrrrLEkIGYAhV3mbH0CaOlMMtAIGsVYVDV2gbjylLJ1Thd8EwVRdVS01wuF5j6XR4lVcxNi4HYLYfD0d5c9JU2AiWDw+T5dIpMXBa/xZVzGAKu9dVVxGzyGYrNpjyxVWSOfbcoRxs8k1Q7UiPIgFpb7Q5OBmqUb1BliiWZ8WyuaVq/Ut2GsKbGEeVhYWg/OgIjnqsXQy07TuAq3MXF8n4FYiFo0qcFsgKpeNL+O5jIfcQ0o7xW2KkylLeCQVUS62swIB7BosDMhlE85ed98QJf0HkEEHFybporlQK50koxV2yXigGzKxAw+vSbvlJgw7FmdKzF2sVp0WVdMhl+/NFhCjgMu18bTCaTPJlgGXJKQzaoP2vgIsGNOU7iL3hK67hFYibtnRAqJ8KN5FyLqrCUTezbJHUc7eDnj9+/uns/fAaqvfwpKqeiXX6YcItBoiLoMorM9SpDghntffZY6PTqczsgarmLSmRvMI4zLA2nhHWzq49MyDscQYCEAoE051qYFuXUfNBPyU2k2DaUAm0Aqt0OgOog4PA99CQQ2Drd0rNGn/Htr982rDlWHG8bY5/GfjL6dg1fr618bO3CmX6chXRNGksRiTJPQa2dZDXaAJLLHkTLlK1NMBJalaPcTOriVD3IstXxuNHplkGPvWU/O23dodRoUuPg0Od2PilANswPQcDcwut/iHXUfX6Rv4ychhKtBjfRGp1gFNzA7+dg2ZwrBjzNLSAEcHxpWhQ7hH+hWEqlmgNEmQQmTSQQKJau0eRyhrahbVwGYHZLuj65/vamb3FXv7i8DPzT51hzBEpGcFwzxT6F39XVogINkRqdIjoUDnXKtbLK1k5mFA6kIed9lzipqASMZGDmeefW4DovqXFJqoSjHqg3yoZuwoTa47fc17P6vNSzATLzy8qg6nYHKwTlbCVwusdQo1HVS59UYZaRoRWPi8zoTCYsVWyiZ53RKHjPk1OWJjpAzdNprg28zFDKBXLtAABTNJvNubbBAdzsyXbJAkEGw+4mQKJ/SL+5Ztw1Gr42+NqBmMkE3M3TW6p1ehBJvJuB4AysSnCHo/j5WOJgopy4cNsPj9PwTKOqZG8d00EkiU2APOjPND5pWroHFH2rEx0gKUW8OC9LhwkCwyQnaZEhgRZ6cFxKnmaH0mhfHIp4luxGEdk/SXk8lkmc8PgVZom2oXcyvS8KXwkblg2UWshdh/u/79/FDD6fb3NzedkXAEaaDEaDb/Ghp49jOhgwNKjoFvX6xV2jEWzP276vHQaAJLZhcmS243G4V6mp1R4mp1RKTfYFIdqR5BTH2x/Lp3UlNjobi2iNguVqB8MycJfUokw4KKT28UgepTgaQWR0xJfHHNuBQVU6KAgDUINjLHgc9oQzTtVf+/7vvYN6drRPCxBEjzEoTdNM5NjSu7VqIyuC+NFHUMnYprmFtrk4lfvyBHigr20AUbK4uQkefsBkAACux+ubCgZQ6BcXAZzF5WtImwCZ0WAwgmUw+O/B3R6y7U0Ho2qcRgWW6mFEB++yKTKbaJGxWyucOp+pKjzr4p0ZOJuNa3Q0xBOshRyJyao0s+j888hOmOKaim7cbLogTu5nmk1sMKaCdbyqwe7zF68eDyV+4Rki7odIttfznsTj0Kdm/40btcMjIvJ4RAnkkJKwALxqOukr05zR5zMCLMtL6W2DsVQyGBYBlCf1xl1f7HoAsrioB5g2Fx8C6/pkc1O/uWt421Ds97w9oeBGqyQJghwwAcdR6UaFpQsPTuVm3CJ1nPZLNxbEKSnJS/1otQo6dBQx67EzihBn44zFksI6wSwryzKEIYp2zMgWnaL0o+NZpw5u2zg7ffGxV14/cIcbUVgnjpi5DhAE9i7WWwmskJmBeHDxC1Is+nZdC0bAxKVirtReBiaDfnq7EeSPfcCDNvUAy65gfVt/PWMHC4QMwLEIjoubvus9exK8SfQjAsE1GI/crL8WlDhtTl1WYLU7uk4WiQt7DlFQ9ATFr5wjvFqWqBDPJ3hqVBhWiQG/c36Y7IxVkFNU1M6XCSGXm1kmzZSsyUgTa7LqQLjMEkR3KwTE0OmZvUHBzjsMAemKmE62QYLJY/aMmCKy/Xx3MNWZfabAQmAaAFgCPt/uv5OOh+AqW7mjN1ohxyaYRj35NTBZD9a/+7EL8Pz7+9mV3X8nCQ8t3no6nmaYQuL84oyvQhCE7zc68xRCA6+376gbnlnoPNmbC9JQqo4b4RZQvs4ybw83VEwcw0SXGiipSTMqaRNkHe4hs2slgrgyqb4swGqNdydrSbJub4WO9sLufbG7vm0GXfwNU2pgKSJfxzz3QJbP0QqgBM+NYs4D2KzoefaarhYBFgDGPA6it0CkGO99uvifwf+C2fwXDQADjr5dutf89zO9TexrojSq1dzJzgwm+opU5UFv0TUGWY8Kcy8hqVoB1kCHrdFghGAoT0R7aAIMfe/02BT9/FylEf+USVDMpOmxusyT8bs00jRPQKKB2C5xZ1i+40yragE08g9vohJfA9d7/mmuiMTWTCWHi4TMFlKnWB/S7/oyVcyzkCuumAO+QCnw0H+m663b1ref04MwXH8PbM31D0Dw/wLnm8u7Jqv3xr/ffhZEqkbCNUXlBtUORPRVkg8H4RQ9gdQeLAPh4lEUeqBkBo1gMEgxJJGkCGqfOulBPTA0k2X/u2/BFUpqKlNzDizEb75lzk09yoSOJ6sVup/huj2YFMORRBclWYpAkDic2uZoQNzYLf9Ayfn0bTgGfH/Tt9IuLrSNuyD028W2/r8BFDB+7cnnluMcRaWv9wpc/S8+AAH8ywiLxpLRJvivP1kmLXAU1gaZFKZotYITdDAqDZ5VJsB6mIS8lhyiQ/zNYqqWiEhAAM9TGh6kBpgyT8ndLtujdBieSONOQVfM5Yolk3nStKRAsWqR5cpIFKMCJ3BcdNZFw3jF4zOsCZzcswCt3s5trHpiBr1RD/jIkHKAPi3YHGPgH6Kt7zd1MgzzT3TxYiErbTraK9K6Zq3ndEVpgIQ0yBQh0ggutMlEF0zcBQ3MaKIxg5EMEi+GAkNIxibEKNlByXRxON3FduGiMRnZzWKMdyYmu/Xp/PWdAeesZ+33vD+f932/ueawLIuaWtgp0DiLfeo5snJ3fdbGN/4esv1rbHhPUsiwk7juXNCMWqhQeP8j72QmXS2tXkjj8axwvgrbmbl56bJtsCVCG4+ve3edOPqmN2fV+/3j7RM3NwlNCqOCl5t1RqPHP3c18A5UHXQm/KSY4CWb5ceD0bMvP+7eXJx1Xt+/60azhDLvmdeyF4fh+O0mbB2pggo2EWJjdtqOKcFY0p5ILkfsuDhFtsfCP7DzeZq7LnnZ/+e4zvfnH9CQvEoyldHBZZix5lRfInRycJOKi2pj7E14paur69A+oPXcvBBPiuFGz9ub1Tg2Hq+dXJ91a7eTq2xlNptVZ/f399cj7931/XG0x0wzU9g52agu/f52kUc/qKFnj7/58W2UaKWbBG+4C7vdOp6eSRAsUU9yTz0kiFiz6l6Waqs1ymK5CZLlicuJYdj/XGzub6fIRZZVNlNNeE1c+B8M0DjLaohEpTrOHq8/c97l+cr2byvZ6+xG0eAlVKhVrlaNV6WeUW20NJNp3hZKz9QkreCt9HolsQnPmMHhb91Ik17p5q4v3d1tEUlYOdlqtWya6T37+evbkq6ls9nE2998s/Ez2jSlCWcY7n5lZuUUX4T/pUhQO7B37AWJjhwqBlslWY5pVHvdK9ffWwYaZ7vPPb2z1DnIntz5Yk//i+P/Nyz6ite1hoRR10EJzfKlYtqXSO3/kubjoZ9LY24cv7o+O5uMm1OOs400dz3JME3wPhxZSPQbXJW7ncxYweCrN3x1dn1RqXhVMFqS1m85hrUz2e3HS+kJyyWOu0vvvt9FOVCqeONZt1HslqVYT/W2mDAKre8ABliwQK2sZMt9yfMtlmtwLmeX/8ufXj8+6Bwcr17N/eMreP2HCnB9Em+6VZXjx1w1ns5O+Oo4tZ6qENGL0C+9mS01rjpwHIPVmk13lm9xTYrVyGTDLZ1JCFgs16pKxiAaJWqAdZc1MsgJZIYjDI4gW81Z4fr62o1QQB+sb330cWVv6zIbOt5eTYOgvlFI9npTipmypj2ccyQfs6x5T87Sxezgzl1lNSLOupxghfUQtSi2dNHpPF69O95u7zw9T+rkwwW8xTx4PwVNBl1JC7TGGWpD7fclXpUuO7sJb3F166omGU0q3+HGHGfwNXQ1fbeMFhwyZDI2zXOzJjHnATO/zZZXRgNpxnN8JqNYsSTJJl4rp8fTzKzhVCNak5vGxJu3nn3j9bfe6CaK0F7CzV+WL81qkrJURTNpkJCHSERSR4quoiRdaFd1StMYl+P+8BeY2FMm0RntrR+Ubs63z48LGaFwFhWDqGkAyG/6NT+N+sAgBgTL2op/OO9psG6OETbPt9a3RWo2VnlaVzcMtjG+6ZW2C1NjgVcYmtOamt6ookBiHuhcq7j/xqgkjblKoeEUszFL2H3r9e3ebe1y++D6hocHMf5495lvv//ppVSl38+KaDlmQ93yXpjMWTmgtx36nlMymXrGrDO2u1C4IhCNqBzlmn86NpeM4TKImNTp4IjPyUWnEEcBWTMK59tlv+eBWlLZqUyRxGRMsyZFBTlt6LAEKofSs5VWSfQ+awZNasUQh6VQ4zM6SENueotzz/SMLnHzFgSKTH27+8bbievGrRQdc4hiSSsW7mytlzhNSxoanZk1k36qsv0qxvfrqURg9+NHZkuPozcSiBYmuXnw9rnW/JwnUyfGXMtCpRgUxdqkQUEXONboZJB5h6fA3Dz3F79sba/enN1n++4sxpA395pymszhvzxF1cMKs6xXzQwZcyqChyTqeYpKp2VkXb/QRE89aIcMWydUitQpj3PXmGIGuQZj2OPbGJw2SddvJwedk+KYpasDno+bKrL1lJNVa+6BXTjU3JPzv/Tq1+uPt/r9xcdvbAT8FDW72fql7a1JbL2+SZPUqQITYzW2lbTwGQ6gt0h6nNTjeuCOeDm7mzff/2Jp5f29UGLvw/3HK53E7JbxxJoG/WiZUMVNTy6XszzzzoKMyBxE7bHkRzux5JHOZJLB4Q6TjJGMZhg12bmhJ+boG3HSgiXDZT0MQ1yPvaWZewySc0GQlhXDn7nYPF7O35NJ/EdqznR7Q5XLvW5x4+2t0aLB6pxUqOdYrLouvMhztEXFPEHdZpRhkKLlteV4TcuoflpzxSA/wMAHnh2rHD/77Ecre1tgqXt3oaUiz3iSzbG3uBvqhFqeedgsgEPN+LKTzAMlQHwEhWDp4Kk1n6PQnTY0XVBQDOEaxAwJnMaeiuGTtDwWfXO/3vHr5PDIT3usnMeyoGcLzuQUSDA5D8SarHH3993+7sog8HFZrCsZvsJLOzl2h2ZFnhiwp6eMZy65Q/uPLBS9FMvLC4JZ36kfMS4oFkiACLVJzFLc5+fnq6Hz/XfewNntrYOLrGg0qzc3ovdSt0Ao8ONzwRzCO0RKWZ5ccBgMng6VYYaoHrEZmspZoDsKRSVJD1aLZVgFLR0M69AwoCB9KnMvyT5AhSpyp0PcEHKhkmAlKJ88hkro0G0M3sPVhbC6sCAHc0OFlgz9yO9nmDoaRWowp1iQ0pF5FMyhxFd0mlE8QJVLJl1UDiSHtJIk1JOjYsr47O5495f9jUKhG8c4PEWgM1aKV7VWMmjTzSuj0UQNmiPnkqQCGMlTxWZ21HqdsWBW/tw8lNSySXRDMQK+KtW4QUHi0atuAQy8lUKkoEBUIT7kCbw5UgQQ6tTjuLZSzWJ0YDnXWHwTjS1KQXQLBi0mmCPJYJ3wVUS5Xj+CvQ93doJH2DhFThWo/fR0OFRciHUUxcSwLNwWYhrfn4WWlj72ut2N1uTujB03pSvDsIOkhrhCVxU8hVJ4tcXotuiTw2owQ9ftHZz5xg6hMgb7Jknb1vgaThj5BhVJaLWABOkRP8eYmtHs6Zkk7vLQP7GcD8uyctgAGlvkNOm0GiyyQTHIALqOCNyo++n6zs4Ry2XzZ3FfPkwzdnAIFx2e5tAoIpMUwAyPhqenLrKpcdUWehOWlVSOYLaN3tneyl7fK/Fc07jlqtksP2Pp+snVlaHxPWNKvRfwhoqpVDnV2V4ZJQptvmru+J172bSyo95WZ2i/MTrZaBgYS5t1pUEplpPhSDKDWM3qU2THBkllYA0W7BHJBpQm6VjmPHSHJsktgUQYGhWy+XwlThASV6XNel0euMFsRB+vMYoCUkaRTjjKOTkH5gtb1+quJNosU9yOCTI6cjXKtOolGg8n7om7cI38aNTSPa6ha95UyltZ2t47CGHGtb+xvoIjmfuj1d2PR9FBVtU52JGNZzqjQoZ03llVkzfZIPIm7ktiQQeOUqENa6ppDZBLWDfoMnKUY7IYOuCq5q97y0uPN95+H/O/dTDAmptXdRWzSGkQvZTrJq2zLcdgc8BtQYcerJgHwpLdERcoa9JZuaQCsFCs3mRBq/CExkzTMXFSVF7jpcpdAfODvb3U/uPt7Z87H69v4xjZebETSnRFXuANU7GDAMDAODS9ZU8x/BSQ+k2b9rMsgDJ+m4yhuQMkyEIgwmymxcKBps41ndGP6n4/CzcP+5bWn33jnZe/QdH/7MqoXPQSnGYIhEFIIrE84DWaBSXdOXU0mMMvM1lQj2OW1o5KTKAZ1JpTKsMwOp1RbL9uwxdzlkPjkpRCQmcZneE44KkVDsp7Py8dbIcwbwwdFEonNTFOhOug9YRB1+s2Mj1Ls7bJ0rbOmrNGQ2c1zYQwGUAygzaTQVzTbZNhNc6so2uKfEq2dF2ra8BubppsfSGx8cOz77/85Zdf4jz627sboULJzVUNgndLoiks+ETNNE3BZ9JHjvuj4e24PoIa7FjXdBcDjyUZBaWeAr0Bkk0lM34aEobdUSRqWZ0BGJ7vXd8VQj+vnncODi68bgnNLg1Zy8beMSc0VJ/A0n5syS8IssqZiMUZWtM0tsnqIHb+us7QtzQdtLk6crfKYlKqcnFNbdhOFNYMXpBNVTN9gVc2Ptz/8O1XVlK/tBPePCZfgsCZquCTCHyp0LuwuewTibDg9/uVneEweIS1c4RYpiRdkJLOkLrmF3hTJQhRFji+lh7U3BP8qDZlmuyU1W5nqPULKbTvgaRUMTjwLcgAqrYUpqmqmHgi5NB//il8hj3VCdOHvA0kJucsU69/ZtK2qkOqLLCbQMzDCWRRVgkzrPJVwhBUWZAlnkj3U+XyytLuL6lsu+2OX2KqTcCMfeHlZXFz06RpTf7sTZ8o4YnfffadScMidr4Drj8RqXdc1WqPMCQi7nbn88XDYjTh7t3XruNuHxpUGsLONAM/QtskHu+mEqnQSSU+UWHjqEQQGYcMHTyyTUEWTBXiF+TP5D8/k5fb/fiyjDAUFtHndk+qGoFoFDYFtR4WBKFq8io2iKliWIZCZFVQ44Sp8jLhRuDNd1Pd8u7uk0Dk0fKmb2FhgYCvpH0Ly6IYdvDIYVMWiHCYEB+92BYJ2bfp821+9+dnwHPk4rM1HCrzJgr9fqA9Wkr1vfGKKvKGUCd4gub0FvIcvjQhjO74pXTiBsRMMOh3MvuQtBlaM0U80xcWwqIsy+HPNn2BwGLhLhqtxa95VVZlNxQHQW7KC2J04AvLCBfEpYqBorAs1GUBlZ6M6+JmOHp5ku4HDhP9tU++eu298OYjrIV2emEQSeVfPAwkIqnDFw4XX7xMVxbcojey9sKj9MAbeH7x0Xuf+b/7A4pyJUooTQuh4uJGP9Xtr/bz+Xw8HOYJHuKKi8g1TCaIfr+6ebhW7rvjtbiIopjM2E5qCTIKqxliYNE38BGgAaz53R+b7w2KeZQf54HSYFATBJ7nARKTXWKhHwkVu4OsTwyL7fYjCGCZkE057hNFwre8EOkG0v218mGqGCgfLg5E+b3IC2uB/mLxcG1UHuFVDCVGT756shEpRg+i3XQgUPRWsoXyxkZkORyuy2++94fr7Y1iKRpKnD/eTa1iBoTT2ul8JZ++jItxSVBVEwWczeiaOz96ZTflFuO1mnTLKhSsC2GD1k1BfLE86rYJXlJpWmdMQq3VMNdeDES96VqvTptInDCMTUnMJl759OPt3aW1SCDSjUS63X66Nq65K+ko5LtY/uCDVz547YMXXvjg0w++eq1YTLQjixuL5bVieTdRDvRHiUBqLxT66ocnTxwd+XzFxX7+shJd/fjJ/le/pjcX0muRvOu4eI+JxkUIvQSclb25ub+LdqOjbr+/QPAsi+3ptA5Tit8VD1OJhWw86yUEJA6H79O0AL9NF9cCi3k4qkzbQSSlOI8xLtqr0ctLRGzVVFVR9oV93m5348nGysYSRLy29iLeE+00uhUgcPit09Do45VPcerxk6+WPvn0qw+e/PDBYj6BI9OBxX4xUbg5jBz2Dz95LZFO7QbK/cVI5PlI3ttuJx6Vy7jlV4eH7WKivHvouuQNFPQijgOXOjdoT1YnZ4VEJ9XpYrqoYdNwf8zIYHORyCPfgk8gzO/89FEwCCw2RE6ExXQkmvYuexeWZa0u+97Lp9FJEi+j+fYyHERut31S+C8WzmbVaSAMw+cmAq4karDqarAYxhBrA5USCMVIIgoKkWJdVJBmMQuDLgcKGkGzE9SALvTUhixEwZUgARW8gK7FfSEX4DPqtKc/p52Z7/9732nPseto8ujDxU+/z3085EvqWfTm3YMbD1Zbm8ONN/ffvHk7f3Tj6aOnH17MH73efXr//uK9w8Pt6pptZ6ssu729Gh51f7lSnF+cPW95odRbS4QU3iy7cfj+6eHh4WC++nDh0bmDkzM6/2xmQvuodf70bHbzydXbl79nj7fCHTuzwnEKqFcBIieBPUU5ohCWG3qHU5EhobSNzNZZ2829odhShMjOr5eJkzenHlxbbaNrmSCF7z96ND9cP5pMEhJaSHX+rOuSO5LisVpFq2s3fj1cpasondQPnp579OAy6XppTP85fZOqbUIh6J3i2DHiezpzeofGdXp8lsnK157Y2pdZ4vmDg9HJE6CqghPFly9Pn4R7vDp99Ki4/RNUd9Vyq/Hpm1XF3LYfmspKEQ42TlE6ZV/2fbdvh55Fiyk4GXDGVMxt7OcIzxcJH9y/du3yhECOfRFu7avosPLDluF1vVNuysChkI1DYjDLON0P1SIcup4bqssraZ2ZzSAmx6iXxMB02tzlQ27Q9V+SC9trGJuTs6rq2r4K6D2dsvDFgXMaUQE8+OTk+DQRVVyqzp4/+oTP4Z49gzzQA01PWgTVyZeOQ5KPGrPctEQeNAp4tXTugntGp51hqLXUoRbb7P7l+5dPIVY2VFSREqQ4bNt9sMECPVAEjH3i2AbIsMDZwjrqjml7RTVzwD0L6uRdw2+OGIoOZ4QQGj4L4YLlwiJ5zu+/NNOR6fzAGaC3gePAGWBUwCHjGdr1AmWck9WZMaE59rgd8uEUMKjfBH2zMZQSPHSC9dkFTDT9Ao5wRjCxL3fuQPWOIQl2mlXdwg1DeZX+US1gtyMDQk+WAT2aVWjVDDDIiMLiOF0ndee6XhBMIXknzSscoSC3IW5moAWHLQyjAVcUNIcfUHjGcXAZ8sDJQV7FwbEpu1RjyyvAgy9PFkURgAGHi0tBN3aMAhBjw3z4FxXQZaZzgvLX2QYAIBJ1wAG8N82JZuosZkhqSF/ZzQB3x0ajabDZ4DZcgZRNg/oEbRl0AXQBVDYmIVxb1sojXCqvL6sq2BxrYHqIaPT4Lz06GWcYFob4nBQYCZDGPOEHzUak1QGpDAiRrhWUo+LW6KTZfWNMVxZO2eDiK80UT/Lgr1m45e5f3I6aclpViLYg5DDszKkuEXMbtBlBNacjDEG2tZ0DK2RN1i2JyzHwhy2VZ91c3DwDktN7Wyq1l+3C6/YkFICY1TEfC7HUsesIwZ/73T1298vG8EujAVoRGQYyM1CrGBV9cKBkrrX2VduWRVM4RVFuNg5k6W9GlMzE4mjDdAazmG+WRM4m6ImroWq9do/ELW1ekRh9icwFeVjAy8qh0sozSNBUkWnl4JDFIvRaqmAmQoiK0BSkzPPrNGfIbt8rgAnXvq+M7n1gpGg2ow1ybbCcwf7/MrZpgobgMWoTFbOgOxgs58CbSR7bXlCAcC1YVcnGC2RU3oYPD4vSGPbLv1A3QWmQPru0wNVxJZVupa/0vt0K4dar0MJZgTLAkwzSXpLnWqi+o4wNh6eHIRc3tO3QTtNaWBZP8jCqJ36a+qlsldb7TknJHb5q1VBy2/ZjTAOL6Ps9elJDbavd9x4yOKRk6WDdYFY604P3n9bvL66Xyzi1JdgXrGgLz9UYrpYhIX2a0+LABE/LInmucIHe5wbWeV2n8EZI9QoVDchypXfKtrfSkwtPWMNxvw+3k2UyiNFnr7V5SygVVy1r389rWxi0SRcUvqilBBnjRelpIfI89uNM8CapmKiU5XlWxT25pfba17zQDoMeDzpj2jduIxCag2/vX6+fPlq+XuZJLoXQ9taOVjry6zhhNxQDtCuCUO1zHefayJWn3GIjrVutXVtQtww0l0wVAi9JHvqZQLRcT9IkjpN5ypSkTlWuELcT4HaZ+kmINiBqpT1PsbLthSoKtW3LNE3myTqJjcdqECkqdZ72cqEJReEnSZJrT/U92vQdIWeSAix18On1gHmHqIStRCZ17kd+NBgM4iQHgkuboN9qFmGD37/nBAMPYp+Gkud71JQuvvEM+xNAD9BwFMd1ikrhNl9F/i5e7+JlikIpuQFcQA3h57auZVLzFETNfEKvlsrP0yjmhbmMlut0eXi43DFt4NdZ5IeWkn4+iWPfT/H2HE8SI1xJzuBvLk0d5+D1p0/Lc8lycDiZryL2kXgFg6BZHMc5l0ESpz7y75Lfu92n5XqXxrvdbpn6ucbje2/oGjJi2V6mRZZH9bvJJE1X2DOzhTb7JoPdOk7TwQCjSm2HIuN+EiU+FhFSbrVUtVK28PE8e0Vp/SAerNeD5eR9skv8aJ6jvMjDOI4GxmHz9fvPqa87cBWh3np0FuCVw/nswY97n14vV/PBYGLnSLDKTq38xE/tyHjUT7DFer4cDJbLeTxYogXjTwvnzyo1EEVxv4StpBDGMigsUQIijMXCFAZmZAvBwKDNFEtSWAg2FouBiLBaC4GxMcyCxUIgvbAE/ABpA9NYiRZb+gua93j/NpuZc+85596bfe/Z2WtP0nBB5EnHtzltIBaE2O1yLVTZF4os5TS3RjhR4DCNdjzQ1UmWkB9Td10nyUOdnx5k337V6YMkq+ocfLOojVCFhiy96LUglsbmukYEiqRErYObp1kXh1ffDt++s4Ff3/58R9O3Ma0by/Ohda6JdFEyT+qqEOQlywx5AULjtXa+F+Q2X5lHlIO3rbPa1OZQZ4gnO1Ht0/clDDCptHnUYJf2melboRGMUU+UM3Hf9I1RsnyySXJVF2DvnS6yXdlB5rKiJ3etnuEVFy6k66O2TrdW2FnpAkw5n/TMwnMclzAX5nBQ+ACy/FcYHmEGN4bRHyVTghBEoLyzy6UChjFzMTe9dM0epEIq9m14ItHWupcwCeCHJMuSLXgO6ccnlHFZJUqp1o7Oz67t2x7sVkCO0H72WEyMc6GY8pNyK+k6nXbWdqcKvIWxEN2fzUouJYVV8bPurds92x2Rry84p7aFI5y+GTk8/DNowdDYUhtIzqdH9x7d8A0UaKTj1JmctmKMkR/owOm6sD0TK/Et8+1h+61Ls1pWQgqzbhv51odthgVuN6enpyrt8orwSRvbxg22IUHaSSGUyHu9b5gggzRWmSf8FnFZVsLs1BvjbGW6NeV+nn10s9CHIocfzPrIWICrOPf9V1UWSirC4eM4/ByH6OdcW3g3ozx8Hy+glK11xtp+tr220jnCydTqQ/DeBngm2nD2TXuWGSaK19/coO5S7PAtw5rp3c3H7aE7cV8uTZOtTPLCwY6HYu/iZ0Jki6piY/ZL5ewYGotDWbRH8E9lh/WJLqsw9E5oz6N9CMQUszTkKhacJyEqTzqTKi373LbWxnG6Dktomji7GYs2Dul+f/XpAeX0xih6F61wILJN76wfvB+PnjiKyAzXtm3ohUwzqh0DC7Vb0odUO0oQ9bGjed8cvr3abD/cvPl0u1EpptW3LsTw2fdOHCrRKagpehxo3A9jGKG8dnnZnUpVJTgOYakLIhyLdXer4CV+hO/M0Z1bAU2iPEtlVlvsjYja+2VZhkuMLroiGg3NzCHLfv169f2G8zEsAxRw+zjYHhhD4H2AFtGPTTP4sVV4dla9evn4/s1NkmwqyVxXVWmZ1BTBHynjz01eJtz+SBFETiSdF95BVY2drSeLQs6DD9MwLdPovY+2w8i65Ef541ZZAUiudrP6vUbgqEYoq7mA6+f22DYYUSESAb+txUzjhG4a3/AVOdQm/3Wof4HlW3ZjnJupYZVhXJZx34tzaGBZOO4XePHwODeRBsGgP5O+Om2SLq1el0IllYIDZd5lp5SXwjbUzdPNmw/oHmT1Rr2pbL/uAJM9CJn3uBgQJlZY/DD5eCR/hiST3s2W0TctD64uNLJ1JNUJsHi+jP3nZgz7zy3utFPSokEr9N579kSoV4kBpVbwjF6XluQG8hiv6/80X35OS9g3fpyG8bgMw34chgHfIJSYAVSuhSz4pBKJV8KHXV5QbFJ6y033ChwJxQangt9vFFA70SKYrjC4rmTxsJAX4AQPq1UunmXdZnP3FrfMtqdDbda6/tlGMzdhjpg/xzj4CDODG+Yd7NaCxKk+AmZ9a1CMsbrK6LXoBuhKX91YhmkIl3G5TtfLxMH+R2rPuH8+LSgNPNPIR2fxReOkkb0mRLYt4ALbrDJKd4Z8MLWP20y9v+Os3Imd/JKoLGef9EGyVo1bwnK5DNN0nRZUo+FNdtq8//jiwYbEnErrilzaxoPZW6BD8Oa47sU/DwHZSkMYaYqAEvwMzUKT57I45A/+TyAM5d9v+Oty/fnzcnn78yd4FuDs92PgKlBvvF75SNKmyY8h2tm51vpCAMYZXNOYpFzBSHNK79RVRmaqj3eeUKwQOI/8OtAiZ+pJJV0I4wIQAF2WBaW7XqmEv9T5yA19npYXRlNoXAMTlmaZAloNoye0IY77xrbAZ0Wl+zg3HpY5iqqhz6Gf+P4dC1rR/LnB7n9fLr9/clyW6/Jz2YfJo5uBKP68vJuu1+tymUjVisbjd3FcrU9ZRbmh4VEd+y6flrsnlSpVV3H7N1Ep80PKS3bcGkxpdrpKWrRJ2LgmHhAgCbGmfHJbBk9PK0NRC20x+oEufsGAAiKG6awLvnMDMRQ9CNVodbHo9UzZbPIC0ZKXdZbjAAzxQjLvfr4jNSQnoJajXzMxXfj+cp3YAtGcCJU/khn82ha9oTVmqMtyU++YGb6UXzpryXtuuFmGcpAQd4DpizeMKrLvgxvDwlUI16qaYM/VV1zl5sckedVt81oUhZRNgNI4kR/R67pmuAaSdGZFkedVDs/GKCLwAp0PizHWMHDTbIKGWeAv2I4KXt1TarIAAAAASUVORK5CYII=\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json b/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json new file mode 100644 index 0000000000..f9cb12eb81 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/flooding_level_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "flooding_level_chart_card", + "name": "Flooding level chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a flooding level data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'flooding', label: 'Flooding level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'flooding', 'm', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 1 - 0.5;\\nif (value < -1.5) {\\n\\tvalue = -1.5;\\n} else if (value > 1.5) {\\n\\tvalue = 1.5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "flood", + "flooding" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json new file mode 100644 index 0000000000..c70b9d88f4 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/flooding_level_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "flooding_level_chart_card_with_background", + "name": "Flooding level chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a flooding level data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'flooding', label: 'Flooding level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'm', decimals: 1 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'flooding', 'm', 1);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 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\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 1 - 0.5;\\nif (value < -1.5) {\\n\\tvalue = -1.5;\\n} else if (value > 1.5) {\\n\\tvalue = 1.5;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"m\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "flood", + "flooding" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar.json new file mode 100644 index 0000000000..b6e1d91994 --- /dev/null +++ b/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": "\n", + "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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json new file mode 100644 index 0000000000..66351866eb --- /dev/null +++ b/application/src/main/data/json/system/widget_types/flooding_level_progress_bar_with_background.json @@ -0,0 +1,30 @@ +{ + "fqn": "flooding_level_progress_bar_with_background", + "name": "Flooding level progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays flooding level reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"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\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMUAAACACAMAAACMc10dAAADAFBMVEXh4d/i4uHf393c29vg4eLd3dzR0tTZ2dnX19jT1NbCx8/b2trZ2tve3+DV1dfFyM+zusQQKDjh4+TP0NIrR1zGytIHHisLJTSTna2DkqIkQVXHzNPBxMy8wcq3vci0vMawuMKTobAiPlK6v8miq7gYM0YNJzafqbcQKzzN0NcJIC6aprSnsLq+xM1UboMdO0+rtL83UmgmRFkiO07Q0tjKzdOnsr9zhZYUMENCXXO+w8oeOUuPn64KIjGnsL2KmKm3vcWLm6pIYngvTGKWoa4uSV91h5nV1tikrryIl6Z4iJhRZXs+WW8zTmMcNkeYpLB8jqAZMUOutcGPnaqAj6Fuf5Hc3d7Nz9S5wcqkrbc9Vmytt8NRaX1FXnVneo/NzdCqsbxIYHS6v8Y3T2SYo7OPmakqRFm3u8RidorQ1Ntgc4Y0UWbj5ONCWnA7VWkaN0sWL0B8ipzT190FGygzTGCirbqdqLVfdImNnK2LlaQSLT/KztbV1NXIy9BLYneqtcKerLpqfY9aboXDxsyVpLOHlaVUaX/T1dp5ip2stLybqLhRbIDCydKut8BNY3o6WG5XcYZNZ34pQlXW2NrJys2wuMS1usCElaV/jZxzgpZpgJRed4tOZ3nZ3ODW2t/N0tnIztWytsBWbH/Gx8t5jZ5mfZFmeIxZbYCdpbCAkJ1rfJGGmKk4VWywusZug5Vne4xBWGy9w822v8q9wMfT0tS6ws11iZxugJVcc4kWLDtJZXuBk6aOmKUwSV3c4ONbc4bDxMmjqrNygpJgcIPa1ta+xtCHkqRieI1acINwhpk9XHFGXXAnP1GxtL2prLh+kqJ4hZQPJDKrssAYNUmHk59ie487UWezvMiXp7WUn6l5h5t7jJhnd4hCYXbn6eq/wsaisL6fqLKTm6dug5JieYoeP1Oboa+Fj54vRlm7vsJte4uAi59vg5gwUGafpLQqSmCBipc0U2vi5eeZn6rr7ex0fpBYaXursLebqrAiNUazubVPW2pUZHNBUV5pbXdFSU3c5tXCAABTKUlEQVR42lRXW2j7VBzOesmlTZPRUBCabtUOpLjBHhKFIlJBiBdEmdo4FFKrUir1wYHCaOuFqqXiQGgs+tBtNV4moqKt4MMYqbcHtWXIH2QqK06YVkHGpk6GD37nxKL+kpxzcpJ133e+3+WECQQCkUhgJhIIRKPkip4G2Gi5HC3PlKMz5RmczMwMuWjrw8VMZ/CozMyUyxjA0Hsn7bw5SWJ81asvuGAw6AsyflgQR9jPcZwhcjzPc0pVqvKsoggWKwiKorAKelbZHbMCKxlCbWyiF3BjNTSLbbCaoAmCoGnapiZ3XbahFwfX3bjERMAhAiM0AvQqR2EzMzg9bMR8gO4jPeAzZR9l8b/GA4+W0CJdgMzbhq97Vtf9vqDP5wOVsB9H2M/DpHC1KoFBtcorLDXg9zgICttosRgJktDCQGIFF0Q1jU2nNVbQGnilFu8mdxeeL8WXT778420mSPBHomiJETlmqCQYARXAl9EDPWHCMD5wocZQw1NCIFpmykQVEABHSgt/FcDbkervR9lGMMgEg9ABFxFCsjkWQngc2GpfcWzWEhSYB10hlHgDN5JgYF4QGq0GW1+Wbc0UjIauFnuFo51mtzDKyPMrf/10w6NMJOeJQdrAKYiAErmiDNRg/oUMXyI0vBvMkQZsPaej1PE22IA+ncEEg0Xxa9zQH2SMsJ9KASogAilEvgoefJWV+vZ5mwViRcCaUxqKJ4yBjlzCWB9netZwJ6tYrMayGbWY/LXb7KY0ezB44Hh1ND/P5HKRXA40CHwqAjo0ZdwT6IADoyxwMD6QoZEBiQCXIAd0IAYJQgkXDvgU/kzEdMQnNCZhn08IF8ADLEQ/5+f4cJW3DF4SWwacv97crFsS4JpY+QZhoiAWiBK8IBiGIcTzR5eORu1GarA7yCbaw2LyusVCplDciuaOF/KpXirP5P6Rgdi0jxIwwEXgkgbmwwktaHR483SxwSGCEagzjOeIaCAM8VI1gg68fZEgwIvQgeN4ThTJKfGixPNVybAlCd7UtgXABgHaIDQMcEBLWAiaO2g748lkPNq99H0zP5uZy2RDc922HFoLJbN66tP5ZcqC+lQuGshROegBqBQj5UDdCcjRUllA0IenJHY8qUgPTphAYqNE4JJ7EfCM+II4/Dk/mjDv5zlCqAUKxAA0I0jEeUS6+DCWHGcm8POQySA8zPGY9Svu+aTZ3NlJzmZDIbmnzqo1TavEVuaHGXtFJh5FDRTQMCQqKJoZwIJfEIchBjpECWqEJBP0IRiAnZIhAwYDyICOUAIP6qTEYRERkQhNsLxfDIswaILglgRiBgY8IkCyFKHlkRFbFL+Chy3NUFwhh0WxivlfV5p3b8yqsXTJ7EXEnBmPx+bei6m/Ps/kAvg/0/j2/BuYKCyGoKMpioKfuhJD9PIFc5GpC9EOxDEiXkbY0UmqMC5QwQktOJH4VU5Ex4MHVBANHlFMfIcH/qkcJM6lVssQaFyw6c1oZ+90b63hDuevfjG1tbkZL1iiWyuOVHluLtRNhRjCYWpAC58CYCQomnSgwxQ6ooKMwIFqAmiUMWUxTcyBMjNZNQMeCaIEx+UICRi0yAF+TsyBCg0MDhLwQI9IJsgNwcLi5/wcDQs4kwTDY9YwtNJmLK6n5U0z9MHbX6cqa2ld1YujvBoLpVJLoVAoxhAhcjAsHEFHWhRyjMChPK0K09NLtjDqVjDSTjFT4mPNhkvBnUTO769O2g5Pgi4HCSAFOLRE6lNQolpFePcJC/BQDMBFbuIVrg9hvDCX4G0sadJaXFdMM9qafXH5gYW7K+nh8OjHWE+WC2ooVAwVEzQufFQHmkYDPrLWpN4FiB6UDIZTFl6QY4LSwIkI+E8D+HvocjkJlaxvXXz785ktBrBKIOELo1SAAPUoblLlJaeH1a5ZtivxBk/ZCD2lzxNWLBrFYT2DVpBGUYXBL8dfHauzMUM9HhyPdFGvh2JLstpsM0GwoDyQToDRqwjkClCsXqHzCgOGeKVMJzA/TcVUBsvwkm8U0eLjBKfddi37z4OdczeMHw+SWuHzE+P8YRjKHse2WhzPHtuAyUl9MJGEau3bb7G7OF5vZkFJhD/1SQWkPrey0CuOzl3diIf2avme2RPs3rgnh/R4KMQAPA4mwlAOIED6aTh7jXf7D2SvaJCWkPTRJIDLNfEL8B04Tc6wUYiylmLLFdMSSaJFagoSKUjlCwf5MKjwqH1kJ0j2ghKPCKiypO1jP9jr9or7QzgYrRj9Pqkjllw0W4iI9HCkq51YQjesXO0bZ2LqejqeYJAD/9mqUfwYUTLA5nHw0QbdlBpl6vXeRpHKsdnx85bSh4ej/LqpzEbKmdTwL8SIDwSaf0qEAjFIQas3km1f6r+0w5INFV8VRKPPt1gBkDU1cJirF1m2e6ZIfaqGM7hs1Njb62iZjGvqe8PPRnVDq9fbjuvYxWV1jvEFiRzUKL6JDToANt0ulaHM9A5Dz9fIQLTwup8+Iq4l2hcXFxNnrKqyLMdis8uDZlGtxAUeGygucxgBfKKDj+MgBEhwpGhI35s1XhQtvsoZEkmvfdKam3ut4UlP0Rr2SGFhSrsrc6etzU0xLXc6jbkHfjyei9cHo9GOrbK9rFpgIkSJfyKCDDkGhjGgUQNMSo/ix8h7GQcv4g7Z1PNAv3VxdAYWdTVbHFcqsaVkMlMPlUolDhIEjRZPFCBCKIanhne2thAbhI4ooWIgMiAGi3Q0GX+8o2ilaE6RBNdStMDpXmYx4fx6Dn1TK8dFVX1wcFbMt53174bZ0AbdIgAa2n+5eI5DKRAjMCl8jGDklRk6gGFAHvmV8cXFuG6ZtUy7UCtVnp97X07L8bVSicZFmIZ1ENfwsR4qHw8iqIGg1ad07Bat5ZCChAGKej175eoG9oesRTbmjtxoCDvr3zujtbXYSldN1Dqhk+GEqw2Lg5OTb75fpbiCHhN0kSB6agA4rXMY4IDR3qMM83omqPh84artTiysYS2ULWbSpczVs6F4LBGqxNM8pKBpyc+T0LBbisJVycQnHCQR0UAJoSrxfXJK1sEY0a6od1+/uLgxO3/lxpUpc/WHp26rW+xkUe5sxYsbq7PbpU49Mx4M8+rZ78c76/vr3hIDDaVB+mlHI4HOo51CJr3fIzF9F2fwE8WsNARDj6m9VL2ytpX982s5nljcyM7rBgnof5wI2KEJ0hNHaneVk8I8zirZF9Idbr/aZxURPpVt7LUzo/UH309mVy5/7b6nHtq/MjVXyOq10R2zydXrkvJCb3B0tlA82/m4bd61s8BMV5UYxTTl4OUhj930nOL+90KLGk0+JxuaXi8Ue7049gvfX3m3vK02u6urNu8VCYQH0H8Cw+Lzn/BVjKrVTyQkqioCm8REHz/TJ1/eSubtWCfQjXW771VejCWOT95cve2O0Htfx1YvO37jphtXPtgzh/KlZr1w2eDo9+OD2x77kfHAIZGE8UHpYaOLPvUgD6of6D0m3gyQ0Xs/LtO2bF5sWXoh2c2oqrmmFQbZTLyUThRW2yxV4hOwoMkJ2Dn+E3QwrPwnVTR9ogOEYB1XsZ989Tbnjk9Ts7FTNxvfe++e6+YKheLs3Q82tcz23aG5diL5xjV3VMx8/pFBd1SUC053PXnzr4SFh5yCRY+LRAcD8wL3n0foPSHQhKU+z8HdCXXeVVxLMhRn3G5m5Vgt3ag1K2lVL5XUUK/vD+MlAh0kPuGA36NQxQEtHASz0u9XyZ6K5RVRefPj/ZvvsOVYqaPursY7Wii9bXY6akiel2V9cfn5lScyR9ffoG1cyq8XFhbea+jdG3YW8ncwQc+8D2JSW72VRzmntZmCxhNCj8pGmPotx7F5+DjmOWU8sdlWI+2kmrOqbuo1U/7zqGuWGpu6zoZpnZPCoFBFQOOkFHApE9YeTyywsBAIbaXal9C7hjJWsnJ6LZLKzsf2Irvthq5tha67O6418re/c9vbz30698GVpeRu96vZ2a9m5268tHrdcmLA+KY0wr4wRyOR4I6QIEaDIcAjKrkgF4Ys1MLWxcW526e+zinuxcTcbOixpY1mIm4iTenpentc0xotM403SGDjtX72jl2Cfkqi6mbqb/58ye2zCAZLEXTXRmdZZtpsFe5Md7oH8fiLsRvG1qySVm9Y/rpSSquLK7G5G9/7+tr1wTPJB28sLaXzNy7F5+fm33ueod5Okgga0vFkJ4S5iG/KgqAAYhxggRmuPxmcDx3FUJDMh+v5idNY0+TC8mK+II/HjqU1ZBX6647Z8oEEDoS1e89u0ybB4IWEc7H49APrz3673x7aiuK073r95++uufep5tgpvvTtQ7HY5odvdC1Zx7cJO7ltkp2Lzc4t3Pl9/LYrt+JPXzYfir/9WSJ55UJi9p6b1gu6u8PQ7SY2CSSriwQsPmVg8BwayDTb4zk6uqHDIVqTtqzH9drYsTN5WdpMp0250FxcLCZ62bGjg1I8A0JuAxty8OBg/vFS9qudoT3+8ex8dHS0e+nbj+7/vbs72v99Uts/+nHkRgxsJOXiw1883g678rZ5yxsWHzfK7T/vcOzht7Gv735/6/349vNfv730/otXL939/mcbyfmvr1t94/MjRXLfZIjkZK3hTcjdvAsWsBwNAxrK+Nzn6WMOFEGWk5xxXUtX5EzPdmubp3vpWi1TXP1+8VyVHdet46ter2UKPbUOFoQE5dHY2lLzw+H3o2GtmJhLFeRhj3WE8fngm6Ofjxdqh78dGmZpMzAenHz85q59kDyymJzaHtX/rCvFg/r28x+E9FhoPvGinNj+9IP35opdY1Pev3Q0aI9t2WkTLfxEDmz4WyInZMRWi7IIRvxe+gJJAoPspz3H69tj7GZiSKo9fe+04cqhQhcJvdl1bdk2MxmIkZYLqUwmZlAJSUhb9VIJv1sUI5FDbW8tWj7stA5PS3vtSz9OXGd0WM4JzsHRN+uDN84/CSpv/LEzFMrqzx+f7Tat4f7Z1vbW1txKPX/Vzo+jRKqwlLxMLTUEFCfXPR+04dsM/o+3/IDfMlBFPS38TBjkYBwJb+oUHIKGhAhyiyPX6714JZORQ2qtXvh+dXlhcZjANsqqqUgwDexql0KJnsljfbhP+EkxkZstNJDJfjvEqkdJc9iJbna2I2s/7u9tNiJS0Dkb7p60q+HffitbY/spRzq87ETILWayo3M5HQulN1qrxUakUUi+93ziwd1W1P5zzLvtk59/2D8o1BiymQmKMJ4nTHhwAQmcEUKCUIEUPEcVwQcnKrACv9HrqUI8M/r1srqp28XbFrPJZLeY0QW9UqmktboSjz8fa7fjAhe2upft/z6vvRjSOlYuGuiUD3+Lnp4eCrpaaw9nF932wY5ujleV88FJW/Epwd9qL3x307t3KOWlW4dSfXBb78rFrfiVibpcq2sRMV3L5PMvPzMSBUcIiDWnXZwc/LCzy4Q9GXLAzrcM0uIgLBAaNJzDAE5qgwg98Onvl9haTUvXM9ns7wtF1jLd9tkNyURzdbGga61SWkuvtcRWR6vECyHZZCdv3bA47IW21gKAHjAr25Fox5rJzS9c17zh5GQ1pm4PVjJvXhpbj3+xw7JBoey/69mP73/ciqRfueKPH8fWry+e/XhbaKmm6UMnNhmOVo4fHC4PlcmlnbHFK5I/x7Xcg9//JsnqYxMnwzjq5LbK9jabTaZtoaYzS7M2ohY1jTlrJG5+BTN1UD8C9pyVedNI1EhY/aqKNUMTYXhGYUOiskTjcXj+YXAZzp0fJ2SZxAt62cnUTaZZlo3dLn4/6AMtb+g/fd7n6/f7vRZ4M+hLgCAG97XHIRxAumwta6HpVjq1EurU3ofgB0A4G4TlQy+KEAZnaGZlwiZGqL1iUcFYOeAxXaLodYmhUEdHKpUGXDuwvDx6rJQR0yeOBrcTSBeGMZQpRwuJ2OjOltloWNtHVuZCYrwld3x//+U3JSzNleZEMlMtTbaFvrtzq74Qt1YoyZWRUI+/oPtz5XJAs/MRcVB96NE3q9lBa21Pj4/YGjULbD0YiI6AL/e11nEbGGRZi9OAD61maeuA9X/VA3rRoI4wnBJdKjV3cC7ipfgdBccILHNGjg66DFco7fWzj180cLubp0OiRvmXjx49EYqSWoParAjsvN9fqMtosNkZj1KpdHebFXaws0M58MlNW9Zup83vb2iVzZmP3uZr+7ZKY2/vP/r+dKqwWhCz7dnyICWTiEVi4q0LezN+66lr7z39fanR7m9YgGkBxonbJuCn6//yAFbckirgAwYhgFtrbP9XLqBUeClGEbhpjALAFwkadgcjkxwhK3D8Y1CRdIi44BhvZkza2RtKpeZCMytzI9GIQ8VpKmNvS1vLhew5ze44Jl+TnjvRER/sPPfUTvXO08cDPR3mDv/FW2NJXad3HbN7P9UmrKtrDNKQTmtrRjK8aWDDkzO4nPh+/PTeqdLSgbHDl1x6+M9woGCB3R8E2gsF3Hr3litdrfX/w67FCqyG3gGZlfgQWjGIRP5EI2bydGSGxJAejEa5pMnLyKXrhUICRI9okLxhlIx6reJ07+ljeWI6NJcysoGhPj2QsXU3m3OSKtqaI2zbNiRTKp7qXhnxz3dVd0Oo6yD0rqx0dnYgOCd7N56895Zi7tz6IVXRkojqP4Iqq7IIAMQ3ma9U3cr6u19fddUnp18dv2lh4WTY0vVfLCCXoIShEwFbBPIITrWK+Tz4Wh1DvAGr+Mi+LqtLTaoyo9EYTRKCZ0j3hjr8NE1Dd43H55NZL7E4NLq0OSKIjMOetudDZw22F5K6qMmadV+ru64Eab3D0qZtZoLTHIeSdI+uGSvNg3Gbl+huP9gx7X3OMzAZFDKesaqiZsr6zpag7DX4Si+Pq4Ym7fdNz5D2Co2RxU8u/uaqV//544FrefnMrKVrYgKIFxiQrwkIAjgAIlHrH7jgXApjY4wPpjrMiWy2YDppmYKOkxb1whpDc15vNobIyAxnsyUM/bsHXg/neCVcHH33Vtzb6e2gTT6DurxQvivN5kpnp05Fu1dSIGMgJEu8WVKShawkOAf2z6y0tTe721TPhW++SPieODR+/oXvlXpWwmbG1UhU1rO6qmHyjELvRILT5AxGOXbvv/Dw4dP/bB0LX8HcNmbxg6bV0QL4Ey0VBd4dpC5gLv/Rx4lBYxKn7E4ZvOnyq7yDYlnM5eUgS6IuJNoQZiBSJAkXFhF7EsYdn9/AYJMD4fr6DVeGjc9siBoOqIYhiTZxG7xoixKEnyDJyCTCpGAccySzfhCUCuW+Hmtypm3uB7fOj791n/nYB3dsHX/mwDtmwmLmdoLz85WkSVDBmSl7Rd7aigWctFF69/yFhd3dw3/8/eb4nS8fuNCSaClwNiC8mYp/EMTqCaCMH7akB8DJVpK24479j8UIhJCKD9spCSM4Lwd6kZdafn8G4JBOYqA6STGToZRnX3i9d/3Xgc01HgMIoquQMZt4LqOK8ZVUtC0eRQZBkSRCmNeLxyh8r2KCClgu4V61oXxv+mZnP6h/cLdbiJDY6bHXnpFH9p3jqmsFVK6WV2O0i7YLtPL7Vlbyn3nz8IGvn/3k0QOv/v33Jw9/e/zAZZZTWejWXcBQdNBCIQBW8ALM7/cnEjqRF3BeGXoMZ3FZwwTBoCjMSBZ0KzJjjKzJmEskKYlSzVqtf3izX0lGECEGaYY6etfROZDkvVEkebHuToAp0AAQMhA8J+kYwxIFysyVCt6erN5hqGW19vjTtxXvvu6lIIcTK4eeXKtYmge7ugp8SHS5V/uX8xhFSKzj8aW/C1f++Oi9Fxw4fP+rv1z+7R//fHv8xmce3LDglL+lUMPlAj0LvJgALxKJBMCMU0nGZ2euwIeduDOAOxZdKILUGK+Y8qTMUJIQk8lgJII0s64Uvwu7JQSDG4mcODkdDJ3g5rZDg4AL493bkYILtVt1lkQEIgChhAyzD2lr1doqv5fRT2n6aq0/JnsOFf8+fgX/W3/y0HVfVFwHm+dkrl/F5nr5R9ZiLIs7CHFzdHfp7z/HH9you4vs2r3j94798cdfN3je/WrWwjAG8JSWtaiWtXWBFp+dbyR/39uL4SzzvsPHQFoN3YWRYsirxXBJAE7HBQmoEQ44HqbyuWOPSLwTpUKciJCX25zebobEle0VOKYWt6OSVqAlDZM0wmsgDqqTqyt9hdx6vepm1mKnMtWNhfos01FWQ2WjO21LJWcv/Y4csZ5344O3KBK2+amiIq1yRJuelnLryeqju8fDm4/Z1eqbN508ucWXYp5nhnIWJ282Esb8PDDpbAIs2wpCI1kuV0qegCwIJ4Yd7zM+xxW8XUAFgqBoAYg1QUBFCxjiSAJJsnns9WvWhzAu4spEMxwncClAEnNtc6EIRnEIx/OqyrCTgqASKEISMyTlKcaS3+MeN85VeGXsk0/3XD0uVR/s2p5L9Xk+evutF9Sz2rMfXHr+nbiYWQpnDJklyMWZgH3SrVS/3ph9HBck9x13r9YCO6x8ZpgJ9FoYhQ/IMgyyUiZZTiYbjWSjbJb2dtbWitVVB+l4jGcYxxGfT2AdMqh1Mo4hYHZyRjUIEiobk2iav37dmQGHiCjJraTSUS4F92ZbWuQCBt5XUWjWeVfdLtOsAJJnKBiVZBVXtLXn+6ddGU3+IiehQm5HTHQwX37e+yUvjZ6g29qTt9150+ELS9wwW4YtmMHo8nLffmng7o1ddr/bzgm3LfUfwWk27ygtT03Rlqkhj6dumjm3KWX2SqVatZirr4aL69Ubv78jnGdx/C78fd6et9uPOiWrn8IFDKMEWmBwmYJ9xVha8B3z8LEkS2tGEKZBKJ0WI9Mh4A8gs1Uy5qqq9eYI3+NuhyDg0KLTBCKjkc2SiSYBrNQZJrAJMtS8MRC+8Y23bv7Rc05P/lDl4L7zsmb/u99uHY1QcmZN1WgSc+RpO3EmvLpbfHwZ2esa7XQqOI1jzuVh0nLkqSuuvuApHI+HqBTmqc2eKbmLS0sbGwsnT26UBVAYhnHfEca5mHc8HohGQXuF3ZckzO6gKMkgFn2Lk0+86FSUgCJA+kTF6WgkKKa3gccRLmontuau4spFskN2BhhaxUJBjgAIEqQUM8cTOqrnhnHZQFRBirtnx2drn1565BpkHU01m/sO+u94Z32Vw/KaKjtHsWkRk4d84f6+ytKYYrLLFakAoZB5Gr/vrrtIi4DJV1z02NTUif14oO5xxzg6Z2489PEr4yerikQ5jkA5x/jYlAMPeM6o0GgRnYfsYh1sXrIzPt/i1BNX9nsu6ts/LHDIFeIwcTsdhIGy6K7v9Ln23MXeUc8w75waUjOTdkSQCNMk3Uv1mXx9lQqUeMCIwKzU4o8/PXn851uSY5f+mIlHOz/s7kT3HJIllBImh+6rLlygcukg61t8fidX+2JhtLd2Uc2Tz/tYmtFqJ2/odfzLgNk/JVLHcdwfmprZqdwamVaB3aXd2nF2t/YcgSJnwVovoIdtdiUhsuhkM2rK0QmSYU7skkyDnjFsArSHEyu6wJi6iSh1oIery8jyUCsx09Kyy56uh6v2D/jOfL/f+bxf79f3W6PKYDCWKQqC2awL4mDjcGP37O9NdW3PomqdTiHvFhZwHNexPpLx+RgUM2SzOXm+MDsGgIgKgF7aL3FSdUaraA4MJwqevr6kAlACtH8dSpmqkE7w4T9EkV1QZVAjJgyoVYAI0NhhGqE+dqE8P1t1GOgHANbW9cU9N7Xd9P7UVeLhrsuvevTuV5t62iR006wEGR5apmCFJ5EsAkpDFRv7zSZfDFOdrThim+v1sZOpTWKmhiEI0KC2R1CQkfOT83i6P/7lWE9Tw0YAdYWTdln8UBjFfWYvAjLBKOGVwStXIYKoaRUGwMsvt5K4NDupaL7xq2a1WhFPyKRSal0StE45TAeHaTWmTtuFQlz7gBqzy91lD9JylsCRPyKzogi5KBeaBck7fzmyMXD3vvnVS9uO3Hbhpff0Vrcfv3S1furQTmPRDuG1iUbMI0u0/GPkq3ZXF3EQNFdT/pR+YZP1S5O1iXhNrLWVoycAAyIwUQc5ODlJpfzPPvrYxhyAKQueYjIR0GrBKEWY4Shj1ul0iL2YAyNLGKBGtm65pR2Caa1KoU2c/+uNCiC+F0/0JfoOonkHfBwdAQ7aM5mkuWUJzQIAbTcUi+rMEtPtAgUkEnFVRJFCKNzLVR6ZT/k3Bp7bGJu/qKHp29uabl7UP/Pot78PLMYgimNArEDTQi7R2BF/YGwHNKVStEt8lvh4pHb6Dj9rR7XDBW1NrMXozTUmPeGIS8ccsBtmHJX84my5G5XVcSKStY+NdZwTl8OMRKNCOoNE0BF7BmSidtXIOwMPtVbpG8+Px5OBROGc2vive55wOegSZiWqtmOm+2NA1dcIU1hjhoKyGZjGMjDCu0ElLf/A2SObFOEnlxyE39Hlt+Znr732roam5/bVXXrdZZc1NFx4UUPXbXeHNid3id1NdxLb3PX0yQJ3a8p/PAXlfb6Uz/Ruh0da5I6rte+qiniNRnNiLQM0epQGEyOPf60KpShwzFR7sNbha205EE489fpZZyfkZwToAp0AGmRgxMk4BRB58KZxP4vklMMeRUDucW0hUQCML/VL0owKo1kcOrkFkQ4qV8yVdYjPD4dzESQbAVsZrHtyMkLpOJTUBc242cy9xlF623U/3lb3Wb1/f8OFl03dfqzu3gtvuv1uKJwIc2xfOdztafRojwMH4EWCd/G+9Loj1a1qnqisYwFth2uBgGo0umCQlTEop5Mdf8hHqlwUqlYxapoRUSSC1V5961MGw8Enz43TAooo6XQWhjkvzkRv6Lqm3stoS7AAadxBQZ3AFM1kyeVImTyNSPv4MjR7nBmhZABFo0kU15XVxaLgg3E8WhwBJ9HUOifhIC/ntP3ekxWr7ZrOn/fV9bxwZrXzuobrep54xLr+4CUDq0SZgZXyTGSAZOIARHC4JPlcKcGE0eoDIKg98K5W6RlbPT2/VdOSRbwneJ8PVDQ6cIVQplI8k0nzlInhk3FgxvDX9skZ0GHSngFEi7QaKObSQULDR/R6adAbrB1u9kTdLV558fD5CSKPHARUJtOmlKrVyvpqMFEKwJA09YdY3CxTOefAYMTO8A6Bm62wPHPifk50z//DzC4MvDZwU9d193Q9tqw8ctFll9pu3iY/9tssMhdwYBdUZgS1NrVJwQCOcRVBeACGYfkgCDDz/TeP/f3ER098VNOChINPi6QmdEoF0JiM/bSoYf1eRBFYC/R1PNnx13+nXVGCYwzZqEGmS9YZRFzelmXbrgvEPLeencE5gnM9kCjsxYl+C+nypwgW7IbVIIqaTGC34BMw2U3CAoouOYvZ6KCOr9eP/yZxfp6HSpDl6dLcOi5UVqZuu/y6tmMb+3568bZve74YWPjipJY/fIMXInaCUgn2CAxecjROKEHcMheFWIHK4w41QtU2L3z353lHL/i0RhOe0H0ikvkVixMOoyw6kdGYHYMsHFAIDkDR59H+8e9GayViiHijaiTn9PoI/tQHbXd40+rGva/OV7JOtoI27xUyXuMWycj0MQAGRrAz+GjZFcUphtAxRWUAr+oiDDEyAubE9957fztmkfg8v7XIhKYqUY6kHOKR9x9taqprePbSqVc75yr5Ww6l7Y5rbsDTE2qbsUwkM2ZBwAAAc0KtIUjEDJn8issQHRK0jmMfnf7z+o9qToRzFmuVw8V60gdgObAMkDDKRCI0EOFQ0M44EfKlcRnrONTCMk5n0Mdw93V2mosKRW28oBDYoBlsLMQJo5/EaUBWHR2rM5ME6/SS1WjKxWoGRU3Ua3YiMQKE7c6K/vCDr9r0VYrg+WnjinUODOm3IjOnto7sa+v59qemz6YOr+5O+lf3XXlJ76GXcuE4ZC3VmwuBLNCYoMvs7uKKv5WiaHF1GmUEaT2ilEq/LZ7srRl0DuYljaYs+Fr5sHvZG6Bpp44QZOtjWAZBXBHm0IPLDlHj9fFr5aV0/UPLU4fmN+njgCIQBtDBIZ0iUACCD+EI5iQ4x6TA8TrSyOMRwoeLEoMxhNftZc0sb9G7YQay6m3P7I/NLXIcGVqxLuYjuOUFg0KWnq66traepqa2uVvfVahx8s26Ryo2G5lMlB3b+vdoJwpTbrYEArKPkZow2ArNqpH1ubkFQipvP/BLpUYzqvlGHxMJs08kiuTOsj2Q9fIa1kxlD6SdKjUI7lxzuLdyx4O2qUuOvPzDI/ePW0PuaHM8AMT7lkaDYEYxvJdUlLgIA43igp3CjRqC0wEwK/OnZMTdvhWiAu1/aM3Y/sFbIatlrteKO7ZikL8kzsVWrf2MELL0BSpGx48/xU7d23TPTzfjHd2Q1LE+cKdQgcx92mL31hsvnUBgGMdSvwn0mJaVKu1bJhQyblb+sXJi2DW9+PfpmiHdUHu9kRs6IVqCBAI7WGLJPCTfPJFOsFZCFUBKIsV6e/ffv3H5zbfc0J9ygTQd6AsjYY8CaG5WDvcVADcUdQqEjpSbfZfjCUqsrkMVjvf779/f2h/jIbF3fNrWy+XF+zX5cd5O+aXp6a25kG3B0ktVjKSy1kRNXtt2x/bqc4/WNY3Hz38eP/T5+p2nEOfEnofj77/jkZKs0kr71E5wR3CUwOpvh/PW/PGvV09b8/6txd9OX3G0pn6ov73XDzmzJ1q8aJmGxR1yjSBJ0pf26I7cc2crP0SiPkssdOd8ez3BgMmcem+vDytHM0pl4VdZ/yYUpTdY0my2c7g3SEKkKEkn56w87iN97dt3WtpDRtIrLVincdxMTs8tlnD2adHYaqy3rFhJKZYniMkWvn5o9IWrvr38hYc7T9U9d0mEvnvf3PaX1iARjieobcg254QFmO23LkO/H3tOpFO7WlMKUP1y2+8xktxeOH306MU1T7frV1ZiUtQeHNXozFmNxdaLm3VrQScQ1q3NH/vQa3YJRanUaxNFt/lgolhcG21pDXrt0SXPr1/1YaMQiQMs6ibTTicx1GIU5UaEOP+Oz4ez3k+OhFpEBgHDlLRq0UGlUO/ODsnU60uhaYjMe82MOmwvs0DlG5HYqOtp2vf23a/0XHbTwIVN160++1y9VgA80dLucU5zALHTGf2xh9a7TS9iwC8uflZUHezePlxFqZP/fnf06Hk1r766f0UKLeNocG0obQ/6JjyZoGyw5SziHNS4cWZUQ5L7eyWNMQiDw80KekdvHO83DsJw4PwC6y5FmxMAy1gGM3BOZ+RYnQMUEZbBFMmo7F2ab2wlTsgFnTkEZY2owe7i2ttLxsOhUGs5PTrojdDZZf5U+4TcC51Nn/V81vBs5z2xP7oa7v3mzt8f7oQc7lwZS9AmwBRN2284dMrF5Hn95MelX2LgrVrH2OI8azfP//npp0eP/k+y9T8lUoZxf+oHppnDJmw3EthkZkdXGvrGTrWxbW0Mu1YQLBO2l+PVUmpT01ogzM0EXFDchteXGQJKD3IIRUKSRs00b8IBz77JkYWJNZbO2WiZ1dxNjtW01fMffN7nfT/P5/k8z9uQT0Uxy7FblGoRhc+pt0QmOSMEUrA3l9O5sBw7RwVwH2ClfMrkLcPDcibKxFeCuDd81YIkAuzbZcNTij1AUBVyej1gDOdamsn22zXhhAS+qG6nDBmTdNCL1eNwu6tbInn7rkhVIkWK0QwBOd1rUNc7y6f6di/5ynQm/WLHw0P333PcP953qeORCdt637tpi6aWSCqmJAqtotrS+cgf7jfOjJkkY3/Oew4GtZ1jxUsonDlqFFEcNtiIwKaxVHMKiMiaTmSP24szDIRDm5uK0pQTY7I+naCOcMZS60J//xSMiaLJBxlb+3sBn7oqSdT29VodawSMRrXP6IzocgrSpLaoSIfD9EPQHOJa7N2OfAwY27eQnCIZnhRneZvjNk8dLRZ3L5956vzSKVLn87mCVvtgzBbb6kO079/+++8XdTun+M8lLrwMK1Sim6TUljwONfkxrUgYy5cOjr65vV16emf0646jxra2xguzDdkstoZjVJCoB6mAEHCOdSvFy72GZQVvzs53RbFCiygUe4eThfDkpFMoOGsFzXX9vV8wgLIwqRMrdHeZUwu+lbcQvR5GIEBNBj2uHeDiqsMa3SbaT3e7cBuQ1Hh2HEBVdrI/Cc+YETojsmz9m7vIc8/fELTrkYhy8CKMxDwmLMo7Jf39wzKx/WzuTY55Bq97VLRdmrXwTsVExrnMDzvMzu7urkLimpJ+/PvlwwcvXGi70NbWgNEhv58205l6ncpQUs1UqezyJqAApnNaT8yEdLLvXlpITPZPQkI1kssy6xFZb//ZZs5h1MKAt3CdmHKPGhJ87PIcrLZSVodrfqeIkaadnfK8K2ZSqdQU7QejLvvgrm1PGQ7jfLBT6gBoOoOTpO0Gf7wCcFUxqce+2Ldo9qkyaFUn+1sTYq8lk7VfrEoVzZZ9abPibfVpDhilvzkAvid3PPWWsUdVmtaHDv5F0STiaCC2JiYm0Cjl4WmQCdojxoDXwW6CpBI5FVdXa/1nFxb2307o10NZJ+sMInrWPtxrjI5f3LNGfT42nDzZXICpNUHngzAnQlAOrvt3EqSsG7GKddWh9zozKEjk0yLNAmA2xeqmCiVFr4bdhBCX8ObS9naQUx/rl7ewpeGzC/2tMukXaq2y2nLL8FUaqQqAuf0vpFqVHU4oFIPnqT6P9YBUmnY3GOnp07En7B8fNc6KuWhra2oQMSybaRyn+EoMXOP7Oj5YYxABBNbXEZ+3Nrnw3ULvrQl9vGrkjMJaRJJIaGpAEWNAEJ3hcYxVdRuJYNTqYkIIXo9RwVWPyLEOwJEXVwh2AJLIACYHtv1rdBOyqzCGm0rksMlONcDzkM8bXdru4q3sydaScS9ukchK8mSyXx7RXDH828LZ5lJYFbE8Ibo1LfaC/fbOJQaJWce6VSI4m0dzZUW5uHiw+9fhbOO/OBpodHraHCIwzEw4YgzI8DmtXA8DB6saloSnwuFEkpuZG2dYaF1XFWV9Ug+43VYIRGnUDEa73C6c3yD4tAH1m3mbGQQzFBGtxzI8WvSsrs5XyqRnpb711C9LVpDgKRCG9DlWSc7Y6AoPQBA64afLe3zHEg45Wc6hl5JcwQLvi9pgqmo5LY6swsnW5k6nDtFLY78+T4BohGTFM+qW9mY8K4eVxaO//5ptbLyzqamBEI9yTsBWAoYAjsYlk8lEyWORhGuwCwgr7eGW8OQeQ8c5judahpNKbvHNHQ7PQ10GFE2BVIhlYn1dPOnOj4BBylYsbvtpELSlQ0EI3KlXaFvFipm38o98QhMgn9+KVfynmBKJx/3T/rSZqYB1WxGk0l8+kuOmXXvlQjsDF7RGpw7YA2BgTJ5sbW2VTapYoQwilSdtpgEOAGIDu4vJlozn0h2HR58d/f3nZ8/c8dnshQYQx9zGAPHVq5Cwd++76wlJc80ijUzZr0ueTIhqyf7Vi5ffnVOclOQKC8fiZ85M4HBo/NWVaDQ1R+NUgMIyGcdeGMI3MlkORBkGtZbJH0hYV/OBDI5mrNzScp7x+Hmgftzfcb4nX+6jnfO8bWPVFi/WY4GUyOn8e1SnbRwR5rURidKi87JeT7u+u3Ow+9jZs70a7ntnGZk3OpbS6Kc86VKb1Pqzrvr84o9DPz42Wr/43oM//n002xAKCcpcFhKg8WX3WnlPoZGVpLKqpqUwKS/tS6Ezo0D8zAg7KeW8LB+PEwRGzqBzoDk0w6+ngm73wPFtW9DrEy5vmBAO8rkwo0iM7SZXREBFWL41/7mulVQwn8/a8osoOnrCP7pR/GEVpMUoBkGMMiKdOmygeOJhtAw5YDi4vuoh1Z6x5AsfH6hb+xOJR0kjwLpYJH58d9FWBKpwIcXpkfzi7td9rx/lU+R7Pz73+mFbw1epnK9rM8oHqZmq0qIwliWW1u/6xfcgl8vtOiA9b4FBT7FvnVELggC5IT3nnwnhIbPZwMwY0uiff/71XoyKEljEi6gRn+CTakrS04Mm2ES7oyAETr+zlZp+q2s0S/cVu1D0+XQ+Rkfr9VWKiaF1MAohsDk9dOO3n1ZOWAdZC6BFPFbtfHlfIf7Iq8qO3XLM4jLCQBnXFwCO8jq5yRyIBXFR1V96evHwrz9PPPfjRzfP3vlsw1duLDADGqI9Gxs1cdmptofonTJ57/DCyVLN6ARXbKEbht689prHX/7JnQXKLtzdg2UH0umlaX8xWOnIEx4ICi1jgm6NoOvRlaDziWa73d7uBOammbzZsIzmU1uLQ0MDxPhr53t6BsznlrbEmmcFwBgvJiMImfJPf/vJz/dvPGVg7MneYxq9V+wzLYPdjz4qOg2K6xTtirvuusvo7I64KacvJ0zVap3rFrXNVLx81Hj40Y83P3DzA7NtzzYsZbOhQA4BQZ+P46qwt5TQCsrfRLvVTkRVEQ6ffvmee55+/aYnP3lrZp0D2tvhLLM90NNz/k1mwjYDElbxEeM4Z5jOT/iDPOPWiZMmu1IboPtGDebU8lYwOx3qeHkbTd/27SvHK5ngBtqVoUAic6CSm2KrVMX659M/v/LJPfe/dfxuISm5SworxHFN97xUfrtMFq516qVicTvWLXVkEF+Qy8FeLU9yJk/f5Y8qrzc2Ns42XtN4oe3ZZxumV7JufF2HrXuhTTbnWzOyBcuUnGVdPkxv1y9vv3f/9Tc/tzj61JPPG4KnX5CIm2LeVNfA6N3+raWeuBkNgjQ6j55/+lU8lo8GUdDnZdUsDARRf2WezvKGkTcniiPbE4aRE+ioeQ3LxHoWi/R2hh4vkwZ8XryKuyfevfH4a/5v3+uYixhdCDyZlCi1pGNM9OumdE6dStIqjtBkrsymVIqXjWoWTEEKnL92Y/fwzgtNTW1NTc8++2xTQyolEAOPdazpvDldIMuuGSPhhMi2NSGQXQvjpzrue/jea5/sefjr5+5jdHbRQmQDOvNIT1dPT5q2oSkDQ9vy+cWNofhQahkkHIDaZRD7UdC0tSGKeWpr+1xw+tS0IfrVJ2YuA8Ckoef8og1J04xhpugPcARBbA098uSHA8zIiS3CnQWh5kiupfvRt8my7mS/3KdnlXL5dXIFskkEjUbYVXXsfTijVml3rzfVZ9tEAP/FNZ81LH/VtRIIOAvetSk9wrhaWHmhJFBVNrD88kDt3A0jZ+6/6eqHn3++Y+Tu14SkTCVgcxhqfvP43f5z6IR5+5230rYBv22CMLw1TdEMFo2Pj8cr+KXKRl+Ih4RozwTgBlFzPj3Al8uC8fvMuR6zedO8RVC2pVd5kCDAvtuevOfVCTOU8mdphgeUEKvQPPRoN6VO/Mb69BZRFmqSLDUutlfO5oL2Iu9w4bVJMO+4fEEE8X/c/PI/DJpbbCJVGMf77JMm1e1U7Tq1a43orLQRJB0hUDsp0LqjDEnlMpFAG0JTFKVl1IRbgIylcmliYIDEhgC10AJpwkVGQixZgWJCvdCSbpvUtGqzZdV90Gcn5+08fefk+/7f73++M5DsRqFkh0CbOTHdR0P39vf2PxeCfKEkGt2/mJnzqasT81qFdXdi+RcRStIYCWdoAjRY4hGuPieK1by1K68j5yDR3OWlI1V/GAbkbpP4n+/2z5ooGqJRwekJh+mIlzFnXJ8RwsB2irMqwIXoQWO3wiUf7MR5f/srjQQSlaCJ1bXVtZs/Pnh/SEbIFnVbttmfR954bmRd5/KUAFi3t/HayPgsh6+zcdJYU/4tk1Gv/PTtu5+9/O31QKObhM4r3kCgUoGS3c6FnaPcl4zb4asuWricMSry1WrVPM1jzw/eyeFSge7Vk/fWYdgGJ6+YmA1t1bGnGb0qO2KXRw5SbpDLw9wziSksrEmcaTmUgAWUaS3kQCRn0mOtuia+J5NIBDq3U4klyiKRnJBcQoeQwYQCO6eY2PXz1n3BaWhocQgM2d03ewucwtefP/GzAEctny6MjPNfHHly5P4JZ78wm1LnuJPL+bb5Ov9ffOmZWwPRckDEC7T6ZV7QG+2CnL2NQgcF7bMafRfxKpa1HpFRezz14fCKldpb19m+2mCKjlgfvyjh6QNuPd5U5X3SKzlXfmDSC8TWmhyRkCYxQxsp5xUXdxAkzkXiBonk6Ih7Vn/AxUwHJvcFiwJlaX3S8SDszp1X5AmZHXSFS3hkiI+k0qegUMasm/H3x1YLzNef98a+/OuvF050q5z9/RdGFvY5T361JuCa6lPWhwcP67/+Wb9mXFK0K/IGo8ViN1CJRLkXe3v3MyGY6EDsbrJmsKrYcxqeNb80Oucl+coh9+zIs1uFPR0RwXa2DdkrVe7AkP7vzFE0UYKdtEoVjzcRiQk72hFgLW45Uoo4uDkDxNZkAcnQrxIuks3JJWKAWgRYLGfKwUhuWO/1YoC4t/gnlpPBP5icpZxM6HJhwqLs+ydv25S3n3h+YWRv9v59FgBvKMdYewt7zDTy7VklWJ1yDL36wb3fWA+0DEcFytA5r9aJBPtRO0H0TDISJQQmr4hn+Zu3bcFXND6NQiOqaVBGiQmh7StmUHCx7upjixZLTNU82Plt7P0Xfjvdjqvk/61YPRkHyXUAGdkQboqUk0gagdTN5eU5lUGo4+vS+n93ADHwL4XI9adAIysOw7WyJdkiXLLvjuTptBgWnwLfrS++LhPc5uy/8MQ+y6bkz87eVt7e5xP3lAVbRzh0cZGjGGUrzn97RwGv2l//ci3RnnxlIAB5vZVot5jt0WCHcF0wDtZF+jwKTQ1q6zOqqlEknWMr9A++GXL14JsM7dJdRNUwANI8XlO6JHXzFzYKXzC2RFPTxK2qMznjVxCSAJyGNF4jka43kZVq4peJg3tf8dd+uGweSSQOauy0RAidBkAcJlF3BgwB42N8Dss0RMjcIEtngwn4q9uc8f01+yxjIvnM27UOXPv5/t4sYqBYAsUPEnDwzVu3No8PKBS297K8zY8GgtDh4aNIsNHp2TMdV4akbfCQwB/zOSWYh/D6VYZYxa8QcfnuIgy7XOu9DObq8NZNNwpD8261OtMOgWM/E8h2fdvaljYdcpUfSUWiUD1HlVAmg2poFC/HmDwTwjK3RJBtXnJN7nB/tSRYLfdJuZwi1jvidNoE2vYKhbcXWZyF11kCtNW77cTTawtjLg6HpTw5sev2h4b2ttwP/336SUTBkNytV555a/JcZPVgO9yrQ/bkwPnu40MvXCzqk1mCpJMRrFULRs8DFtxkBxOHvFo8phEZ26rcfyiQCRFCtJVKpYkIYJrbrVm3l8wzK6V+xBAPVs79zZqxnmdPBLOVaWvaoG9wkQcIjqenI1AkSjkk3NSZWHwQaAFhAC+M02VLxVODSmimSHw1Bgp0OtuJjhHxWWZQ5urwx/HF90DlBVMh2JezDCufUhIBR4zabDqfVslZevmtT155eerDX8z5qHR3+MO7A+f+x8vBfqvYZfANx6LR4N8lXtmScpCzBVi0wt6tmAdjRmk+zz3AiHW7UMwr9pR0gtas+M16TS22bF6O1/JzsWJQFDdoOsjufCqMW1IresqrSMPCq7R34tIT9EudOxKaS+JNvcEEEKeCj4ciSW8ukt3Wl0rrW18vcIjTfoSKEL3xU7JIEkp69muPEyUyAgQ/Ygko0oAjLHsvrFt3mf9j4Ss/vvLKt0999tSd4emlmdHPhkcH/Mu7QR7e6uB0A/dGSkl8V32IFIXwRSZbjwel7e28wrgSX7Y6VKL+UIermTCraVcmnTpkG9kHKvaStjp67Vm2dHxWqcI/X/GoMNb4n8dOrjimd/yQjDVVPFe/QcJgSAguLgI3FPVgxwTzN15NYxVVq5WO9Du0wMYB9UUPlGz8gFE4VW6tX5CER9RwZjIuWgaGUjiVSqEC2lQsgTRud0bluZduTU5OLrXb2uPNz27dHR049B+KgkXCkSRdnQo0F28EonNJJBQNnm9vQzzq1CCJzVil01JVtmc35Y/N5mPjkjaQyGZgR3z+LKdoS7XtGPSQ6QOS9vWHw4q4rVB43XXg5E54txvBWizoBEIJp/7tNdYHr8/a9l8QH6z+Ca7ufUARQcgi0ZcikWaaRrLJhIGwrQpKCIVbIHkH8ohakAoAhwjOvaMUY3NZaWEo24Gx8KsP1WpL5fc370yaY46Hdc31U7devjNwXvEHG0Ux3UtERJXYXVXWHnKoVDVPLA6QFpzCfNKmWtNWaKQxh8c/Pcyc4nppKp+EopSnG2xEkBBXGi/zhPDNp6eaD3+f4/n6vQuimCw6ph/hiJiEDDhFiqT6extb98dpGmZ2QgI7oxO0zcOrXRYj5XK0hFEtJ9I7WeT00oDeoU+RYs8NoE/TPVj2Nn9V4EuHUA8I1jMovbHVmlvx49656rC5ZfpUfLm9+fLLd7QDleBhGcr0i67k7qO/Ayul0g3mVFmsHqslq9JYpbyJecXy8OCxNW/cHKy2jYp2XjM3107YRYPz+Q6NFC1OQyrtSckKBXvs7zx72vj4segxFEn4/bx0QCpVWzAB4A4R79230RbRnBPRVJxZO1kKL27gokotmSy3yo5OQ2/BOyc63Q9oH8j1Ix3T6dYC2lP2cYy158IuE+sYKnRi44uc9W0GNaC+WnR8nAKEunGhSvvRO8aDgUDw3AsRLcavgQEN1G+U1apaPS2ValQq84x2cHnCqDaOTmzyNJujdye1Zm1bq08gJNjtLi8ta+uYxXMKAkIYhROnHs+jXYNqcIXN5p0/mh59ZDweHayIuJxXBcD+E1uubR5bb1CjsV3IAmQoMXPvhkAJL3dxEii2kmpRmWK9xkqWuWRKzy11Tvgox47SrPGbG8TRSeCX3MyJCwwfzlS1Gp9UozYP+nZ07/MBw/Gb2uR/A4ePHx0m7Z0OXXh21gLpy0E1T+F0+qQxD29pdHLUrB2eN/94van1Gkc3J380GzV5oy+SZTA4fq2dOfZsWwmbspfpdDseHm9wVGEcnH7E5kGiwdFhtVUauGrRpVTKl0QotVpknB9s44ngIeSkFsdWgSgNuIWoHCnRmQziLV4QrobCky5HWqUOl17H+hhNpbm/3uvhFkFTnhGMv7CH1tvW9oRx0Lpdn9HUj8C3wXDNvOm3XjNK6/dGLjKJrv1Z244rurs89/cwEwY01968O3Xnw/nhqSWtuXo9wTNW53/crFYHJ+4Or7SP2Zpme/734fyxMUVThLvUIvVstnGYQUr/7mM/VJuYetccDjugssXirGvY/qZq5XCCzcsbIjyRV51+W3l7/FNAToEZ1CUMJciWT/CXkutUdZsiUUMfsOizwM2NjBSHsRO3L4I4nPI4q9DxORxNp3ZGozo6szrPPhW4UX11qnr9zrv/t2i9rwnUYXz/wsGR7d5UB2fHgrvuDtodN4vddVJ5d3nUIEwFsQ7Z4Y/IsnxhJUvGDH9BrNRXMjfabJOgTR0iFLXNCWuZFpUQNGHUxtibKOhFj9VXnO427p6fn+fzPN/vXAN8Qb3z2dLoia8+eOIsJ917UFYRhAgqcjgR43C8pMiRYLirxFM7ruY4yGBkFEXjKG66GAzTmLCVda899tFTy/OokBEqdY+Q7WRWXDJByBfvPvjqxlt76xUIQx/DxLWKmnP9LElZ4Yvnn3j5ie/9iZUXnv36pSeObg5b6fmXf/VlU2pe8BUKRbf7kw0oTy9+7NzddGay27uuYO2HrUJ657n3Dhdd7532BNdvMIdc/3KcXIghJWPu7i7fL268/OkPPzy65D/3nvpyaiQSZkwC57h2bIjGg0HN5K41Mx52VSPdpoWRRIlI8jzPnqMorog0E9peXr/Z3GY8q4xaabU+Lu9teavE+PQTmFg8sfH5sz/8sAzZpnp8K84XDrYDKnWbX3nzse9f3nrihV/ODh99au0g3fpiczvrK6gNS1KpSvqHX949Pv7i+Md1t9P9Xnq1ctLV8wUfk/559eNQ8eAgUFWPvnzuIJE5b3b1SyOizkXp6YRaWl7aqIyqgTxV6PjUuILTuMjRvM1ORJulkmliOBuxPONxhAmr6JDQk6TO8xij0VF6GEV9jYYne9ZK7FPSqL6dKN8U+omsCVFdnNT3V53z7/6yNSOH2+7Hfnn33Uf81IraENwffLbrP/6h5d988qtHtopPPb5yRfk6aoPpdKTs2caF+/DQX785cq58MT5NrG73Dmp5TdtZ+TkdyEkB145r5+fTRC4XT+KReBxq95TGJv3GZJK/zTdUq5+VcgI6HQ65gcjpNhtB4NcGZyqKhTLodXfcjDCChsWbkUhEUdgSMACaQ1udPoaqnVbxpFB/rpArpAuTbGF1/vGXnelHRrVcuvDjI788MX+8ceSrBVKJteWQeus7XHvNvbm199SnG28989RrLy4dUfuhtE+zrMbthKrPb+4enuyniyu/f7feuPWvhwpXVZYNJp47oGqST5VWXZlMNbCbwXmSUzD0Yo6m5X4hL7Myy2Jyg4lIqTuajg45Th8SbYSIcqJBmKgiM3Jciwc9kA+KJ+XKeLSunlTYvIZHrHBEUJXiSf3ohmpl662s/8TX8e4ctRLpVvZisZAOVSpPpTv5BiP5fJ77TPHXREf68YfjtU332tL8x0/tzc/vuW7K5cMtV4SZ5O/uqezFpnu5cnL0/vuvPRgKV9x1zb+3uhvRlNWE606zwkLRn+nkW/0o33U1WWH5lzkFazTuJ/cg+ZRAOXw6ZaM0i+NxnSB40sZHhyJhEABO2BRTUBOlDZ3H4aQ6LuqkTssyxkTyAUpNKdl6PbHtbdXLh/vuVr81ymT6nbP105OzYuDkqpDvd4TOydGOJt1OOpWt95c21759a/f4kXd/2di4KSaKxcSx07m8Kp2q/YYKzaWvkVj//avP3n3iDXdRcKrlt6h0mqrnpEzAY/nCqObTtFxIFRNLx1Qn/Up27o4NC/f39+yUnYILsOl0OozSgE9RnkjagKJw1/GBbvC6PoyWriNdIkYMOJ3XSUMXOdHTUPLZPhaIe3xC4eimVS8WK9TFU0v1gnu5vn/iTOROOqmTLNWhaoX0ifOpG6FcrNTPFmEi+vATa0swV68f3uQbQm/zyO1sdVw+IQ9onHJ9slg+cj/xzMb8m08843xryyfXV3eZRvY8rUV8YQYdgkHDi1Tu8Iy61ZwX/uYcCydh7vP3t7esgoH8Q0hYWhS5aHTII44FO4+jES8XS8ba7XYsZhCGrg/Ea55MxvQBJgZrOYGqeyZyRNBSh4c3/swjm4eU6loNHb7oXHQWaCsRcvYkq0B5vevusosRilTZOaLeOto+PHOvPbIYqqhLh7nE5qe/XNwIqmwxVqMvUUt/bvbcR2+t/eD3PzufvmlJvkZPvaqfucLKmJIs1IxGFdf86peJt1xKtOgV0DkMtLhjsbspjaIYaAB6THGMpnk+SdoWSB7zKF0jRtrtsPVk5wmdmL1xSH5d1znTldop+NRwpppiJL8P6PlWwdkvvFfLHq2719Z//aZXSxW8B9oQHef+2OqostzoU1Jifp82PamP393zdwKyuv3CKxtvbfwQCo8Dpz6l35daX9S8o8rRI5tnxdxO+sjv93pXsuFiE1W4oFwVAE9Csqw9VNlxvfdHE2PiucYMo6ZRAoN4Eoc8MSR4fjilWUw0DB0iqqp45DGCJO0IYnfYkBhPIkkDUoaIgr8IEQu7dkZhb8ZFBSKq6qsUgZps+yqFiVrce+uZzY/CygklFQB+yoLHp4T7+XC/IXQqzlzk78W95bWLloDeStJb7xxSJ1unDRR09jT6E8CYTC60dLxytvrRF3D64/2Pa2k0bzGCB2VSnlXVK3g8zYxXiri2v8mZIu8vz9FTDGXvbu+meDSZnAWRjRzyIo5DcicXFng92dEcCOhgt9tsCIkg8GMWTjoAsagP1UAmE4nkdnoJX06RvNSJJKuVMmXJwvH657sKS0tCDwphq1g4OZaoWq+V9knPLtU9noPn3Gfl1gSVrcqbzzmpxi2URVnxuPpqoy8rQutwecvZo75YfuyJZ94/evFo25vTUElQU6fZ2pGriXqC4wP3x/7n/0zhOI5N5oYYdnffuZ9OaRA76VhAgl0yqdNRnrTDFixIj7EOx0wFuw2B9yV8gegikyRkSYwPghrh1M+flKkM5XXVfGq5Ezreh/hanT+m2Gow4KXqhZwv4a+PTkZ5KGit3uHxmdcjUOnEUbES1hiFOjoKqbJH8eQVVagxjbxm+aTe/u5zVx2f+5dfPv3wjbX3N0NSUXMlcuFcKteXWdMElto7aa1/9gLDszQvzA1n1fd2OiViMciDBdukvFWNiboo2mHvUhSvZ+Z/wOG4dNj+XQszXUjHJbwQsj1kI4Fe5ov5j4GvFaiOtTMOS64vV3yS8Min85iWS0DlXnrj5LhSaSW26ieJLefuzVFlNFnd3qzXR6O+JEsu/zsvhO4tuhO8Q/udjkfzMHLWq+acIaq4v7bx2Bvv/LK0tU8d7SdcmbCsKULY5WmGafZLHxv++O1QQ6GTfHRuCimN01GCt8F2xgMPGNnEbsiImZGBHfYGkGZ7AdzgWIBlQ+CLw7HgsOsxG+wZwOaBfTDOZM4zi4+8++dewjuxyktH2QnEryJ5ntoo4OzZ8uaZtF++8ZfLo8Nl9/Lent/50083HcZ9tO4/GxXz93eNTFnQfKd5WmAURkaZzq2QV7O+3Mpr/t1Meu+RR9595ZFPFm9Cq2GTYVnaVFXVYxKEeZpS6IjWsBRZ40zQAmVRUzfsJLIAQ/QFYuT/sYdccnyJAy3gwgPghH/FhwSHr3bETgbD96/P1HDEvTD1293e2Xx2s37iTTVaZ6G6qinZvOw7frbfnAbeek5S2eIWDIELS2v+dGNx+Yc95xVU8HDaV+6jCtpqJcJ3cjceRyspJojeKfeNMOMrpFe2tg4OTyq7i0/BBuDhymJZcwVV0xRFbEjQJhHxWrIqs562XefVaiM+F8Xw0pDniRhsaoB9bWYhHH/gAc6sNOHjX4uDAjYbuABCbGEBlBDjqdS/OzhisdMQsqungtcnlHM1qV9IuC92ZOtezebOO5MwKueldL6R76wvbpVvbmA21XLOb/3qYlw7rx3c3rPNc6Z+0ZMB5wHgUUszTRqVI4pvdHWa8aVr9Yqn5nc+9dTu1n5npcLE0yqqqdZdF8NwyCEtxuUCl5dAWM3ocC46JDiCn2LEwn9R8oBNdzzgqE7qlZ8hwmYLUgI0AT9AWDkQwAAlG5hpgWSYYsBzn2/eqn2fP9RrWLndvRGjRKRi2OWrWhAimsVMJWp5q3zcolTh7KZ8L/XzWCORcJWrqHfL+V7Ir1j0rNBiqIx2UQuFirJzGqoJDWlSELIw311eDQIMZakp0Lhx8C7cPA97iKFoczxAmnjSbnPYeX46R84QJxalyX99MTsawhmv26Hrpq7g1/+uzd6zwIJabvAKyzLmTAvTOq9eVbZ+zaMaeurflfq3VrF1FtbMW5WJuFJAFVFMUyfq6PTeogpCQy7f1LNaXqjeh0fAhYK90MrFYhDFaOA8BM5WwwFZo62GBWdG398tZLIF5/FNJpQ6j0MsY77ETlhWBlC0HDaAet7muCTG8Rhi2JMGLs8tLLxuQxwITdrA7DOJQXADD0+qaBtEhfXvZSgjoLYDKaHiUPP2uiXA5OtA9Yqq90KeiIlGWr3AbX9S2Oxp0ztVHTdxwWQZ9S4vo3Il7+sIgk++L1ItFmVvpQ5FSfVs8b54UfWw9FDkhjQuZ96/CIzNuDlEU8tr724JnaJUDshm79cdDbTQq2OMNYnSpWO2+L4yuA7WChzPKbe0ZWXnbAv/ignouTBbjkFwYGBRlQqDEvACTf730ew0VVQBHDSro7PjRBWVVf9z64yU6YVLrCoJTEQVPA1AjVsFR9FoSfOONhnwgqeTl3z5RuPu7g5F2YCs3PomWannO8nWsSEUWjoaFaP07cWbT19ZbNfDhNPPvru07ZS8xSJrysxVLgJ8IdgL7oQi5DUEEsQ2gnDAssPqkIaMku8pYW4m50xMG2gAcNp8r5KdFE9FwNJ/10wLWP9qcolYEWj8UNi1qUwYLRI6rWZcJ4tfNsdM2ZvX2FvFJ0Grgg/B4koAFW5pHlUsDdqvVetOnrKawppBVM6q6l0x5/EG7qDtFWmgO8DbrJVP1kcWhvYq2ZUf1lvbi8UsVZRU9PzLTJPUTBeHxcWSIUKZgtwkSQSqGMnHx0wwCqZB52by/acJoOplwX1yMgpdCbZ/PfC/CrD+VWghlrOumZKm3Ua0/vm5j5EhXA+9kuatJVwMrsgwlUPzJgv0XhVkgkV1VgM6OZlIAsbiKA1jCBglQc+L31P9UpTnwZZm0BOBhgCVcqoKtQzFzmC/1Z87WpQCo/3eTlP2PVsmrDyQUwzrdkm7A4xNJmdaRM1woJhjZBYdD8AXcP2/0pBMav7MyD0q1OuBwQMOgksCtv7rhzZ8OAyOMDUldW5yqozicmjHcz2Ou97bDqRyF6M+4FFUcVoyhmlWI4wyFh7FDC46JEmzKdNYzJZkaUytPrfjMu9kPIwTQHFiw+7iz6cSG2WhvblDNYzlkfOT5fm3nn025D11SalqzhMMnXdvuSRfSpYGHNSrBxwIT/A6x5WCEnVa1TACw8S5WSGwzerz67wSuHovdEBVRuVy4rQ0qAjeoGGfecLRjYuDgSjitMfjKWE6wYkIicVlkRs3y7++d1DClTjKRvHVIAY4laf2q7iSwvQoFAEdp3E0RoPIEAgwBd6seDXZiqTw6DDJk/Qfzhf2ioosnLQaozBB8rjIuN765aVfft/J1XIeEwt7eolaLwC2MCA7RARIXIzQAXqvdRFIWt8yDaQdM+agINuToAhwP7EwqpRPioUyFS4GBKmU8Y+8JcQGfArBmesugqu3ChYEyo52jYUFO9BBneaxJifiuhyJE7h1ZSkoK+q3k8G1ONAxHJcZDJTIJ+2kDcxIsqPNrZoHw3IplsaBbyaj1cOtXpM2Y11IjimbLCVd++9urP9wBOOB1VoTx62d3dCB77Qv2u2X0D/b7UmzpMkYkQQpuirUHh4S5dIx94DDDq/ZulyIFl37h/uVwr2QEKhMz19RFYOItWclbxgZENfXaByjQWFgU4j9Eg6SiOdV6F2JLoT9+bXu7dB6PG7wHAHcF55KdAc0zWHsnQHRTHImLu9TBUrG8EgKZmymiGNR3BzAP8+K0Swe2snu0i8bZaeTWt39yL0TjPJTaeXLZlOVcfM6iIsGZ8RErsTgNJkkoNEMSKhILkD3NjcTESoJ1D5w+enF4vreWTodevG1rZVQBgxEklPl+u+mrLlA3JgBwgN6ty8RSDDHJUJeB5OkYQCXjHG6MUT4KADGZDyr9W3SfrkAa+bkywcc7RhXyspSR24qMhPPiiQSI4G7kbPOhYyRZAyeDzcdB731TC6dCK08++tpBHiqlg0SA6vUNbmuyzI5BAJIxEURRNGD3mYgEhxw1yVzDsQHM5CIHY7O26KFzcNHnttxzi8/tZ1JLNa0aIzAGoXT965OLXig8W+rhCCXdnLADx2IA2RA2lA9g9xfbaijbULEURzlQHwHGKYdg1Y9ZrcB50+CoKKUP6xFMC72F8chOvzFSEKUI7O+BQGFwECO5AR6v5Tro1pt58obxwm02mmYBs5xXDeuja/bA91mN0qDgd5uIzG8220OSiUYhXNzCATUzJ32yzZJtrlcqwB9wNmLh719YPU+11iZWiM1HlYIcASRBBOKNrgFCZDdntn/L9EgdDFP6+DqWAyovghWMsh221BKOAdtCsCJGBX1WBJJEhPZ7Op2ELvd1mNgPjsy0wQhoYExu4w26zX5oMhxJtYNjgdwI45ROIAmjhjEmfM40Y6Bqkm4YrRjf8XAJbE22DTWTs6Bjww9RsSStjZigMFggu7cXV+p+AQGvS8UtIl8n7XkKC+WdPGOUWjRQBBwvw6P+AveHHeNw12h99DBRwipi0Audd2cTd21QCAYxzERWnSRJIwkhxtElJ8RfDJpI+3/5gLArY6Ag2N0BIUiCEwnCTciOOiYYWahG5DFbcIALAx4xsF4iQMPitxf3MAwYjqhG2AtwxD1ORLuT/Oz6ERIA6CEvptk0353LcjQ0ftiA7WAZaLxAYajIo1jOomALeIaa3aDntz5uFTC0BIMRNr2GAnaieB8USdEM5ynioyny1xzhAjwPiRAMxHrKtgtC+39bL7CEyQBnzC3NkiIZ5gZARqDZQ0Wx+LdLo6DC1AzWIL4GZQUb1UIhM+vcUIE0XVdhyCdhSl4YPY8Yw4qDgpTY103kgRBwhOsTsa9CocPIhrAJh6veiPYoMRMBAENVD0yHfwjceY/gCNRvzp/Xa15Ux7PoCTO7gyOLt3Nhlo0B8VAMZuaWeJEsGlyyCf5YZKIglMI6CppmgCQ5WGJoF2UT+ogDcJDIEZLVr9aW91+r1JN5TqSZ4zK+LXZjafgKRHwBK7D3ZKxmZcQyGIkiQAsGIP4+T8zEEbdtILKmQAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card.json new file mode 100644 index 0000000000..a37a2032b4 --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json new file mode 100644 index 0000000000..0dbe99ca95 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_flooding_level_card_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "horizontal_flooding_level_card_with_background", + "name": "Horizontal flooding level card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest flooding level telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json new file mode 100644 index 0000000000..465fd01ab0 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_flooding_level_chart_card", + "name": "Simple flooding level chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical flooding level values as a simplified chart. Optionally may display the corresponding latest flooding level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'flooding', label: 'Flooding level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'flooding', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "flood", + "flooding" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json new file mode 100644 index 0000000000..6377995405 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_flooding_level_chart_card_with_background.json @@ -0,0 +1,32 @@ +{ + "fqn": "simple_flooding_level_chart_card_with_background", + "name": "Simple flooding level chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical flooding level values as a simplified chart with background. Optionally may display the corresponding latest flooding level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'flooding', label: 'Flooding level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'flooding', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Flooding level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"#224AC2\"},{\"from\":1,\"to\":3,\"color\":\"#F77410\"},{\"from\":3,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Flooding level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"flood\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":1,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"m\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "flood", + "flooding" + ] +} \ No newline at end of file From e08c744d4f997221e831f0d3ffa7d9cae2d745c3 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 25 Oct 2023 17:44:56 +0300 Subject: [PATCH 111/117] UI: Outdoor Environment: Illuminance widgets. --- .../widget_bundles/outdoor_environment.json | 12 ++++++- .../horizontal_illuminance_card.json | 28 +++++++++++++++++ ...ntal_illuminance_card_with_background.json | 28 +++++++++++++++++ .../system/widget_types/illuminance_card.json | 28 +++++++++++++++++ .../illuminance_card_with_background.json | 28 +++++++++++++++++ .../widget_types/illuminance_chart_card.json | 31 +++++++++++++++++++ ...lluminance_chart_card_with_background.json | 31 +++++++++++++++++++ .../illuminance_progress_bar.json | 29 +++++++++++++++++ ...uminance_progress_bar_with_background.json | 29 +++++++++++++++++ .../simple_illuminance_chart_card.json | 31 +++++++++++++++++++ ...lluminance_chart_card_with_background.json | 31 +++++++++++++++++++ 11 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json create mode 100644 application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/illuminance_card.json create mode 100644 application/src/main/data/json/system/widget_types/illuminance_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/illuminance_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/illuminance_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 64f427fd69..1d30ca6b8c 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -155,6 +155,16 @@ "simple_flooding_level_chart_card", "simple_flooding_level_chart_card_with_background", "flooding_level_progress_bar", - "flooding_level_progress_bar_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card.json new file mode 100644 index 0000000000..d07223f469 --- /dev/null +++ b/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 data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json new file mode 100644 index 0000000000..1e70bae331 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/horizontal_illuminance_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "horizontal_illuminance_card_with_background", + "name": "Horizontal illuminance card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEUAAAAWHB8VGB0ZHSAWHB4fISIgICAfICHIyckXHB/OzMrMy8rSzsvRzcveI0PJycnVz8vm2tDQzMrZ0czOzMvUzsvk2c8WGx4ZHR8YHB/X0MsbHSDOy8ri187k2c7LysrIycr///7e1Mzb0cxDR0no3NHa083d08zY0czW0Mzg1s7KysodHyDd1M0hIiJER0kfICEmISArJiM0KSIvKCTY0s09LSTb0802LCXi2NAzKiQyJyIqJCD//frdOFQ5KyM6LST45dXg1c1AMSctJSEnJSP87uAvJyJGMiY7LyZONidxcXI3KSL25NPd1c5XUE1ISUpENClTOChDMCX/+vT559YtJyMjIR/q3dH+9ez15tjz4dG9vb2MXDJJNypALiT+8+j769vp3tXg08zFxcVhVU5dU03RoahnWE9xSSptRypmQyr86djl29OHh4dwYFOYZTeUYTWtbDKjo6P56drz49VRTUuQYDV9UCx3Syr+8eX97N3v4tbBv729trKenp5bUU0wMDDs4tpqW1GeajuOXjT78efIwMCQkJDVdobcTmX/+O+lnZmZmZnYTGTKfTh4Ty1gQClLMyb+8eGtrazWo6moqKjwuodaPSnv39Dt3tDMtbmys7OtpqGlfltbW1tSUVF1XlBNS0veLUvfjUWGWTGkZy/UuLr91q3fj5eMionWYXX4sG/aiEG3cjWCVC7UysK2trbPipfbQlyObVPSgz07PD2hbTzAdjacZDJrRioiJylYPCj27eX06uHx5tzt39LMxsPQwcO2rafde4jUa37dZHbuqGhfXVxtWlBOOiv/6M3az8fYxcT+3bf+y5mVlZXUgY/bb3/vsHZnaGnmnl72o1nRkVaGaVN5YFG6fkencT7ZrK/9z6KelpHYnmjGjViVclXnlEoyMTDevrzMqa/ZmqHQlqD8xpGAfn37uXrZV23KmGu8j2a3i2Kcd1d9Y1GudUIxMTDjzcXgtbT3yZvlrHffW2+xh2Gge1rTzMfRs5beqHfLhUfRipd2EeMNAAAACHRSTlMA7yC/sO8gr7sVXXAAABGASURBVHja7MGBAAAAAICg/akXqQIAAAAAAAAAmD06VnEbBgM43qS36Aki41cwwbGMEHLABp9RBF5CIJ563kuHxsu9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", + "description": "Displays a latest illuminance telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/illuminance_card.json b/application/src/main/data/json/system/widget_types/illuminance_card.json new file mode 100644 index 0000000000..f118b2dd61 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/illuminance_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "illuminance_card", + "name": "Illuminance card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest illuminance telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":{\"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\":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\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json new file mode 100644 index 0000000000..7cdf502d79 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/illuminance_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "illuminance_card_with_background", + "name": "Illuminance card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest illuminance telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"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\":\"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\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/illuminance_chart_card.json new file mode 100644 index 0000000000..1ff8482347 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/illuminance_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "illuminance_chart_card", + "name": "Illuminance chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a illuminance data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'lx', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'illuminance', 'lx', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"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\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "illuminance" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json new file mode 100644 index 0000000000..bac5f3d382 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/illuminance_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "illuminance_chart_card_with_background", + "name": "Illuminance chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a illuminance data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'lx', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'illuminance', 'lx', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "illuminance" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json b/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json new file mode 100644 index 0000000000..f90aca3d94 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/illuminance_progress_bar.json @@ -0,0 +1,29 @@ +{ + "fqn": "illuminance_progress_bar", + "name": "Illuminance progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4OAAAADg4ODf39/////YGDjg4OAhISH29vbj4+NYWFiQkJDx8fE9PT2srKzIyMjdNVF0dHS6urriUmkvLy/64ubv7+/wqLT1xc2enp798fOGhobsjJyXl5faJkX309qpqanpfY+CgoLnboLumqjfQ13aJkTV1dVKSkrCwsLzt8Hc3Nx+fn6xsbHx2d3wqbTkYHZmZmbgRF3eeSPoAAAABnRSTlPvIL8Ar7DvmsykAAAEHklEQVR42uzYXWsaQRTGcW3Ckxxm58zIbKchUySltlRv8/2/W8/oipYQt5ALn8j5w67zohc/dBfZxd3yy+Lxs3e/vFssF0/49Kkx7hU30JP9rHATLW4F8ugQshzClkPYcghbDmHLIWw5hC2HsOUQthzC1gXImBVBBmCQgPcqDRxdgAyymoVsZQeOPgjBiuXx3v9CxmiYVdz2YyybgP0JGjMQm8aSYYVWYke3pu2woq2/zwqxtIBT14IUmyBKtiPVKrX0UzjsS01JZAOMte5ERiDVVEUKEJLYVutbYsMzCQHkVW2WFBtpE8SWQ63ATgJWfSX1rSpA2Q+qajJE7thjBJAI5Ol0hABIAktDkDRNOkuMh1x0lAKgJpzHCwmDWBOkf6xv74tyCKeYIUlWinOIHu/OTV5zD6euBhmBzQykG/QcglTV/EPYXzlQnHUlSJOUY52BVIl59w+kyS5HSX1ScksEFzuKSJ37RrZJpCTREwSGl8FetYgNrnD7fZsGzBf03SW1wdv8369D2HMIWw5hyyFsOYQth7DlELYcwpZD2HIIWw5hyyFsOYQth7DlELYcwpZD2HIIWw5hawby4/n5G459txlYuwj5/fJgfZ0o6z57WYOzS5D1w6E/e8mvafYTlF2A/GW/DlYchKEoDO/OARddXAhBCUEpSVy4mJa+/7NNHK0MjEQKQ3tL89PS2lW+xkS1JDu4M2kAtOTNwgqp8/QqQCYyAHA9RwBX0gLotE5JAdKSLXKGBNAzYa6nQGMFyP3PFwrgSIO5REJjBQiE4wR40gP2DjErJA5QVQlihex7MmAHIi1UVYI4z7nx8u6QGxnaKGTch0wDMGjxlHctD8AJR7cLifl30bIZFyCGtMhFsv27a2UIzNmLg47KELfOTASWy+L8mTaI7fVc5guQK5dhBnICwnLUkWGDQEYtE3KwRmS51xL3I5ABnZB2g3gxWpZICYLAtQm5M5c87hDLi1VzbpUgaIU5s47VC8k+YoNIANSs9sMnxMH9PrLQ2qc8s79PFaKtCtFWhWirQrRVIdqqEG19AMQaPr301Rz1OCTxBZnmsIchfElN7lR6PQ4xfEEpj/W/Z8QmPj2zrJHT/N7/0nzwrvVmVYi2KuS7vbtncRiGATDstHcvxSUH4TwIihBkCybJ//9390HmQtrBaqoXvOvBg0Z5KyDeugOpvRUal+sIiJnJNtB+iKhgM03LuiowVgZj1iyL7IdMNyjNv0QUUCEv1BXGYT9kGN1Avv9fKQHxAlGBhfogRJbMbaJpG8RmJmM20Ot+CEV7o20b5Kr2J1j7vvAAhJzxkmwDvfdmf60C4q2AeCsg3gqItwLirYB4KyDeCoi3AuKtgHjrQJDEIbqk0wFOT8PXZ+qSl+s0TyS/jHP3cXn10qk7/wALYyfOKq+pZAAAAABJRU5ErkJggg==", + "description": "Displays illuminance 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": "\n", + "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: 'illuminance', label: 'Illuminance', 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\":\"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\":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\":\"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';\"},\"tickMin\":0,\"tickMax\":100,\"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\":\"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\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"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", + "illuminance" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json new file mode 100644 index 0000000000..47877fee13 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/illuminance_progress_bar_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "illuminance_progress_bar_with_background", + "name": "Illuminance progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays illuminance reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'illuminance', label: 'Illuminance', 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\":\"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\":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\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"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", + "illuminance" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json new file mode 100644 index 0000000000..831ebac2da --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_illuminance_chart_card", + "name": "Simple illuminance chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAolBMVEUAAADg4ODf39/g4ODg4OD////g4ODYGDghISHj4+NYWFisrKx0dHTx8fHHx8c9PT2QkJAvLy/64ubri5vaJkSfn588PDz98fPdNVH1xc26urqCgoJKSkrV1dXxqbTiUmllZWUXFxfnboLzt8Grq6vumqjpfY/kYHYJCQn309rsjJxDQ0ORkZGBgYHfQ13Q0NDAwMD41NmSkpLgRF1SUlLcNVGnmCfWAAAABXRSTlMA7yC/r1EOHTEAAASiSURBVHja7M9JAcAgDAAwytEf/u0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh+7ddMiKQyEcfz0SFWSysshHtQGvQndzQzLfv/PtqXdLLuY6dNgR8Y/gVCUl99B9ITU1gmprRNSWyektn4A5P6JI1WGCIBrXu9nlwiQhXHYNma8vzLk2j+WZPHM0gtIh/dXhjQ36ema5Y4txHug83q8vcBb1umiZ5mgs6LYsu0EEKvbZSxC94BoNBFNv1CAOIPlMmloyQxtEoT4mDxicq2Bp2CSAUIylNHR0AbBpn0gWR0qkRcQvZIDU7dCRghlRI+O2CspEywxXEBwurLYtAMkz59uhcwf4/wKogImu0IcQBEXF8IDYgl9gCY0GKOrTTtApJHbAyLSbCHD15DgxP8HERbqvfeMTTtANCFtupfekT4xhzJE1BL/QvSS0cAMLPFtEDQTTSNKEG4pDWWIKsiQf0KWqeXleTLvgyDN8w3lWPBVwoWJi4y9IE2u4Xv9DZCP628cqR/w93uwTkhtnZDaOiG1dUJq64TUVmUQn2PM/vCQnGgtxENDeCBjGZBupMDHhXBIHZ51beDDQkLif1RtkINC/rBnRjuqwkAAfZpMC6XQboUqChtX1+iDyc3N/f9fuwPEiiwEyBoCCedBRsPDnExnWsFnJ6ghWbRQkdCDF4TiixTxmWy0jBKLFAn30CBih0WIHPydbOsQR6C8BYhUW1/oP5IOY/hBxOR8RORGpBvekqPn88Npz9Kg2grblhGVZC4i3GNMKcYEb3pEjyBMfT9V6tRaNibfIKK3SS2+uvhs7eA2UCoKSCdtnDg4E+6WT0auKYdW9iH/rcjNIGKuy/iaU2wzqPhAHHzmiPnDyIMngfu97xE3Vy8mAQ/Ginwj/qP0TWGiDZrcImZjRSLmstgxHxwpOwyv6WMeBFKoonhCjhHRiMfS4BsAjmjJJ0czViQU4Nh7tUkbjToRh2Ljb8hCldeYRt1wkS/EKxTJ3wESxDPFW8TtU0TrhMKELgP36h2LngsOxtCsxIlUUj5cRNPlgrkzIJ/MiRT1IYVbcVsnXvy6zgQv9VTMYRzN3pDCzcE+kaRcVLrMfVtVBxA/ahUx9E0j3dUJZ6dGxzBPCPWWt3BcxPthzZ4ZtLnBC5QiuiFSfhpNzZNAJ4I1MuapF4ZCwlsIgmEiyQUJk3WKJBYNYtbT6hPRLUJp2mx7pEzbRSo/PPYfy7uZRCSrkj+i6egRoq8gMfQwhQiNK+fzB/EL3BR2IjdENN0tkvYWZBIRamMgzoVIQgPqxz5STiwabd0eEfQwiQgZ3AC0LX0uaEjnL8U1kRwtReTWhtxP5NHf7HdEY7FaVNogWkNxTSQrG8Ri3jrkWbyDaegfv8dCI99Cgc4pvpOHE9H2scWcoUEQlWf36ej/P6KTp5fWMAwZjt+6Z/g0nnssljCMOYtslBre5HMW+RQjmmPOImNYRVaRpbCKzI1VZG6sInNjFZkbq8j/du6EAAAQBGAgfvSPbA3EuwYrsGqEVJMxTgsZq8dyZ/eZIMXc+bqxZgAAAAAAAPzmAmkgqmF9nMW/AAAAAElFTkSuQmCC", + "description": "Displays historical illuminance values as a simplified chart. Optionally may display the corresponding latest illuminance value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'illuminance', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":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';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "illuminance" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json new file mode 100644 index 0000000000..0549e98e77 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/simple_illuminance_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "simple_illuminance_chart_card_with_background", + "name": "Simple illuminance chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical illuminance values as a simplified chart with background. Optionally may display the corresponding latest illuminance value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'illuminance', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":1,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":1,\"to\":5,\"color\":\"#F89E0D\"},{\"from\":5,\"to\":20,\"color\":\"#F77410\"},{\"from\":20,\"to\":50,\"color\":\"#F04022\"},{\"from\":50,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "weather", + "environment", + "illuminance" + ] +} \ No newline at end of file From a452b5d2d65e73fcc6880debf41df73b8d6bcb06 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Wed, 25 Oct 2023 18:14:05 +0300 Subject: [PATCH 112/117] UI: Outdoor Environment --- .../data/json/system/widget_bundles/outdoor_environment.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json index 1d30ca6b8c..b0480bc865 100644 --- a/application/src/main/data/json/system/widget_bundles/outdoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/outdoor_environment.json @@ -2,8 +2,8 @@ "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.", "externalId": null, "name": "Outdoor Environment" }, From 02c4bf22073b604ee103077a2c4d3fd8649594cd Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 26 Oct 2023 10:30:25 +0300 Subject: [PATCH 113/117] UI: Indoor Environment: Temperature widgets. --- .../widget_bundles/indoor_environment.json | 22 +++++++++++++ .../indoor_horizontal_temperature_card.json | 28 +++++++++++++++++ ...ntal_temperature_card_with_background.json | 28 +++++++++++++++++ .../indoor_simple_temperature_chart_card.json | 31 +++++++++++++++++++ ...emperature_chart_card_with_background.json | 31 +++++++++++++++++++ .../widget_types/indoor_temperature_card.json | 28 +++++++++++++++++ ...door_temperature_card_with_background.json | 28 +++++++++++++++++ .../indoor_temperature_chart_card.json | 31 +++++++++++++++++++ ...emperature_chart_card_with_background.json | 31 +++++++++++++++++++ .../indoor_temperature_progress_bar.json | 29 +++++++++++++++++ ...perature_progress_bar_with_background.json | 29 +++++++++++++++++ .../DefaultSystemDataLoaderService.java | 1 + 12 files changed, 317 insertions(+) create mode 100644 application/src/main/data/json/system/widget_bundles/indoor_environment.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_temperature_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/indoor_environment.json b/application/src/main/data/json/system/widget_bundles/indoor_environment.json new file mode 100644 index 0000000000..90717e5745 --- /dev/null +++ b/application/src/main/data/json/system/widget_bundles/indoor_environment.json @@ -0,0 +1,22 @@ +{ + "widgetsBundle": { + "alias": "indoor_environment", + "title": "Indoor Environment", + "image": null, + "description": null, + "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" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json new file mode 100644 index 0000000000..a97f8d62c9 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_temperature_card", + "name": "Indoor horizontal temperature card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAt1BMVEUAAADf39/u7u7t7e3r6+vl5eXf39/x8fHw8PDr6+vf39/////z8/MjTMc+Ys7j4+ORpePHx8fk6fjPz8/x8fF1j9zI0vGQkJD5+fnV1dXCwsK2trZYWFisvOo9PT2tra3n5+ft7e28vLzy9Pvb29swV8tmZmZaeNXIyMiCgoIvLy/x9PvW3fWesedog9lMbtI8PDxaedWenp50dHRKSkqDm+DU1NQxV8q6x+6qqqohISHd3d2dnZ2F97sdAAAAC3RSTlMAIN/fz6AQ7++/MOBJYlEAAANbSURBVHja7dppc5pQFMZxbdP1cLisIiCKiLjvS5O23/9z9V6pI60NSdWmxnl+GQNceHH+IyGTiRUAAAAAAAAAAAAAAAAAAAAAAAAAAACAl/S++sq9ryifP2mvnXNXrVSqH+kGfKxW3tFNeFe5o5vwtvKGbgJCrg1Crg1Crg1Crs1th4x1djv034xJsmp7+0k60X3n5959FI2p6JEQXZ+yQQcNqUUlHJ8uZWx0dZJc3qvRjqUz67uSSZcl3SKpNMRiw+j26EC0GsIhX5AQpvBNObfcJ8ck8n3HMQU9rIUQZJIvv8vzp5ss1IgkRe5Oj9minUi3rO6EiDbMvc1U5y/WM0JGeo8KzAZRY7A2vfmguWoszbU3N/35oEHNzG9+n5uDuem16Ks8NAerbEknkxUzGXLgsks5Y0a02BDVmI38DVo8I2Tc/T1EDL1s4HnUpJYnD73lKvOGTlOeGzRbciEPETT0VhmdzKiRUQyx9m+ICphO1cH05/kJf+k8HTI5DmkK4RxCVsvBUgh55Ayd7JcQdXud4dcQlw9z3Pem6sely0Y+pWE8I4SOby1vnZn7kGG2FmKdrVTIPBu2nHnLbGZDFfK92VheLMTSOaJfjfhoqSREX3CPfucUupzCgpO/nMN1FwuJ8v0i6y9CxizN6HHCozKXC9E5OidkxsqEznR+SKR+cZx+a0WsFJ8JbfqjtkYF9bp8xSRdLERnl450eUPK2HU75SFTzt3TXphPLcfcbuW06ku2te1YbupJPr7/oC6waXdKa9fzzLNCIvXsPeLyl8O2NMTlXK0YEtthPbRFv08UaIH24Pe/9YPYF0E71ELbJrWstdSOLRIt6afbflI/M2TBLh2rMW/UpsvuEyETznWKId/sUEv7cZrmISEldpzG9jahQM7v70LatqZCtmGaxmlCdnxWiJq49ucLuLvQmXXriZDRjBWDDiFBP01aWhj4cUCUBi3tIbDjIIkTO6RQS2yxC6mHfRki1+pJkPpBSOeFuI89OSOdZYsxotIQVeJ2eRZRmfIh62lf0L80qln0GxVygjaV0tr0sm79L8TXCCHXBiHXBiHXBiHX5u52/j1d/UA34IP66MOdo712nz7f0odqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF7ID2D6pgpcp3y+AAAAAElFTkSuQmCC", + "description": "Displays a latest indoor temperature telemetry data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true\n };\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\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\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\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"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\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"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", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json new file mode 100644 index 0000000000..6fe2e71a3f --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_temperature_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_temperature_card_with_background", + "name": "Indoor horizontal temperature card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor temperature telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true\n };\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\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\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\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json new file mode 100644 index 0000000000..890db4f9db --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_temperature_chart_card", + "name": "Indoor simple temperature chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAh1BMVEUAAADg4ODf39/g4ODg4OD////g4OAjTMchISHHx8fj4+Px8fGQkJA9PT10dHSsrKxYWFgvLy8+Ys7I0vE8PDyRpePk6fjV1dVaedW6urqsvOqenp51j9yCgoLy9PtKSkqrq6tmZmafsec/Ys4wV8tLS0uDmt9ohNhMbtLW3vQxV8rW3fWDm+D/9RHFAAAABXRSTlMA7yC/r1EOHTEAAASnSURBVHja7M9JAcAgDAAwytEP/v0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh979rIiNwxEYXh14FSVrmAwRhi3F/P+rxi5e5huj8cQCHHUQf9GRWn1LQwGdUhrdUhrdUhrdUhrdUhrdUhrnUJ0jninTiEpDC8Sc/cmNNspxN8W9wIJYWEIN/x24hVXdg6ZksNrjndRnBQQlah1BEy2o1YXgI4isFhHK5zMBFCByTgBEgVnXQ/RvAzeQF+PJTFB6BMDsObEgpC5qk8rZVy4jJGA84jMC1xOw4xn10HC8gMkJSA70GHihEIIRzjaRIXzCINidMBHgFDxBVEob/fVs4sglslwhHifUg5ghFAQN4hCKS6n5ImQAJTV528QQJjSBwW7roAE1uQIWUVEv0HGCqHU7pBIsfQDJIqI4dlFEG6FA2T2irKHRITBhAVS7hCXVX34vB9tfUAszzCHXZdAMmvzAWIrOewhnrlst8wPiA7MS4INjLaNDwimgfwXH3shmRXHbL8Uqtpjb/hM7et4Lvdz7SIIbmFWnLSHoIk2yJ+krpFXif//7/fd6pDW6pDW6pDW6pDW6pDW6pC/lpXV+xTk3SG/2LG35VRhKADDV2uyEkhIEMJBoNbiqXu///PtoBjKFqhDvJAZvpk62OFi/SWhylYhF0KaV7boEIGSQmMX4W7BIT760GIfmCw2JDEdlhfx14RsYgDQcSeHm/yU5tCq9qc0PeUaXkJG8APFrXtIFX+RsKkhnRSuYmL8hat9Ta7C/WsuyK7fpTy3kGqfEqMJuXy1zMQFNDQJK30ml3tTfb6e/IoSEfUHp+i7hZjJ2pBOQYiGxqaZOSc5mNcmoDLhJui7ghmokNI+dmIPc0vlOYakcd4P0XZlXcipydoAQEhIbNNjmMZo8vAriUpKbOdnPGJg2TSXkI02P/2QPSG5zQy/yLndPxquTPYZpvgKEXn/IZjH1baZVuAhY2yrlC21SkzcNvtDSNi9q4q6Pla3uBRudFEUMM47oAxoJpCz3pQU7v/8DDkwsxdx9tKQ3F6Q/rY5wlNEeztK1AGs4Me6oUEwPHCifpYw55DQLiJremOM3H0yDOxQPIInJBEKCgYtOSJykbmEmDcFzA8R3ciSe3BzUAyewYRC5Fyhkn7gf0bIA292SEHIZX4IQwF39H5c4g6e5GWlEOV9/J1ELti8ED18TyqeDAmQgeUjD2iylejDXFQglrNCCrvVe47dgqu01jCGy94YH2gcMnDAxHZOiK7tYU9uTunO/oYR2f+LiNGMgas5Ibn9y/dVNSEbe81OMOIzAnfuIfbeO7y2Qt1uIpJPfMdw5R5iL8igyiSGcZ4fa0JSGMZ45IGDF4akdgE90CFppRUMolwxcOUeYg/G6Di8ZuxhkFdilMCEd3qupTd/qvGPvL4Hw94vZBTlKBmMWkoIkxhRmLCQkK1SPkxaSMin8GDaQkJ+s4asIUuxhrybNeTdrCHvZg15N2vIv3bu3AiAEAaCoHhOzuWfL0HgCOjOYP2tqcaQajLad4WMUeTcvuef90SQos88XRs9AAAAAAAAXrMA+iCoTuC9Gd4AAAAASUVORK5CYII=", + "description": "Displays historical indoor temperature values as a simplified chart. Optionally may display the corresponding latest indoor temperature value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "temperature", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json new file mode 100644 index 0000000000..b9be76ffda --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_temperature_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_temperature_chart_card_with_background", + "name": "Indoor simple temperature chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical indoor temperature values as a simplified chart with background. Optionally may display the corresponding latest indoor temperature value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'temperature', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQoAAACACAMAAADESdfxAAADAFBMVEULDw/19PYOExKvqq8IDAuyrbPy8fO5s7kXGhe1sLbT1uAQFxfO0dysp6zQ09+/usCzsrocHhoTFRO8t723t8HEvMDu7/Pt7e/k5eqtq7TDuruwr7fJv8LAtrnLwsbQw8DKztpxZmG0tL67u8TSxsS3tb3e3+TAvsRuYVxua2zh4ui0qaQUHR7p6ezWzc08PDmKeWrp7PGnoKOZlJe5rqq1qqmppKg4OTW8srS2rK6fjn5bV1THyte5r7HY4OuNgn5+cWscIyTMu7SvpqnUysmEenfNzNOTh4B0ambFwMbIt68qLi6nnJVBQT7Bwsx3bmuWioWKfXmUgm6kl5VpZmVFRUKuo56NfW9kYF96YE/R0Na/tbOBbFvd5e7Es6gnKCWRgXW9sq6vpaJgW1mPjI6ZhXNVU1FpWlHPxsqHdmXOwLqbinp0Xk7Z0NHExtGakI7HxMqlqLKjlo+EgYTKyM9oXlnl6e/Y1917bWaGcF+/raFiVk8zNDLb3OJPT0xKSkejkoHU1NsyOj2ljnqmjG88QkWbjoapnZufmZuWjIupmYt2cXKbgmd4aWGUkJSllYZ7fYGihmqAZVMkIx6elJCjnJ6JiIyOh4Z6d3hmU0WgnqRMUFZhTT+2pZuBdnIrNDaEdm6Te2lCRku/qpqqoZnO2OeNdGSXnqihi3ZbUUkxLCWfkYnDuLaBho6ae2M4NCzT3Oq8vcm1nIjKvbmko6uamJ+Vh3lYRjmunZCOeV+rtMCmrrmdpK1wdHpwWEitkXKRl5+6o5FPV153ZVe/xdS5wM+vloDIsKCUdF3h6fFkcntgaXHDy9qKj5jI0+Pa09WyoJSyusggKzCNb1hbYGZSSkKsjn1YXF7V2uRMQDO+zuO3l3dES1PDooFPYW1qeYZ7iqEuQlBwgJK5yN3YuZ3NrIw/VWSWpLrDpI9GMymAkq1Xa34XRmOoutPgw7Cww91bd5wNIjJqh6zf2NmersmDmrwYM0dIa5FfakEwWH50d1J8TjWUWTcaMh2hZkWzeEp8e7rRAABOOklEQVR42oSX7WtSURzHL95iDpG0hxe2HrAaTZQEH2cy7M7E2N3QNTPBmLktoyfGksEqcbGwVlII23JlzbIoVougFfWiQdS7IopY+Cboda/7B/r+zvFmVtTHc849M2N+P+d37rkTvN7B2GC2x52QVq9gCAI1BfYDuqDSqDDHRaNWqzUavCNJCT0mv6NqxKJM1JlqetLv9w90T09f9PkCgZCxbfTMmfkzjRz+yeho2xvi8oEDl9+0tfkZk71zF0W/x+P0O10ev0f0++1+oGW4hlwYRZcorlyp9JXUOSK9AZpW5jMUaUUjQiAfiQ0SsZg3a81MrRZyb7++zWUk5kClQQimQ0UocbkkNqp4+hV/uljNRlmjUqv1U3LGbe3Z93l09HBj+MNsINoICk6cunfv9t5jO5/c6e/sPLpt2+7dndNOp+jxiK6LPrtfZOltWi2TwyTUXIhgJY0NBn6ZNDc3rxS1rn0CX+ZfTQg2v8s/Yy/OmmKDKBDgHR/vkSVkgwLmDpd/IPyBistIyLLb3bNv/vPP5VYm1Kgry4/4p04duXf70LlLL26e7u/ctm3Hjg8fvn//vmPb5s2LC0mz088RtcCvxQWINkwQ2i5yC3yg92wiQHKA6OL1Z/ahdAEBS+M91owsobxZrN9MQMWAzQUbzK+9GMjHvABGUlkI4XvmvyoaffDyWT0/f2YeUBE0BB9tO3z88PE3b9ja793Jwu/eceL7iQ/fd5zYvW1x8/qFeHt7RwfaSo9d9IgMLaCBZeUNueliJwUumws/YqS37FcK+bwplqqw4A3fDuFZV2hYTptNUQFEEb965opvNhTDjgHe8X2ZhL5u7zeT1LmLv6kASvG/IRD99qFDZ19Q1Xd2offfTC4uJp3RAb+no6OjudnW1AAVczMVNr3qQAbDxqvhyrOhq+m8qZrNjucyCTV+dULJKTRSuz80ilHlvrxeJt4xFS4uQwsVwIMd1dQu2viuISWDqXFrRlLjf6LXESTlLov8q9V6/VQiIWcy2GDuhF49fwYGTt1G9I83+zuPdnae7uq6eel8cL/xzI35bw8ePJiamtLrM/vyQ+JKLe3hpqbWNU1rwCq8iJoNRQOKgJWEy34V9R7xprCRE5JaVpaHbmgCIdVS/1yaX5bJkpjIgUqplJvATHbLlUou4+7pGc8KKCqbzQ4ZNmxC5gIm8M3wNZrwbbQzV9Js0+Am4sVBI9dkSKT+E86FKaQHbjR0Iuv1plLe1K2PC4s3zXdf7Ay8uXbm+bfHjx8kplh6vVqv1vyKVDENGXS6tYzWtWvJQmurTlfzoHVdf3YlbYpUq9mcLElqjcBYLU/pE7gZf7bW1hf8VKHiU40ky+WJXKlUyWFcfl3KgYlMGfew8SzdBnyzg3Nzc4FAr6+3V2AH0Qw7gji1G20TGuDLBCNDabqxxujk3WeVJYtGhQySJLuB4kFRARckb7StzfvZKuvVq9V1LPw0bsSiseSq6ZEtQAdadSNIXzAtV7F22O687PT6hIxjCHfiee9omxG0obUZR3/dm4JFKueQv5yrVCql16XKRLlstSJ4ajBmjJhCLLYvGA6Hg8Fg767JSArv4K2gzyfw2kNXVMAEVPCKrQMfq7Y3u55dLeRjVQKiywmNoHfXyTxWVMADdRADqXG3DAOE4uAPFYxyaenda3x52vEqjVpKwLB132d4RfQ9e1h0hGetzuiXL1+wU/CYQwrKPT3ZbLZajUUioXw9OEUP04QN3IQPKmIpZqIYDBYFkdUguu2nCi6D0aT4QMWuaSVwbXlqf0RLtrxcrVbc+LrobMgwxuGBiwAxhWUskKSpg6qqI9OPeioxKl3U7qhxD3txKDpGBePlsbGxy+DAqVu9B3uNqVQKB0aIkvciOQPhACIXYaAYLoY5F9FqYB4M2CJe7A1feHh4+qTATmAtuqv2QEYD56cLZkD39LoOF1QwQCWvbbn+7FGhCgMKbIqqoNvKIK8JpiLCMZlMS8ulXPmTxWJBdNYkK+5X2VTMuCe0BxiRvg7lp8RG49jYrl1jl8du7Q+ePNkddfZ3JZNdi0c3d3YlHdGHvsBcaMgUCcADlUAQGkAYIPAwOoZhDGCa6Ovr7rtwIXohejPa7TF5oa0vGjWbBwQKjt4s8iuBaTP2a2sdGGg16AwtUAAH1Nhk69atr+o1QT3DVfxFxDuI4Iy03F8qyRpGBoGx+gwjgqPtQXgs+61b+w8Gz598YU72OxyO/qMbFhYWF/pPD/Q9PHnyPBHGcgMk6e3ND8UiJKLI1txH6TmUnLhARAcGzGaz0+lwoBGnox2mwWLRd2HAiX8QEN1AKrTNOkYTlv/qMwNL37q2FR2ztQCDDpdGtr6yuq1oeKFxsshPJrgIUmEiuInZQuGp4en9V4/K5YmJiUoJJgCy7z8YPn++L2p2xOPxxQ2LXY74QpfD3N3X/TCMf2CrG6YXhUWnkRqWH1kC9tgeHzGMzxV908PD9snJvr7JGRIABQQkwAKJSAIHGkqqnVQUL5gJQbxuaGnBUTbCKl9Lxa9racGdHBNOKzrHwPNjRuPISyRa6uEm+MiUpGIE96CIyJtQFdxE4T3j1TNw3R7uTi6sj3dt2r15cb3D6Rno7pueRp5iYBZfEQI4w3/APgWKVBSBuQB2GMA2o+KamZycIfDINGCzDeBPQL/Z7CcVyY6OJIi305BMmlflvcViGlUBR8LT61qDATZGdLoWaoDroBeHTwwj998XlpbeLr/GIV2WLDi40CSoUMqCrg0qYEJRkV8iCsRTUeTPysRMjUkbOiIAux0qZvNQMTxdnLbb7YhNwbH6IIDngF27QrsoMzUCDvgV0HRyxgYNvz5GO4HHg4d5jyPZ3h6Pt8cxJONQMZimqnA4OjwCnjyW0u9RtJRWgaSM3H/1/lFhCc8lXyo8uSD//me4xpKx4qS3crgUqIgoW6NuYpYogHTaoGvGbxJF2HgKIVBSBwnIiX1o1oTP4w/5uXwoROcowfPya4gzNhbaNRcAt+Zwq7g4fbL7QrT7PFnAM3RNgt/j9EAD0d6O1r5x40KcWEg61+XZBqEPOH+QZS6vTQRxHK9KlaihAZPKJk2tzxgUxV0NEY0P1BoJtopGxOJBXaqnaoyPk4qCmCIsOZgHW1DopRd7KN1cjIXQm4oXqejNf8Xv9zcziY/Pzsy2Cm3mM7/fvNonbOhbXXhBKUtfsGGYffHtJP7F7N4IRGzANm71hpMv1N5lZXl55cvnanXlPNmvY0MyZdJ4UI0xIRrK8/PzVnQnwoxzlKXOWZAS7pIBds1rXpYOqy6fkFY6zXXi7IXpN5cQ1BPoEYY2PrTl/ZaJbDy+GE9mD9+8cjMDeIQFONeTnJiYYDxMwAShivdQcbXRcF/toYu+Pu7iiljTzqOvvJ5QFzUceny7t1B4wY6v/FheXn4xs/xjhZuJL2kkfbne8DyvKSqKqN24OKIs7O4GxThVUMS8kNgexfQTYTZymoIRAQuXJccu+nCql/NvG8cbdy/Zp3I3Dh/KJeOLi0Nkx+k7Q7EJju4p+2YG0wBmg1dvMs1yxanZco9BDxSsUCpyEg5QAQVJ4T2AiubVhuvahw7nDh3u09M7PvQGdr1YKMzO/EBSzKx8WQLodfpy+nWzDDLlxvS0Ow28u85dx0Fe18pFiCjCBW0YFZq0FBUUjIi68HVbCotwNKq3KAmWhKY/0R+yuM9pVavofjKb5X1VhvCygjCv5A1hEkNMKSd4Xa5U/Iw+tcr+2ewSVGYkswQK4nGUONv37ycODTSv1qECtqACyZd+e3H60v0zKzOYDgszT7Fnfc2Pjshhv6Xxpj23kak2ph2h4lTUBJ1pFIl4KKKSW0aDtmxUUIOLtWPb2NgCZSgb8JHQRhShBHrgV6tOy8ZZQHrLXisTxgK6Crr55GSowja7ZUANepPIgEiCLAslxEQG4wIqLjMqIAJzxansYnxiXeiVx2GbrxaKZ8SB6xFHU8HTcO2y69SIzG7qU7lFw3kFVRgJkh3pcaPCpQiqoAtgVmb6kIRh4TvUDxV+y5fesqDnpprgN7kkgcGoqPl2+K/7u1D3IKVEEBUSsThBWByECkYF7kugwlPIUu99rb+bbbie4zkG/Jfr1kGZuDU7g0dGR7n3aOEZTeCBDrxupRV5ihhHTCgT/LkdEqWKhYXtC9E/bOzUTmRrHwpBBXYdYeXCICqMB/O9uGBU+MgPEcCGlRgTJI4SQ0wAI+Ngaildd+u1mxIVHU0LBavnzAosuXXCMMFQgga7UcP05ARhIKOk48+hiGegSMTIVVrIIxpUcozDhAoKz2mBue1TU3RBG2BB69BE4QMLTFAtt/wgzB5bJup7LUAjSQAy4Uwl3Cz7tg0F8hgV+ky9LrkJFsQEFNAEy6KoqEpUwAT2FXPCRzZ1NbMhOVAwG2RyEDp0585pPKN34rlzFYwTVkBLByCPKa1n5ClMdG3gjEgL4gIiGBRn8JOhAgPt+x8XHkwZGdtRJDZQoAOFIFmgwvcDdt2SoTfdNi1fvSyxK2uadeYHTo+a3uXCJgaEKvAAhvCwhYxcqpxGf2uy8ej72MOzOdcODQ8Nn963b3golszCLpChCYf9na6P3Vc/Cjwgq3lg958CqFAUWS+z/2KDq0cvKFwHAx0EpbFRUQEZSgcfIapBspTm5/0AKrjSosNavooHkwT4AsjcWbGadRsq0HfaoJCeCokIpgQqPUACYLt4UKs4pVSUelglvzjTCvSqBSyDqIi6gcVtOKuIiEahYlLL4EtShfvEcQIVkNKdNB2qCFuRqdGpo1qGThQTIILIsOpUgUDnvpQx0UN9o6+AOUxUEWq6mMfZf95DGgkkOQAFKHwkIqSggngWKlyP0ybog4G2PMLHl7P8vLQStrr0i4tgpxdY5pQi51bgT05SBqv4oIozZ97m87KCmI2myo9KLQgnItEHo6NHp47SBhlTTowYmPjwod0udb4ifihefr8hpFs2wCRKuBapuhi8ECRouhfGAwOxWDImiIBhBD1e4mIxl6q/dhkVoqLdQ6sI8MbvRyUJVmCtCaJUEdkmRUQgzYNJ4SmKYfxiWVSo87mJCZjwMW6bto+NXhsZGRkdGdm4cePz58/Xr3+O5/GTJ0927dr1ZP36n8eOXb/+ab1SQROyHzUWBC6SvbDop4pE1QsjPzYp5C0qiM4GhgZM0AaLqEBUaBWHsIK0/6SnwohgNigVVhDtlBI7se7xgYrtJOD1NpHoIM/yuFXiMeTWEfwTOTJZdpgdNobt3INrq/5lLas8ZHBw8MDgSKcDFfzVqGKCUAJf65QIMSEq7HVlD2lEBQNsKAMOUMw8yYYWxINEBkmeM1HBjXdn7mO7/QGouJid7WA0NPAQQVWNqIio2xxCFalU+AigDlTYYL2azz+cxHJSKPCPAvu57apzP2YlMNVsS01tHvxHg/lCGTnw6dGnAxvnOqVAPMCEcSEVj76O53cClpBNZYcqBgQdDzGDSDAMC3iJinv1JuJVJ8ivpS+/IELbgIo5mmgzMHtTJL+wStGWtS1KVHKkwBhUGBlsyNbx/MOn/MMrRPCkChVua97BhYiFHwUZYw9Grz1//ASdNwWYyFh74MCBT4Mjc3Ml5odgMSn+ZB0fQhtrUKgCxw0IMMSUiXN4RECMvdcx0bORfOA2/5grPrShYhtEJOBCVDBBiUyRcmYSG0qFbAJQoYJYt4wLyQS0T3dDxeT3Z8WCMVE87y0Vbp8/X01ElwZSkRLjaWFsapC9/z8+tArfggpuwhNKRATdN2gPKKQfKgbKDpxQhSEGGefoAUUYNqnRZctwnCo8z8ZMgQT5TbbZxrRVhXG8aCwWlaLA7R3IZCAt3tnNSzcUxy5MpKMyO6dTsUvVbWQuRkuRclnc0LAEYZIhxgELKBBMJXObFgVdGJiJr+WlOoNSCWoiX+TDwgf95hf/zzn3tsX9e8+9F+P68uv/ec45zzmdmKgHCohZg6PIvoxHNgeBprGoz+/bkJcPBiw0cMAUrg28pBt3Brlib+O5c0DBSdAQtPNs9eM/H59Ks9Vs+ds9mzdql5rq84XYxzcmRojuCqCgV0VLBMAZxGV6wGQqKakwN7TDFWa8JeYIm5kMYQYJoOAeIBQaiKN0MGU5O892AgUbYgHF5B960kS1crkVKEhxFAXUZ6BtyO/LBgUmGzTqcrvcNzU2NgJFojc2le8tPPfzz68jPggFjcwdXdX3nSucKnDVHP3BPZvhtoviWJoxFhXrJKtAcevISDZQcMU4JC7M8H4TIBgKW2+7CVnT5bKBAt4bDEGiNMk/fCwscH8Uov9498Ysj6OBodi5k1AgQNC4JkemWyfr2dBBmxJolX8ohsJGDTBcLr/fb2okFqQEFOWbzv187megoPCgEfk4UBwvnMpwA4UfKERRrM/TXbGeB3KFoAqpk7orEJlxAvwSh2GiAx+jyNbbbUJ8wAo2F/EgDv6NG8FCF316BoCLw/nU4+jC1LOIFbkMV69e/nPi6gQTWEy3jtdnwwITaXy+CBb5fEXItGF0LC0DxIkDye0mFDWNNY0kgsFxbBoAinOEYuv96D5ohjLeNXhfYyNQ7I+hGEtEkXgnEIrcMRrjw5HcFECh+0BnQn9ypwBFhQsokpM1LxAMQuF3uTQMBEKzQoLuvuvOFqCAK0qoygUUE39ehSYYj/oFBAg3JkjQBIk1Wg1Ju8nWl8chgDrlCUKRvJ9WLZmIBcGoGiqvOg4UyJpkCrgCKH7ClpOpDN/ixh/8M/k+O1yRLfAegxqx4A9Km4Bx69gI+vKCAkIB53MU6emJnsDBkwW+0ApXbRH+dsXkJ8ceJQDr9DATZljazZ0eB0ubyBSYmY5qKEbRAGSWUGRTbmAkgID6C0Yj2zZWkE8Q0Nz0UkARKEAlmmgwb7AwOQwUp48f5yi2ggSG4+MN1Vuf3ApX9G/8ITCT4RNFqT5NYG7QefAHbgUWIH2TcAWhgHimiLd1og06JYQC8UFvCo0UCBy9XlsAYYseHUioWTsDtR0YCjvailAWNbhHr14c/YYekPubKYYij4sz4CjSC0z5t2WAgcsNudz89QLpVJdnC9ucBbR3aGjTYbDgwytaz38NuQJdKlzR74IrrvpEa9PIZUmSMNSGmrgwCvc4MSP5hqasfVdGaEo/3jfO5dDuqKKGRgep01FXhwWj3pKysk7UFfhKSqzqhGJkL62eNDCVVWoaGOjoGMCUGZNnUxc2KFL9FX8YMCG6iFlRqTPX04Jxz0WkTTa2yqMHiS4saLMLkCvIIzT4ToOoXnEjrUxwZ+g5o7xy6HQjoeBJk6asCJDWR++HK5YXF5dnrn5DFeTLuU68tjYrpT6agpFWnupvw/QcK9NdZ6Ep7KpKFK2AUGEIZ5xiemIfVgbYAjJaJRddB+LCHxyEhoNQdNxYyVd3SYZSn3u+1InhH4Fojl4cvHidephqa/tqeb0TB9N4+3h3O1ud47s+GrnK91Uea3zhBaDgJDDqajh5y64TJ6by3MPY9EIoZqdm6nO12WnivDQvm00KJ+vHqYrGaHRAe3HQYy8aqTxRtFz21BttJeNX8F7n53HCeb4H4u8e9yiqdjqobsQqJij9FY+NXZmfH5m8rayQ71pAMzidvnk4gmaJKSmpuX/+1NXQxYVliwbCoJHowfg008UnaGQUfIkT+B7pvfFFK2KBAyj2HSvE/sz7dRJHqtlK2nNTeb79dXtqZ666TckF85dlo64kli0guiJthoW5IhRYTzH1QmUx7dOuu5nY5TNct7/1kBD2hrVDERJlIdntRqNFk7WZ/sOtSyvh1Bt7q7BdganK4HE651E9wJQ5FShuvXjSMc6ruw6qRLZr6u5Gq9hpF+2qLEKSKNll8VZVtVaWky82XYei8Tg2zHAUj/JFxVsWM3zLFx52zl51Uw9y2ZKkffp1szNtDlI8XtTueKId+wHO1HFRUniD6fwb58/jnKA3Dr51wcggeEmKooS8Soim+0tLoeDaioL3SwKGqBWNUFiVtXDwplMDiBUy1tCQwePxjKDKS/XNybHJkYWTfTEVoazOHuyKZaqddrtFlkWJPbEqWyOqaK0cKAcKZoxCJkJRzlCwjhTTkl0GgLj981+H89xHsh72zE6M2tGDbLDEP3/iGIu5ohQosHhKrfsJXa+8cuYVJtzyk67zF9781KjqrmA0wl7Fy1AowWtriqRa5yCjMbikWKQQOcQbuhZOST5TWcbyC+xmaHF6PM4WJPBmazMSek8rq+cVk+gmVmTH+qNJR0GCK5RUVZUIKo8R5gyw0FxxeKseHzfc8OHtN68+8/Z4vu901hYP5iAiR7HeFPF6BQKkuK+YrYTj3NbW3cb1xB482vbsaYvrUtueS3v2vPIpUIRjKJQEFCsMhdVuzZ37mqEIG62KESwk5Vo4WODYtxtRxwLO0DI85d+VDRBWK3Vu88Mo5Ok71Xh9n05UODMlcxQSSbTa1WgqXLGPWFCQQBzFAFyBC3MFUOx4/YZ3VlffWf31q7F837GsLc7ZNKC4zhX/G20W92GtpYJUjG0iFUVFOD/11FNtEC6H6EDDg6lt45svJukovAQBFNahEKXI3AqhWFGMUhxFejftVtp9qu4M9mJ5WmcC9+Y1WSERLK4Mb+Brl6TsWHGAAUnXUFglqr3JajCoqs1llXzHA1hoQ4wB7HwDkka2OZJQ3AwUq+9+0TsCFJkvO2fz2MAbKDgCfaTFbwQVn0AtLe67sRjFGGzur4jrUEybD23WRPeH2u669GKS6tVEaRMZR5XpBEle2W5HdqDUKYp2iyQhPoBiJZxibu899VjvGfZshqbZKU9rRjN5grLhlWVex+VTU318C4EHQ2EHCoSSJMlqahQoEGoD1EuX67vKCoeAopBQgARQLA5v3frh6urn33/QkB/YmwUUaTTaHKu3cAbrbGGUBfpG1bnbaGmM7LizhAslBagCjbQNjWszPZ46eulFI31sBAb+dTgec4JR60boNZgsDIXRohAKW3dv3anHnti8eRuhuHiladrJSUAjy9p0FLuyMILiBVMzLxcyFOg0IMBQxdyoKBEK+KIcQn/E0oWG4vD9PFcMtw7X1Hy8+u4zL/XkB6oytzBXSEBhj1c1cXBZ8GGg8Ne39VF8JmuGpDl0CQ4OhZ+o2rITUKDthx7+8S5CIYSp45C9egnEiIM4CIKdoyASRqDARQmuhKMuoKg7BRR4FkNTl8czT5lCQ9HPp18EAzs1iYOOwmwGCjiPk4ArchFS1t06C6CgDWZA8TwLkMMnULR57TWQGO6vuefDd794sms0UINcsZDhw3h7nFAkhgiakITwCIXQE86N9YEEOdKkr4bTlhkIGNgZf4APhN1l2w5t+fFFoxBWBQQJQKp6xKFpKESBoYEIBV2CwRUh6u8+BRR7QAIomiGeKWIo8nUYBIIeJNzbMK6wWGS7ZG2Gh2RxDvSsu3czFIxFFfZYnoYrGIodJ+CKYQh7yxfu6fp1U/XUaGA62clQtDRdIRSaL+I47LJXAQsdRXrirOsBNJJ+q+vgQaAgV4Rl6khD6DxiccGShaKoqigKqhI1WqIRySJhXAEUS2tyip9ccaZtO3apcRQxU9jFkWmqzmRwGICQb9YEKoRCsMgingwsgEIEilPojNhof6icbbHVAmQToQCGZQy1h48c7ujpem1watTZbwqgXuFrbgIK5tn/VfNEChBCUUwo9Hk5nXJywGO9cvgFMLYDhQBXqGH8a3QioVRJIaaR4MpKKIIepFkUZTUUMRoja5JRxLiCUFxTIoFubHyr62b7Fw0YTkAgsR4FCSTAwoaKIWNhdmnjCoCIWiVVmlMRLXWPUYiABFBUMRhDZc+XI2UcHmydXl7ubx3GDqbFs509r1dPuUv7b/T7Z0d9GNcBRWKVQkchy2yYOEelG6Ag8aWuHBKIEIIcfsaJszi4mVBQlwEHKBitBiNKECSCQWVlLRT5Z02JSpKgBiNJQKEYxSBIEApvhALE4WjbthO7tAws8nVT2MVJoND3xMAHZhJgcBQmQmEHOw2FXVStZxgLbJEjFgiRY6eHdpcNAMWOwWHsY4IrTh4ZvgfFVKCAK4r9/oVRrJo65+tFboZEGUX2vYY4ChNHEVv9hDPi4jywyYxssXnLJaAIA4U3jHBQQsFo2AtTeL1rhEJ3RTApKbLiTVIV7oo1JeLrpn1ERdtAAii4JCKhoeDK0CiQcJMOFDdxFDSjkRgK/HGGsyAUtA+7iqEor4IrqpenwWIYv0BZ3N/Q2XfkxIw70FGy0bUwWuoM+OYngeI64WsNhmCLXOaK9LhyzOnYFmDGTgkcUBZvgIHHA0BxpyBQnoCpvOEgKMASoSCGWAgQNgexJL4Ic0VkyUso6trb2w7Szj0dhajliskFhoKdCAMayUVc/HCFjCEWmOH/VpU5ZCMrdt8+9lgMBakSKE4jV1SDBKH4aXixo2F8bKF61l06PeayzY6WBgLOTkJhXG8MJHoFHwGfhKEwxUAkswROKEi0OA4OXGxD6uaXL90JR8AIXhkZw4uaIMQHFIIFkuUEFHaRuSKyoqQG4Aps4tp2ICtHCxA0PUB+1wKEaJApdBEKuAIelOA2xIeq5NotRitNHR9jvQhQsFwxABQIEI4CWbN6eUdH53j97HOEos+VsUAojgIFgWAwhNgAS4oCBVjwAGEAtP4c0njk0BYBnLg1WPLc/sOPd8qKAh8ISTJAIP3gYCIaIGPXum4oSWQoopEloGg/1Q4U2MR4IR4g+K5JMVfQxawxQIPS/SaRehApxSI221U1motBrAgUGgvNFqcHyoCikLkCpkCAwBWdjg37H73HV9rfZ8sHCpcrvRYoBIEONI2F0WJFrgtBc2PjQMEhAIOmLLScLDPfPaOzOJDDUNyF0ABEOUlGkFAmTkBhEahewWRBPytJWg8SjgYcQNFdfICeyRAjoaGYxbhCDxHND47XnqvucpkLAjeJyPB2S6rV3iyJanSObNRGttBCpJyxGKDOVEPBWCwfPgsUw69TDzJuMy+4S20bXbWTErkXEDgKLhkRAvFckWaOc8A1Ew+csYGGC0T41rsDD2xvQg8ieuEoI1CE0FnygSaem7nCgqqArNIkPTIXtYhR3oOseFOAAgFSQSiyDHxuRQrQje8yZuwteVZrNNqcwlF03oFfEu+qzSxwAgVGLdYUi0WUVDEyR6+AcgKxQIcad8W+vY2EYmG5nyJksP/w2VrH5ZOD94z6+h3mdEKR+TKhsLC5AS4yZ2EUJEVhJZcIQwEScVukcxI4EkQ0kCtK/n7vLsFLAQKawUgQqYJShySDjkJdRVREREdyCUUzUOg9SKoTrmAocoDC50Z5MYDipjPgudXjYRXOJoygmsGCZ80OtsV5V3uB80ZVtMgqikCC3QoUEaRZaxtY8E4EiTOGAsXCHSen+yEESH/N2bNP3r5r1/AG33RneubCN6UtLX/3TEpGQQtlGUBwIG1KIAEUYQ0FR6ApU79mxUDwKLnwQMkP791lkcMRBIjsDS5FIqHIytLSylIogs506Z9rSoookiuSknLnMMTSO1PKFXX4zUEF29lqoN0S+dDB795/5NmHXsWvUi4c2LaRD7wCfj86j/N3sB9oLhR4WICo0RSkiBSgiFJZDAUEZAuMOZ9mKMoZimMUIIPL/ZQtBgf79++4HT9D3XX7Vnd/T0H2orvUbMuYp7SpFzaFwJWL83l21oOgL9VdwUjAFzqK611BvriAXe5Nm4FCRbIQjF6MMZeWImsAAq2tAAVzhSxH4YZoRExStR4EBS5fe113N6GADDNdMzNjGF8/+/77f/31/nePZD345pefvNlsheCOpvwC23urv35oMNw7ZWsyIaHIakrULohR1RuR8Bmai57i2YK7AiSOMRSNGFf0AwV+QDF4ZMcd0M3PPXd732JPRvbC16UZR6kHAQPGQpV9sws1+ytrmzEdUyBvoit0Y2Tiqm+joYYTzuQMQrHtbotMM3TViKEm3AFXkNjA+59roaiYMPlTVTYHQW0vylGU5OSAKTYrXp7ow3zj2e+YHrnw2Y9ffnueULQE/OnubNMDH/z77ypsMZXsKgn4FDWFin/NCCFFVJFsD8EWvD99mlDwAKkqbCw8Xg0SCI/Bk/0nGIqbP36nc39PHrkie8vfjnopSXOFKvyxcOyjX377Ml+QEO80OAKKbKAgR6DpSDLTXU4CoG0nYkyyoAMH/wYK1QsEYQGjqogkRtcoQBAoEQXpQkWHoPWlDIXuiqh73IFt2tuRioHiP7LOBq6pKgzji6xWkDnKNCmTTFFHjnJEoSazAHEDFRRkEBskEI0U5whBQhiwiA/HBikEayJLGAgU5kCT8RXoD7IQBCLE0kQgzH5lHyZgPedcRl8P904oA+5/z/uec9577lsKdAIbORIYFCGhrs21yToxUYzDfUtOZB0qmZwYsGWxRdyXt+SuWbTIy58+jAahXhD0RJg/UMjzVZZkkZPjDhSxsfb7hJ39GD/SESASK4gNW+zIfd9hCaYXL7zy5i4mbUKo31XZtwb39clSHl2xAihwzAaKOUuIIaYVo7hHEeeAkU5Btk6AhBc+6E472OJYEFCgVgGIWJsCxbOYSszoWYhWsGj5H6/MYPrVh1+/+tUjq/JRS36RjkqsB2w81hxAuejMNIqE5OZaddjzd89d+ObKmMU+D94jlk3UTUxwBHvcBQLH70d+adrllwH5QaTeGobKosivUkUjxBIgGyKJKy4UYTl2Udl9UWI1/dD6y22fffbZ57P965ubm0v3vPD0TTKJR960e87PL7OyKw6ugCXw5s7effcjS3A7/CHcBxXHLX0GcwOf+Te/fHPFfGqLv/dUUS1YcJP/yl1Y1NLZ5tc/fofIpZMWiEnLuNuAxIYTIY77ICBB0+aHT61ahWL+i2Tv3gLWp3ZNTTtQzyUcShEgOlmU+h3/lx8+cfBAmccSh9MXTvjt1WqRLLqL8DDkpZGRK6v8QACXzygsjKCAKzwtrsDdMbgCKJA0W8hgmi60ghAiA88xKNR9tbW1zbW16kzdCytIkXAekeUP/OJvLRUrHOyWNxyYb/lX+FuKqkP3KN7ywF6aPQ2LF86IeuMmf+W9z5LK7qPPvoQUwUC4l7iOkH6GmVd88cW983784aN5b39BvuMXWKTPXpyRgbr6Whp0LLsHUmywge7FM4yOy3kS4+Z3wha++NyJMg9MOueUPbhqUwV5LJyNuzr6kZGO5X4UA70XwaBgkoU0gOYKigJdCoxCPFnUf4Q8FZ5O4gMoiu9uawMKm0ygaG/va+9TZ/rfxEVSDGQxSKj8vXJ45tFnLMKqAGX2OLEH7jKLlzzWtgjxu9LDQ0G2DRAWN0NfmfcsIuRVrMkwd2LsAG8QYWSZ/9IKBsW93/2wYt7Sl+ZBcMWrXwEFnmN4YcHjEFA8YHMQDyE2dzU3wxULEpa5rY7IennucwV77MRPPVWFjc562vZglhVQCEbKOi+AAlRJJPfjIkJm8qYbdYX7B/YUhUCYXkS6I3QDBQuuGFt2HiSAohYUyJGaqtbdnAcW8x3icLlYEqaIVxAyYEE9PZ9SWIGyWQru1mD24xHz8H1eNG/jwMuTG598+ziw1rup+MeCYh4QA9aib6/Y4D+CR8h6BpnzR1wzRfHhXUDx6r3zacX7iy++e+slhxMZKKw/MZds3WMtUfjsxK55gzq5K1ndVbp+4z73LYeytj540N7eRzzH7kTDBSHT7IZFUFh/++2lC/c855fv6uoqU6nAgksCRCQnkywSH0Cx1/2DZWjfYRSwJXgaX6JUCgRwBZ5Raz1/Hq5gUGhS+/CR2qe7Of/G0nkxBw+ecLj5ylznA+8tJGioDRpIdKVjCBImxdfVDSQmCoUSjqNAsh/TQCrUwo43h7wdlFpOlJrcXts8NDjY2LhN4i4Xrb1vzWybz5F2UM79+tWXMII8ipED84pn78W8gqJA2vTKeA/l5AV06x5r906geM8gUmeWJteGhKx/Ep5Y51ywvLMhK8aj7NOmjvErLdP9PyDH8fHxi990XFa68NwCpDIVUHARIKL8XarNW7bQAAEKd3v0cTGyZ3rf0C4n7DEpUBAWi7r6+jTlqQDR19d1c/6fb6x8cs9zXMyV+AaDcwyMgOoxlH5xvOPcjqpvruzYK0GbkKSRkV+wNej8Y+n0tv80jy9T4kIZFPiG7UODjVBauQxvlOyh2bNtbBRvAhmp3pKcREIG5zNvzYO+QjnjK0XGexgy5tLNOaxcbLE+KCrva09tl+m4CRtXrd6elZWx6jG706fafoB+6VjzaVEFB1dDWAguXbqm7LbG83aOLt7LAkybK3F/BiiIKxgUOfZwhT0auxitWRZZb5NURAdO5FMUdimfd/XVkgApLweKuGeuhiToKg3+eH6JazCEvU7jgQSA8qBiye6dHh4PJ7KptiI3KHwWz1FiM4gYIiwUq1YBxbQtwKKRqtxVBhQOuB0+u0ivF3YLut2Qp+uJDP46fmjQsQWP4/LxXbzyPXft8sMjt1jps4oWP/JUrqi8vFGTmrPjAJ4P6t+6dUfW/Xanz/3c9v0PX89fevCCEG+prcSFvLuCcTI4WkPg4hIcYFIhVdBcQScWxBT2GxAgaPRjcQUQ2rdGa4aGh/lA8am97GxMFzgwQoA8mpCgM8hFIiwww0QifwUFkYILVebaYctg2WlvNoSsy+lsarpy5cpjeh9m0YRlY5z4wQeBYpoEjsa0tLTGtFQSvq5eIDFbyTSHSAT6afURpTL4fMNLSo5C8Ufj4+NZyn53z8rMdsRZX7BTwOr9Wzu3vluQsQfPpvxRNt42smLpYismOiRC0h9s/HK34BILJKC8yBzpZoKCPEhOUczkCrJZkW3ptWMMOJo2ODR89cYb59vseirGeiJ7jcbC6NajCDHdzXsTdF1INoagF/j+crlBARJxyH5isTJXgWQp3sNhUFjZSuZgy5N4iRD7dHx2etClI3FGaDI44KAn8UYyJQEU2CSRTlp8wNM5UcEQmm6h81JUVFQ803oLFPBKdfIkS69cnS/KbMc4f9ZcWDFrlkvD9k3Y1zmnquV62bUr3y99oIVeDiwhIdMDEh7jLEqCxfGOPexJTAFXVG5mUOQwKHqxzyRRAIiAIQwPTx0cAoqrN54+L50cGzObux2p0M5EoIzh6gwiUaXohbVckbxSFIOlDx0sFMqCmDgPRcx+ti0hQSoFLdj/5TFH+Mj5j33oPnEIKILUFAOOcmRiiiIZ8UFdsShdglZEmO0aw8N9fUsgevVRMAGotEabzYXFUCERqxssZIOpGOlPBps5tnmcPQUZBXt2HOjvvn76WlnZA3a4HuaZbFtJRH/RxW4Ba3wWUEDW3ftzpP5kuvVPFMs2fOAWa/SGK/K8eWywsMdvOMSguOGlnZycDGyCsDWooQHPMhc5cLtEmXKVaC0/LDPZVa54Oy4FALDTDijgipjltghP4gr8WRCjEH8qxM7BjwkKyoK6Ar5gcFAlI0Agr9k2i4BCKKmQWFtJwksoCScclAaFARqBgdHROCGWrUB5ZH+8ZnR0NFsbzTtrZhX0u28HiiP6P05fPz+yRknCA7LFMuRC1fKLSkfWZRIftL+Q97It/gaKQmVBYQ8UH2ALq4SH/jPW3i5strQ8rXEQLAiKMxN37oiqsLOF6DTRuTh+faa8UiVyDjOoXV1FHm+neKA2ACUCBUrj+XlsQoEu6PIOengs7iZNRKYjZDpAUsPBYgYFQyKZovCWECFW4ykJxAQDgiGhhSgHisLFCk/cR9iXnimVHo33jYqy743ctBpNn/TK33dfPzUyx9JlzSoPIcK20l92nNXtiMGBouDtc6PxgUuxoEDRZpPROxaJMzZiw6bt7Nht4eWNBMUwscXViYm72zqwzec09p5RGFXzQuvV6kpPUZihPpmgiBMrYhwewo0gZZZDCjbxPTFmS+ODWIOTF3G3D1wBW+ycsQWfQZHKOAOHKyMvkFjDoyjyWKxeCwkKYgZFK1BMs2CFLLNlKyM2r7f3rpEkKo9sXeUhVuCmx5xPWn5vuv7pyEGmwRgOWzaLnWgtAAqBI40YDtp81RipKSgKFG/25sAVe923bHfbJTJAYWGvbQgIT0vTAEXj8FWo7t3zbR1kc9xuAgMv5+bxM0HCE2OIGkFuWCkWK7weIreNlct9UrBTzKsOg4ft9NQd8wueJLfJbiZCMBEnARIePuMIKhnOGJtFnxMUeWBhxcojJBg5EQ4MCag1sHU6QHp789iSiCz3zX7+zs6v0+GabCW1eeTKt03flI0shyOmO5GxObYca3RzICjwz6wd9bypKSVSHko3QEG2yqnkojB0KVngjImXv8GA5fy6SKDQaIaGBhkUA03n2y40nWtiogMwqlZwgcBkcqXyX4DBI8YBJF50TlzuQ2bbPgeQJpCpAII50GGsogARwrCAK9SpqbJvOvaUp+rW6uozM9VqwjS50mcR9hwl5hFJUIhrnYkN02HKIipYS2yBdAERFByYHckZ3quo4WHTo4NCHEc2ZZ1qKlu58vGm/mlPYDgdmzAXs5VA0S1A6s+TTHn36qeUACHP1HXpsEUhdAF0HOcxZ26YgUGxJfZotUaTPTSkGSQohs1Npz7tPAdXQE0kQjp3d6ldZVKZzCQX5Yu8xGLEx9z7sFfZ2aVTTAJEoUBo0EEEAhWIjXHVR2GxBVAky65fv+aaekzB5+qI/A1rfXzWfI4FTzqHsmAjQqZR9MRH5UbFH3aCLRhTgAOD4p+NIjEoCMVMLe/t01XnYlbObcqdaT5YMXlHU3yHx9LP6lYqLxcVHNpxaB2soOOGEvFJNx1wgMi00R8CCi7XfV/82ers6uEhzTB0ddB47lRTA1CQzHnifbDoz8pUy0xSk8rf+Z18w0IPjKJeD699EUsb3gVwwdef8Co44PBvRTh4zaBITk6VXrve4Jr6BFBwdWE6tHl6aNGaz4GiTWDFyduaceh5a5YEGKgb4m/duo0PLVAwmnEFfcsZEpAQy+ClZNorfkAhFj9U1ZTOoLAdm5icnJj48451yywB9o64Y22q4zsDAFFQED/UmbriGERQwBTUFW774nvOaqZRDF09u7rs1Ln0IxdbOhukjX/2JTiXrU7icwkKeZhBXuk/FySAgpsPkrx+D5DYabdYKMmDG6iQM3ASl2Qt/hiTD4JirruuJuKbjiqV6xOKtVxwwGF4iCHRJti/6vWFD7/wupLFCj5aEnw4+PbALaopl1u3T1JXzKBwjzUm8SpIqzbaOFWoSMEcDXeIUL3EY582n1WxSMbMG6grrhvDR/WGghzPSpFIRC4UJCCQOBZEPyEkCIygMICA0HnLzRis7UGuIEMIhtOz5gOnGqyIBibv3NGM+vXvd3HWyUwykwqpV24IfcIrJn/zYTd/wPQuOvXIU6dG2oo4GE4tICCQgDjPz1k85xExyZvixxI7rnS2PKXAmmLugqC1/vLK/Ec+a4POn+9uyCo4uCrj/awsgTH/UMbCqFsDU0m3bke13poCCYsnIKBAhiPbAA35aK6Hp9+2+cRcGR+/1FCV29lJensIJSRRgUVNrzEHPbs8N6vo2pzACOM6UxJAEOrvP40iiKDwJygoLbfiHi1sMdRIUQyWLw/bWIplQPWdSaA4q13GEwqdDTKTySR1lyJ5JosORGyzz8c344btdxSQIrG+ooJOKhgOLKYehsm4cXS0uTQhZOPjcSk7hB0j317aaQOP4I1c8zE6Fo3g8UA8oHnKUcJGr0IJ+hYJsIJ6+CG3wtvbphAet0y3bt/+BwgcLL4zhcEIiT9fpXLHlLF3oKbCFobAlLE3dq9UVYn2ZKrNVCqIsEAqoCxI/xy+5z6kzWMEBRHNFNQX0uKeQG1P4yBQgEV1WmnCmdHBPyGgaM+WbmmNanXONEkDnA7HLnPyNQX3xrrY8vldlZhtfYDdfduz9mzL4xA/0JkFExwQUNg6NTePAkcXUFRc/Hr80k5xytNvpqQs2vmg+/aIohZsfO9o2i0QcDDB15/rFzZYOQp2vBfrzd4/NZWkJ+lCG/gvFiw+ZcEISAx+KtKGr7JSrXaV1rBiVTIVNA3B0yLCQk5ZcEECKEJVvGXcUGIIolBSFOeHESABxVqzVjuoGRwcHhqq1lZXV2uq79yZnJis1g5UlPiG97rs56pNUqfWSGMk+CMU2N7G6PjMet9kLn/t3AczDrLJZVOxGQx4YVaqw6Optam14YoYv+KkXy+3fOxx/M+hlBQPn5cPbd/P413EpD63zFFAWlrqc484CvXWgiSlkOcocLwFGv1wRTCTJyy5gma3MAsKf5Ec7s+EyGAfYBuLAVqtzlSTr1UqV+pkkwmsCAuSFrH4J+LLebxNfIoBQgZFIy4+KBsizYGFFAWSRVqh2RyInz4xMdHTfuOqsSY6trbX5TX8TM8ckBjAJVpxajAzrO9Su+WYXLuSTbr1q9GulV4+AgNQLBzIl4WasT+LNcFZW+KjN1xTXj71WfDkgRSPjzuPkB5merQc3bb8nJUQfx0Doz7d+oh1Ijt9v9B6ypqtVE5N6W9FRvkG4/ex2IKFOrX7Ok/ieECpRwpA1RIXTYof4QEDOa5qqkyLKCTItVItR7bARdOsyRW51HivAwgqlGAoYbisVxtYHNhDUTTWYQlIDu3oDaKr4ZGRw73eERg5pNFGI4dkAklNomSW1Tp+V1dt+9H49jMhITVjebakBkZjo7e2PS07W0OKEu3tQ6Ojw2euQmcgf72+w6dncodN2eWfeN5Fid3dPxFdvibAChgohHrHIsfVHPT9RLma9OPM3Tpw+/bJkzMBYo5mHXaLCpDJYXU+kraIYJCZIJkMaT3KaJpG8X8gVPX1XZhc8cnF10C7ZlCILGJQNGqwCikeqAMMc0/fKNFQLUpZo0PZFUJRpSkqssKKFgLy6iIjB3oj20stt2WS8/Lwrs6iKNjs3sFBpmT3D5WnpaallkuVyrL770x2jP/222tS1COiTEknmr69cq0bSdORZYWusWyBtZCtn7JiCa2T+sv6m94NRLaYIQGxuHR+xGCo3Gz6h2ThUUZXoECEwAj/JiLPrCcoRPUzcjU55eRw+VRwBYGBe0byXq252HxWo9EM9gwURrvtkvZUp2mwPCspHHDhGd1j170XlCwLMLIJBw7LqqK1tcSWJQkfxXt948b69fU1TNWGw8woxspLTv5f8do6w9YjSnfV5IT+J+8kbJzdvjz34vaE402XfxIIgAI1WULEGq2W0X6agxrNtqRttwMDcVCZo1G4MCNtonRimHGDFArAGQ75BhtlZF2DcIAwr4cAhhEBAVtAXbBGlwGnjhE3gYvX5tLh4Xq53KwtBIrqs2QVgiAZhamHzyA6hgcHNdU9Wu1ez8rk8JJe1IHo3IZdw6tgc3iHZbXNMilmXq5Y+IAFDroeq+P6Bgf3/I9F8IB/bn/RgaCz5u6fJHnIKOjiu2PlTYfLP11uIQxIsz8rQEnvFCyP2J8kBJDerb6FgTCFlmQJkIBY9fVyNcUAUQwBAYSFr69vuG+rUWYCDEgGucooEQrEkkwJDBomVJRDQkJIyEaLErraZVHx2QgPMtkcBgdoUNPXVztKdBWqTc0+WmhlaZhfM1Bs3Bef3brpsEpXuv7MYbYtBxjyQImsyOr4JSers7Nx/Esni7ncLt2xx0vTEn8rwiPwLvv27tu+pSD3p0u7G6ytHEmhCasmDCSdF5RZq57f5SZJ2iByuqWloikTJApZuEoGgwkc/pYv5NTai7fmb/2Xh8UdM+YAC5Dgh4SEhALD+uPHj78BPUm0PiShtLS0uXZodGhQ0xNdWFccHVxS3ZOt0aRln4yus7ViBCCcmgFjgG9wcaE5u/bMXhofTB3NFiiCTgLFP6WZRnFsY8iTT68/887mPQVZF4oiVhsjYjddvHh3gSOyhDVIUBRsfUsLzx0PgGzZnO9pvl1IZMbHQN0AmmuzLBimQTg5OZETLPB5dG+4b7hF9FMLEIbHDBAGB2UBGCAREhJE2reDxXHC4mn8HwyIVkJPv7F+Y0K9yuSJPb/G4viSEm1wj6aupiaP4qjD21TXU43wNdcijpZxkCWmWzxiWdAaepKOH1QacuDUZJ8s5D++fv3TK/Gd8VOZl2Nr0cE/w5E1XZ1HmAjYvCPCloveh9DKNN9vXesycuMKMOo44I8gZEmpAiwgoqJwOkHk8+heX9gDECC8Mn9CFnfMAAERCgMoqDHAArY4tvEYjAEUFhYrKYs3LUKX/y9XvsHHdobm9jTy9p7VmoHAXBxcHhw+Ssfb0TGOLcWQJ0H4sON1PTDCv5VdXa0tVKN8k9mFXyAhBByIFV9ZuPbltU/05+b2K2EMeILtyBZuE3YX6ZPe3eWXL3JjuvDHAkhvTQ2vRiL5q65zj2mrDMN4gzPWtakONVEisxoTNWuAKLhNS0bVFbETGYyhQCwyEXEVyGQRhKjDMaYOL5SpKA66GZEyaRy6DaYoUNgCLGZFVCLhMpW6UpJSaRviPz7v+/XsUC9Pz6UYDDm/Pe/7Xc/3KdgNEgdJCaQSRpFDD8+ZQxKzAIzXZBYkpA5mwbbgGBFBEg4RmQXBkGlAYSjdx99AXfRbTq6/gQOzsHXAvNQWtCtotKEI8UEs6ILggCuIYWPL9omJiebiYgu69tEQt2UWnCzclHxD+TU3YYY25mnce/cVhw8+bap75ajCdHTdrtezyvYUZqU2Q0gSuGIsIr9KAQT4iEeX1ZPQU8IoEmALyIYzksV96EIEDFlkDJEuIJmF7At2BpMQLBgBDjrDXOJOoi2A5tu5c11dh/bvtzU2N7924l0UQg4z1cDsza/+8Qc9e0/POPrjbO+eeOmlVzN7dnckNplQbOCAqA/KsXFy15EY9GjsM6KZX5HLulKVXYdOOFOr4c2mjKwbb7zSQj3/fbgwkD5CwUK1BMI1bAucJYMd5Ir/EWwicktJW1VlwW5CARZAcewYsUhEOZL3yHHkC2EMJkGKY8mmEBe+4Z6DnI58DiJc1H3a1WWZcCgR8UqkVPsl+ynlow1cgcOy1GgD8YscpyszcswgsY5FdyRb89bkzZhZfi2/1kKr4SQ/jtqFqdZqMJlN9XsSX7zq/ZZTqPpSFZhgoIolOEATdhPEixbxSiR1/xAWY4WmpuZIwblgcG5pqRaHTlenirp1927KoGwLIiFyJ9sCMGRbRLIQNIQfvmf9+UgXdE6IitiodWJCQ7SS+jhKMhstg1VFZEIOWx7WsmX2WBLtICBLoHgQi81u2c5vfz58ZMumD2rj37vpw2hUs2oqt5aVJR9ugZiDhYeGFFJIVJm8oZWFyll3r/vMbRh+6u39Alfu/lhcXnZDi0NDi8vugMfvv9YTuu6it2LBWzE/VzE3l+ZSNSBiwCKcLSQYzIJRRMCQUOBcLWYR14PgICEnWKhwZUVbL9EA9mTn7qqeHqkURaAUUc747LMuy3EKkEgU2zfd/eb7b9FSmkm0WvHBa86PZh+tM6Aa90JMzHoMwx0kQ0jZAl8ZBYVFldnr93oHfO70RYzyfoHlLJxDGKcdc+qdwAEeF5yiiwwrfpRe6DVeOJNL1972YHBmSULBESKFCIlRyPkiwhcMBAcrDiQ4QmznLrN4Ak8vWJgnf+myAsXpIlS8bYyiiFmABBJnT19iNkhEsLCfjL3naSzQmtXE02Ka7j0vujsw+Hv0nQpjZ2H5QSYBCW+0KKpYSBSGoNe74PN7Asu9Z4bO0BInpUNao1pNC7xp1Bqhtasua/fRBIb0+bn5WlVlkRwhQAEWDEP2BaOIrGCE3cEOEamUXCGhQN9wI7mCT/O6Pocjes2pAhuVHNw2hXjUnNpmhyyJ90eAIBQF915dUUETdehPrb8B/eh3v/XBMwbTOoP5o2vrOzeUH0SioAYiDlzgCnQBs/J1c17vSggs3MvLQ05Iqw1cGCrVaCG8ui/pZ3xwlQ7N2PzcD0tRKUWrIgRiWzALRiHHyC0SCxwMQxanzrhz4+MSDEbBDVbsMIN/0TXNL9m4+OTyVGJBank09cAz1oi0ad/+ftnhezdftT5X2A2zUtB//tWbV5anGfdd17QHKE5BkzghsoUChRLRyC9RLcx6Z9yhXmDAugVsBXUgsKjHaJsWX9kJa/ncB0to9Zq1ajXZYn46cUnVViRYiAiRbSGxkKrgHCI4wopgkRsHFA/9EwXDuISq6ETDxgkTGEAiWYTFKG6tTs2xyq6AzG0v8+ZVKSltBTRSlRxzAxi8KOZxNW1gFAxBcMA3oBCqUk2HvBfdIa2aHly9lnyA4NCr1WNa55geRIw4IY3mIfyGtlSrIbsARXB6SZUTRkERwiwiMidVAFEFl2yxGgUd5A6pXLl9HCggRhENFNyvO2lHiBcntLx86Fuh/ZIQIMMnhp9YV/3qsUvEgk6RKwbtqHNx7akaG61UAgnWI8jA7PYHr36wPmnbhvJ7hCMoOliMYjB/sHhC513xLoR8eq0ey72Q+A5LwBZAoVcbgYGjpVTDFIiYllAsLakKRLVLoOgHCTlzsi3AQsoXRIJZROpZImKMAwphi3PkimhyBVB0KKkro7/Zjq6OVRoGhV+G+4/151vRdJiMcAVQWAZJFgvumGhN+55hr6uGxyqPZCUlbUsqzyIMzQJE2BWWlngz1nRf8nKu0PLT48Bz6vkODCJv0iA939SIEJxwDX6YX5gNqk6Khsl9IkJkWzAIwUJCIWwhaNDt2dufFWKD3CKhgFCCCCkn4Q979d6O7DCK/eKGCVag0d9/omfXXaIEkVk4Guz5PKckP784IQdq4w3+BouV1eicJxSFn36aD1R9XISAisIubbO25Pev7Jz1a52leGDSWn1AwxlDj6DhYAjnTSEqSNTQykyvV0fN1pNAwbboZ1swCcHiAbYFJFjI+QIX/PDs+tvBg4hgEXsiIaEAABXt36SsVsIgmBG08d1fJA3/cqIfrf7hfvyZY7Y7d+D5mQEOUrQ9HyhIJXheTAVqS21qSCB1VDVsYhQ7OUvy/KNDmbZP87GlATBgbwNDMBRaOT87iynfeoFCrVkGD7DAU5MiQUB0V69dWQl5dZmZzEJC0X8MEihkFpw5BQpZ6/kiFrkja3SzK1jsClWrIUpXcwov1uii18TftR9dmzi+PVQ9DLEpoOGujRuBgSWxsMMVBIKMEd71sTLczEyJ5QCpHxRJUhLPQNS11k3VzV30hXw+RqEmabRq1KegL/C8UCQCcSXXhFZWVgQKrlu8ceKEIBFZ5SRFongIdsDtlvX48JKHzCLmMgq0PqLgiDnM26p1KKPIFpOmcBHaY7UW4UbpgjLGtz2WFFGMCskoQIKE+Wi0EyBQkHJiN2/YlpT2+iWUHX3Mg4W5WHNT09Ojo3XeUMjn8XnU6ylhUq6kwPgVFhnSOkljzl+dv0JjLHzH1Ykffe3uVSjexj+THCFnpbSJIyJxSgIF/IebIeAgxWBUzjEpYFio12WuVmcwKNbYL1mVazq2vcsVCZs5uhjdNlySssYHP1HKLFicKyA0K3GsVsnJmERC8QL2g6PDjj84eQot02nigEvrwoVZ39cBt3CFhusM6RoqKJxa55BzTJaGBFYUQ5DfvewzZJKA4rVXmYRkC7nCyYrMFmSJ28EBJIQIRR5vWtfIzugDCkMrBrVck/H2J/6atDYndFFte9CqbD5kE1VSlu2J5gw8VIQclYwi4TIImUeqQPG+HX+KtY6lAIYBfKZds26Pp9fdq5EChOoOGi1+cHKBqpYThRQayBS4etBAYxRwBU20RoBAYVewLeQIIcm24OgACez8ISRQ2K32cYECSdM1Pa/DVWewdu3varF09fRY7CqrBR0WVdzvjyvUUrwD+wweffmjj56hjTrNYVfg8eU+uRx8xJcDMRi2S0p72kGyQ4KJgjCMQiaPxxOYdQ9p0kWtAhCQOKlm4cQz/580+9R+n39FZbMxC0bBLNgVMMVZmcRzcrJgGLhybHTHdIsXoNIw/f54xsPb4nfh/wEMS7TKZVqYx7xkl86lsv5yrrqjb9KMIJhs4TozFH4a5aPoXog/OoWFMnhzmh3K6B0N9qoEmcSqXtuCzlgMWgEF9jJxSLKjmxcgRkZwuNwfLkNcsRQBQh+qVjkjHn4fPvIPGrXetRQMGoACJIgF5XTZFXIl69+JEyDIETFC4YWV8259qMlU9mxc3KuEwlDbujBda3BRvzUaIpQLDOjsDE8PQ10UxR8ueB0AJLKf+WkUi/N9Dg3ooj6otCNLsJgEK4G+ZJTFJm/4ZHPaW9liR5ONGwURxQhpmgKk/trFxQtjeHo1i1HkIi4YRaQkHBqg8AZDfrMNYlcIFIIFDfSRRFkqfCGhIGcwCZ6aEt62A9q8Z2e8Iw8NEhtQ6DC7YmbkKApSPK5SJEYMh4CDIKFSEROVgfan3Pjoyz/t+OYdcBg1GFwG3SuVjoQCiC7UqZ9TQCdpT1ksZm8kp93zDBYdhwCEcSgoZS4sjI60utuXgUKvTtdCFB96WMMIFEP/iAkJhoZRpAd9gYBZkKDZk6sC5KyUK8BCQnELoyAM7AlgyOPdr2JBg1AkwqrPgMROZM4+c10rRi5cBlS7MTNAbKZMLVQWT5kCildcLhdGzbFeyChInP/ufB2cMlpjFijo8VNTafogz42geSLbMmKTCjdsuuPwrvt/uh8iHrSZh4LiYwbGaPV4gGJRr67gAMFDslCCDOGJI1Fo6L8AEv3WF94Vn/8yitcECkGCC5CzIPHvZHE7w8DbvbwtHL+cCBzwRpL9kiMFLdRbUAO3tNahTxZ7GoKESsQDpCQMkvD9ZSJRy9O73qHpbj8YsNvq5wNAUQIOcEXOnQVbMDkkq3BP5x7StgOxmwsTY9O+pB2UsAj9Liz9OAEpZqARyBUIBNBToc81httiqHMyC61TIiGQaEjMg8pb7U1oxa2Ye/6Bol+YAsli+KwwhZwrmAKliue684hCEoauszBBYTOt3FKY+vvEwThj9/O5b4/31da11vKDq2AIFrqh5L2LVTTOY2BTzE3NT4/OwBPt7Z8DRev5WmtDTYkY5yopaYOwGmMGUGShh/gAAiT5mrR73/ngHVrDEkB27N17fwehYFe4Zs/4fP6A3kgbmTjT9TjUaic1Rp3kAtkNfDAMLnB7V1Z8IXNPj4RCSpsQp83M3Y+sDpDV8QESNPWpvolmNDVl7UQ35KbNndV2LPW6yZibOG4hFAYDPbNEgprttGE7pU7s4goK6G6G5uenF2Yuznra2z2jQFV3Xmdt4ABJQO6sQiuscktqzoEm8eZfWUxy0qbr0q7gjXF4SU+se4f1Nme+YVeMLs16UN30U45AhEjRge/aUn54lkxCCL/yNRq0AdkVPzKKHy35OSUdxSknTx/bnUIoZFewLRjFc8cT+W1E2myVZrthW7W7C+uzzdnXV3yYbjQWjVviMXvGpZRJwBLRNBCsWmOmHY9VLpfgABAjADHrgWbJR7Wja6wIEEIRFhJGgUCBcQOgiL0h7WqxUdLT2KSQl2VVhE0xHfSFCIW6wkg5E1JrhfSlooGOk2/ydR+jCC4FfeyKTAkFTNHX0iJK/omO4rbOj6VRslVCeDxFkVGWunUrze7KyMBGhIfrm8w1puxrbjLmZjU2Mgodb1svhQcFBaSwmilIdC6AmAKI6YWLRIJRtAJFXZ3K/DDnCipBcaV5dRlYMjCLUJTF5CUCxVVf3ouVNGkl3zJewpdQkAaCPj8CxK9Wl+tLL/fZXMBdqoercYor3SQy2valpRWPvQosbKsCZJi7kblHuWMC2nvk9U+e6n7gEaj7Fqp1U3hswLhOxva2ykrabI+t0ZT1ujne5Xoh3ZhsaRzvi6qto/BQRsumYBIGldVE0851LkPrHIFAcACFkI7nn0chbabkcK6gIhQzrFI7OzGMtA0quyHvKXTvXSP2F+GNI7GyapMCJEhTQXcg5A/4NZoKoOC0SRmTG2ZqSNCQJJCQtO3BpZDfXoV2fybKUgnFsR/7msNDksW8XXx1B16S2puSmohsiWHuPBDpTsRk0a0pR7CFLW0/uJ3721JNta7W0QrjhtOnu/rsNTqFQrwWI1CQKVhWO9cs5uYwsXN+YSRMwoPzIkhAFCBtTAEVCp5SmAEUiA8JBZb6vgPi196vvpqIcBVrdHSgdtqDpBmYVaMw1TuhIScgjJUyiv+UyBxqd9Dr8zlEFwix+FGgAAvIQpJ2zWci1Uc6dx5/CK7o7n4AU3+7854qPLAlBW/zU+8jbUxdgw2dW42nn/z++zcsk4Z1CA+arY58yc10pU7IsYurFq2UJwZGLwIFswCJBZ1AYW5woNwoKGjbSiAYBSdNzIsCijygEEqjM41eQFGMjE4PDMxPuUaoDeJ2Dw3dgS6KcOe/GuNBpfpIFPyTlEPxWfT7Az5HI1iQL4q4NOX3mH+0sPqKLQxibzGt24sT3YxHyh57f+dTiJS4OEBBD+/txwu3YHPnFKxaiiJDp8s4AF80PmGn3KgSb/YTDbwMHnbF5K2MwgASaE4uzMwwDJwzC3M6yiI6E1CwKVJRiiJRdGaUCRJ4KfbmWEJRUY6DVAGHwCKKgfl56h2JmpkNQMt62QRahAiFiX4oQunO9HRGBUr4rTP+5eUZh+WJfBEjbAtGcbafRoKBIqzL+1ljn+8jNTxP+P4dW5LQ4y+GjutvbQCKrSaQ0O1NM9b3NfbB68iZCgg4aKIeUKgEir2iwkmuQKoAC6ZBLKbxOChla4Bi+3agOFmANISK5h56lX5n/eGkeoHijmsroHK6gAU+fwNqbCWPuqBqqAAAAABJRU5ErkJggg==\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"°C\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "temperature", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_card.json b/application/src/main/data/json/system/widget_types/indoor_temperature_card.json new file mode 100644 index 0000000000..c8316e3af6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_temperature_card", + "name": "Indoor temperature card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor temperature telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: '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\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\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\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"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\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"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\":\"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", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json new file mode 100644 index 0000000000..28243c702b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_temperature_card_with_background", + "name": "Indoor temperature card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor temperature telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'temperature', label: '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\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\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\":\"thermostat\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json new file mode 100644 index 0000000000..567cdbb73a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_temperature_chart_card", + "name": "Indoor temperature chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor temperature data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "temperature", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json new file mode 100644 index 0000000000..21ef0a232b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_temperature_chart_card_with_background", + "name": "Indoor temperature chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor temperature data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'temperature', label: 'Temperature', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '°C', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'temperature', '°C', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Temperature\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"°C\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Temperature\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"device_thermostat\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "temperature", + "environment", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json new file mode 100644 index 0000000000..0adf101ae9 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar.json @@ -0,0 +1,29 @@ +{ + "fqn": "indoor_temperature_progress_bar", + "name": "Indoor temperature progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEXg4ODf39/g4OAAAADg4ODf39/////g4OD19fUjTMchISHj4+OsrKw9PT10dHSQkJDHx8fj6Pjx8fEvLy9YWFienp7v7++BgYG6urry9Ps/Ys51j9w+Ys6GhobV1dWXl5esvOpaedU8PDxLbdEwV8upqanI0vG5ubn39/fLy8vk6fiRpeODm+BKSkrj6fja3/Fng9jU1NTDw8O6x+6fsOdXdtKrq6tmZmbNeyDTAAAABnRSTlPvIL8Ar7DvmsykAAAEFElEQVR42uzPwREAQAQDwDiGv4f+S702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0in/1y13EchqFod4tLvSBZUCoVbly5nfn/P1tSNoJdON5iCjuDmQOEERmG4EmAxH43zkWS2xF8B85FAnccvoiLGadcJ5JFEr2IfHmbiYLLMJFThH5zqqEJgFglBgdpGsYHbpmRWrPDEiVWy0IV5OjZHlbTSuz2qG2blWBcLyKenqwAS9FDsBCBib6QE4DAUhjGs+aRZaUX8aRvWkvQkkO0Icgri81SrhcJjJBSMsgEIatlKmLlVUuOnxmfeghcU8+cM9pmKvhbZF76NmvWWbhBhEVDY8dIPUfY93RseujAg3EsbWRZGI4idX/jSIHLRYQb7pVIYtBkEHaRx0rlKDK25+AukdkZci5SnZJs6dGekE5FyjbrDhEUiiV4JRL4gTBW7PvSDzb8I7IA7SkyWQsyBleLVPrqJn8U8S6yCHop0QX2TSRpd/UM5hAeqKPrKbKMWeWebwRxJstyFAlaTgC6vV6xiSBq0jhZWWMO5ByeIviw3qt+fo+IvPzjzoKNLFnjIZE80v/Puv3qd+I7XU7+igA94Y34ATdW34xfkT/sz6EKwDAQwFB3cHKyTA3Gqf3/941SUdfaUPJEfGgcoXGExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGExhEaR2gcoXGEZj/SRq8piDYjrZ6M7s6pAmg5Ut+becDIz34drEYIQ1EY3h08S5dpskhIkEHFEWbm/V+tkJFSLUy5ljDXmm+j25/rDSYxW39aiQ4avQohw/BB4jtPemj0KmRogW1IVDqQ35Z9G9KRA1QShsxki6flaQxUkIX0pMXTGJ0B+kA6FTOShdivgZiA0QPOGtyShvUXhfRkwCIOroV3eTgB7ycKseQNi8l3wDzn1yveTxLSOzqsBAstJCGe9P8i5MdAYHOI0fA/LAjxpMXaPRkA9mDL7sgWa8aNBt3Bjt88kK0pMqU7FMghe6lZkHPd2Q+ihmhTQ7SpIdrUEG1qiDY1RJsThPSBe8VrU4w8JHK/R1PMRRzCv2jKEYcE7hebYuQTmSL3epTbkcuJT62DqSHa1JDP9u4lhUEgCMLwmEcpGCIELN00vRrQpd7/cBGyD0xW5aR/mAN8NEwvW62AqPUFsg8+Q6XdAbo7yyE0wlXGRTMg71i9HLKNwKwykrwaYEQ3lUPWrANZMw144ninhtBZByQPeZweMAJTOYRTh3GDQgvZfr6ezcshmG1wqEQDenPrf4BgWSAW/3uzn6uAqBUQtQKiVkDUCohaAVErIGoFRK2AqBUQtSqCJFRRmy4VnJ4GXvfUpAqOT/NgXJtbe/bSpbm+AQFDJgMgD9a7AAAAAElFTkSuQmCC", + "description": "Displays indoor temperature 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": "\n", + "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: 'temperature', label: 'Temperature', 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\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"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\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"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\":40,\"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\":18,\"color\":\"#234CC7\"},{\"from\":18,\"to\":24,\"color\":\"#3FA71A\"},{\"from\":24,\"to\":null,\"color\":\"#D81838\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Temperature\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"device_thermostat\",\"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", + "environment", + "indoor", + "temperature" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json new file mode 100644 index 0000000000..2fc35d9e0b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_temperature_progress_bar_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "indoor_temperature_progress_bar_with_background", + "name": "Indoor temperature progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays indoor temperature reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'temperature', label: 'Temperature', 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\":\"Temperature\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 20 - 10;\\nif (value < 15) {\\n\\tvalue = 15;\\n} else if (value > 30) {\\n\\tvalue = 30;\\n}\\nreturn value;\",\"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\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":40,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":18,\"color\":\"#224AC2\"},{\"from\":18,\"to\":24,\"color\":\"#3B911C\"},{\"from\":24,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Temperature\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"device_thermostat\",\"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", + "environment", + "indoor", + "temperature" + ] +} \ No newline at end of file diff --git a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java index 892eb996bf..87e1b097e4 100644 --- a/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java +++ b/application/src/main/java/org/thingsboard/server/service/install/DefaultSystemDataLoaderService.java @@ -534,6 +534,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService { this.deleteSystemWidgetBundle("count_widgets"); this.deleteSystemWidgetBundle("status_indicators"); this.deleteSystemWidgetBundle("outdoor_environment"); + this.deleteSystemWidgetBundle("indoor_environment"); installScripts.loadSystemWidgets(); } From 3917e184cb21f35619273fe76c6a14f2f29813fe Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 26 Oct 2023 13:50:41 +0300 Subject: [PATCH 114/117] UI: Indoor Environment: Humidity widgets. --- .../widget_bundles/indoor_environment.json | 12 ++++++- .../indoor_horizontal_humidity_card.json | 28 +++++++++++++++++ ...izontal_humidity_card_with_background.json | 28 +++++++++++++++++ .../widget_types/indoor_humidity_card.json | 28 +++++++++++++++++ .../indoor_humidity_card_with_background.json | 28 +++++++++++++++++ .../indoor_humidity_chart_card.json | 31 +++++++++++++++++++ ...r_humidity_chart_card_with_background.json | 31 +++++++++++++++++++ .../indoor_humidity_progress_bar.json | 29 +++++++++++++++++ ...humidity_progress_bar_with_background.json | 29 +++++++++++++++++ .../indoor_simple_humidity_chart_card.json | 31 +++++++++++++++++++ ...e_humidity_chart_card_with_background.json | 31 +++++++++++++++++++ 11 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_humidity_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/indoor_environment.json b/application/src/main/data/json/system/widget_bundles/indoor_environment.json index 90717e5745..9df61bf1bf 100644 --- a/application/src/main/data/json/system/widget_bundles/indoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/indoor_environment.json @@ -17,6 +17,16 @@ "indoor_simple_temperature_chart_card", "indoor_simple_temperature_chart_card_with_background", "indoor_temperature_progress_bar", - "indoor_temperature_progress_bar_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json new file mode 100644 index 0000000000..1d630dc25c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_humidity_card", + "name": "Indoor horizontal humidity card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQ/pxrg4ODz8/NXsja33qnOzs7IyMisrKyf04zz+vHn9ONLrCi2traHyHD5+fnb29vCwsKQkJDn9OJvvVPb79S8vLw9PT3n5+eTzn7V1dXP6cZYWFhjt0V0dHTD5LhmZmb19fXt7e2r2Jur2JqCgoJKSkp7wmGenp4vLy8hISH9/f1hfASuAAAABnRSTlMAIEDfv1C6kOEmAAADLUlEQVR42u3aa3OaQBiGYdukD6+7nJGDKApKtDGapv3/P64cYtFOqvmgDXGea0YHd794uy6DIwMiIiIiIiIiIiIiIiIiIiIiIiIiIiKi/+nLp9dkfL0zPrvh3beqw/iOT++78XVwr3ADvt8PhrgFv4Y3EgKG9A1D+oYhfcOQvrnxkKfSwwHHQJHhwBaA7dgO+nOd9maIK6J9dJY2nAelYMBonuEAhjMubHunDKgr1qxMH8DUbHhoeBvXPxPSdRyXLH/Y2wf7AUtjtp2t10vMsF3Pxs54PBu9qK2DazFFTAChNHzUUq1Lmb4nxJVG6XUhD+P1a0i1EPhZhbzAqUKMJcY/ZgauJNVtyEQ23Yq4gQcdVnOLMyFTeZUffbWOQ9RsH2LP1riWXHQTUgo6rq7KQuQaZ0K07C2O98hu/dKtyHi9q0LULsPSwZWkkk+aEAngYe9J/FTnqfhnQkyRcBNI8CyicUy98UIZO4Ur0dpvQjwJApFnHw2vrDewDnEmRIsAYTBFWS/JeT9GuBK3imhCUgnCXHef63SKJ+2fDGl3iLsqp3CbXfKBUgnRhsBLq0cgi24uMKeu658KWUglaDskxAfS4ppmKeEKrVBc7IVhGkxKmZ4ISV87njfBx66IJ680FqYPIO9CTPHzAND5iRAEIiu4AoT1QUvhDeoRx5TCJS1qpeTVhpDnZoUW+0btImxOwqdCXBGd1/vkYHeN2hiFxxiNKEI0tOqBISIAc2eOKI7biQi4WFJ71tISupPu7aw08BT41UY5FeJp2TMPQorCim3bqo4SJHGSRaPEKgrbyh6tLAKsucqyGMpqJiw7u2QI0omITHwc8CbViHcqBOm+ZIPDEGukbGtutSHzIq6Oq7F5bCV2EzKM4yrEHs1tVeUmChfl+R7+4vvnrrU8sxQJwin+cKw4sUaFnah6RawsTkZqZFvV2GM2ty3UIVG9IvPMqSeKJMEFXP+HVTzHvxV2jPfoQ0gUnZpUeI9ehPQRQ/qGIX3DkL65pZBfuAXDwf0N/M0OqPvbuWFg8O1uaHx2d19v6aYaIiIiIiIiIiIiIiIiIiIiIiIiIiIiov/kN5uj+TgHcSVHAAAAAElFTkSuQmCC", + "description": "Displays a latest indoor humidity telemetry data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":null,\"to\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"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\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"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": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json new file mode 100644 index 0000000000..b2776b6a8d --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_humidity_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_humidity_card_with_background", + "name": "Indoor horizontal humidity card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor humidity telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_card.json b/application/src/main/data/json/system/widget_types/indoor_humidity_card.json new file mode 100644 index 0000000000..848cf84203 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_humidity_card", + "name": "Indoor humidity card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor humidity telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":\"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\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"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\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"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\":\"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": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json new file mode 100644 index 0000000000..f1a69015fa --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_humidity_card_with_background", + "name": "Indoor humidity card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor humidity telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: 'humidity', label: 'Humidity', 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\":\"Humidity\",\"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\":\"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\":\"mdi:water-percent\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor humidity card with background\",\"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": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json new file mode 100644 index 0000000000..0c8502b5a8 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_humidity_chart_card", + "name": "Indoor humidity chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor humidity data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json new file mode 100644 index 0000000000..bad113015d --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_humidity_chart_card_with_background", + "name": "Indoor humidity chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor humidity data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: '%', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'humidity', '%', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 7;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 100) {\\n\\tvalue = 0;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json new file mode 100644 index 0000000000..fe33da9152 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar.json @@ -0,0 +1,29 @@ +{ + "fqn": "indoor_humidity_progress_bar", + "name": "Indoor humidity progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAn1BMVEXg4ODf39/g4OAAAADg4ODf39/////g4OA/pxr29vYhISHx8fHn9OPHx8fj4+OQkJB0dHQ9PT2srKy6urpYWFhXsjfv7+9XsjaHyHC33qmGhoaBgYFvvVKenp6Xl5cvLy/z+vHP6caf04xit0TV1dWpqanc7tbLy8vD5LhmZmZLrCiTzn7CwsJ7w2E8PDzc3Nzm5ubU1NSxsbGr2ZtKSkqpy9RjAAAABnRSTlPvIL8Ar7DvmsykAAAD+0lEQVR42uzPwREAQAQDwDiGh7/+S702wmQ7WLg91HZhDsPkeg1DdB4wD5Un4EqkFCGjCBtF2CjCRhE2irBRhI0in9061nEQBqIo2r3iWTNjGzrLckPjhir//22bwK5YFBJTAZFykWyQqyOm8NV6A+miW7btzDDnKVAvOKE2JFBxr6fiRY50CyQzAZ0p9nUlCIYBCwTi5pddnQMRG4DBBGoiKQ2YFsAyAE0pesp0bjf6OFgHIJtDo+MhxghEGoSBhayPRQAGQAsfj0znoTBUxwIoRzQ6DlL9vbCGjIo0L36G9DToOEN+R6ufvhIaHQcJj7iGeEBYAWU/Q1gA+BUk06Yf2ei00VogfoHc9yeIY3C84X1XgziGJwh6ZkY0OgOSmYG8CUGgA+oa0rE0J+sUiDDkHLYhxhCNC6R2gCvs0egUCIwsdRuCRI7pDzKME8EfOlkLpJ1T9+YM/1I3QRR7u/DtV4UVrT4B0rMoWn0CRKJDs0+A7OgL+UJ+2J9jFABhIACC3XHFtaKCRfD/j5RArK/dwM4PZhdGaIzQGKExQmOExgiNERojNEZojNAYoTFCY4TGCI0RGiM0RmiM0PSRqopp1DKCqI3cmUdMby5PEHWROv/ItXfkY78OehwEgTAM3yaf2bkaIeEgkBCD8dT//98WW2jXw1Ib23Sa8urN0xNhUIUCMYj63EQSuwOZgJghXuir2AcZoIYMiVhIcHWIQ88FAswkdWTdgzCgKUMY8BGAYrokjFSFDFBUIBa5/iJR3gQSVA3iAL5C2MSZKfg8fq0huxDL2f8VCAOOCqQ0RmBcIYqCISVnFFcgCyKnEoR5c7CEFdRP86wViel/yIQ/bdabpRS7ExsmMe2GzErR2pIhKaWtE7O2anskVZbWDTAAY37uuddek4wypNJt/PaWWAGqPGDtaJKyTXZDyG3PETo50vN6y2g/hPQAICqma+OwDFL2e4bsK9gw0iY5315f9M/+ITWItBpEWg0irQaRVoNIq0Gk9QUQNjiUD90rehzicTDTvaSHIThcl/pJ91OvxyEGB/NnRvf2N8IehzKhSz0d88VT68NqEGk1yG97d6ziMAwDYNhp7/5ibsiBQYNCtYUshjR5/4e7a2nXQrpYTfWDd3140ChvBcRbTyC1t0Ljch0BMTO5D7QdIirYTNOyrgqMlcmYNcsg2yHLGUrzLxEFVMgDdYVx2g6ZRjeQ39srJSBeICowUF+EyJA5L7TsAbGZxZgN9LIdQtHeaNoDclG7Cta+L7wAIWe8JPeBPnuzv1cB8VZAvBUQbwXEWwHxVkC8FRBvBcRbAfFWQLy1I0hiF53SYQenp+HnO3VpB8en5Z9x7L5O7146dMc/B6Inq4uieH4AAAAASUVORK5CYII=", + "description": "Displays indoor humidity 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": "\n", + "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: 'humidity', label: 'humidity', 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\":\"humidity\",\"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\":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\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"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\":100,\"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\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"to\":null,\"color\":\"#D81838\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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", + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json new file mode 100644 index 0000000000..b307fdaf46 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_humidity_progress_bar_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "indoor_humidity_progress_bar_with_background", + "name": "Indoor humidity progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays indoor humidity reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'humidity', label: 'humidity', 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\":\"humidity\",\"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\":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\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":100,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Humidity\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:water-percent\",\"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", + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json new file mode 100644 index 0000000000..86d70e2a9c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_humidity_chart_card", + "name": "Indoor simple humidity chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAflBMVEUAAADg4ODf39/g4ODg4OD////g4OAhISE/pxrj4+PHx8fx8fE8PDyQkJCsrKwvLy+HyHBYWFhXsjbn9ON0dHSrq6uenp633qnV1dWCgoJmZma6urpKSkrz+vHn9OJ7wmFLrChvvVOf04yf043b79TP6caTzn5juEXD5Lir2JpwKyMUAAAABXRSTlMA7yC/r1EOHTEAAAR2SURBVHja7M9JAcAgDAAwytEP/v0OGdAlDtIAAAAAAAB+p4/I181+HrHX83b0Ngs8zmS0XCVElUiKXEbkNh/79bZiKQxEYfhqsajKiYCGmOz3f87ZOgxK202Ghg6Rzk/Eou4+yIVOyGhNyGhNyGhNyGj9AsjDflO+hMjL4ZK6fecEt6QcZKWYktG5NkQseZU4AlAqbuUi/yBRkSJ61oa8+C59AvEC4837eC/GV0C8wXtYKcaLluD3xf406gPZeKR3CD2EKrTR2ldkhFIQQwwUoXeW0TDBU9CoC0RoUwiF8QI5OiEJlRlb2CHKinpA4CwQ435adYFsXBBzJvMJUdV0gfhdAMf95QnoCUlBuKJRH0ghbc6BrLer9TnEXCEmFBo06gNZGHJeKqk3SFiQPkIMHdwJQWRBsy4Qpa1hy7S4QRIZP0Lg9qX8XRLQTjerDUHh0Yp7Rr5YnlMN6FMbgo2krfhWm93QrBcEEME3c87g/5tfvxMydhMyWhMyWhMyWhMyWhPyIxnvFpfy0yGyBNKStP7RkBTCpgaQ1XIxz4U4Rjnnl3kqRLngbOXyVMgfdu1uR1UYCsPw0Ze1SgulLVB1i4CoM3P/N7gdQRj/cWe2wYTnxMhR3yxao6iUPJ1P8J4hEaX4SSrzniFK4VRK0TuGdAPpGSXfIUT+iQJ5ZyBAQOH4Q4Shb4lAI6MUF4yWowkRWZKEAc7NtA5nIkhIzdqOJXBtJCMJkQsirYiUOMvT7RWhaJFFmSEjcUWixf8McdscgwilQwnIVOkZflJdmQwVEZkUVwltfiNkyxxjb82NGN9WFTN/YQilZ12RQC+kFD0pJG7JKDkJE/JfQmy79t1JSMy7reUc2LrhJ6rQc3QCmmOokFTQ9kZGE5FKgmdD1se1Fxy7b3mT9wF49oC1uG+p0Jn3IxFKSQz2R9FyHkVZokkfXhWp6KmQFduyCal4jU4XsmaHu2aUoiP0UqKxIIFnpIb21Dw4vlf7N2J4iGVvm5CSPXpV6bDjzxXHuC85WXDaHl2BoQxD3NkbwYIoEQND1vyBNoQ5Lmz1lePAs/1gi8o63CUoubhHFsmSdPo7XyWXw0JWJbs2ZMUNeywpijr37B9u9RlOiNQoZUKJXyHlsJCCaxxDClu7Tc28/tFpYzyglniBRyGeLZqQTsUlOjG7TVEVDjcMea77ipDVPsF7X3LlN30bu/6jsl5xWdjS3Tt7H3hFiOfOGrnLz0OsxY432PION4Tj+AvHJj4o2cafiNk2dxP3J5pDxcDtIzikOV6pD7nU7ZHtYZtvynbV7fpjzrG5MZHA0Kies7chiJlLy2zdMWTnAM/FZ8Eel+ScdIbHXh+C2jJz5XCiZuYal0JNocRL9SEPOZfjXH7lGgJFRuBpY/s1XhhSAQYacUimdYjBRhyySCSGG3HIU6aQKeRdTCFjM4WMzRQyNlPI2Ewhf9u5jwIAQBgIgqHlg3+/GEAAZcbBCbg9jSGnySjjCRntsi/r3uzvRJCi9rxdaTUAAAAAAAB+swByyaNbfaMtTAAAAABJRU5ErkJggg==", + "description": "Displays historical indoor humidity values as a simplified chart. Optionally may display the corresponding latest indoor humidity value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'humidity', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#FFA600\"},{\"from\":30,\"to\":60,\"color\":\"#3FA71A\"},{\"from\":60,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json new file mode 100644 index 0000000000..0d597209ea --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_humidity_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_humidity_chart_card_with_background", + "name": "Indoor simple humidity chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical indoor humidity values as a simplified chart with background. Optionally may display the corresponding latest indoor humidity value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'humidity', label: 'Humidity', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'humidity', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Humidity\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":30,\"color\":\"#F89E0D\"},{\"from\":30,\"to\":60,\"color\":\"#3B911C\"},{\"from\":60,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Humidity\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:water-percent\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"%\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "environment", + "humidity", + "indoor" + ] +} \ No newline at end of file From 94278a401e558729940f7ce740b608d232927860 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 26 Oct 2023 15:25:00 +0300 Subject: [PATCH 115/117] UI: Indoor Environment: CO2 widgets. --- .../widget_bundles/indoor_environment.json | 10 +++++- .../system/widget_types/indoor_co2_card.json | 28 +++++++++++++++++ .../indoor_co2_card_with_background.json | 28 +++++++++++++++++ .../widget_types/indoor_co2_chart_card.json | 31 +++++++++++++++++++ ...indoor_co2_chart_card_with_background.json | 31 +++++++++++++++++++ .../indoor_horizontal_co2_card.json | 28 +++++++++++++++++ ...r_horizontal_co2_card_with_background.json | 28 +++++++++++++++++ .../indoor_simple_co2_chart_card.json | 31 +++++++++++++++++++ ...simple_co2_chart_card_with_background.json | 31 +++++++++++++++++++ 9 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/indoor_co2_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/indoor_environment.json b/application/src/main/data/json/system/widget_bundles/indoor_environment.json index 9df61bf1bf..78ed32295d 100644 --- a/application/src/main/data/json/system/widget_bundles/indoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/indoor_environment.json @@ -27,6 +27,14 @@ "indoor_simple_humidity_chart_card", "indoor_simple_humidity_chart_card_with_background", "indoor_humidity_progress_bar", - "indoor_humidity_progress_bar_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_card.json b/application/src/main/data/json/system/widget_types/indoor_co2_card.json new file mode 100644 index 0000000000..3a3c955819 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_co2_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_co2_card", + "name": "Indoor CO2 card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor CO2 level telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":800,\"color\":\"#F36900\"},{\"from\":800,\"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\":800,\"color\":\"#F36900\"},{\"from\":800,\"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": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json new file mode 100644 index 0000000000..3629187ba6 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_co2_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_co2_card_with_background", + "name": "Indoor CO2 card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor CO2 level telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json new file mode 100644 index 0000000000..1fa38e4b05 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_co2_chart_card", + "name": "Indoor CO2 chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor CO2 level data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'ppm', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'co2', 'ppm', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3FA71A\"},{\"from\":600,\"to\":800,\"color\":\"#F36900\"},{\"from\":800,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json new file mode 100644 index 0000000000..c8db6aa95d --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_co2_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_co2_chart_card_with_background", + "name": "Indoor CO2 chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor CO2 level data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'ppm', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'co2', 'ppm', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 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\":\"ppm\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 4 - 2;\\nif (value < -6) {\\n\\tvalue = -6;\\n} else if (value > 6) {\\n\\tvalue = 6;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"ppm\",\"decimals\":1,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json new file mode 100644 index 0000000000..87ed101aee --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_co2_card", + "name": "Indoor horizontal CO2 card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADf39/f39/g4ODg4ODf39/////k5OQ/pxrg4OC33qnn9ONXsjbz8/OHyHBvvVPP6cbz+vHHx8fOzs6f04zV1dX5+flYWFhLrCjb29u2trbCwsK8vLzn5+fIyMiQkJCTzn5Xsjd0dHTD47jb79Sr2Jutra17wmHn9OKenp6CgoJmZmY5OTnD5Lhjt0Xt7e1KSkqTzn9juEU1uySMAAAABnRSTlMAIEDfv1C6kOEmAAADkElEQVR42u3aa2/aMBiGYdZ2b0wSx3HOISGcz7Rl+/8/bq+dCE3rhAobG6Dn+mCMjSbfDRlCbQ8AAAAAAAAAAAAAAAAAAAAAAAAAAADgX/py92zG07Nz7/rPX7nDyejuSeep9yLpAWQvvT49hD5CbgxCbg1Cbg1Cbg1Cbs3nQjajlCgaLc1Qm+cp/STd0v/3qZDtNjpEy120W0a7dC+JphFJSQ6RYx6jnC41cz0e566leRouktfrhRwkpU4eUbTjY7chdZ5vtoNo6hx2m8tDXCFcfgiExU2JYBN9rZA9sTylNCcajciE5KPNIZpuB9Ptcn9xyNpvQ5RYtFckFJNwvhLja4XkEY2i7YaWU9NhQ3ajKKJ9TlN+vDhkLHwb8iaoFZinWhRkaU/r11fPzki7ITGvm+mQN06FhC6/TPOP5+eXpXmeS2efH5xon+e1CUnz3YZGU97ilAtD1uKbsiF8ck1ki8xpfeGR4YpVIfgamcCV4Jln9gIzm/s8Lk6FiDdV0KxQfkI/k8fhSB4fL+VPPNVdAj7wymsTzBh2ISKZBaLQxEPivgll9iauyxXfzMbJEI88chUlCV1bwhE2ZC2KYMwn/BiyIjIv4ZAF9xZi3u4tTBIVwvtciBIioOtZm3/dhpBe22OGH0ICeyON23uHVjzaPdeG+KdD1PeC3EJNEtLeQtH1+CJx+e0SvB5v9OS3IQmPbUhwTsjM3uw8ejT21YKuRovOhELXsz958yaY2feMPobY9S7E7J4O+T0VuOGJ+1m+/7og6Ryh8SbGc1qIVXcdEvMRMuc2y+3WZ/Zq0VoI76KQsVJjsgZtjKT3kqwso6wfm4U+ZUQ0XA4pK8t2gxc+ndT+r+WLIFHm+Lrgmc9rXUi3ziF2PaCLQoxjSJrGZdPEPKuoKqs6G1RxmjZx/R7XGVE8lHVdkoztRtzU54TQWgkhlDmW+XwoFmTY8/LT754JGfNM6b8SMpBNPIzbkGFa8pzXhmVcNTakX5Yc0tTDRnJuJeks2tPU8o4zc4/w0+4T38w+ODdkGZdVPEibSporEtdlNZCDJua1dz54TCYkM1dkWC/NRlpV9OdsiGFDrvLFqhye2Eybksf7CMmyU5uS/pL58avJLJnjq+69QcitQcitQciteaCQlwf4NTuRfOk9OQ/wi/bMeer1vj73nXv3/PRIf1QDAAAAAAAAAAAAAAAAAAAAAAAAAAAA8I/8AKu9AITe3vWrAAAAAElFTkSuQmCC", + "description": "Displays a latest indoor CO2 level telemetry data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":800,\"color\":\"#F36900\"},{\"from\":800,\"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\":800,\"color\":\"#F36900\"},{\"from\":800,\"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": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json new file mode 100644 index 0000000000..1c12804184 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_co2_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_co2_card_with_background", + "name": "Indoor horizontal CO2 card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor CO2 level telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json new file mode 100644 index 0000000000..5b4e7fac62 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_co2_chart_card", + "name": "Indoor simple CO2 chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAkFBMVEUAAAAAAAD19fUAAAD9/f36+vpdXV3k5OTy8vLu7u7U1NSKiori4uL///8/pxohISFXsjbj4+OHyHDx8fF0dHQ8PDzHx8fP6cZYWFjn9ONvvVMvLy+f04yenp6CgoLz+vGsrKyQkJDV1dXb79RjuEW33qlmZmZLrChKSkq6urrn9OKTzn6rq6vD5Lir2Jp7wmGyHTrBAAAADXRSTlMAH8cQ8eMsj7mrczuPx27hgQAABNFJREFUeNrsz8kRgCAQADDk8qT/dh078Ak7SQdJAAAAAAAAv5VteeVr9KeOxdXzLmlrI4DW0zVC2FMeIRxRIllkMiKzedmto9WGYRgKw09wEEKyERgbxxfGgb7/881eOja2QQuDoYJ/aA+BXOQjJGRDvLUh3toQb22ItzbEW89DspZzbb1WDi2MlSl+KRLjH3seYqkoZaAk7WtDOEIQ4NUglRg4EiKdc0kiNTSKwAWRnBnxBFoFYj69QFTr+++zkgBwvC9V8Me1LggHs8SVBN0mt4fuBGJ8co+KzzR8XToAcFCsTKFhTpFUQTeh21Q0H5DBcUHYQsPqG0QoAzKGYGWKse6IwfQkiTRsUPUBKZpF9SZZI65yEuA0yTQ3UlwkxmpBgsUYG2LSjkZ5HogPyD22KriSVKQFm9tbCwEoKTJ/vLWOxJIbJKXb/FMW9QWRWhn3zkBkDPC1TCsF3iGiRIOXDkALRMXJw/5rLNeK4GfCP8/8e/sT5YXbEG9tiLc2xFsb4q0N8daGeGtD/iE5erDCeCLXkJxoqBEdeJxnSCXjOdwp42GOIRwGrnoSPMox5I09s1tSFAbC6BN05wcyARQQAXFFnfd/u22TRmfXZYMFVXLhuUkzmYvvkE475ezEflCa0FwrFjkYGEgSCLFiERHDQC4UBFiviPsyk4nCvbU2EVUcDjtXxRt4kBgIsDKR/WZzNP71mwM8yPl4xlmZiDEKoBBVpGKOPrW33iwSVUaYWD0m7hmIQhA5wCu99V4RZURSxcKov+J+5XkEzNTeel2kTGEpfP+oTcI3RJxHj86wrdrtnpRCIqdGaiCsdPiHq0REvZDLJnZLJSLvZaL/jAGz26uvRBBmB8w0EY2YuezoyXzdkYosYT7+H8SEEoVfYhhHHQWxyZU6G8HXappIiyyyxSx1UC3xu4RTh1tYgJxPAgpR0Nvm7hllf++qShiqJoqUEhsvovEbmAtiTUuPcrgvJZTWlkOdWgs30ntd1na0D5MjMIUgjHplSuRTRXrU2otkj/e/xY4Pq+RnuUVEeXW+Wt/q2h1cn7n60tGiy5ErUjyS/eK3PZGomCpyQpmySEMJs6xNXVjJB5OyCGJzi2xpj+uOtiQtGdWSFqq3o1dkLmERiS2wSIcOmd5F7A+RK0l3mDmR2m31ANL9do+uKRts4AkeVgHmi2xdNG6trq9ripz9U4SXctjLaCER7X/N8jE+wVckwGyREyVlkYGewz6L8AygPf7RNJFIFBBgvgh1Q9u2GcrWAsNhn0U48bDXBkUCf3UsKXLCOxocnOp5arHI6yey38QQYL5IqR0SpW7h6lO3FNYl5mg/RfQfd6QJiLBH6GNjvgjDd4Tn0ImsyLDDb1drGES27tlPrYvz7SeInAMei4twWtl0PtTV1W648hY9I48GxIZqmYZFzuIYQYDlRaCVt4z2UWfOg09EInYXn7fnvZBIJZKFPVgkSF2nP+qSK74jbs/nLW0KYSoRQ5DlRMKwiMOLTKKa9QGyIpE8hxmsSGQ+y4ucrIWB2tbwPlb2vdZH5COyQj4ia+MjsjY+ImvjI/K7nTuoARgEAiB4hQTaEvzbxQJPuMw4WAN7GiGnKfHOFEr0mcIfLccE6Yk6vvu3VL3VPKMwAAAAAACAPQv8h/dr54xixAAAAABJRU5ErkJggg==", + "description": "Displays historical indoor CO2 level values as a simplified chart. Optionally may display the corresponding latest indoor CO2 level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'co2', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3FA71A\"},{\"from\":600,\"to\":800,\"color\":\"#F36900\"},{\"from\":800,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json new file mode 100644 index 0000000000..97e51b9c66 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_co2_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_co2_chart_card_with_background", + "name": "Indoor simple CO2 chart card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAADAFBMVEUAAADj4eUhIBXT0NjDv8Gwp6NAPSOFd2zZ1tza1drFxMebeljf3uJoTTHm5Orm4+jg3uOkf1/39/j29ff5+fr08/Tm5Oji4OXz8vP19PTx8PD19Pbg3uPy8fLk4uc7kRzw7u/Ozcjv7u3MzMjd2+DQ0MvLy8fz8fHPzsnJycbt7OzFwcLa2N3V1M7KysbR0M7Qz8nb2dbDwcTX1tLf3drW1NnOzcry7+/IyMXb2t3U083T0szp4dzPz8vr6ujg39zk4+DV1NDCv8DBvb7q6ecfHx/t6+ri4d/S0MshIxHY1tPn5enp6ObX1dC4srDZ2NPFw8bo5+Tm5OHc29jv6OTi4N3T0daBt206Ojra19Hn5uPU088eIA/b2dPX18/T0s7v6ujm5OMkJhDr5eLZ2Na+u7va1M7Z2M+9ubi8t7bV0czS0ssnKBXt5eAbHA60r6ze3Njf2NLJxsowMBjn5ubY0s26tbS5tLLp6OorKxVSnTYtLCzOzNFvb2+OaUnh39rBvLqigGNSnjfd3Nrc2tbx7OqmpaVVVFTh693RztOLiooWFwvd3Naw0KSadVY5Ohvr6urr497V1NLa2s9qq1OrpJ2YclApJiSdeFg6OSZ+Wz3V1Mt/fX1pqVGGXz7k4t3g29WUbk0zMC20rKSYlpaJZUQbGxvMyMutqKWjoJxHR0dHSChBQiOlh25OSEFmRSpRNB/d5tfDwb15dG9uamZxTTAPEAjMys7D2bpiYmJ4ZEl1Ujc0Kiff3teelolTTElrSS1ZOiPOzc7L3sN4sWJiWlR7VjdPTzJGlymVjYOrlIKLhIKMvHqnhWOjfVppYlqfmpWPinqrjXSdfF9do0RXVTkyMSK+ubamm45JRjReQSizs7OhaDzc3NKwno03NjVAMx7V5M9wbFxLPyKlyZeZxIqYw4hFPTmUWC9RRC1VUycjHx3W0NDApJKAfHOOclNmWjRgSzRDQTBHlyq1p5mDfmxeXEiWwITBk3ORfWuviWqDc1vGsqPEmXqdv4rHnn9vRUDdAAAAEnRSTlMAICAgICAfIEAQv0Df37+/v7+A2s0LAAAg/ElEQVR42uyUS6gSURjH7V4fRVS00Y24cqdbF2110yGQVq7O6lCQMcxAE9kBCe8msIEGAqGJCMoiZQaLxuaCDQrBICZlEr4iKrqL3lYXip7QN2PZ3CSq/fkJx5nPg5zf/L9vPAwGg8FgMBgMBoPBYDAYDAaDwWAwGP/Olk2LLAPeQCDg2/QXfAG/zw+7Ar7AMqzLgWVfAK7cLPsW/tnrs1laWvIvzQg4q9fr/XHrhYKD37/kh7IfCAR+FByg4Cz2Bkdj8/bgnD17nK9IOBpPFC/Hbj178C0cikSCkeAiULbXZNU8cUGIR7snujej4e6haiZW14thh+iMU69dt/FEIlM8lDpSGZdKiCDKYQlTnl/XeYzWr11L3qUcQWhyUZEkieeJJHKEr/W7utrWej3DMNbWKCLw23NZ1ThRUeWJgsRtWz2eTUGXB4gcXhQJ/hkQyV6wTCEeOq5XMtGwfqCSEXp6Iuw2eeUS2WWL5A+l0qVmuYkIoQTziGBMr9UR1a+lUrEBoRSkeDgsRkgiPDJeloYtEOnXDUP6QsATHN+qjoisiRShMye3enYE3SbOxy3y8W8iMeGCad6NR1atZDwatipCsd7VE6G5yaJI5qdIH0MgZIghGJ4WUpMPKZsqwTLC4AE2CC54TOh6C3OqKvQNY9DgEc8bxuPn7UGbE0WqirCrcXunJ7iB/xQBMsefmubZTOiIlQORWqW7Ou3V4xDJjN9F4i6RJiYcIlOFEMIrhUInDRqFbKFjKRqGOCglCCOAyuIHCcv9/vseXrnCA4bxTp6025RynCZyCD0/veLZqOHwm0jQjbsLHUJ3ddO0MuGznVU4a63aygqPuol8eM5PkegskJlIMl0alysYcZgrT+HB2iJgsb8y4bj1u7nxiz5aE2VZ1mSKECGIg2DETrrcOHcdMpIM/oaotQd2V8EOQp6v3HGLHLaH3SWy1xGJLDi4PIDc/qdmPZFoVfOhUKhl9oR9llDM3yy6RdyBwKznL8eOlMbpMhwRT0ajD6ooKQUwSetDhDE3KeeaDRFOOwEtREXKYYwUyneE8vjNVVCSjLWGqIIIpCGqMofenby9IZGZRnCDCPTLosqM2Vsus79nWpdbrWw8EgpZZiucSkUT+Vz+l8jBeSK7nFnP3LwcO1Cp5HLr0FNPsiNhSCRrdGBU5wCqdcrN8acvjymefKjxCocA4kxLrVx++IlimH6pcUlRB4Ph0O4tGPrGitNaiy3zQ+ThswefD2WcFzDYwRqZ+7rCSXbNlm72klFIpG4+DVcr0cRqySWy++uvUXdE8qt7U+l0NjvFmJ9mR6PcE640GtUxApHhtDludt6tPSZiaSAZVqeGATsYSXoyXjl2/z6Hjfvn70EgA0WRRaJpGj12+7MtEplbHJ3xnTXz/2mrCsO4f8NqY7/YpV29rGCgdK3FtrZQRtemggTqTKHRinYkDo2gTDFNOxsQYmMqI7F2HaljAirKamaIYSQKJGKMGc6RTGXGGP3JxERnjIlfEn3ec3p772jZpvFZ2OXSu3E+fd7nvOec3kuWPPDiG79+vfm3o4RBJHfcDoQR9hSzAxf8fdvsZ2fPnr344l4E5tOzH95x8c077nhj9q69pNug23/86zYSp3Gw4nr/jTvP3XnnnZ+dPHPx+XPnzj0PfXH25MmTv3x0+eTn9933zetfnv/lz+8+efvy5Veef/aVV/585YOv3jp7+fLvi3M/rJ4/eT61lfr4t88A8sP5R15++bmrMzM5gGCgTCPKW0vas0ehUO/XP3z/E0/c/8J+tWLPdaRQ7RsZHh6e1Cu1as1kn9/fMjy5T6NTiv8K/xNJgVsFSatVK5VKlUqn0+j3HWprb/PUQZPtfc2h2FTE7LYb7II54rV2dNQPCCb3gHfscHd7W3tvt785ZAl2HD16rL9/6PTpoZ5+Z+DJr37OP/fy49/OZDcJROTYI3HgdypvGkSP4Xj26dQKte7QsN/vJxCVUrsTRHEtiIpA6g55PIdKIIdHCcRuMBpMgjnqdNa7ANIoeC3NAGnr6vM3D451AgQkQ0Onh4b6T7kCd/+0hMBfzeZyABEFPyQQcmTfTYJo6iYn6zQqDFRXRyB9I/vIkAoQEgeBCIRISvIAJBT0mt0Go9FodwuCEBgICEJjo1AfIxBPe2/LYdtLD3YcI5AeBoJvA3/lv3/65PnsZko2a+2RQG79N6Wl1GA4ZAhVWRmEHCAppNISQbRKqbY4CYwZbmm2WKMCcRgNdrcbLKRGwdlpa+lq87R1obZsYz3HyJKeIaiHSBryq8+9M5PLbMr6CAiqZqQJg7guiA7jgSH0rX6kDyBtAJFzSI7IQciSMkhbn380FhHsxpoagEAmFBiTyxry97Z5PJSS44MP9h+F+sFBlhw7emyj+Fy+MJPNZf8PEI0e4aZn1BqEhIGoSxwVIFo5iJ5q6xDU1tVii3nN4GhoqCEQxsJBWEg8nrb2ru7Xjp/uORoIlC0BSmF7NQlHcrlKEDHsKglEJGHlsRNErQIIjZzPYH19wyMiCEtEVRApJIg76gaFNcU5GuCJCDIwMCAMODtH/b2IO5EA5FgAJEgJWQKSldXCzFw2k6peWpUgYoXvAqJXcRClpq5tuH1SAiEGpepaELUIwjnwXoMjBI6ahtpakLDiMjIQF1DIEn9fV3s7WQJHGg2mEkk/tLRUmEvCkMzupaVqkkBwL6mqI0oGolXpaQojLm4IB1FVZAQgOg4CO4jDanYbwcFAQCKCuADitFpsh1t6u7p6AdJx1IBXAzR19ZOuXl3KJ2eymf8Cgjt6QARxDIsgzBKMDdFXjzjwGCcBSLWMcBDmB1qIlwyRcUAGARBEErFaBpv93d3IyFiHAN4aQyNImM6vFPNzc8ns5k2C7HFMTyyPYyAj6WV2xX3CwcYeTnCQUrIwE+l1Su24z8EHXtURKSLIea/fZpmKUkI4CMzgILDE6QSKM2LtDMEUzFqdUTueAokpwFFWi2ur+UI2l7pJEEd4YTbhm1UowuE0XR3hifGFcAlERyBaBUmt0ulxJ4JAsoxw8c4uA+k+PBib8ppBQpbUUBexg6TGSCD19U4ncDo6X7IdP26zeAVjbe3dd9fiRZBA28Wl4gbV1nVA5NPvdBzjWg4r2PjS8ZEruOJLBHkqncY9OFtndZon0+NK9W4gWtlai2cEIKOhWHAqipCQH3a32Sygw8MZN0AYiau+c2zQZhsLRtwEInoCkLWVleLKDGqr6vR74MCoovVg8OH7T4ggExNgQ91PTGAw675WBTQeHymBHPEtL8cds/ERxURCNx1PhCfkIOqdIGoJhELS29JsAwqbthqMdnPUG3EJBmqNbsFZ/9BDIHHWBwEyaKFnxCkBiQfJu0srG0uFTHKmGsiBienZ1onEpwA58cTDTSo1QBKsu3EQh29ci7/jaUUJZGJZp1yYHvFdcfgO3uV7S3/Etw4QPFPZ2KXVr4aD1NEyquVwMxq7G4M3uKNTVmtEMBGIQXCVQLwIiS0U8wqGGqYGPNkYIJC1ZKa4MVPdkQPpPYrW9MFP7/50ekgEWeYgyyVHtFpHeJq3F4CE4+FwPAE7xsPKI75wOOxr3Q1Eew0ISFBc7V29fbyTGGGIN9hp9bpYbcGSKGqLgVhGR1FZcIrPBQAxMZB3l+YKq/nqjpjDC+l1pPvHix8a+KpRkYhjzOkFioeCggKO5dLIMGuFE7GYYwS1tpxQveE7EovFhsd9Ia2stIBc6YieQGgN72mjxa81ugMEniAlLO2YgS0WVJ+btXwTUADUyEDW8oW11WSyatgnUd+hmP7Njy6eIBAlQuxLrx+AB4748nprOKG9dyF+pbXVQXMQQNLxg7H0umIk7mtV9YUnnjqyTCBqrZYvUarNvhQRcJDqyJRufyiIuAMkMmWdigy4UUO1DSDh7T3qtXYGrdiugKOxsdEkgawh7vnVQuF6i8Y3P/xw6MT9L2hoar0S9iETKKsFX3z6Xu16mDSrwKgmpvX+hM83AarpBYzwLjwxq7oSDqnVWjVriDcC4YG3dFArIRJvJCoApAHTEzLDl47YM055o1gel0Bo/0VdcW17Jb+RTS5t7A6CjdWjJ+5hIGqxoYuDKVc9RonGQS1QzV6gW2okKpVSqSbRoCtLi/d1zkG9pNffTAHAopFIMP0SCDWMBqPJDQmBKAdhjkC48CVXsZjf2Chk51Z3XzRWgJDK3VrNE4CRY+7hIDRGGQhISuv1/fKdLgcRIyJy2CzBCAyppY5ot9vREZkjZIkJcgv11iAvLTgBGQgoUN8ztPru9tJGMrtRPSPinv3RexiISsskQvD3mZOQBSKIVg6i5FIRB0CIYyeIpgTi6fKPdrKyYSbU0rwLEKMcxFUffNAS9AKkLESk48Gh/PZacSmfm/tjFxAMWARB2Plvx9BxkYR7IkGNAARzNO90dKeBIeJaHTW0Hy+WSSSQsiHdzRZqHOAgEBo9Qm8vhYQcsAvRjk4LTJODmISj2Lvni2vvrubzc+gj/OitemlxELWWA8AKNjQViaoHL7Da4o4QJseSDAFHUxNA5JZwQE5CIO0to1a+qQII86QBHG6WEgaCjGDZaImhT5JTEAepB0gyX9ze3tiY430EHDcDAuGdhHQkqh/MSnIQvC4DUVFhaTRNTU0MRAp7Bcig1Qw7EA+4QjQ88W62iCQQwYzZN1Y6ZBG39SZE5PTp7NxScXujUMxfNyM87FQYIgnbaBMJAbHxcg80eKhUMmJE8EX3Igj+z0oQveQI9T9a99prWCM0RxEaBodpVsCcZbWKHLRjkYOsFlcLS8ldMwJHPAB5gkB4h2bG4PezSYmDqAiN3leASAPkgDwnREKUABFJ5EsUfSkjpeVJNEL7Enx3DYgAEK83AovYMgsiTzhIprACJWcyN5h+AUJrrbIoJOIIwcGutJUSQXSQyMEvFHa5I9IGUSTx9OIoCMN0o4CCVi8nEVBaBgIxwhBXNMIIiaEWAgmBUEZyhaXCxlyhkLplrwRScWQqgSCq8tMdLRwjqaXSUvK9IAk/5yAkzL77mSMQBxHTrhMtweEcThmjEawMx3BK56YUoMpMlH/aXgVonyjY2ZaKT2uoLoA4cQSRTRYKhSR0o4zQ6hejkCTri5BCPmsRFhNQWUY4kBwE4iCchAWeNXZsrYKxscGQBXGBEWzfDgeQdXBgATzQCH/AAHESOOWq7+/BEcpcciaZqbb6Zb9SKy8tOclOJsSGgWjFbklZkqAw4EqQsiUQ1RYdhw6GQtg6YcthNrLqoTQwQ8ABkIBbAoFAis7uOnUsm8tkczPZFDKyt7K0br0BiHRL1vFdumiTeJUdw8lB5JZAZRJsrZptfA9I4wUKi0MJBJVlQoOUgcAqhCfgymzObOHEdHOzqiNSH+Eg0pJRLj4yrQjCb3f0Cx2bfvdLIPwFqbjKRyktrx0+PmihpXwtCX4cTJyZnw+nBSc4CASt5hoQkDQKW6lMLpXLZJK7H5nqSiD70BBlseCbDLowlda7BELaQcLaip6DVNQW96RMglOrwU4vbyjo7MY3X51fSCQW5s885nIFBFq5Aw6IpdLiOyzTD6nFVCqzmM2VSmtvBYjoCF9rlVe9ktQksZfTdpgkt41AVJomfVMlCCeBysVFp0K2MRhih8zQY6+euUIFNvvqmXONAkBgCSQuLMkQ/Mj09BY+hrtwgX8Yund3R/iikRvA30j84Sst2QkufUKlqE5CpaXZCSKRiJZMAuQ1HFuZBTQQ71QwFlw+8wxKCSRvzb9nMvHNlAGQ7KAbHBzE8PRPWxcWF1O5RQLhKBLHDhANgUjHBiTe98oLDdZGeGqujYpabIj4cQWI5Ak7gej1MxBzJGjBiYl5fhlncWyiXVigOAgmSKATLwMoOAdIHjmfurB4aevCpVuw9N0JAhQ5CEbJk8H2reWgch7OQc2cJWkHCdCpISoJhEtMj8wTsbZajo95o+aINdTsb2kZnx/H/MVSPT1/joO4QRlxocxk+nYrQym5dEEE2VvRR0SQQ00EIhsb90VW4vgiLnFHLAdhOVGVQaSfyknKJ44vBSMRr8WGDxF635uPRexs9Wt8dn6aLIEfoLR21J86dWpggD5lDLgCge3C1uJiLnWJO0KSOyIH+YeSc31qqwjDuH9DCAPxdkodrIONiImiILfKAcyQpiTGcDGhUTD1joURDVIQEBCDIK1WpQxqK0q1oyAzok68gWMHqdaKlxmlWMV+6AftTFsd/eD4vLtn3ZNzIB0fQnJCwrC/PO+7l3e3vUMDkdI3AyBcQElN5ZYIyeWgDSCG2BISIFSAKG/yuEtcPn+4srD04Ic5JZjH05wx4+WDbH1bQMurYLAmFAqNjubn52N8uTvv449eQqf12LFDAGGWrJfsN96xXYJYIA3FZiBh4SVwBYfmngTR80Fyn5pZUlzU0/paAfY+C8uy1QGa27Md3oKZvdMZtCrJR/rEYsvLuyORUbvd7cZevPutt17YdejYY8f+BogmyWEAwSAhHMELnASySRKW8QJEuiFgzY5wQjn2M5LScOPKxMTEvnBpWdZr6g80t4cwFk5OTF4GjkzaJ3HGY8u7d++OwBZPDfT7+x+/+SwMgSNCjGANRwoTQWT/KsvqDEbkiKxPCA4TiIgtuXXFytkFKysHHphRB3CGYGaliqbEIyMjJXUVBXtnMAfOZxwdHASm1ARJh3ahaPrCF4eOJYDgxr85SKERxEIoEkSEzn+Td30GyTmjAUSapbeE8n1SvS4cru1TZyb71M9beJEeK/X6qz/dm1GA/MC+FaYx4OCqYSBfP7Xrp7de+V0PQiR6R8wgxhTgKEI2/pyByT4Jk18jCCUPQ9nc3qYe7MV7OEl1H3Y8S50zKoqaLVVVLeFinBHweeoyByYms0uAUV7u74gFIxHGEdlNIH899djXuz5+86OndCAWPchFEgTb/4LEBCKdsTFplZN0IVxjHDEmO5RqA0dbW/tAn9quLXt3qJNlENK+oDbsDbe0VFa2eDFKuvOvnHibeuVirxf9AdIjQhwILuiZ7xe+PvTUCx+/f0GaANEozI7QBCRVzhKFxMpDVlH/K7MYSNLXAoGqqzfjfkDt5QuT9mpeCR5GJRiHjNAJ85qwq67+4N5pGl0qfb29r3lCICGOEIHg0O3C8YVXntsFRyQIPCEZHMnCJB1xw1U2hWtRncaloUNl8Q4SLvCs4wh5eJPam8p4+hi9S20XlUdanJTjuEMZG+5Rhp/eu9Ibrux+u02dmFg5ChCIHHG7z+0/e3xh4djfx8iRNOYK48BNC62paHSRQP6JMnUtEstql6IcDhTyxSyJHJFzF23azkgEjB5E2Me5D6ib2e8MqA0EMqC6aAnPV75Op99bRY6MO3uwM+K7fkVtW1HVmdYtB1YmfgMEsXgwzJ/bv//skeMLx48bHGE3BhJVlHkCCShcAfzNk8A4rChLAIG0BOeXcpSG0KxciILsQnCYQ4uyPfXd6lSmhrbqxkvCA2o7L0ZgPAEIHKkqrWRze+we+ou9R9+eOZCNHSGvv32ib5rCq8bjsOd99sADD+zHWceziQMiMDQQtJmD7FHGZkkIqSlFWSxMXVWUVQFiIyXMZHPRFjCIhwvXAYFSq9/V+N+pVqG+sFaLQFudziIcdajE7mJHUw+6K2RMLZK/FB6BbWDi5U6QMEee39raunUraAzjCHGQ+vHRc5Ax5U/M0pkGFWUKLR5TxmRslc6e4C+iwVOzc3CCU+B6I67mZqsYxxo5slk9IIxs6d030AgMiECKizgIVo102CzYA0cgb7i2kkjG49MvV9sxsntA8vND3313Fwk5kiZBeJZA88rJKAeJKquYRzEFlCX6syeVw3ygCCiBRRgXnQNEVFkco+spoCjKn/x68LACEzmHieQH9RMBwkYSAUJlLozg495arH5p2HAEY84ikh89WSnl/3LnVfaQJ0jbilt3QI2djZ0XpKUJEIsMrUElmqqBoFWBsflB+kuwgj55GLMJSt9E6bM0hryZAghdL6H1VZs2USaNRXGtHB4DyqBNcuhia1+bHNoTQKrKnb4YpYV33N8UdGB2iMKdDznvQxdM4RYPhuwhR5COEDh37OiEburslI7oOq3+LmXKFlUCKAeNKlxLtQyE+iCKMCIhkNncXDxdBAgM2ASzlNX0dCCUpqfj1YDNNnVGmQeHkOSw9fVpHAZHCmv9vqCnx9nh9xc15SCf89BqhJHL4aKlCsIt5gEI3uHHAmxH401MWxIcEXMtxEwKgdxy39O7l5TF2dkAfMnNBUhuIkiUHsaUaDq92wbBRptNUU7iEm87gVbPK3v0HJJE3SccMYBgp9rjqOmJNTXloF/CwgNz9hBOz9pLQOIvx1jvwA+CTYi0qpbGTkBAAOEkabLXosDqT0lB07bfcsst273IWTAcZiCbBEg6BBAbBBtsti6AIBcCSldKiqL8itbibf1oe0CCyN1UaIu6ZV1HehxYbHhory0vE9vToyCxU3Erz43wavJ57HkAifvRQRfCEAK58kqEluYJzOAkG7uUxbm5OcTE7PL27Y8/ngsbVqnxLEfS6aO2MXEQanFKCkAsEEAsFoDg0gBi7H7b1Za1HSmrLfc50HA3KvP1WKAzklGUsSvogKOrATYBJLIcH69Ff9xJIFdCLLTYzcIElllFCPFEFFrPi4YvCQdSSNRqxP+vimKxaCDz5wMRJDeo7foVMyR7rfImVx4Wsg4HDLkalSCcPYMqroYq6krcFGWhmljHeC0cAQccYSBCgMAXNLuH6Qz6nEERPovU+FXlTJk+6gFC6PPKEgexWvGwx2oGMZPcwCeMZhCUhiqLna76CuzjUoawkglVGogD9a2KersbqgnGAYIhk2NAPEd0jliE0DQe6YMpKf1Rak4/+id2P8jeZg0gna3WE+idrNYu5Uy/1bqK1xiINYkjEHEYSikCZAMOqhZ56rJpIYW+9x60nspzIAEKqkJIFJerJhiLd3gxZFa1aiDbdI7IAZEkggVjA3OHGrXIr7vQZAggeI7X6XmXuMbPmSPWNZPdovnRdoOu/mCKLX8OgeQ0xYKh0QqqJ1LdnWcJnHI7HASCIRNj/zOMQ4aW3hHikSAbA2wYOYFLIqH2EgcH6aIfdMEWgOyZF6+RIxzEuqYjD1e3faIvpBhIyirLfSP1WKE7MT+x3wMObIXkIaLYgSfqBkKhmuCLAIGOdwJEOkIo0hEO1N+/EY+EMjfXzxGtVlwzDAFi7Z8DBgRs6wntGr+Jd2/sp9+iB2kI5ziogoODyCQhcZCswjCOZZcApCO+HMoHyBWZecgKLD9CbsjutmPGSCRAOXLk7LR0BDI7IkoR2uBiNYtASAIkUfS7BgmOXkMdRThyiYgtdMAMpCMWyc8kEDsmXDEs0THAwxjIzUnGn/3ixwUDiMERIe4E9H9ALByDPRpJ9qm96H/Njsh0zyrFSXmckC3y++MeOyv64nBmPB6PxXLYKDIK2SPY0413nD7y4+8fJHeEf6CyIvH/QHATjhhQ9h0wF4QAwsUtGW7x+3JyujF598cceZkMJBZ3Ymuuh4Hk34O67yhMWX7xl9NfvHLqrjXHEdF+/qmaEeTzucFZq9Ds4FziG0RE6iESSmK6+q8hSTZgKClq6saSpBZVE0d+Aapz/OAvdn0RWnk0OALFHok8+EvzK6eHjiZzRCs8ilsyZ2Tb+ZcIKJMjEsRkicAQlhT7/cWYgoAIh5YxkuS7gyChaSTngGDKnZGfhr459ca5pI6gXeuYYcYw5bj8AMwYshZmji0NJKu01uutrRzOAhEVszMyCvKpO3ZiHgkQjPfYdUOffGfkl+avTg39fL5eS9pjaKoZRfclnpqk4+A1OhOInDmWouZYRrWhcFFDPfbbMjLrGroJhAYTgLDBBRn/xs1HTw99mcwRgQRZElqb3BDOLeiNjlj0IOs6wivBZVkbN7CuOKfuustxQLDe5UMB1eUuKbHb7yFH2DHtU81/nD6fI6LGZUKwJDeE7pI4IlHWzBFBAm3gU0hfSQFAMrKxJ0cnPSBHPdKGndIO3TvUfGroKwK5+OIkjohCV0I6mwn0khQCbV0Qm2kiL0kgMab4RjKxdQWQbhyOyCF5SvLp6JMLOyS333/760MfcBAIHBenGByRw4k5nY1Q+uSQ/iR3BDKCmASQh8NOR3YGOeLqLsIR+m5KeUdedj2G/qAn4+ab729unpQg0AbWdKMjMrJkLksIrdmSUNh3PkfM+29mjku0JbzTlZ1xOQPxl1NRCDSYio14cnw9wbP4h+S3D21lIEKXXmQhGRwRpkgIY5iJaw1ZQpgMMYdWchC2TTpM3dYVDIQqD1Q5ob0sR4Ov2xm7/j38dxG3n9siQNJwA8mGVHHAF7f1ZUn6NLG5CWNfOsk4H4Gok+IaHh6me0j8oCXsb5junG79ofWuy9F2qIhSfqTE0ZCT89XrpwhkvwAhDL3SzLoUEtu//A7Cc6FLpdJ0kv+HhdAN0GboWqZboSeeePTRd3bu3HbNNdvwfQ2+IVxv27lz56vbGnfc9cwjPz3z/L1P3vbBVlJr60MQaqQozX029Hrzbbd92yhBGIp40DVffOFSSoIYGPibknBAnAMg/7Jz9yoNQ2EYxwUrreLgfbRTL6GdXEJv4kAyFRQSJO5eQQiIUxVsQWKhutTS0kGlOJQO7qVLUQcnB3Hxffv29EkOfk1O54+KUof+8iQUMqSUhdQEogNEuf39G68VJTMnEAlD2KEUQR4Pdm/ZUSMIAgUaiFKl5zC3gITPWIEwhRV6EAqLHKYgaLWIO5oee74fBIFIAmEQhBZ57o/uW4CYFDCM94YDzwkCASA/tWPFSDtKWQhLxAEIxZBJ+1Ug5KAv2YMHUbOLSYUqAmIEiLGKNqW20b/LSzATAmeWOQguEkDKGlLhW1VLSdH13O7wQzs4gSiq6r15CwX9LyA/TQIMQBImwkuMwCVHaQcYmASQpUG5lFKVxZ/lquf5T+1330GBQFwlt+a4GkN2vpRQvy4CjL5bKQrJGIQDA4PItc4QZri+z8e9OeqMjwZJMqeSQbvdPTmL6jonkEtdIAyu0SJba4UMARQ5sCYGIg3CUjipoIBD5kAZyPkeKZTr1E+bUdRJGmFDCsOw0bu8m8Zx3EjGDy2ROLRJBkLl6LFU2xkCLH+IHGYQGHvg88M4s8hBe1SVX49a9EiUJA7jmL91w+veixTPr0bNhUUk4uA9CnhQ2D+0/l05boPLy8PA0PLJYCi/IeVSba7ZbDabzWaz2T7bgwMBAAAAAEH+1isMUAEAAABb094PVQpBMMgAAAAASUVORK5CYII=", + "description": "Displays historical indoor CO2 level values as a simplified chart with background. Optionally may display the corresponding latest indoor CO2 level value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'co2', label: 'CO2 level', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'co2', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"CO2 level\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"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\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 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}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":600,\"color\":\"#3B911C\"},{\"from\":600,\"to\":800,\"color\":\"#F77410\"},{\"from\":800,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"CO2 level\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"co2\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"ppm\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "environment", + "co2", + "indoor" + ] +} \ No newline at end of file From 5c58241a123ba28bd17b5751d6f8be408f92e54b Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 26 Oct 2023 17:29:29 +0300 Subject: [PATCH 116/117] UI: Indoor Environment: Illuminance widgets. --- .../widget_bundles/indoor_environment.json | 12 ++++++- .../indoor_horizontal_illuminance_card.json | 28 +++++++++++++++++ ...ntal_illuminance_card_with_background.json | 28 +++++++++++++++++ .../widget_types/indoor_illuminance_card.json | 28 +++++++++++++++++ ...door_illuminance_card_with_background.json | 28 +++++++++++++++++ .../indoor_illuminance_chart_card.json | 31 +++++++++++++++++++ ...lluminance_chart_card_with_background.json | 31 +++++++++++++++++++ .../indoor_illuminance_progress_bar.json | 29 +++++++++++++++++ ...uminance_progress_bar_with_background.json | 29 +++++++++++++++++ .../indoor_simple_illuminance_chart_card.json | 31 +++++++++++++++++++ ...lluminance_chart_card_with_background.json | 31 +++++++++++++++++++ 11 files changed, 305 insertions(+), 1 deletion(-) create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_illuminance_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json create mode 100644 application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json diff --git a/application/src/main/data/json/system/widget_bundles/indoor_environment.json b/application/src/main/data/json/system/widget_bundles/indoor_environment.json index 78ed32295d..019d1cf3f5 100644 --- a/application/src/main/data/json/system/widget_bundles/indoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/indoor_environment.json @@ -35,6 +35,16 @@ "indoor_co2_chart_card", "indoor_co2_chart_card_with_background", "indoor_simple_co2_chart_card", - "indoor_simple_co2_chart_card_with_background" + "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" ] } \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json new file mode 100644 index 0000000000..b0fb560e4a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_illuminance_card", + "name": "Indoor horizontal illuminance card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAmVBMVEUAAADg4ODf39/g4ODg4OD////g4ODzaQD7x6D2jkD82r/x8fH+7N+srKz+9u/Ozs6QkJD0fCDIyMg9PT35tIDz8/P5+fnb29u3t7d0dHTj4+PCwsL3oWD0chC8vLz4q3Dn5+f0eyD9489mZmbV1dX9/f31hTD70K/U1NRYWFj3l1D6vZCdnZ1LS0s8PDwvLy8hISH6vpCCgoLwemShAAAABXRSTlMA7yC/r1EOHTEAAANOSURBVHja7dqLbqJAGIZhtf38OSMIogIi6mrVdk/3f3E7DN1l27V1jcag+R4bMgxJM28GqYntEBEREREREREREREREREREREREREREdHJeg/d/q177KmOrv0FN+6L3e11Hm3cAfuh07/5/ah86Xb6uAt9hrQMQ9qGIW3DkLY5HFIEuDWHQzLB38ZT1w1dNOwB2uZ9iJd56mhkUPYL1CbhYOAObBtTTPURrh7AttWPOsW0PrmMjeGo48LQquVYP6INXlli/leIIWsPtUjMv0PUC0N8m3xdLpf1IHzeLl33ZTnEz+V2Oth+DXEJhoih7wrNqRaiBN5pIYgieNFunS2wML1/Q75j4E6HqF4TdzpYTtwJhvYQq+mL+3OCC3CCOsSUfb0jlpTWYifFiSH6N1UiKJ+HbGfPTchwHE5xAYUEOmQtqGXVqSd5E+I5XrVO50hIIDXrXcjqZfntbcjzdqtDMFi+TJ+HSxfnc6QwdYjk8ABdZOlVOX9CLMk9GFJ6n4YYUjuwhfaHE3Z9uICgdMzXLchFdo5O0CFWc2sVEqHatw9DfpgFCvkNlmniyiIxoEMcybOilOBgiJfnkWT4OCRSIVkTsrl6iCMZ6hB4TrVgsQ6FYF8/z064ta4skMgw1pJtUMskOhji5LLGkRCvlJqBq/PkVQDLcFC/GUypsnLxmhAVmIt19PFbvn/8xjggtt9PxDibVVlLscBedq/7EEkBLKREE+JIaUjgHQnBRpQdGuM6JoadQBuNMOr71UQfIwBzd45RktQX1MR5SfVTq5QsMqvle7kaBWquCanOdhIdC1mIkr0NWa38JAx9NUqRJulsNE791Sr0Z7Y/GwH+PJ7NEsS+vuCHs7ND4JgiYupPXaVIvkcTEkmp3yaLIyHYGIbhvA15ehrHoT/365D5U6LGam6e+GmoQ/pJokLC2TyMVW4a43z6D7jm6NHpH+Mt0yzwF9dPUn+8CtO42hF/lqTjeBz6as5WC/dRhYyqHZnP3OrCKk1xDcdD1kGBTyRzfOwpTHB9OuRko9FnF2P8j1aEtBFD2oYhbcOQtrmjkO59fBna7zzcx9fTj/fzDwOd3mP/1nUfeh0iIiIiIiIiIiIiIiIiIiIiIiIiIiIiOtUvJ7/Ykm8IwzsAAAAASUVORK5CYII=", + "description": "Displays a latest indoor illuminance telemetry data in a horizontal layout.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":36,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"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\":\"Indoor 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": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json new file mode 100644 index 0000000000..a13e99ccf2 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_horizontal_illuminance_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_horizontal_illuminance_card_with_background", + "name": "Indoor horizontal illuminance card with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC91BMVEUAAADR0dTPz8/67+uzt7zS09b37+ezs7v67+vS0tbPz9K0uLv27ui2ub/Pz9f+//7+/vz++vjw8PD//Pn08fD3dBDz8PD+/Pv//frv8fL28vH18vL18/T/+/j8/fn8+ffu7/H8+PX39fT69/b39PP08/Tz8vP9+fXIyMj8/Pft7vD8/f7x8vTx8fL29vf59PL89/T38/H9+PP69vT59fS9vL/w7u62ur78/fv79fLz7+3v7e36+fn7+Pf28e6/ub35+Pf8+/rU1Nby7+/++/bLwL/W1di7u74XFxnKwsXCu77Y19nGvb7+8+i6vcG5ur65tbrNxMe8t7vh3dz19fXNztLLysvPzMr+9u7t6ejS0tXJyc3Xzszs7e346+HUzMu0s7f49vf+9Oz57+vX1dTKycjNw8LDvr/y9PXk4d/j393o3trc19X09ffq5uTs4Nv8+/X68u/07Ono5OLT0dHMyci+vsD4hSzj2tjd2djRzsz8+/T99+zv6+r77eLm4uHNzM25u7+2tbnd293Ky8/Gx8v37unCxMizt72wtbz9+vHy6efc19ra1dg9Ojn++PH26eDQ0dPGxci/wsb//vzr6Obn5OXf29rIzdTHyczh3+Hg2NXY09H617zl4OK8wMQeHh/v5+X05972k0j57eba2dvN1NvGwMG6trWJiYnW1tmko6P4xZ78+fns4+S8urrywJv5lUn3fB39+vTw49xycG/77+bn4t/55dbX0NHFy9HUyMfIxcTBvLuppaT2pGXk6OrU2+Hs49/2rHNISUr++ffg3OD97tvc1c/6toJjYmL54s782b/quJJXU1Lx3c7o1sqvrazzs4KCfXz2girm29Pg0MS2tLK0r66ynJT3jDorLS7b4unw5+D86Nnz49m/x87JvbfCsqmQi4psa22Jh4b3nFZBQ0U5OTvWxb7z07vaw7L3zK2al5b3vI/wnmCHbmBhW1kvJiPx2ceMd2u3pZudhXryj0NQOjDoybKmnpzvrHnGrZrE1aY2AAAAD3RSTlMA7yDv768gIL+/v7+wryBdcwczAAARbElEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAJg9OlZpGIjjOK6iOIi+zXHjQSC55gy5JGMotIPk3iB7sxiht2Ry6JCpdnOu0Bdw7SDiUp26+A7+7t8UxM39Ppd/SEKG+3Ke53me53me53nev11enXPe8rZ9cNrd8jHlnM+0M8PScvummWRSMjdS60w/M43veCzcdymEKMRR4abAOE2TNVNazXTQ4MqgAKHUth/1I/KxCuM4rMKwiqGqwuT967PK4zzPY9J1XRlE1t6tx+O1tfO5hSgKyvLiBh3nLUcIOgjfLV9SdCCAUMhKynRWM1bXrGbygMoGShmhcCdCiQ2GkuiWIeZXB03WoCTDD+q13+9HpP+uaP9Y8VMS4gkh2D+FUMZ9F0W31i7Wk8l4MQcXEgRBGZyenVyjASV/QnhKh5Gm+hDCWOoyYCjR1IF918YwZBhjlEmUSrA2G5PgbegCdzrY+XA4lHI8FPHDNt2DNhHGcRyPo+sRCr3LEEpbQmgLLhFyECGhV+TKSUm8kDdcWjVFupilhZALSVChDklJamJputSUODvoqSAEcRJEUMFFraId6+jk7/8899aX7x25ywvh+fC/Z7T3+ysUTHL88cP8TYRlD2zIkhfSiKsKIHnTzO/csSFZHPGLPu5A/MnSCKJdrmo0k2qVrgu/MBGaBwsQcBa4CetHg8Vbi4uDRXSLLvN0hxs7DiINZsA4UNiOK3/2RgyCB+zv4eHxswNMBIMBg0FuwoEIE2q1GooyVDZ38kdm/t36JlIVPFooe8EHApfcf4DjPibyqF/VKJrINVwWDj/zdVsxAntlYxggWj5b//y54YtXCA8cPWrwEAcoWL583RvZe+QfpvD6+ACIpeOfS3wiNiO01NJboZAyVNXNHfPoyOSQh0OCZDESH+3zahUj2Nq6t3Xv24snb4b1breby+W6jUajm8Pdv0EO6bpu6PVcXc/V8Z2ODCOdTm+kbyC8sPI8XN1M9o1p4jTTab4q/rBcbb388v79z9FvavSM/fDgI70ePr2Bf/nx3XzuVMpmm9laD20//vTpXXJ1d3e319vnM8kCgrApmoUwa3xmZmZcEIKCU7hQKMgR4WThcCSSEIQxb36WJPGryIqJIm79VIx/PkYleBG5U4tfN/QQ0kvrxbtra51KsvYWi+1kEmNRORqlv5X809Ts7Oz0VGoulQqIKDAxMTeHNx3VhaBhMGxBxgEBwy0in4YE4SiQJEFrOu3giZLohHuL51gQQcqdWtbgEKO0vlqpVHrb++r+fi25SxBEfyvhZJJpQFJzE5MMMgkIk9BIFAuiBS1IEA4GCbqQiCzLjgFnEAwky6BQnpkwjeQBMYYVfeq1AJIpqk1DX+GQ7WKlmFTjpVIpvqwW27IHIiGiTGEiBKFsyJQKxzDuq2o4ukEmsSG0YuRC3IHQz2wIPkcWZdayuPEl4GQX2+BS+ED4PABZTq61K7X4hoG914zXOnKUcmcMCQZyFpKqKaoyHPo0ygu5jYlww1kIHBxClWFhGIFyMG7+85MsSSTTSS5vwGFBVtvlte2SEQqt6EZTrZQ5RHKCw4HEbAh6q2KbEKR/BiJ4g8MDcSeSKVgQJjkpoIMluYmn9k607HVgsyfb5XZy2VghCeaTIUfM7+wzKTAVCMAByCUxFhMnJ7kj1VPZRPpav6/VBUgcCEZyHsTB2BSuYJs+4Z2B6PSfzPp/TSKO4zjen5CrT5vpIKfoL407uwvS2mE1+sUfpYYQhWDUllw4DTvBFizoB+F+GSpUtsIkhkImSf6SQq7RDI1sK1hUP/SFiLb9sB8i+qXX577YVc/dNrcf5PO4933Oc+s5HAzDuOmh5RYOigYHIEkplgrOROJX6H09fiSQ8QqAqO+h7G6EgYRCgAiAuAFRul7EgwsmMo+uwmGAtBL/XVqjWn1Nf68rGxIJf6+dMeTxeDga/Y1XNMYbnDI4MAUMIZMWpyJxMMLhcE70Ckg9DTgcVhocCgQZIP5jfv+2+bk5BYLgUCFNMoCV40CQvAyXSvtLuIsr4X/ZhdEBnH5B2CmgP4uPRvWF67EeVmufDe1DLpdrn4t1px5FkifO4DoyjiQ9fWcyEg9LgZyUi6Xw3lGcEUc/Kwbis/MOd1SBAKVB/BQyb4TcaaYBqTTNWO7Glgb5dP/zQmkhm3X6nf5s1uK3WEoWfyzmduNbFCUIJJFhRNEgUNfeD0tXe/p0nOZiBezriTP91JFMBQVvcLLTeR2LBX52KpVyuXyKcTD5jeXvqmQklCcFnmGilIi/FMitYrGoQubmju/RqpC1aewR6uiRwihNg+DL+dX5tia32+3d8m68eLzebTcai23Z86rdzX3symc5zaAvX29cyWQyDWu5mNRkOHmxn4I5Ec9lBLdQIaSTycxsEqU6wy8TlLg7QvNRCB+NRgEZASREIbNFtG0OXetDzL3euXTvy1pza3SrkP4fctuyUPLLu2VGZmoN6WO71qhxckb2JHOLjVc1XPtg2DTDU6QChk3D41g+XuxQMtkEUYpPXLw4oaVakpGYl6mvUEhK/EF6dCSXuTxJ5J9/IS2e1yDYYFHE8CGfDxRAZmeLs4DMYyIDOsR87kOC0HqjWruO6hDLV8tt60JJkh0qpPtmXYEEZTaZk9/cy9ntdtZm0y4iwwhMOGg7dgwhCvHGIvEkDY+Gp5OaZSI8mWJaZIV0xFRwjQTEaYHhuCYpc9xdUuVRCJAH3N36KUDqdUCoJDu7BAogeOo9bv4DgUPpGxD08UaHnFhsv7UqEDA8crTWWO92AWFl9mN7Mbcutxs+u406xtWG9bQ5DA4ODg3hG5SxnWIgEg5HIs+UTp6EBZB4IFgnrQLpzARTpCqtBgXGw66RPMtxCVLneN5OIfY8qV6OlnG12Q9RSnYJAXINHTebdUhFc6g7hN6ljuI+qzzoZK1qDmxqeoPiMxxiUZDFMII4Q2N0HiYTdeCC+seBttMGhw6P4GN9ZubRkycXzq+urt54dpNSJuJSZiVRB2Qy85BUq4R8qbMsCHjzBMnjpwphW2TZkyBlu+8QlWTxtLy0tO2aAbJRaO1tET3nt0LBiYkAssuCxwOr7nDwHkgYHgpVYlfTIHAY56EqDA504LBvZOcAPoK809Ppd++enL8UuYlLLS79ImXXA9KZEl+Q6ubmCklQyHsbq0PGALGxl6vVZdJkx8YOUUn21vVb16d+s2evvy3FcRzHixARCUd3DMPJ6UoJghKhVHYQkUgf1WWtWKIIrSpWC6PVB24JoiaVuYyY6yLYbLKKlLmzEOY+4v5A4hL3a3jg8/39nHOqdfsD+t5sa8N2Xvv+fue0SpD1K0s6Msk1QOp0yEsOaY8rdw4cKgOQfkOGYCADicINWFIMImFzwIEEXcG2BmPoZSs4CLvdLg/ARd5WWB53FmOp3RLrZIEgkfDhBmfpzWpxq0wQWWYQu51B5H6v6HwGCFHyAt5tyAAHh0CCD731pQUEAgSX7hyNgUwD+g1BGgMOZM/NAwQOBIfGQLQvVEcb/hH1YqBsRZHsA/rbXIGIN3JDrN+//674usrrGuryOuOvxXoLIBYGsVOXxEO4oB6pFu/2kyWJzcQVZ5D1gCxPghSqm72KMbp1z6LHULqDQ6yADEiBwDFMspDDOCplHEkOFaJHnGF5ppz27e6LP7vh/Vp1JeDz1gFySHyJOVeLtbKEAMGtOhGzotvD7IAcDAZpIsuRuw8MCBDt9MsYKKt9MCtLV6CBBHEF9XXFGhomCBgQdMEeURnpy4ogKWHXKFgll6i74unn3mviU5fXd0PcaqkXT0vSRXGBRB0ARJAeiAtw0nJIwoEDdjsgB4ORiIEcm0qSILNfkuMpd6Cc9lexsjZ0Nm8wR+abTWhg1nDrcH9iQDg3WJw7HAbvca/cadq0vLwcs9C3bxfBZtTK5pBkQSqES1jsDH1I3B+O3Lwh1n37LN7oa3FUi3X1OEcxiEAQAbfOPhXrBYFJAIEEEOROhlwhSB05dMiECYn5M2YkrppMlabK+ccqhjcemz5x0d6iikBRRSdZLvKGKyqm5Q2dXtH39oyJExOV+jgoOHQIIf4AQTEGGRn0NuzEUXy+0l8WLmKJVL/iDgapFxcIwoNq8SJJhg1bfZAiyKZN7t59VMfM2TNfVlVVPeQMrKicLEAmTri6YUbCmWCQMt+isiLf9EWLGn3Tio7t7SRbiryl06YBkqiIJGwTbxtn2DgjbV0xRRoDabOimUhmlzfi2nHlpi9oyxVw0A8cgsAcgpKdzR4vCDyMBJDyckDgmARI758QTGQ2rh+nMQ/uAOR4Yn5l4uqEGZWuRkB63C471ri6ce/0Y9MbAxXevUWyBEh/msjmyqu224mJmF3SPFIYVNtUhYpRr5e5Q4PeQDgcdEbCAyUhuWxEEqGLCjlQWI4Aof+CG6FBZhLk7oLT6jwAoed82Bt4RwNRmU+24nLOzuvYIRJ1VpLoVCgI8xN+YwfOSN/mKYJUinaRsbcPYCThgM+3oZPUJRViNGoP3xSBIJQBjE0pkJkwaBBzDhyAIBWCvc4gOgOpkL42GLSrIPqXQ6foEMUU9vqC5eVxrK0BOGbdwSEUW1/ZmEnhalRumESN1iGzdUhnDsnBU0Cz5kC5uQwiE4QbaPwMovCHuPx0hWJ/G0ivtLWlSXJtQaczHoj7vGEzIEiHEAXvdCctM4FDaCLLlo1Ih5CDB0iygy4cFpLImgMQxCE0Cib5l6OXTkmXKDkbnMWl8bjTF8iy81+/BulA73SfERBIbKuJYiDHMnd3SMjBIJqD1ykZgghiYRBJc6RAINE2ejpEp+ilQqYM9fn9C31OZ2ToQPqePzeFkSAs9SG1IqwoRD8h49t1BwQOgnDJuM70hswahCngYBCZUhkpEH2f6xI6yH8wANHOXHntg/4y/5YtxU6XGYfPNwVzxLI7xGIaBCMp5BDmGL8UI9Eg4xgECmQy6RAwkAYB448QttOJoTtQ2sLq9ccdj7VVWlZ2we8vDWZJ2vY2YlHFKGiYAw3BRJCBHGgzQeDQJ4LAMJnNfK+DMWUKKBoE/Qo5wCBd9Ot57JcL+v9NJKaOxORyllH+yCC7CjECElMhXKIMWcEqNIznLdvo3kOdvHfiHp7Ko3NO5KNu3fTF4/FTP7t///6OJeePPNyxrqCgYBevlpo6+cRUDxVdFQrlR/FUsaZmLurZs2dXCp8GD+6FBg/uSp95g3GTh6/536O3ubl9b5158/3N5TNnPoai0Wg+5cmPWq0W9o1rLNFQPu6fN3XqihVTNUhJyfiNRzc9Onp0IyQn6aUsehnYj7BMt7xoWIhm8eagh+fPX7zycAdahwrQErTrxIkVDiq0KuQI4WeuWrWqZvHixT0pHF8eeUjQtauiQ/jBK4qiQnry5i6+v/bd+09f8NLirRAMHo/D43DkW/vhhCnL1hprvseBuwEBBRmagIE3gsDBIPtGjHYzR/EWaiEg5FhIDOrwYQbRGBxSS5DaP0MwGQUQdrhKV82B8SRDkApZ9WHMnYI3X8aMefusocDDKZiILNNAZEvU48GQCMIshlYl7pIS/Nm4DA4NMnrsGjgYgyD6PMjBIXCQRHWkTyQKyGI0l0NwbIBAwA6XrzHm+D0E//DZ9ssFO968G7P9zsdPn2pJwiE1MpZsjdXjCEU1SGtD0yZQuN1YWxuXaZCxY3evKS4uJgdqaIADCDBYKgQOxCHpEwEEJUNoIrRNkiD4Avf8AVL7ZfsL644328esfZz/5MMuklhliyzPZVnph6iQZi0MhqbN3SMYhA2EQcbiNeA1xaWlC3m3GpiDdeowIshFMLR5aBByeBgkhF8eQdS1pUG60spS2OYGgYd7CKIkL625i/M/jPkQevGOXoO/PufjHQ9tdhkODYK1xTZ7s5YtDJkyZcqUKVOmTJkyZcqUKVOmH+3BIQEAAACAoP+v3WAHAAAAAAAAAOAK6mS5IPBBwb0AAAAASUVORK5CYII=", + "description": "Displays a latest indoor illuminance telemetry data in a horizontal layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 5, + "sizeY": 1, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n horizontal: true,\n previewWidth: '420px',\n previewHeight: '90px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"size\":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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Indoor 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": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json new file mode 100644 index 0000000000..6f9c866f4a --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_card.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_illuminance_card", + "name": "Indoor illuminance card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor illuminance telemetry data in a box layout.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\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\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"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\":\"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": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json new file mode 100644 index 0000000000..7e215b854c --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_card_with_background.json @@ -0,0 +1,28 @@ +{ + "fqn": "indoor_illuminance_card_with_background", + "name": "Indoor illuminance card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a latest indoor illuminance telemetry data in a box layout with background.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 3, + "resources": [], + "templateHtml": "\n", + "templateCss": "", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueCardWidget.onDataUpdated();\n};\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '250px',\n previewHeight: '250px',\n embedTitlePanel: true,\n defaultDataKeysFunction: function() {\n return [{ name: '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() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\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\":\"mdi:lightbulb-on\",\"iconColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"valueFont\":{\"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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\"},\"dateColor\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"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": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json new file mode 100644 index 0000000000..10faf304eb --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_illuminance_chart_card", + "name": "Indoor illuminance chart card", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor illuminance data as a combination of the latest and aggregated values. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'lx', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'illuminance', 'lx', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 12 - 6;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json new file mode 100644 index 0000000000..cd4941c66b --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_illuminance_chart_card_with_background", + "name": "Indoor illuminance chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays a indoor illuminance data as a combination of the latest and aggregated values with background. Optionally may display the corresponding historical values as a simplified chart.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 3.5, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onLatestDataUpdated();\n}\n\nself.onResize = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onResize();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.aggregatedValueCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '400px',\n previewHeight: '300px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)', units: 'lx', decimals: 0 }\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent, configData) {\n return configComponent.createDefaultAggregatedValueLatestDataKeys(configData, 'illuminance', 'lx', 0);\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-aggregated-value-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "tb-aggregated-value-card-key-settings", + "hasBasicMode": true, + "basicModeDirective": "tb-aggregated-value-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"Main building\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{\"showLines\":true,\"fillLines\":true,\"showPoints\":false},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"#4caf50\",\"settings\":{\"position\":\"center\",\"font\":{\"size\":52,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"1\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.9408410830697858,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta percent\",\"color\":\"#f44336\",\"settings\":{\"position\":\"rightTop\",\"font\":{\"size\":14,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"20px\"},\"color\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[{\"from\":null,\"to\":0,\"color\":\"#198038\"},{\"from\":0,\"to\":0,\"color\":\"rgba(0, 0, 0, 0.87)\"},{\"from\":0,\"to\":null,\"color\":\"#D12730\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":true},\"_hash\":0.06392321853157967,\"funcBody\":\"var value = prevValue + Math.random() * 6 - 3;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < -25) {\\n\\tvalue = -25;\\n} else if (value > 25) {\\n\\tvalue = 25;\\n} \\nreturn value;\",\"aggregationType\":null,\"units\":\"%\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null},{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Delta absolute\",\"color\":\"#607d8b\",\"settings\":{\"position\":\"rightBottom\",\"font\":{\"size\":11,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":{\"type\":\"constant\",\"color\":\"rgba(0, 0, 0, 0.38)\",\"rangeList\":[],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"showArrow\":false},\"_hash\":0.44695098620509865,\"funcBody\":\"var value = prevValue + Math.random() * 12 - 6;\\nif (value < -20) {\\n\\tvalue = -20;\\n} else if (value > 20) {\\n\\tvalue = 20;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":\"lx\",\"decimals\":0,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1691927717318,\"endTimeMs\":1692014117318},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"stack\":false,\"fontSize\":10,\"fontColor\":\"#545454\",\"showTooltip\":true,\"tooltipIndividual\":false,\"tooltipCumulative\":false,\"hideZeros\":false,\"grid\":{\"verticalLines\":true,\"horizontalLines\":true,\"outlineWidth\":1,\"color\":\"#545454\",\"backgroundColor\":null,\"tickColor\":\"#DDDDDD\"},\"xaxis\":{\"title\":null,\"showLabels\":true,\"color\":\"#545454\"},\"yaxis\":{\"min\":null,\"max\":null,\"title\":null,\"showLabels\":true,\"color\":\"#545454\",\"tickSize\":null,\"tickDecimals\":0,\"ticksFormatter\":\"\"},\"shadowSize\":4,\"smoothLines\":false,\"comparisonEnabled\":false,\"xaxisSecond\":{\"axisPosition\":\"top\",\"title\":null,\"showLabels\":true},\"showLegend\":true,\"legendConfig\":{\"direction\":\"column\",\"position\":\"bottom\",\"sortDataKeys\":false,\"showMin\":false,\"showMax\":false,\"showAvg\":true,\"showTotal\":false,\"showLatest\":false},\"customLegendEnabled\":false,\"showSubtitle\":true,\"subtitle\":\"${entityName}\",\"subtitleFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"subtitleColor\":\"rgba(0, 0, 0, 0.38)\",\"showDate\":true,\"dateFormat\":{\"format\":null,\"lastUpdateAgo\":true,\"custom\":false},\"dateFont\":{\"family\":\"Roboto\",\"size\":12,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"dateColor\":\"rgba(0, 0, 0, 0.38)\",\"showChart\":true,\"chartColor\":\"rgba(0, 0, 0, 0.87)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}},\"autoScale\":true},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":{\"fontSize\":\"16px\",\"fontWeight\":400},\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"24px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":false,\"displayTimewindow\":true,\"decimals\":0,\"timewindowStyle\":{\"showIcon\":true,\"iconSize\":\"24px\",\"icon\":null,\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":false},\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null}" + }, + "externalId": null, + "tags": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json new file mode 100644 index 0000000000..d281cc864e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar.json @@ -0,0 +1,29 @@ +{ + "fqn": "indoor_illuminance_progress_bar", + "name": "Indoor illuminance progress bar", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAAqFBMVEXg4ODf39/g4ODg4OAAAAD////g4ODzaQD19fUhISHk5OT+7N/0fCBYWFirq6uQkJA9PT3x8fHv7++6urp0dHQvLy/Hx8eGhob82r/+9u+Xl5f7x6Cenp75tICBgYH3oWD0chD2jj/6xqD39/f948/Ly8vV1dX6vZCOjo74qm/70LBKSkr1hC/CwsL3oV/c3NyxsbF1dXX3l0/2j0CgoKD149ZmZmb94s+rdVHIAAAABXRSTlPvIL+vAC9A4IoAAARhSURBVHja7NjdauMwEIZhZ9uvYeRY0tSSSUGbpcuSE5/3/i9tR45NvJTWCz3INMwLFvpJDh4Sm5DmcfejefruPewem13zjG8fC+OBcQc9y9cKd1FzL5AngyjLINoyiLYMoi2DaMsg2jKItgyirU8gvWc46oCOHD4qFejoE0hHwybkTCN09EUIBi1/XfwvpA+CGcK5Xn06OUwDOHggFA7JQ3IlhYouhctlh0t9neRCKg7XbgVJskAgL1fMmXKqg7ucU46R6AT0OY9EPRBzzEQJcJHkqNQjkulKogDyxrKKjBOVGSLbLmdgJIeh7sR6lAlI0yQzR0H4il1SAAmAn4cFAiASJHaO4ryoLBIefOKeEoAcsUoxxHUkLRB5Wz2eCnQJ1zRDIg2MNYSXp3OhN1/DtZtBeuC0AakGXkMQM4u/c9OdA8aqG0EKRR/yBiRT8OM/kEKjDxTrIvkSFdzsSER56xM5R6IUia8QCJ46B3Aimdzg8fs+dtjO8YdbLJP32a9fg2jPINoyiLYMoi2DaMsg2jKItgyiLYNoyyDaMoi2DKItg2jLINoyiLYMoi2DaMsg2jKItgyiLYNoaxvSti1qL+3cy7x/PP6BnjYhv/f7A2o/93OvE+O1Tg9HaGkL0h4WyK81RLYvqZFsQf6yXwerEcJQFIZXhyPc+wCGIomOIIrMQil9/zerziSDLWVEiyTD+C9d+WFyL14ZICNddau7P24NGlKRSCuQjnT+ZXuWCBkvuKbzSVYgSqse4jgglJOFdzZIo+eQgioBQrYII6shPzAlpEUaPYUIWcFDhOwdSSsz8BekiT+In0KUFgGS06eygPhhrB+I1zqkIOUBkdG1grony1eDCFkgQELGkeYvSFcDdYUIrUIGOplSqggeWbJeQgYPaZyBtojQGqTjoh/nLX9MrS/SegjGtlCDDUWCtNZibpghOdmGPRIg4iItx/U7MhWOlgdMKWlg3GKzewjUGURoBRJajl/NIZa0d0EhpiEVAVLo2GJDsSAoFnsERnnLSYAIK9l0tqJBUClJZwVzcuVUWSNA1AIRb/sSsl6d1wYhk+cG6fRG/+wv0glJrROSWicktU5Iap2Q1DohqfUGECm5t/4zO6ztkJ77K7PDumyG8D9lx7UZMnJ/fXZQe76I9Nxbedwdubzx1HqxTkhqnZDv9u5YxUEgCMCwJvmDWAg3WyxMYSPKNqIB3//ZzgSEqw72rtiJmR+22G4+WNhyrOUQa/0CmZMGijXMHSCqKsco+2Vr8iESBV0oVBPXCHQzo7LEQXpBJ9Y1HzJtEALFkghEoemZV+hGHiApHzJ2BiCP1wnhCZEIEh1SrONp0TO/IPTQpnyI9A3bRJkOiC5MyqIQ2+dl7PIhhJiUQh2QNuouYE0pQKua5A8QhoHyyc9R5LN/9vfKIdZyiLUcYi2HWMsh1nKItRxiLYdYyyHWcoi1TgSpOEX36nKC1dPwda3qysoGp38kO+NWX+/vXnWpb99gbrYRFl0QWwAAAABJRU5ErkJggg==", + "description": "Displays indoor illuminance 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": "\n", + "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: 'illuminance', label: 'Illuminance', 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\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":1000,\"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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"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", + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json new file mode 100644 index 0000000000..2462922b20 --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_illuminance_progress_bar_with_background.json @@ -0,0 +1,29 @@ +{ + "fqn": "indoor_illuminance_progress_bar_with_background", + "name": "Indoor illuminance progress bar with background", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAC/VBMVEW+trYAAAC3ur3/59f859bEwcXDq6D55tjGwMXDqp////7//vz//fr//Pj++/r8+/rJysz/+vb++vj8+ff3dBD8+vjJycn69/b++fT18vHz8fH39fT79vP8+PX28/Lw8PDn5OL99/EdIyv8+PP59vXy8O/08e/49PEVFhj59fIgIB/y7+y6ur69vcD6+fjm4uDv7u3+7t7Mysm4trrKy821tLj89Ou8vL/879+4ubz79vD59O724tDYz8fu6ub28u8bISnf29rw7OoZGRvt6+rBu77Pzs7NzMv+9u3KwMDy7en47N7T0NDh3dvW09HGxMgfJS3Qzcrp5eTi4N7+9er969zk4d7g3d3MwsHr6Obc2Nf28e339/j17ur24czf2tbc19TZ1dT67uD75tL27OHKv728uLuysbb86tf86NXKwsX36dq/v8PSzs3Gvr/76trb2trf3+G+ubzV1NX549Di3Njs7e768+jZ1NLt0r/Tz8rNxMa6trr67uPDvb/r5eHPw8H88Ob97dr54Mnc0cf+8+bm4Nzj39z46Nbq5+RWVVXCwsX48evmwqn+8eHY19jd1c75+fnk4eDp4t7T0tPZ083l3tnLxsnW0czFvLzi1czOys3rz7rRs6Tv6eL66uDw4NU8Ozr+8uj05Nrov6D37+fQ0NLMr6CNionTycju1MFxb28wLSz25dP0177g2NDe08nmwaTGrKBJT1bz6+X2597PxsftzLNQR0P848zs5NzHwsTpyLH4hi7x59zk3NSdl5Tp4drYzMrlxK7rx6qVk5P0fiXq39Ts29Pn1tCnpaMaHSLw5NdFS0/iu5323MXAubzIsaWBa1/ez8vMtKaUjo37yKHy07jBsqr3pGaUhYB7dnXn3ND5tH6zoJiFgX71k0n92r+inJuBfHjUuamIhocyO0TRwre7tbI1MzLcvqutqql1YFZHPTnR09jr3M1fUUuXdmNiYGGupqWWlpkoJCLBmXwpKi3Pqo7l08aoh3b7wJPctJJcanj80bAiphZ2AAAACnRSTlMgALcgv7+/sK+vucF9fAAALvJJREFUeNqU1T9oE2EYx/EoCI5OQh20CK3SXDAYJWTSNklLpBBpwFwUB4ecEOpRU+iScNyqDoVQKMGpi1jqJgQh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", + "description": "Displays indoor illuminance reading as a horizontal progress bar with background. Allows to configure value range, bar colors, and other settings.", + "descriptor": { + "type": "latest", + "sizeX": 3, + "sizeY": 2, + "resources": [], + "templateHtml": "\n", + "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: 'illuminance', label: 'Illuminance', 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\":\"Illuminance\",\"color\":\"#2196f3\",\"settings\":{},\"_hash\":0.2392660816082064,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"tickMin\":0,\"tickMax\":1000,\"showTicks\":true,\"ticksFont\":{\"family\":\"Roboto\",\"size\":11,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"400\",\"lineHeight\":\"16px\"},\"ticksColor\":\"rgba(0,0,0,0.54)\",\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"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\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}]},\"barBackground\":\"rgba(0, 0, 0, 0.04)\"},\"title\":\"Illuminance\",\"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\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"titleIcon\":\"mdi:lightbulb-on\",\"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", + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json new file mode 100644 index 0000000000..b4208754ab --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_illuminance_chart_card", + "name": "Indoor simple illuminance chart card", + "deprecated": false, + "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAMAAAB+IdObAAAApVBMVEUAAADg4ODf39/g4ODg4OD////g4ODzaQAhISHj4+NYWFg8PDx0dHSsrKzHx8eQkJDx8fH5tID+7N/0fCD3oWAvLy/+9u+6urr7x5+CgoJKSkrw8PDV1dX0chBlZWX2jkD2j0AWFhb3l0/82r+enp6dnZ3948/0cxChoaH6vZAICAj4q3AlJSX3oV9DQ0Pf39/Q0ND4qm/1hTD7z6+goKCSkpJCQkJ25ZykAAAABXRSTlMA7yC/r1EOHTEAAASuSURBVHja7M85AcAgEAAwjm9mx7/PVgYciYMUAAAAAACA59QW83a9/o/Y43oraulrJLBbmSOFyBKZIocROc3Hbt2stg4DYRhefWFGo7+NMLKMwZCCMSHt4pxz/5d2lLgUipUsHbnVi2E0ePVgG9wgtdUgtdUgtdUgtfULILHDkSpDEoDrn3WuDQ4gA6WxbTzj9ZUh17jevBh8ZugJpIZnV4acXIqX65withBrgc7my5oB1nDehnzdNuQ9o9iw6TzgjWHc1iJ0FwhwmYimvyhAtMJtqNALqV6Ch7h1s3BBi4IlUUEBEhSd0VEv4rFpH8g8UW5KTyB5BA2m7g4Z4ekMZ9ER20x6IxhiaIFoeDLYtANkXjq9Qj7G5RkkC5jMHaIBchi0yAoxhCjIeeqVIodNO0DSe3J3yJLS+xbSP4aI9vYbxLOnaK1lFNrj1UqX7Jhi6RuJgVnKEJ8t7guShx8VVM/evQyC00TTiBKEhUJfhmQFKbKfkNsmDBYi9ToIwrI4lGOPR3kubFxk7AU5zTOO1EPIxz+FI/UL/n4PVoPUVoPUVoPUVoPUVoPUVpUQZv8DIFYFIhLNx4Z4RSEa8zYSuSNDWMj59TSSOzBE0/B1jtQdFvKfHbPrVRQGwvDV5G2hfLVSkYga/MrJybnY3f//3xapdOthGzHmEEh4EuOMV/M4dKYasZOTBXk6V5EgJIeYnWYqwln0zWumIoJxemxJNBsRvo5TO3pzQY8EwUxE4oA1dLsvYdve4Y+nJ7KN4/6QCs9xLFjIzYMk6DthMDGRNMkZY7ngj2e7TO9bUESngJWc+qrrHxLRl6O2yYdSAz1KFkTx2nz3ll2XcZE3lklKfcqcvytyBFbUkMFgkmsT1ZIMGTB0HEXm8cpLskTuTOLcd2cJ+Zsi6l77ZydiYnVoXvo1kdhem9Zs7ZQ48PYltm1XT0HI8mDDXxTJuibUWMkbmkgCGdEFyF4TEbkNy8CzNLxwwZr6GwlWimQTmCE3XERCVUbkgMyeCUC3n+wdkVaRdPvmIRQ2PLPECYbBo10QiDM3SRIalYEiCoUyIhUKulPjt6m/ckQOqHQbSvKwdreBaMtIN6yk1/Gp+EWypuS7CLCq1f7DaUUBaKcjFTKSwC/ysQvJIWEsDxnbpERvqJTDROQV8i4iYVDaFZGdiGmQ/ILS/qugeMyjjTin9BZpOkykRkadSK0yecmAzCeiFa5AQT4itqUfxS9SQJERsRxQ+UToaAacB89lfAwR2SgURVFhX1z+uUE6Io/jtwKKgT8yLGOIFLBkpKW2Iiuo3tQyb6g0efCs5jFELquWCmr1pyv+C7B7pH7YI+3EqvDpOZVilIb494g9I0ezza+3RAOf7SeFK7KHukVH+g/b0rv3xhUxvbgqQMm2chOTI1K0Xgp76pOwMCYPo4tQpgDspY2rlXZEpEJtGvfRb8eTtTeKiIuUuhc/JR3Wjsn/Gx+HT9oxE5Hn7ZiJyO5pO2Yi8oxFZBGZC4vI1FhEpsYiMjUWkamxiPxt584JAIZhAAbazjN3L3+epZE6dwxEQKcRcpoduVrYMRqsg9Z6ZlQ2mAe9WRE199/lqAAAAAAAALjNB+/brAXegFpbAAAAAElFTkSuQmCC", + "description": "Displays historical indoor illuminance values as a simplified chart. Optionally may display the corresponding latest indoor illuminance value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'illuminance', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#FFA600\"},{\"from\":300,\"to\":500,\"color\":\"#F36900\"},{\"from\":500,\"to\":null,\"color\":\"#D81838\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"color\",\"color\":\"#fff\",\"overlay\":{\"enabled\":false,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file diff --git a/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json new file mode 100644 index 0000000000..f47216fe1e --- /dev/null +++ b/application/src/main/data/json/system/widget_types/indoor_simple_illuminance_chart_card_with_background.json @@ -0,0 +1,31 @@ +{ + "fqn": "indoor_simple_illuminance_chart_card_with_background", + "name": "Indoor simple illuminance chart card with background", + "deprecated": false, + "image": "data:image/png;base64,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", + "description": "Displays historical indoor illuminance values as a simplified chart with background. Optionally may display the corresponding latest indoor illuminance value.", + "descriptor": { + "type": "timeseries", + "sizeX": 4.5, + "sizeY": 2, + "resources": [], + "templateHtml": "\n\n", + "templateCss": ".legend {\n font-size: 13px;\n line-height: 10px;\n}\n\n.legend table { \n border-spacing: 0px;\n border-collapse: separate;\n}\n\n.mouse-events .flot-overlay {\n cursor: crosshair; \n}\n\n", + "controllerScript": "self.onInit = function() {\n self.ctx.$scope.valueChartCardWidget.onInit();\n};\n\nself.onDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onDataUpdated();\n};\n\nself.onLatestDataUpdated = function() {\n self.ctx.$scope.valueChartCardWidget.onLatestDataUpdated();\n}\n\nself.onEditModeChanged = function() {\n self.ctx.$scope.valueChartCardWidget.onEditModeChanged();\n}\n\nself.onDestroy = function() {\n self.ctx.$scope.valueChartCardWidget.onDestroy();\n}\n\nself.typeParameters = function() {\n return {\n maxDatasources: 1,\n maxDataKeys: 1,\n singleEntity: true,\n previewWidth: '300px',\n previewHeight: '150px',\n embedTitlePanel: true,\n hasAdditionalLatestDataKeys: true,\n defaultDataKeysFunction: function() {\n return [\n { name: 'illuminance', label: 'Illuminance', type: 'timeseries', color: 'rgba(0, 0, 0, 0.87)'}\n ];\n },\n defaultLatestDataKeysFunction: function(configComponent) {\n return [{ name: 'illuminance', label: 'Latest', type: 'timeseries'}];\n }\n };\n}\n", + "settingsSchema": "{}", + "dataKeySettingsSchema": "{}", + "latestDataKeySettingsSchema": "{}", + "settingsDirective": "tb-value-chart-card-widget-settings", + "dataKeySettingsDirective": "", + "latestDataKeySettingsDirective": "", + "hasBasicMode": true, + "basicModeDirective": "tb-value-chart-card-basic-config", + "defaultConfig": "{\"datasources\":[{\"type\":\"function\",\"name\":\"\",\"dataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Illuminance\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}],\"alarmFilterConfig\":{\"statusList\":[\"ACTIVE\"]},\"latestDataKeys\":[{\"name\":\"f(x)\",\"type\":\"function\",\"label\":\"Latest\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"settings\":{},\"_hash\":0.8587686344902596,\"funcBody\":\"var value = prevValue + Math.random() * 400 - 200;\\nvar multiplier = Math.pow(10, 2 || 0);\\nvar value = Math.round(value * multiplier) / multiplier;\\nif (value < 0) {\\n\\tvalue = 0;\\n} else if (value > 1000) {\\n\\tvalue = 1000;\\n}\\nreturn value;\",\"aggregationType\":null,\"units\":null,\"decimals\":null,\"usePostProcessing\":null,\"postFuncBody\":null}]}],\"showTitle\":true,\"backgroundColor\":\"rgba(0, 0, 0, 0)\",\"color\":null,\"padding\":\"0\",\"settings\":{\"layout\":\"left\",\"autoScale\":true,\"showValue\":true,\"valueFont\":{\"family\":\"Roboto\",\"size\":28,\"sizeUnit\":\"px\",\"style\":\"normal\",\"weight\":\"500\",\"lineHeight\":\"32px\"},\"valueColor\":{\"type\":\"range\",\"color\":\"rgba(0, 0, 0, 0.87)\",\"rangeList\":[{\"from\":null,\"to\":100,\"color\":\"rgba(0, 0, 0, 0.76)\"},{\"from\":100,\"to\":300,\"color\":\"#F89E0D\"},{\"from\":300,\"to\":500,\"color\":\"#F77410\"},{\"from\":500,\"to\":null,\"color\":\"#DE2343\"}],\"colorFunction\":\"var temperature = value;\\nif (typeof temperature !== undefined) {\\n var percent = (temperature + 60)/120 * 100;\\n return tinycolor.mix('blue', 'red', percent).toHexString();\\n}\\nreturn 'blue';\"},\"background\":{\"type\":\"image\",\"imageBase64\":\"data:image/png;base64,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\",\"imageUrl\":null,\"color\":\"#fff\",\"overlay\":{\"enabled\":true,\"color\":\"rgba(255,255,255,0.72)\",\"blur\":3}}},\"title\":\"Illuminance\",\"dropShadow\":true,\"enableFullscreen\":false,\"titleStyle\":null,\"mobileHeight\":null,\"configMode\":\"basic\",\"actions\":{},\"showTitleIcon\":true,\"titleIcon\":\"mdi:lightbulb-on\",\"iconColor\":\"rgba(0, 0, 0, 0.87)\",\"titleFont\":{\"size\":16,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"500\",\"style\":\"normal\",\"lineHeight\":\"24px\"},\"iconSize\":\"18px\",\"titleTooltip\":\"\",\"widgetStyle\":{},\"widgetCss\":\"\",\"pageSize\":1024,\"noDataDisplayMessage\":\"\",\"useDashboardTimewindow\":true,\"decimals\":0,\"titleColor\":\"rgba(0, 0, 0, 0.87)\",\"borderRadius\":null,\"units\":\"lx\",\"displayTimewindow\":true,\"timewindow\":{\"hideInterval\":false,\"hideLastInterval\":false,\"hideQuickInterval\":false,\"hideAggregation\":false,\"hideAggInterval\":false,\"hideTimezone\":false,\"selectedTab\":1,\"history\":{\"historyType\":2,\"timewindowMs\":60000,\"interval\":43200000,\"fixedTimewindow\":{\"startTimeMs\":1697382151041,\"endTimeMs\":1697468551041},\"quickInterval\":\"CURRENT_MONTH_SO_FAR\"},\"aggregation\":{\"type\":\"AVG\",\"limit\":25000}},\"timewindowStyle\":{\"showIcon\":false,\"iconSize\":\"24px\",\"icon\":\"query_builder\",\"iconPosition\":\"left\",\"font\":{\"size\":12,\"sizeUnit\":\"px\",\"family\":\"Roboto\",\"weight\":\"400\",\"style\":\"normal\",\"lineHeight\":\"16px\"},\"color\":\"rgba(0, 0, 0, 0.38)\",\"displayTypePrefix\":true}}" + }, + "externalId": null, + "tags": [ + "environment", + "illuminance", + "indoor" + ] +} \ No newline at end of file From 9a9ffceb94e2a88a1870bf535c230abf63929d32 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Thu, 26 Oct 2023 18:26:59 +0300 Subject: [PATCH 117/117] UI: Indoor Environment: Noise level widgets. --- .../json/system/widget_bundles/indoor_environment.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/application/src/main/data/json/system/widget_bundles/indoor_environment.json b/application/src/main/data/json/system/widget_bundles/indoor_environment.json index 019d1cf3f5..94841e7293 100644 --- a/application/src/main/data/json/system/widget_bundles/indoor_environment.json +++ b/application/src/main/data/json/system/widget_bundles/indoor_environment.json @@ -45,6 +45,14 @@ "indoor_simple_illuminance_chart_card", "indoor_simple_illuminance_chart_card_with_background", "indoor_illuminance_progress_bar", - "indoor_illuminance_progress_bar_with_background" + "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" ] } \ No newline at end of file