@provoly/dashboard 0.15.12 → 0.18.0

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.
Files changed (36) hide show
  1. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +3 -3
  2. package/esm2022/dataset/i18n/en.translations.mjs +2 -2
  3. package/esm2022/dataset/i18n/fr.translations.mjs +2 -2
  4. package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -2
  5. package/esm2022/lib/core/model/widget-map-manifest.interface.mjs +1 -1
  6. package/esm2022/lib/core/store/aggregation/frontend-aggregation/frontend-aggregation.service.mjs +1 -3
  7. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +15 -8
  8. package/esm2022/search/search-home/search-home.component.mjs +3 -3
  9. package/esm2022/search/style/css.component.mjs +2 -2
  10. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +4 -4
  11. package/esm2022/widgets/widget-aggregated-chart/i18n/en.translations.mjs +3 -3
  12. package/esm2022/widgets/widget-aggregated-chart/i18n/fr.translations.mjs +3 -3
  13. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +19 -18
  14. package/esm2022/widgets/widget-map/utils/widget-map.utils.mjs +47 -35
  15. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +2 -2
  16. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  17. package/fesm2022/provoly-dashboard-dataset.mjs +2 -2
  18. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  19. package/fesm2022/provoly-dashboard-presentation.mjs +14 -7
  20. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  21. package/fesm2022/provoly-dashboard-search.mjs +4 -4
  22. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  23. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +7 -7
  24. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  25. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +64 -51
  26. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  27. package/fesm2022/provoly-dashboard.mjs +3 -5
  28. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  29. package/lib/core/model/widget-map-manifest.interface.d.ts +1 -0
  30. package/package.json +31 -31
  31. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +1 -0
  32. package/search/style/_o-pry-search-home.scss +1 -1
  33. package/styles/components/_a-tooltip.scss +2 -2
  34. package/styles/components/_o-pry-card.scss +8 -1
  35. package/styles/components/_o-pry-expand-panel.scss +2 -2
  36. 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 getLayerOrder = (layer, index, array) => {
868
- if (layer.order && array[index - 1] && array[index - 1].order && layer.order < array[index - 1].order)
869
- return array[index - 1].order + 1;
870
- if (layer.order)
871
- return layer.order;
872
- if (index === 0 && !layer.order)
873
- return 0;
874
- let [distanceToFirstPreviousOrder, distanceToFirstNextOrder] = [
875
- array
876
- .slice(0, index + 1)
877
- .reverse()
878
- .findIndex((element) => !!element.order),
879
- array.slice(index + 1).findIndex((element) => !!element.order)
880
- ];
881
- let [previousOrderIndex, nextOrderIndex] = [
882
- distanceToFirstPreviousOrder > -1 ? index - distanceToFirstPreviousOrder : 0,
883
- distanceToFirstNextOrder + index + 1
884
- ];
885
- let [previousOrder, nextOrder] = [
886
- distanceToFirstPreviousOrder > -1 ? array[previousOrderIndex].order : 0,
887
- distanceToFirstNextOrder > -1 ? array[nextOrderIndex].order : -1
888
- ];
889
- if (nextOrder > 0 && nextOrder < previousOrder) {
890
- const newOrder = previousOrder + (nextOrderIndex - previousOrderIndex);
891
- console.warn(`the order property of layer no ${index + 2} was preset but doesn't follow the order of the other layers`);
892
- nextOrder = newOrder;
893
- }
894
- if (nextOrder > 0) {
895
- let relativeIndex = index - previousOrderIndex;
896
- return previousOrder + ((nextOrder - previousOrder) / (nextOrderIndex - previousOrderIndex)) * relativeIndex;
897
- }
898
- else {
899
- return previousOrder + distanceToFirstPreviousOrder;
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
- if (projBox && extentResponse.values.length > 0) {
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
- .top_left.lon),
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
- .bottom_right.lon),
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, getLayerOrder, getLinkFeature, getMapAsPng, populateIntensityAttribute, populateLocationAttribute };
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