@opengeoweb/core 12.12.0 → 12.13.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.
package/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { useState, useCallback, useEffect, useContext, useMemo } from 'react';
4
- import { Grid, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, DialogContentText, TextField, InputAdornment, Button, Autocomplete, ListItemIcon, Checkbox, Switch, Select } from '@mui/material';
4
+ import { Grid, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, Checkbox, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, DialogContentText, TextField, InputAdornment, Button, Autocomplete, ListItemIcon, Switch, Select } from '@mui/material';
5
5
  import { safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, CustomIconButton, CustomTooltip, TooltipSelect, AlertIcon, useScrollingInIsolation, sliderHeaderStyle, CustomSlider, ToggleMenu, tooltipContainerStyles, renderCounter, AlertBanner, CustomAccordion, CustomDialog, PROJECTION, calculateStartSize, useWheelStopPropagation, ToolContainerDraggable, dateUtils, useDebounce, sessionStorageProvider, usePrevious, ErrorBoundary } from '@opengeoweb/shared';
6
6
  import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, Copy, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Overlayers, Layers, ExitDomain, Info, Search, Exclamation, MyLocation, Close, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
7
7
  import i18n from 'i18next';
@@ -12,7 +12,7 @@ import { useDispatch, useSelector, connect, useStore, Provider } from 'react-red
12
12
  import { ReactSortable } from 'react-sortablejs';
13
13
  import Sortable from 'sortablejs';
14
14
  import { layerTypes, layerUtils, mapSelectors, layerActions, layerSelectors, serviceSelectors, serviceActions, mapActions, mapEnums, uiSelectors, uiTypes, useSetupDialog, filterLayers, getUserAddedServices, uiActions, genericActions, syncGroupsSelectors, drawingToolSelectors, syncConstants, getViewObjectForSyncGroup, getViewObjectForMapId, genericSelectors, loadingIndicatorActions, defaultLayers, getSingularDrawtoolDrawLayerId, syncGroupsSelector, syncGroupsActions, routerUtils, mapUtils } from '@opengeoweb/store';
15
- import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, getWMSServiceId, handleDateUtilsISOString, getMapDimURL, generateLayerId, WMJSDimension, getWMLayerById, WMLayer } from '@opengeoweb/webmap';
15
+ import { webmapUtils, LayerType, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, getWMSServiceId, handleDateUtilsISOString, getMapDimURL, generateLayerId, WMJSDimension, getWMLayerById, WMLayer } from '@opengeoweb/webmap';
16
16
  import _, { isArray, isEqual, range } from 'lodash';
17
17
  import { Box as Box$1, styled as styled$1 } from '@mui/system';
18
18
  import { LayerSelectButtonConnect, LayerSelectConnect, DataExplorerButtonConnect } from '@opengeoweb/layer-select';
@@ -58,6 +58,7 @@ var en = {
58
58
  "layermanager-style-title": "Style",
59
59
  "layermanager-layer-error": "This layer could not be loaded: does not exist on the server.",
60
60
  "layermanager-layer": "Layer",
61
+ "layermanager-layer-multi": "Layers",
61
62
  "layermanager-layer-toggle": "Toggle visibility",
62
63
  "layermanager-layer-select": "Open the layer selector",
63
64
  "layermanager-layer-drag": "Drag",
@@ -75,6 +76,7 @@ var en = {
75
76
  "layermanager-header-button-large": "large",
76
77
  "layermanager-header-button-dock": "Dock",
77
78
  "layermanager-header-button-undock": "Undock",
79
+ "layermanager-EDR-multiparam": "Multi params",
78
80
  "projection-title": "Projection",
79
81
  "wms-loader-description": "Please enter a wms server, or select one from the list.",
80
82
  "wms-loader-no-data": "No data",
@@ -1387,6 +1389,27 @@ var DimensionSelect = function DimensionSelect(_ref) {
1387
1389
  });
1388
1390
  };
1389
1391
 
1392
+ var showNoLayers = function showNoLayers(t) {
1393
+ return jsx(Box, {
1394
+ sx: {
1395
+ paddingLeft: 1,
1396
+ height: '32px',
1397
+ display: 'inline-flex',
1398
+ alignItems: 'center'
1399
+ },
1400
+ children: jsx(Typography, {
1401
+ variant: "body1",
1402
+ sx: {
1403
+ fontSize: function fontSize(theme) {
1404
+ return theme.palette.geowebColors.layerManager.tableRowDefaultText.fontSize;
1405
+ },
1406
+ color: 'geowebColors.layerManager.tableRowDefaultText.rgba',
1407
+ fontWeight: 500
1408
+ },
1409
+ children: t('layermanager-baselayers-no-available')
1410
+ })
1411
+ });
1412
+ };
1390
1413
  var getRenderLayersValues = function getRenderLayersValues(layerName, layers) {
1391
1414
  var serviceLayer = layers.find(function (layer) {
1392
1415
  return layer.name === layerName;
@@ -1425,25 +1448,7 @@ var RenderLayers = function RenderLayers(_ref) {
1425
1448
  t = _useCoreTranslation.t;
1426
1449
  var nonEmptyTooltipPrefix = tooltipPrefix != null ? tooltipPrefix : t('layermanager-layer') + ": ";
1427
1450
  if (!layers || !layers.length) {
1428
- return jsx(Box, {
1429
- sx: {
1430
- paddingLeft: 1,
1431
- height: '32px',
1432
- display: 'inline-flex',
1433
- alignItems: 'center'
1434
- },
1435
- children: jsx(Typography, {
1436
- variant: "body1",
1437
- sx: {
1438
- fontSize: function fontSize(theme) {
1439
- return theme.palette.geowebColors.layerManager.tableRowDefaultText.fontSize;
1440
- },
1441
- color: 'geowebColors.layerManager.tableRowDefaultText.rgba',
1442
- fontWeight: 500
1443
- },
1444
- children: t('layermanager-baselayers-no-available')
1445
- })
1446
- });
1451
+ return showNoLayers(t);
1447
1452
  }
1448
1453
  var selectLayer = function selectLayer(event) {
1449
1454
  event.stopPropagation();
@@ -2212,6 +2217,8 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2212
2217
  layerName = _ref8.layerName,
2213
2218
  services = _ref8.services,
2214
2219
  mapId = _ref8.mapId,
2220
+ _ref8$isEDRLayer = _ref8.isEDRLayer,
2221
+ isEDRLayer = _ref8$isEDRLayer === void 0 ? false : _ref8$isEDRLayer,
2215
2222
  _ref8$onLayerRowClick = _ref8.onLayerRowClick,
2216
2223
  onLayerRowClick = _ref8$onLayerRowClick === void 0 ? function () {} : _ref8$onLayerRowClick,
2217
2224
  _ref8$isEnabled = _ref8.isEnabled,
@@ -2303,6 +2310,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2303
2310
  onChangeActive: onClickRow
2304
2311
  }),
2305
2312
  layerName: layerName,
2313
+ isEDRLayer: isEDRLayer,
2306
2314
  Styles: layerStylesLayout || jsx(Styles, {
2307
2315
  style: layer.style,
2308
2316
  onChangeStyle: changeStyle
@@ -2448,9 +2456,12 @@ var Accordion = function Accordion(_ref0) {
2448
2456
  Opacity = _ref0.Opacity,
2449
2457
  layerName = _ref0.layerName,
2450
2458
  LeftButtons = _ref0.LeftButtons,
2451
- LoadDuration = _ref0.LoadDuration;
2459
+ LoadDuration = _ref0.LoadDuration,
2460
+ _ref0$isEDRLayer = _ref0.isEDRLayer,
2461
+ isEDRLayer = _ref0$isEDRLayer === void 0 ? false : _ref0$isEDRLayer;
2452
2462
  var _useCoreTranslation3 = useCoreTranslation(),
2453
2463
  t = _useCoreTranslation3.t;
2464
+ var displayLayerName = isEDRLayer && layerName != null && layerName.includes(',') ? t('layermanager-EDR-multiparam') : layerName;
2454
2465
  return jsx(CustomAccordion, {
2455
2466
  className: "medium-layermanager",
2456
2467
  defaultExpanded: false,
@@ -2473,7 +2484,7 @@ var Accordion = function Accordion(_ref0) {
2473
2484
  display: 'flex',
2474
2485
  alignItems: 'center'
2475
2486
  },
2476
- children: layerName
2487
+ children: displayLayerName
2477
2488
  })]
2478
2489
  }),
2479
2490
  children: jsxs(Grid, {
@@ -2785,6 +2796,128 @@ var RenderStylesConnect = function RenderStylesConnect(_ref) {
2785
2796
  });
2786
2797
  };
2787
2798
 
2799
+ var getRenderEDRLayersValues = function getRenderEDRLayersValues(selectedParams, layers) {
2800
+ var paramArray = selectedParams.reduce(function (obj, param) {
2801
+ var serviceLayer = layers.find(function (layer) {
2802
+ return layer.name === param;
2803
+ });
2804
+ if (!serviceLayer) {
2805
+ return {
2806
+ notFound: obj.notFound.concat([param]),
2807
+ found: [].concat(obj.found)
2808
+ };
2809
+ }
2810
+ return {
2811
+ found: obj.found.concat([param]),
2812
+ notFound: [].concat(obj.notFound)
2813
+ };
2814
+ }, {
2815
+ found: [],
2816
+ notFound: []
2817
+ });
2818
+ if (paramArray.notFound.length > 0) {
2819
+ return {
2820
+ currentValues: [].concat(paramArray.found, [paramArray.notFound.join(',')]),
2821
+ extendedLayers: [].concat(layers, [{
2822
+ name: paramArray.notFound.join(','),
2823
+ title: paramArray.notFound.join(','),
2824
+ leaf: true,
2825
+ path: []
2826
+ }])
2827
+ };
2828
+ }
2829
+ return {
2830
+ currentValues: selectedParams,
2831
+ extendedLayers: layers
2832
+ };
2833
+ };
2834
+ var RenderEDRLayers = function RenderEDRLayers(_ref) {
2835
+ var onChangeLayerName = _ref.onChangeLayerName,
2836
+ selectedParams = _ref.selectedParams,
2837
+ _ref$layers = _ref.layers,
2838
+ layers = _ref$layers === void 0 ? [] : _ref$layers,
2839
+ _ref$isEnabled = _ref.isEnabled,
2840
+ isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,
2841
+ tooltipPrefix = _ref.tooltipPrefix,
2842
+ skipLocalStyling = _ref.skipLocalStyling;
2843
+ var _useCoreTranslation = useCoreTranslation(),
2844
+ t = _useCoreTranslation.t;
2845
+ var nonEmptyTooltipPrefix = tooltipPrefix != null ? tooltipPrefix : selectedParams.length === 1 ? t('layermanager-layer') + ": " : t('layermanager-layer-multi') + ": ";
2846
+ if (!layers || !layers.length) {
2847
+ return showNoLayers(t);
2848
+ }
2849
+ var selectLayer = function selectLayer(event) {
2850
+ event.stopPropagation();
2851
+ // Ensure after deselecting all, the empty value gets removed
2852
+ var params = event.target.value.filter(function (param) {
2853
+ return param !== '';
2854
+ });
2855
+ onChangeLayerName(params.join(','));
2856
+ };
2857
+ var _getRenderEDRLayersVa = getRenderEDRLayersValues(selectedParams, layers),
2858
+ currentValues = _getRenderEDRLayersVa.currentValues,
2859
+ extendedLayers = _getRenderEDRLayersVa.extendedLayers;
2860
+ var list = extendedLayers.map(function (layer) {
2861
+ return {
2862
+ value: layer.name
2863
+ };
2864
+ });
2865
+ var multiParamText = t('layermanager-EDR-multiparam');
2866
+ var tooltipNames = currentValues.map(function (value) {
2867
+ var layer = extendedLayers.find(function (layer) {
2868
+ return value === layer.name;
2869
+ });
2870
+ return (layer == null ? void 0 : layer.title) || (layer == null ? void 0 : layer.name);
2871
+ });
2872
+ var tooltip = nonEmptyTooltipPrefix + " " + tooltipNames.sort(function (paramA, paramB) {
2873
+ return (paramA != null ? paramA : '').localeCompare(paramB != null ? paramB : '');
2874
+ }).join(', ');
2875
+ return jsxs(TooltipSelect, {
2876
+ disableUnderline: true,
2877
+ tooltip: tooltip,
2878
+ inputProps: {
2879
+ SelectDisplayProps: {
2880
+ 'data-testid': 'selectEDRLayer'
2881
+ }
2882
+ },
2883
+ isEnabled: isEnabled,
2884
+ value: currentValues,
2885
+ list: list,
2886
+ onChange: selectLayer,
2887
+ skipLocalStyling: skipLocalStyling,
2888
+ multiple: true,
2889
+ renderValue: function renderValue(values) {
2890
+ if (values.length === 1) {
2891
+ var layer = extendedLayers.find(function (layer) {
2892
+ return layer.name === currentValues[0];
2893
+ });
2894
+ return (layer == null ? void 0 : layer.title) || (layer == null ? void 0 : layer.name) || 'Param';
2895
+ }
2896
+ return multiParamText;
2897
+ },
2898
+ children: [jsx(MenuItem, {
2899
+ disabled: true,
2900
+ children: t('layermanager-layer')
2901
+ }), extendedLayers.map(function (layerFromServiceLayers, currentIndex) {
2902
+ return jsxs(MenuItem, {
2903
+ value: layerFromServiceLayers.name,
2904
+ disabled: !layerFromServiceLayers.leaf,
2905
+ sx: {
2906
+ '&.MuiMenuItem-root.Mui-selected': {
2907
+ background: 'none',
2908
+ color: 'geowebColors.typographyAndIcons.text'
2909
+ }
2910
+ },
2911
+ children: [jsx(Checkbox, {
2912
+ checked: currentValues.includes(layerFromServiceLayers.name)
2913
+ }), layerFromServiceLayers.title, currentIndex === layers.length && jsx(AlertIcon, {
2914
+ severity: "error"
2915
+ })]
2916
+ }, layerFromServiceLayers.name);
2917
+ })]
2918
+ });
2919
+ };
2920
+
2788
2921
  var RenderLayersConnect = function RenderLayersConnect(_ref) {
2789
2922
  var layerId = _ref.layerId,
2790
2923
  mapId = _ref.mapId,
@@ -2794,6 +2927,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
2794
2927
  var layerName = useSelector(function (store) {
2795
2928
  return layerSelectors.getLayerName(store, layerId);
2796
2929
  });
2930
+ var layerType = useSelector(function (store) {
2931
+ return layerSelectors.getLayerType(store, layerId);
2932
+ });
2797
2933
  var layerService = useSelector(function (store) {
2798
2934
  return layerSelectors.getLayerService(store, layerId);
2799
2935
  });
@@ -2861,6 +2997,22 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
2861
2997
  origin: layerTypes.LayerActionOrigin.layerManager
2862
2998
  }));
2863
2999
  }, [dispatch, mapId]);
3000
+ if (layerType === LayerType.edrLayer) {
3001
+ var selectedParams = layerName.split(',');
3002
+ return jsx(RenderEDRLayers, {
3003
+ layers: layers,
3004
+ selectedParams: selectedParams,
3005
+ onChangeLayerName: function onChangeLayerName(name) {
3006
+ layerChangeName({
3007
+ layerId: layerId,
3008
+ name: name
3009
+ });
3010
+ },
3011
+ isEnabled: isLayerEnabled,
3012
+ tooltipPrefix: tooltipPrefix,
3013
+ skipLocalStyling: skipLocalStyling
3014
+ });
3015
+ }
2864
3016
  return jsx(RenderLayers, {
2865
3017
  layers: layers,
2866
3018
  layerName: layerName,
@@ -3154,11 +3306,14 @@ var MissingDataConnect = function MissingDataConnect(_ref) {
3154
3306
  var layerName = useSelector(function (store) {
3155
3307
  return layerSelectors.getLayerName(store, layerId);
3156
3308
  });
3309
+ var layerType = useSelector(function (store) {
3310
+ return layerSelectors.getLayerType(store, layerId);
3311
+ });
3157
3312
  var layerService = useSelector(function (store) {
3158
3313
  return layerSelectors.getLayerService(store, layerId);
3159
3314
  });
3160
3315
  var serviceLayer = useSelector(function (store) {
3161
- return serviceSelectors.getLayerFromService(store, layerService, layerName);
3316
+ return serviceSelectors.getLayerFromService(store, layerService, layerName, layerType === LayerType.edrLayer);
3162
3317
  });
3163
3318
  var layerStatus = useSelector(function (store) {
3164
3319
  return layerSelectors.getLayerStatus(store, layerId);
@@ -3290,11 +3445,15 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
3290
3445
  var layerName = useSelector(function (store) {
3291
3446
  return layerSelectors.getLayerName(store, layerId);
3292
3447
  });
3448
+ var layerType = useSelector(function (store) {
3449
+ return layerSelectors.getLayerType(store, layerId);
3450
+ });
3451
+ var isEDRLayer = layerType === LayerType.edrLayer;
3293
3452
  var layerServiceUrl = useSelector(function (store) {
3294
3453
  return layerSelectors.getLayerService(store, layerId);
3295
3454
  });
3296
3455
  var serviceLayer = useSelector(function (store) {
3297
- return serviceSelectors.getLayerFromService(store, layerServiceUrl, layerName);
3456
+ return serviceSelectors.getLayerFromService(store, layerServiceUrl, layerName, isEDRLayer);
3298
3457
  });
3299
3458
  var layerStatus = useSelector(function (store) {
3300
3459
  return layerSelectors.getLayerStatus(store, layerId);
@@ -3308,7 +3467,10 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
3308
3467
  var currentService = useSelector(function (store) {
3309
3468
  return serviceSelectors.getServiceByUrl(store, layerServiceUrl);
3310
3469
  });
3311
- var fullLayerName = serviceLayer == null ? void 0 : serviceLayer.title;
3470
+ // Ensure that for an EDR layer, we send over the entire layerName if there are multiple params selected
3471
+ // If only one param selected, send over the title from the service
3472
+ var layerNameForEDRLayer = layerName != null && layerName.includes(',') ? layerName : serviceLayer == null ? void 0 : serviceLayer.title;
3473
+ var fullLayerName = isEDRLayer ? layerNameForEDRLayer : serviceLayer == null ? void 0 : serviceLayer.title;
3312
3474
  renderCounter.count(LayerRowConnect.name);
3313
3475
  return jsx(LayerRow, {
3314
3476
  isEnabled: isEnabled,
@@ -3316,6 +3478,7 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
3316
3478
  layerId: layerId,
3317
3479
  isLayerMissing: !serviceLayer || layerStatus === layerTypes.LayerStatus.error,
3318
3480
  layerName: fullLayerName || layerName,
3481
+ isEDRLayer: isEDRLayer,
3319
3482
  layerEnableLayout: jsx(EnableLayerConnect, {
3320
3483
  layerId: layerId,
3321
3484
  mapId: mapId,
@@ -4802,7 +4965,8 @@ var OverlayersSelectConnect = function OverlayersSelectConnect(_ref) {
4802
4965
  var changeOverlayer = React__default.useCallback(function (mapId, selectedOverlayer) {
4803
4966
  dispatch(mapActions.changeOverlayer({
4804
4967
  mapId: mapId || '',
4805
- selectedOverlayer: selectedOverlayer.id
4968
+ selectedOverlayer: selectedOverlayer.id,
4969
+ origin: 'map'
4806
4970
  }));
4807
4971
  }, [dispatch]);
4808
4972
  return jsx(OverlayersSelect, {
@@ -5219,6 +5383,9 @@ var DimensionSelectSliderConnect = function DimensionSelectSliderConnect(_ref) {
5219
5383
  var layerDimension = useSelector(function (store) {
5220
5384
  return layerSelectors.getLayerDimension(store, layerId, dimensionName);
5221
5385
  });
5386
+ var layerName = useSelector(function (store) {
5387
+ return layerSelectors.getLayerName(store, layerId);
5388
+ });
5222
5389
  var _useLayerDimensions = useLayerDimensions(layerId, mapId),
5223
5390
  isLayerEnabled = _useLayerDimensions.isLayerEnabled;
5224
5391
  if (!layerDimension || !isLayerEnabled) {
@@ -5229,7 +5396,8 @@ var DimensionSelectSliderConnect = function DimensionSelectSliderConnect(_ref) {
5229
5396
  dimensionName: dimensionName,
5230
5397
  handleDimensionValueChanged: handleDimensionValueChanged,
5231
5398
  handleSyncChanged: handleSyncChanged,
5232
- layerDimension: layerDimension
5399
+ layerDimension: layerDimension,
5400
+ layerName: layerName
5233
5401
  });
5234
5402
  };
5235
5403
 
@@ -7448,35 +7616,28 @@ var makePrefetchTimeSpan = function makePrefetchTimeSpan(timeSliderStartCenterEn
7448
7616
  };
7449
7617
  var makeLayerInfoPayload = function makeLayerInfoPayload(payload, mapDimensions, mapId) {
7450
7618
  // During intialization, try to base the layer dimension on the current map dimension value.
7619
+ var origin = 'onInitializeLayer in OlMapViewLayerConnect';
7620
+ var dimensions = (payload.dimensions || []).map(function (layerDim) {
7621
+ var _find;
7622
+ var currentMapDim = ((_find = (mapDimensions || []).find(function (mapDim) {
7623
+ return mapDim.name === layerDim.name;
7624
+ })) == null ? void 0 : _find.currentValue) || layerDim.currentValue;
7625
+ var wmDim = new WMJSDimension(layerDim);
7626
+ return Object.assign({}, layerDim, {
7627
+ currentValue: wmDim.getClosestValue(currentMapDim, true)
7628
+ });
7629
+ });
7451
7630
  var updatedPayLoad = {
7452
- origin: 'onInitializeLayer in OlMapViewLayerConnect',
7631
+ origin: origin,
7453
7632
  layerDimensions: {
7454
7633
  layerId: payload.layerId,
7455
- origin: 'onInitializeLayer in OlMapViewLayerConnect',
7456
- dimensions: (payload.dimensions || []).map(function (layerDim) {
7457
- var _find;
7458
- var currentMapDim = ((_find = (mapDimensions || []).find(function (mapDim) {
7459
- return mapDim.name === layerDim.name;
7460
- })) == null ? void 0 : _find.currentValue) || layerDim.currentValue;
7461
- var wmDim = new WMJSDimension(layerDim);
7462
- return Object.assign({}, layerDim, {
7463
- currentValue: wmDim.getClosestValue(currentMapDim)
7464
- });
7465
- })
7634
+ origin: origin,
7635
+ dimensions: dimensions
7466
7636
  },
7467
7637
  mapDimensions: {
7468
7638
  mapId: mapId,
7469
- origin: 'onInitializeLayer in OlMapViewLayerConnect',
7470
- dimensions: (payload.dimensions || []).map(function (layerDim) {
7471
- var _find2;
7472
- var currentMapDim = ((_find2 = (mapDimensions || []).find(function (mapDim) {
7473
- return mapDim.name === layerDim.name;
7474
- })) == null ? void 0 : _find2.currentValue) || layerDim.currentValue;
7475
- var wmDim = new WMJSDimension(layerDim);
7476
- return Object.assign({}, layerDim, {
7477
- currentValue: wmDim.getClosestValue(currentMapDim)
7478
- });
7479
- })
7639
+ origin: origin,
7640
+ dimensions: dimensions
7480
7641
  }
7481
7642
  };
7482
7643
  return updatedPayLoad;
@@ -7670,7 +7831,9 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7670
7831
  initialBbox = _ref.initialBbox,
7671
7832
  holdShiftToScroll = _ref.holdShiftToScroll,
7672
7833
  source = _ref.source,
7673
- tileServerSettings = _ref.tileServerSettings;
7834
+ tileServerSettings = _ref.tileServerSettings,
7835
+ _ref$featureStyle = _ref.featureStyle,
7836
+ featureStyle = _ref$featureStyle === void 0 ? genericOpenLayersFeatureStyle : _ref$featureStyle;
7674
7837
  var store = useStore();
7675
7838
  var _useGetOpenLayersView = useGetOpenLayersView(mapId, store),
7676
7839
  view = _useGetOpenLayersView.view;
@@ -8072,13 +8235,13 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
8072
8235
  layerId: layer == null ? void 0 : layer.id,
8073
8236
  layer: layer,
8074
8237
  zIndex: featureLayers.length - zIndex + 3000,
8075
- style: genericOpenLayersFeatureStyle,
8238
+ style: featureStyle,
8076
8239
  hoverSelect: {
8077
8240
  active: true
8078
8241
  }
8079
8242
  }, "featurelayer-" + (layer == null ? void 0 : layer.id));
8080
8243
  }), jsx(OpenLayersFeatureLayer, {
8081
- style: genericOpenLayersFeatureStyle,
8244
+ style: featureStyle,
8082
8245
  featureCollection: combinedLinkedFeatures,
8083
8246
  zIndex: 4000,
8084
8247
  hoverSelect: hoverSelect
@@ -8131,7 +8294,7 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
8131
8294
  });
8132
8295
  };
8133
8296
 
8134
- var _excluded = ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "shouldAutoFetch", "initialBbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "displayDataExplorerButtonOnMap", "mapControls", "children", "shouldDisablePrefetching", "tileServerSettings"];
8297
+ var _excluded = ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "shouldAutoFetch", "initialBbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "displayDataExplorerButtonOnMap", "mapControls", "children", "shouldDisablePrefetching", "tileServerSettings", "featureStyle"];
8135
8298
  var titleStyle = function titleStyle(theme) {
8136
8299
  return {
8137
8300
  position: 'absolute',
@@ -8202,6 +8365,8 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_ref) {
8202
8365
  children = _ref.children,
8203
8366
  shouldDisablePrefetching = _ref.shouldDisablePrefetching,
8204
8367
  tileServerSettings = _ref.tileServerSettings,
8368
+ _ref$featureStyle = _ref.featureStyle,
8369
+ featureStyle = _ref$featureStyle === void 0 ? genericOpenLayersFeatureStyle : _ref$featureStyle,
8205
8370
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
8206
8371
  var dispatch = useDispatch();
8207
8372
  var mapId = React__default.useRef(id || webmapUtils.generateMapId()).current;
@@ -8334,12 +8499,13 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_ref) {
8334
8499
  initialBbox: initialBbox,
8335
8500
  shouldDisablePrefetching: shouldDisablePrefetching,
8336
8501
  tileServerSettings: tileServerSettings,
8502
+ featureStyle: featureStyle,
8337
8503
  children: children
8338
8504
  }), showClock && jsx(TimeSliderClockConnect, {
8339
8505
  mapId: mapId
8340
8506
  })]
8341
8507
  });
8342
- }, [mapId, title, id, initialBbox, mapControlConfig, tileServerSettings, disableTimeSlider, displayTimeInMap, shouldAutoFetch, shouldDisablePrefetching, children, showClock]);
8508
+ }, [mapId, title, id, initialBbox, mapControlConfig, tileServerSettings, disableTimeSlider, displayTimeInMap, shouldAutoFetch, shouldDisablePrefetching, children, showClock, featureStyle]);
8343
8509
  };
8344
8510
 
8345
8511
  var mapBoxStyle = function mapBoxStyle(theme) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "12.12.0",
3
+ "version": "12.13.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,22 +8,22 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/shared": "12.12.0",
11
+ "@opengeoweb/shared": "12.13.0",
12
12
  "react-redux": "^9.2.0",
13
- "@opengeoweb/store": "12.12.0",
14
- "@opengeoweb/timeslider": "12.12.0",
13
+ "@opengeoweb/store": "12.13.0",
14
+ "@opengeoweb/timeslider": "12.13.0",
15
15
  "@reduxjs/toolkit": "^2.6.1",
16
- "@opengeoweb/webmap-react": "12.12.0",
17
- "@opengeoweb/webmap": "12.12.0",
18
- "@opengeoweb/theme": "12.12.0",
16
+ "@opengeoweb/webmap-react": "12.13.0",
17
+ "@opengeoweb/webmap": "12.13.0",
18
+ "@opengeoweb/theme": "12.13.0",
19
19
  "axios": "^1.7.7",
20
- "@opengeoweb/layer-select": "12.12.0",
20
+ "@opengeoweb/layer-select": "12.13.0",
21
21
  "lodash": "^4.17.21",
22
22
  "ol": "^10.4.0",
23
23
  "react-sortablejs": "^6.1.4",
24
24
  "sortablejs": "^1.15.1",
25
- "@mui/system": "^7.0.1",
26
- "@opengeoweb/snackbar": "12.12.0",
25
+ "@mui/system": "^7.3.1",
26
+ "@opengeoweb/snackbar": "12.13.0",
27
27
  "react-router-dom": "^6.21.0",
28
28
  "react-draggable": "^4.4.6",
29
29
  "i18next": "^25.0.1",
@@ -32,7 +32,7 @@
32
32
  "@mui/material": "^7.0.1",
33
33
  "@sentry/react": "^8.34.0",
34
34
  "@tanstack/react-query": "^5.69.2",
35
- "@opengeoweb/api": "12.12.0",
35
+ "@opengeoweb/api": "12.13.0",
36
36
  "@types/geojson": "^7946.0.14"
37
37
  },
38
38
  "peerDependencies": {
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { mapTypes, layerTypes } from '@opengeoweb/store';
3
3
  import { TileServerSettings } from '@opengeoweb/webmap';
4
+ import { StyleLike } from 'ol/style/Style';
4
5
  export declare const defaultBbox: {
5
6
  srs: "EPSG:3857";
6
7
  bbox: {
@@ -44,5 +45,6 @@ export interface ConfigurableMapConnectProps {
44
45
  children?: React.ReactNode;
45
46
  mapControls?: React.ReactNode;
46
47
  shouldDisablePrefetching?: boolean;
48
+ featureStyle?: StyleLike;
47
49
  }
48
50
  export declare const ConfigurableMapConnect: React.FC<ConfigurableMapConnectProps>;
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ import { TimeAwareEDRLocationLayer } from '@opengeoweb/webmap-react';
3
+ import type { Meta } from '@storybook/react-webpack5';
4
+ declare const meta: Meta<typeof TimeAwareEDRLocationLayer>;
5
+ export default meta;
6
+ export declare const EDRLayerMultiParam: {
7
+ (): React.ReactElement;
8
+ parameters: {
9
+ msw: {
10
+ handlers: {
11
+ locations: import("msw").HttpHandler[];
12
+ };
13
+ };
14
+ };
15
+ };
@@ -6,6 +6,7 @@ interface LayerRowUnstyledProps {
6
6
  layer?: layerTypes.Layer;
7
7
  layerName?: string;
8
8
  mapId: string;
9
+ isEDRLayer?: boolean;
9
10
  onLayerRowClick?: (layerId?: string) => void;
10
11
  onLayerEnable?: (payload: {
11
12
  layerId: string;
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { LayerProps } from '@opengeoweb/webmap';
3
+ export interface RenderEDRLayersProps {
4
+ onChangeLayerName: (name: string) => void;
5
+ selectedParams: string[];
6
+ layers: LayerProps[];
7
+ isEnabled?: boolean;
8
+ tooltipPrefix?: string;
9
+ skipLocalStyling?: boolean;
10
+ }
11
+ export declare const getRenderEDRLayersValues: (selectedParams: string[], layers: LayerProps[]) => {
12
+ currentValues: string[];
13
+ extendedLayers: LayerProps[];
14
+ };
15
+ declare const RenderEDRLayers: React.FC<RenderEDRLayersProps>;
16
+ export default RenderEDRLayers;
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { LayerProps } from '@opengeoweb/webmap';
3
+ import { i18n, TFunction } from 'i18next';
4
+ export declare const showNoLayers: (t: TFunction<"core", i18n>) => React.ReactElement;
3
5
  export interface RenderLayersProps {
4
6
  onChangeLayerName: (name: string) => void;
5
7
  layerName: string;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.FC<import("./OlMapViewConnect").OlMapViewConnectProps>;
5
+ tags: string[];
6
+ };
7
+ export default _default;
8
+ export declare const ToggleStyleAction: () => React.ReactElement;
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Bbox, TileServerSettings } from '@opengeoweb/webmap';
3
3
  import { Source } from '@opengeoweb/shared';
4
+ import { StyleLike } from 'ol/style/Style';
4
5
  export interface MapControlsProps {
5
6
  mapControlsPositionTop?: number;
6
7
  search?: boolean;
@@ -24,6 +25,7 @@ export interface OlMapViewConnectProps {
24
25
  shouldDisablePrefetching?: boolean;
25
26
  tileServerSettings?: TileServerSettings;
26
27
  source?: Source;
28
+ featureStyle?: StyleLike;
27
29
  }
28
30
  /**
29
31
  * Connected component used to display the map and selected layers.