Commit ec7ea7042a46e5cbbf460ae25fd9c65b5585bb7b
1 parent
9b92f67b
Fixed loading of data used by post-processing function in key settings for map widgets
Showing
6 changed files
with
51 additions
and
15 deletions
@@ -2127,9 +2127,9 @@ | @@ -2127,9 +2127,9 @@ | ||
2127 | } | 2127 | } |
2128 | }, | 2128 | }, |
2129 | "@types/leaflet": { | 2129 | "@types/leaflet": { |
2130 | - "version": "1.5.12", | ||
2131 | - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.5.12.tgz", | ||
2132 | - "integrity": "sha512-61HRMIng+bWvnnAIqUWLBlrd/TQZc4gU+gN1JL4K47EDtwIrcMEhWgi7PdcpbG1YmpH4F0EfOimkvV82gJIl9w==", | 2130 | + "version": "1.5.17", |
2131 | + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.5.17.tgz", | ||
2132 | + "integrity": "sha512-2XYq9k6kNjhNI7PaTz8Rdxcc8Vzwu97OaS9CtcrTxnTSxFUGwjlGjTDvhTLJU+JRSfZ4lBwGcl0SjZHALdVr6g==", | ||
2133 | "dev": true, | 2133 | "dev": true, |
2134 | "requires": { | 2134 | "requires": { |
2135 | "@types/geojson": "*" | 2135 | "@types/geojson": "*" |
@@ -3100,6 +3100,16 @@ | @@ -3100,6 +3100,16 @@ | ||
3100 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", | 3100 | "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", |
3101 | "dev": true | 3101 | "dev": true |
3102 | }, | 3102 | }, |
3103 | + "bindings": { | ||
3104 | + "version": "1.5.0", | ||
3105 | + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", | ||
3106 | + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", | ||
3107 | + "dev": true, | ||
3108 | + "optional": true, | ||
3109 | + "requires": { | ||
3110 | + "file-uri-to-path": "1.0.0" | ||
3111 | + } | ||
3112 | + }, | ||
3103 | "blob": { | 3113 | "blob": { |
3104 | "version": "0.0.5", | 3114 | "version": "0.0.5", |
3105 | "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", | 3115 | "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", |
@@ -5843,6 +5853,13 @@ | @@ -5843,6 +5853,13 @@ | ||
5843 | "tslib": "^1.9.0" | 5853 | "tslib": "^1.9.0" |
5844 | } | 5854 | } |
5845 | }, | 5855 | }, |
5856 | + "file-uri-to-path": { | ||
5857 | + "version": "1.0.0", | ||
5858 | + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | ||
5859 | + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", | ||
5860 | + "dev": true, | ||
5861 | + "optional": true | ||
5862 | + }, | ||
5846 | "fileset": { | 5863 | "fileset": { |
5847 | "version": "2.0.3", | 5864 | "version": "2.0.3", |
5848 | "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", | 5865 | "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", |
@@ -8938,6 +8955,13 @@ | @@ -8938,6 +8955,13 @@ | ||
8938 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", | 8955 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", |
8939 | "dev": true | 8956 | "dev": true |
8940 | }, | 8957 | }, |
8958 | + "nan": { | ||
8959 | + "version": "2.14.1", | ||
8960 | + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", | ||
8961 | + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", | ||
8962 | + "dev": true, | ||
8963 | + "optional": true | ||
8964 | + }, | ||
8941 | "nanomatch": { | 8965 | "nanomatch": { |
8942 | "version": "1.2.13", | 8966 | "version": "1.2.13", |
8943 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", | 8967 | "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", |
@@ -8997,10 +9021,10 @@ | @@ -8997,10 +9021,10 @@ | ||
8997 | "integrity": "sha512-4O3GWAYJaauMCILm07weko2rHA8a4kjn7+8Lg4s1d7SxwS/3IpkVD/GljbRrIJ1c1W/XGJ3GbuK7RyYZEJChhw==" | 9021 | "integrity": "sha512-4O3GWAYJaauMCILm07weko2rHA8a4kjn7+8Lg4s1d7SxwS/3IpkVD/GljbRrIJ1c1W/XGJ3GbuK7RyYZEJChhw==" |
8998 | }, | 9022 | }, |
8999 | "ngx-flowchart": { | 9023 | "ngx-flowchart": { |
9000 | - "version": "git://github.com/thingsboard/ngx-flowchart.git#7a02f4748b5e7821a883c903107af5f20415d026", | 9024 | + "version": "git://github.com/thingsboard/ngx-flowchart.git#97a77477ca8579becf0e3a07866046b4536fe30a", |
9001 | "from": "git://github.com/thingsboard/ngx-flowchart.git#master", | 9025 | "from": "git://github.com/thingsboard/ngx-flowchart.git#master", |
9002 | "requires": { | 9026 | "requires": { |
9003 | - "tslib": "^1.13.0" | 9027 | + "tslib": "^1.10.0" |
9004 | }, | 9028 | }, |
9005 | "dependencies": { | 9029 | "dependencies": { |
9006 | "tslib": { | 9030 | "tslib": { |
@@ -14065,7 +14089,11 @@ | @@ -14065,7 +14089,11 @@ | ||
14065 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", | 14089 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", |
14066 | "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", | 14090 | "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", |
14067 | "dev": true, | 14091 | "dev": true, |
14068 | - "optional": true | 14092 | + "optional": true, |
14093 | + "requires": { | ||
14094 | + "bindings": "^1.5.0", | ||
14095 | + "nan": "^2.12.1" | ||
14096 | + } | ||
14069 | }, | 14097 | }, |
14070 | "is-binary-path": { | 14098 | "is-binary-path": { |
14071 | "version": "1.0.1", | 14099 | "version": "1.0.1", |
@@ -14500,7 +14528,11 @@ | @@ -14500,7 +14528,11 @@ | ||
14500 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", | 14528 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", |
14501 | "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", | 14529 | "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", |
14502 | "dev": true, | 14530 | "dev": true, |
14503 | - "optional": true | 14531 | + "optional": true, |
14532 | + "requires": { | ||
14533 | + "bindings": "^1.5.0", | ||
14534 | + "nan": "^2.12.1" | ||
14535 | + } | ||
14504 | }, | 14536 | }, |
14505 | "is-absolute-url": { | 14537 | "is-absolute-url": { |
14506 | "version": "3.0.3", | 14538 | "version": "3.0.3", |
@@ -106,7 +106,7 @@ | @@ -106,7 +106,7 @@ | ||
106 | "@types/js-beautify": "^1.8.2", | 106 | "@types/js-beautify": "^1.8.2", |
107 | "@types/jstree": "^3.3.40", | 107 | "@types/jstree": "^3.3.40", |
108 | "@types/jszip": "^3.4.1", | 108 | "@types/jszip": "^3.4.1", |
109 | - "@types/leaflet": "^1.5.12", | 109 | + "@types/leaflet": "^1.5.17", |
110 | "@types/leaflet-markercluster": "^1.0.3", | 110 | "@types/leaflet-markercluster": "^1.0.3", |
111 | "@types/leaflet-polylinedecorator": "^1.6.0", | 111 | "@types/leaflet-polylinedecorator": "^1.6.0", |
112 | "@types/lodash": "^4.14.151", | 112 | "@types/lodash": "^4.14.151", |
@@ -89,6 +89,10 @@ export function isDefinedAndNotNull(value: any): boolean { | @@ -89,6 +89,10 @@ export function isDefinedAndNotNull(value: any): boolean { | ||
89 | return typeof value !== 'undefined' && value !== null; | 89 | return typeof value !== 'undefined' && value !== null; |
90 | } | 90 | } |
91 | 91 | ||
92 | +export function isDefinedAndNotEmptyStr(value: any): boolean { | ||
93 | + return typeof value !== 'undefined' && value !== ''; | ||
94 | +} | ||
95 | + | ||
92 | export function isFunction(value: any): boolean { | 96 | export function isFunction(value: any): boolean { |
93 | return typeof value === 'function'; | 97 | return typeof value === 'function'; |
94 | } | 98 | } |
@@ -44,7 +44,7 @@ import { Polygon } from './polygon'; | @@ -44,7 +44,7 @@ import { Polygon } from './polygon'; | ||
44 | import { createLoadingDiv, createTooltip, parseArray, safeExecute } from '@home/components/widget/lib/maps/maps-utils'; | 44 | import { createLoadingDiv, createTooltip, parseArray, safeExecute } from '@home/components/widget/lib/maps/maps-utils'; |
45 | import { WidgetContext } from '@home/models/widget-component.models'; | 45 | import { WidgetContext } from '@home/models/widget-component.models'; |
46 | import { DatasourceData } from '@shared/models/widget.models'; | 46 | import { DatasourceData } from '@shared/models/widget.models'; |
47 | -import { deepClone, isDefinedAndNotNull } from '@core/utils'; | 47 | +import { deepClone, isDefinedAndNotEmptyStr } from '@core/utils'; |
48 | 48 | ||
49 | export default abstract class LeafletMap { | 49 | export default abstract class LeafletMap { |
50 | 50 | ||
@@ -276,7 +276,7 @@ export default abstract class LeafletMap { | @@ -276,7 +276,7 @@ export default abstract class LeafletMap { | ||
276 | if (!expression) return null; | 276 | if (!expression) return null; |
277 | const lat = expression[this.options.latKeyName]; | 277 | const lat = expression[this.options.latKeyName]; |
278 | const lng = expression[this.options.lngKeyName]; | 278 | const lng = expression[this.options.lngKeyName]; |
279 | - if (!isDefinedAndNotNull(lat) || isNaN(lat) || !isDefinedAndNotNull(lng) || isNaN(lng)) { | 279 | + if (!isDefinedAndNotEmptyStr(lat) || isNaN(lat) || !isDefinedAndNotEmptyStr(lng) || isNaN(lng)) { |
280 | return null; | 280 | return null; |
281 | } | 281 | } |
282 | return L.latLng(lat, lng) as L.LatLng; | 282 | return L.latLng(lat, lng) as L.LatLng; |
@@ -524,7 +524,7 @@ export default abstract class LeafletMap { | @@ -524,7 +524,7 @@ export default abstract class LeafletMap { | ||
524 | const keys: string[] = []; | 524 | const keys: string[] = []; |
525 | this.polygonsData = deepClone(polyData); | 525 | this.polygonsData = deepClone(polyData); |
526 | polyData.forEach((data: FormattedData) => { | 526 | polyData.forEach((data: FormattedData) => { |
527 | - if (data && data.hasOwnProperty(this.options.polygonKeyName) && data[this.options.polygonKeyName] !== null) { | 527 | + if (data && isDefinedAndNotEmptyStr(data[this.options.polygonKeyName])) { |
528 | if (typeof (data[this.options.polygonKeyName]) === 'string') { | 528 | if (typeof (data[this.options.polygonKeyName]) === 'string') { |
529 | data[this.options.polygonKeyName] = JSON.parse(data[this.options.polygonKeyName]); | 529 | data[this.options.polygonKeyName] = JSON.parse(data[this.options.polygonKeyName]); |
530 | } | 530 | } |
@@ -341,8 +341,8 @@ export function parseData(input: DatasourceData[]): FormattedData[] { | @@ -341,8 +341,8 @@ export function parseData(input: DatasourceData[]): FormattedData[] { | ||
341 | }; | 341 | }; |
342 | entityArray.filter(el => el.data.length).forEach(el => { | 342 | entityArray.filter(el => el.data.length).forEach(el => { |
343 | const indexDate = el?.data?.length ? el.data.length - 1 : 0; | 343 | const indexDate = el?.data?.length ? el.data.length - 1 : 0; |
344 | - obj[el?.dataKey?.label] = el?.data[indexDate][0] ? el?.data[indexDate][1] : null; | ||
345 | - obj[el?.dataKey?.label + '|ts'] = el?.data[indexDate][0] || null; | 344 | + obj[el?.dataKey?.label] = el?.data[indexDate][1]; |
345 | + obj[el?.dataKey?.label + '|ts'] = el?.data[indexDate][0]; | ||
346 | if (el?.dataKey?.label === 'type') { | 346 | if (el?.dataKey?.label === 'type') { |
347 | obj.deviceType = el?.data[indexDate][1]; | 347 | obj.deviceType = el?.data[indexDate][1]; |
348 | } | 348 | } |
@@ -24,7 +24,7 @@ import { WidgetContext } from '@home/models/widget-component.models'; | @@ -24,7 +24,7 @@ import { WidgetContext } from '@home/models/widget-component.models'; | ||
24 | import { DataSet, DatasourceType, widgetType } from '@shared/models/widget.models'; | 24 | import { DataSet, DatasourceType, widgetType } from '@shared/models/widget.models'; |
25 | import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; | 25 | import { DataKeyType } from '@shared/models/telemetry/telemetry.models'; |
26 | import { WidgetSubscriptionOptions } from '@core/api/widget-api.models'; | 26 | import { WidgetSubscriptionOptions } from '@core/api/widget-api.models'; |
27 | -import { isDefinedAndNotNull } from '@core/utils'; | 27 | +import { isDefinedAndNotEmptyStr } from '@core/utils'; |
28 | 28 | ||
29 | const maxZoom = 4;// ? | 29 | const maxZoom = 4;// ? |
30 | 30 | ||
@@ -212,7 +212,7 @@ export class ImageMap extends LeafletMap { | @@ -212,7 +212,7 @@ export class ImageMap extends LeafletMap { | ||
212 | convertPosition(expression): L.LatLng { | 212 | convertPosition(expression): L.LatLng { |
213 | const xPos = expression[this.options.xPosKeyName]; | 213 | const xPos = expression[this.options.xPosKeyName]; |
214 | const yPos = expression[this.options.yPosKeyName]; | 214 | const yPos = expression[this.options.yPosKeyName]; |
215 | - if (!isDefinedAndNotNull(xPos) || isNaN(xPos) || !isDefinedAndNotNull(yPos) || isNaN(yPos)) { | 215 | + if (!isDefinedAndNotEmptyStr(xPos) || isNaN(xPos) || !isDefinedAndNotEmptyStr(yPos) || isNaN(yPos)) { |
216 | return null; | 216 | return null; |
217 | } | 217 | } |
218 | Object.assign(expression, this.posFunction(xPos, yPos)); | 218 | Object.assign(expression, this.posFunction(xPos, yPos)); |