@provoly/dashboard 0.15.12 → 0.15.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/dataset/i18n/en.translations.mjs +2 -2
- package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
- package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
- package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +1 -3
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +19 -18
- package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +47 -35
- package/fesm2022/provoly-dashboard-dataset.mjs +2 -2
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +64 -51
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +2 -4
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/model/widget-map-manifest.interface.d.ts +1 -0
- package/package.json +13 -13
- package/widgets/widget-map/utils/widget-map.utils.d.ts +2 -7
|
@@ -864,40 +864,51 @@ const geometryForLayer = (layer) => {
|
|
|
864
864
|
return FieldType.POINT;
|
|
865
865
|
}
|
|
866
866
|
};
|
|
867
|
-
const
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
.
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
867
|
+
const assignLayersOrder = (_layers) => {
|
|
868
|
+
const layers = JSON.parse(JSON.stringify(_layers));
|
|
869
|
+
layers.sort((l1, l2) => (l2.background ? 0 : 1) - (l1.background ? 0 : 1));
|
|
870
|
+
// Assign sure things
|
|
871
|
+
layers.forEach((layer, index) => {
|
|
872
|
+
if (layer.background) {
|
|
873
|
+
layer.order = BACKGROUND_ORDER;
|
|
874
|
+
}
|
|
875
|
+
if (index === 0 && !layer.order) {
|
|
876
|
+
layer.order = 0;
|
|
877
|
+
}
|
|
878
|
+
});
|
|
879
|
+
layers.forEach((layer, index) => {
|
|
880
|
+
if (layer.order === undefined) {
|
|
881
|
+
let [distanceToFirstPreviousOrder, distanceToFirstNextOrder] = [
|
|
882
|
+
layers
|
|
883
|
+
.slice(0, index)
|
|
884
|
+
.reverse()
|
|
885
|
+
.findIndex((element) => element.order !== undefined) + 1,
|
|
886
|
+
layers.slice(index + 1).findIndex((element) => element.order !== undefined)
|
|
887
|
+
];
|
|
888
|
+
let [previousOrderIndex, nextOrderIndex] = [
|
|
889
|
+
distanceToFirstPreviousOrder > -1 ? index - distanceToFirstPreviousOrder : 0,
|
|
890
|
+
distanceToFirstNextOrder + index + 1
|
|
891
|
+
];
|
|
892
|
+
let [previousOrder, nextOrder] = [
|
|
893
|
+
distanceToFirstPreviousOrder > -1 ? layers[previousOrderIndex].order : 0,
|
|
894
|
+
distanceToFirstNextOrder > -1 ? layers[nextOrderIndex].order : -1
|
|
895
|
+
];
|
|
896
|
+
if (nextOrder > 0 && nextOrder < previousOrder) {
|
|
897
|
+
const newOrder = previousOrder + (nextOrderIndex - previousOrderIndex);
|
|
898
|
+
console.warn(`the order property of layer no ${index + 2} was preset but doesn't follow the order of the other layers`);
|
|
899
|
+
nextOrder = newOrder;
|
|
900
|
+
}
|
|
901
|
+
if (nextOrder > 0) {
|
|
902
|
+
let relativeIndex = index - previousOrderIndex;
|
|
903
|
+
layer.order =
|
|
904
|
+
previousOrder + ((nextOrder - previousOrder) / (nextOrderIndex - previousOrderIndex)) * relativeIndex;
|
|
905
|
+
}
|
|
906
|
+
else {
|
|
907
|
+
layer.order = previousOrder + distanceToFirstPreviousOrder;
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
});
|
|
911
|
+
return layers.sort((l1, l2) => (l1.order ?? 1) - (l2.order ?? 1));
|
|
901
912
|
};
|
|
902
913
|
const DEFAULT_HEATMAP_RADIUS = 25;
|
|
903
914
|
const DEFAULT_RADIUS_INTENSITY_FACTOR = 10000;
|
|
@@ -905,6 +916,7 @@ const DEFAULT_ZOOM_MIN = 3;
|
|
|
905
916
|
const DEFAULT_ZOOM_START = 10;
|
|
906
917
|
const DEFAULT_ZOOM_MAX = 18;
|
|
907
918
|
const DEFAULT_MAP_CENTER = [2.2827217347381525, 48.864706031557716];
|
|
919
|
+
const BACKGROUND_ORDER = 9999;
|
|
908
920
|
|
|
909
921
|
class XMLUtils {
|
|
910
922
|
static find(childs, name) {
|
|
@@ -1210,10 +1222,7 @@ class WidgetMapComponent extends DataWidgetComponent {
|
|
|
1210
1222
|
autoOptions.tooltipMode = TooltipMode.CLICK;
|
|
1211
1223
|
}
|
|
1212
1224
|
autoOptions.layers = [
|
|
1213
|
-
...(autoOptions.layers ?? [])
|
|
1214
|
-
.sort((l1, l2) => l1.order - l2.order)
|
|
1215
|
-
.map((layer, i, array) => (autoOptions.layers[i] = { ...layer, order: getLayerOrder(layer, i, array) }))
|
|
1216
|
-
.filter((layer) => layer.type !== 'auto'),
|
|
1225
|
+
...(autoOptions.layers ?? []).filter((layer) => layer.type !== 'auto'),
|
|
1217
1226
|
...(autoOptions.automaticLayers
|
|
1218
1227
|
? autoDatasetLayers
|
|
1219
1228
|
.filter((layer) => !autoOptions.ignoreAutoLayer ||
|
|
@@ -1248,9 +1257,7 @@ class WidgetMapComponent extends DataWidgetComponent {
|
|
|
1248
1257
|
: { ...layer };
|
|
1249
1258
|
}),
|
|
1250
1259
|
...geoLayers.filter((layer) => !actualLayerKeys.includes(layer.key))
|
|
1251
|
-
]
|
|
1252
|
-
.filter((layer) => !!layer)
|
|
1253
|
-
.sort((l1, l2) => l1.order - l2.order);
|
|
1260
|
+
].filter((layer) => !!layer);
|
|
1254
1261
|
autoOptions.layers.forEach((layer) => {
|
|
1255
1262
|
this.setDefaultLayerTitle(layer, capabilities);
|
|
1256
1263
|
});
|
|
@@ -1272,6 +1279,7 @@ class WidgetMapComponent extends DataWidgetComponent {
|
|
|
1272
1279
|
this.emitManifest();
|
|
1273
1280
|
}
|
|
1274
1281
|
}
|
|
1282
|
+
autoOptions.layers = assignLayersOrder(autoOptions.layers);
|
|
1275
1283
|
return autoOptions;
|
|
1276
1284
|
}), distinctUntilChanged((p, c) => equal(p, c)));
|
|
1277
1285
|
this.subscriptions.add(this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {
|
|
@@ -1453,21 +1461,26 @@ class WidgetMapComponent extends DataWidgetComponent {
|
|
|
1453
1461
|
})
|
|
1454
1462
|
.pipe(map((extentResponse) => {
|
|
1455
1463
|
const projBox = get(field.crs ?? DEFAULT_PROJECTION);
|
|
1456
|
-
|
|
1464
|
+
const response = extentResponse.values;
|
|
1465
|
+
if (projBox &&
|
|
1466
|
+
response.length > 0 &&
|
|
1467
|
+
response[0].value &&
|
|
1468
|
+
response[0].value.top_left &&
|
|
1469
|
+
response[0].value.top_left.lat !== undefined &&
|
|
1470
|
+
response[0].value.top_left.lon !== undefined &&
|
|
1471
|
+
response[0].value.bottom_right &&
|
|
1472
|
+
response[0].value.bottom_right.lat !== undefined &&
|
|
1473
|
+
response[0].value.bottom_right.lon !== undefined) {
|
|
1457
1474
|
return {
|
|
1458
1475
|
datasource: layer.datasourceId,
|
|
1459
1476
|
extent: [
|
|
1460
1477
|
transform([
|
|
1461
|
-
parseFloat(extentResponse.values[0].value
|
|
1462
|
-
|
|
1463
|
-
parseFloat(extentResponse.values[0].value
|
|
1464
|
-
.top_left.lat)
|
|
1478
|
+
parseFloat(extentResponse.values[0].value.top_left.lon),
|
|
1479
|
+
parseFloat(extentResponse.values[0].value.top_left.lat)
|
|
1465
1480
|
], projBox, this.map.getView().getProjection()),
|
|
1466
1481
|
transform([
|
|
1467
|
-
parseFloat(extentResponse.values[0].value
|
|
1468
|
-
|
|
1469
|
-
parseFloat(extentResponse.values[0].value
|
|
1470
|
-
.bottom_right.lat)
|
|
1482
|
+
parseFloat(extentResponse.values[0].value.bottom_right.lon),
|
|
1483
|
+
parseFloat(extentResponse.values[0].value.bottom_right.lat)
|
|
1471
1484
|
], projBox, this.map.getView().getProjection())
|
|
1472
1485
|
]
|
|
1473
1486
|
};
|
|
@@ -2182,5 +2195,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
2182
2195
|
* Generated bundle index. Do not edit.
|
|
2183
2196
|
*/
|
|
2184
2197
|
|
|
2185
|
-
export { CqlUtils, DEFAULT_HEATMAP_RADIUS, DEFAULT_MAP_CENTER, DEFAULT_RADIUS_INTENSITY_FACTOR, DEFAULT_ZOOM_MAX, DEFAULT_ZOOM_MIN, DEFAULT_ZOOM_START, GeometryFieldsForPipe, InteractionManager, PryWidgetMapCssComponent, SelectionInteraction, TOOLTIP_PADDING, WidgetMapComponent, WidgetMapLayerService, WidgetMapLegendUrlPipe, WidgetMapModule, XMLUtils, exportMapAsImage, geometryForLayer, getCircleFeatureFromItem, getFeatureFromItem,
|
|
2198
|
+
export { BACKGROUND_ORDER, CqlUtils, DEFAULT_HEATMAP_RADIUS, DEFAULT_MAP_CENTER, DEFAULT_RADIUS_INTENSITY_FACTOR, DEFAULT_ZOOM_MAX, DEFAULT_ZOOM_MIN, DEFAULT_ZOOM_START, GeometryFieldsForPipe, InteractionManager, PryWidgetMapCssComponent, SelectionInteraction, TOOLTIP_PADDING, WidgetMapComponent, WidgetMapLayerService, WidgetMapLegendUrlPipe, WidgetMapModule, XMLUtils, assignLayersOrder, exportMapAsImage, geometryForLayer, getCircleFeatureFromItem, getFeatureFromItem, getLinkFeature, getMapAsPng, populateIntensityAttribute, populateLocationAttribute };
|
|
2186
2199
|
//# sourceMappingURL=provoly-dashboard-widgets-widget-map.mjs.map
|