@opengeoweb/store 12.11.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
@@ -663,15 +663,25 @@ var getLayersFromServiceSelector = createSelector(getServiceByUrl, function (ser
663
663
  /**
664
664
  * Gets the layer from the store using the serviceUrl and layerName
665
665
  *
666
- * Example: layer = getLayerFromService(store, 'https://geoservices.knmi.nl/...', 'radar')
666
+ * Example: layer = getLayerFromService(store, 'https://geoservices.knmi.nl/...', 'radar', true)
667
667
  * @param {object} store store: object - The application store
668
668
  * @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
669
669
  * @param {string} layerName layerName: string - Name of the layer in the service
670
+ * @param {boolean} isEDRService isEDRService: boolean - if service is EDR (optional, default to false)
670
671
  * @returns {ServiceLayer} returnType: ServiceLayer - The layer from the service object.
671
672
  */
672
673
  var getLayerFromService = createSelector(getLayersFromServiceSelector, function (_store, _serviceUrl, layerName) {
673
674
  return layerName;
674
- }, function (layers, layerName) {
675
+ }, function (_store, _serviceUrl, _layerName) {
676
+ var isEDRService = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
677
+ return isEDRService;
678
+ }, function (layers, layerName, isEDRService) {
679
+ if (isEDRService) {
680
+ var firstParam = layerName.split(',')[0];
681
+ return layers.find(function (serviceLayer) {
682
+ return serviceLayer.name === firstParam;
683
+ });
684
+ }
675
685
  return layers.find(function (serviceLayer) {
676
686
  return serviceLayer.name === layerName;
677
687
  });
@@ -1393,6 +1403,7 @@ var LayerActionOrigin;
1393
1403
  LayerActionOrigin["updateLayerInformationListener"] = "updateLayerInformationListener";
1394
1404
  LayerActionOrigin["toggleAutoUpdateListener"] = "toggleAutoUpdateListener";
1395
1405
  LayerActionOrigin["unregisterMapListener"] = "unregisterMapListener";
1406
+ LayerActionOrigin["dataExplorer"] = "dataExplorer";
1396
1407
  })(LayerActionOrigin || (LayerActionOrigin = {}));
1397
1408
 
1398
1409
  var types$3 = /*#__PURE__*/Object.freeze({
@@ -1556,8 +1567,8 @@ var updateMinMaxValueWhenReferenceTimeChanges = function updateMinMaxValueWhenRe
1556
1567
  if (wmLayer && wmLayer.dimensions.length >= 2) {
1557
1568
  var referenceTimeDimension = wmLayer.getDimension('reference_time');
1558
1569
  var timeDimension = wmLayer.getDimension('time');
1559
- var reduxTimeDim = draftLayer.dimensions.find(function (d) {
1560
- return d.name === 'time';
1570
+ var reduxTimeDim = draftLayer.dimensions.find(function (dimension) {
1571
+ return dimension.name === 'time';
1561
1572
  });
1562
1573
  if (reduxTimeDim && timeDimension && referenceTimeDimension) {
1563
1574
  // When the reference time changes, a new set of timevalues needs to be set in the layer.
@@ -1944,6 +1955,7 @@ var slice$6 = createSlice({
1944
1955
  return dim.name === newLayerDimension.name;
1945
1956
  });
1946
1957
  if (existingDimension) {
1958
+ var _newLayerDimension$va;
1947
1959
  if (existingDimension.name === 'reference_time' && reduxLayer.useLatestReferenceTime && newLayerDimension.maxValue) {
1948
1960
  existingDimension.currentValue = newLayerDimension.maxValue;
1949
1961
  }
@@ -1954,6 +1966,11 @@ var slice$6 = createSlice({
1954
1966
  if (!existingDimension.units) {
1955
1967
  existingDimension.units = newLayerDimension.units;
1956
1968
  }
1969
+ /* For non time dimensions also update the current value, but only if the currentValue does not exist in the new dimension values */
1970
+ var listOfValues = (_newLayerDimension$va = newLayerDimension.values) === null || _newLayerDimension$va === void 0 ? void 0 : _newLayerDimension$va.split(',');
1971
+ if (existingDimension.name !== 'time' && existingDimension.name !== 'reference_time' && !(listOfValues !== null && listOfValues !== void 0 && listOfValues.includes(existingDimension.currentValue))) {
1972
+ existingDimension.currentValue = newLayerDimension.currentValue;
1973
+ }
1957
1974
  } else if (layerId === layerDimensions.layerId) {
1958
1975
  /* Otherwise add a new one, but only for this layer. */
1959
1976
  reduxDimensions.push(_objectSpread2({}, newLayerDimension));
@@ -2671,14 +2688,23 @@ var slice$4 = createSlice({
2671
2688
  action) {},
2672
2689
  setDefaultMapSettings: function setDefaultMapSettings(draft, action) {
2673
2690
  draft.defaultMapSettings = action.payload.preset;
2691
+ },
2692
+ changeOverlayer: function changeOverlayer(draft, action) {
2693
+ var _action$payload26 = action.payload,
2694
+ mapId = _action$payload26.mapId,
2695
+ selectedOverlayer = _action$payload26.selectedOverlayer;
2696
+ if (!draft.byId[mapId]) {
2697
+ return;
2698
+ }
2699
+ draft.byId[mapId].overLayers = [selectedOverlayer];
2674
2700
  }
2675
2701
  },
2676
2702
  extraReducers: function extraReducers(builder) {
2677
2703
  builder.addCase(layerActions.addLayer, function (draft, action) {
2678
- var _action$payload26 = action.payload,
2679
- layerId = _action$payload26.layerId,
2680
- mapId = _action$payload26.mapId,
2681
- layer = _action$payload26.layer;
2704
+ var _action$payload27 = action.payload,
2705
+ layerId = _action$payload27.layerId,
2706
+ mapId = _action$payload27.mapId,
2707
+ layer = _action$payload27.layer;
2682
2708
  if (!draft.byId[mapId]) {
2683
2709
  return;
2684
2710
  }
@@ -2697,9 +2723,9 @@ var slice$4 = createSlice({
2697
2723
  draft.byId[mapId].mapLayers.unshift(layerId);
2698
2724
  }
2699
2725
  }).addCase(layerActions.duplicateMapLayer, function (draft, action) {
2700
- var _action$payload27 = action.payload,
2701
- newLayerId = _action$payload27.newLayerId,
2702
- mapId = _action$payload27.mapId;
2726
+ var _action$payload28 = action.payload,
2727
+ newLayerId = _action$payload28.newLayerId,
2728
+ mapId = _action$payload28.mapId;
2703
2729
  if (!draft.byId[mapId]) {
2704
2730
  return;
2705
2731
  }
@@ -2709,10 +2735,10 @@ var slice$4 = createSlice({
2709
2735
  }
2710
2736
  draft.byId[mapId].mapLayers.unshift(newLayerId);
2711
2737
  }).addCase(layerActions.addBaseLayer, function (draft, action) {
2712
- var _action$payload28 = action.payload,
2713
- layer = _action$payload28.layer,
2714
- layerId = _action$payload28.layerId,
2715
- mapId = _action$payload28.mapId;
2738
+ var _action$payload29 = action.payload,
2739
+ layer = _action$payload29.layer,
2740
+ layerId = _action$payload29.layerId,
2741
+ mapId = _action$payload29.mapId;
2716
2742
  if (!draft.byId[mapId]) {
2717
2743
  return;
2718
2744
  }
@@ -2742,9 +2768,9 @@ var slice$4 = createSlice({
2742
2768
  draft.byId[mapId].autoTimeStepLayerId = activeLayerId;
2743
2769
  }
2744
2770
  }).addCase(layerActions.setBaseLayers, function (draft, action) {
2745
- var _action$payload29 = action.payload,
2746
- layers = _action$payload29.layers,
2747
- mapId = _action$payload29.mapId;
2771
+ var _action$payload30 = action.payload,
2772
+ layers = _action$payload30.layers,
2773
+ mapId = _action$payload30.mapId;
2748
2774
  // Split into base and overlayers
2749
2775
  var baseLayers = [];
2750
2776
  var overLayers = [];
@@ -2774,9 +2800,9 @@ var slice$4 = createSlice({
2774
2800
  }
2775
2801
  }
2776
2802
  }).addCase(layerActions.layerDelete, function (draft, action) {
2777
- var _action$payload30 = action.payload,
2778
- mapId = _action$payload30.mapId,
2779
- layerId = _action$payload30.layerId;
2803
+ var _action$payload31 = action.payload,
2804
+ mapId = _action$payload31.mapId,
2805
+ layerId = _action$payload31.layerId;
2780
2806
  var map = draft.byId[mapId];
2781
2807
  if (!map) {
2782
2808
  return;
@@ -2802,9 +2828,9 @@ var slice$4 = createSlice({
2802
2828
  return id !== layerId;
2803
2829
  });
2804
2830
  }).addCase(layerActions.baseLayerDelete, function (draft, action) {
2805
- var _action$payload31 = action.payload,
2806
- mapId = _action$payload31.mapId,
2807
- layerId = _action$payload31.layerId;
2831
+ var _action$payload32 = action.payload,
2832
+ mapId = _action$payload32.mapId,
2833
+ layerId = _action$payload32.layerId;
2808
2834
  if (!draft.byId[mapId]) {
2809
2835
  return;
2810
2836
  }
@@ -2815,14 +2841,14 @@ var slice$4 = createSlice({
2815
2841
  return id !== layerId;
2816
2842
  });
2817
2843
  }).addCase(layerActions.layerChangeDimension, function (draft, action) {
2818
- var _action$payload32 = action.payload,
2819
- layerId = _action$payload32.layerId,
2820
- dimension = _action$payload32.dimension;
2844
+ var _action$payload33 = action.payload,
2845
+ layerId = _action$payload33.layerId,
2846
+ dimension = _action$payload33.dimension;
2821
2847
  produceDraftStateSetMapDimensionFromLayerChangeDimension(draft, layerId, dimension);
2822
2848
  }).addCase(setTimeSync, function (draft, action) {
2823
- var _action$payload33 = action.payload,
2824
- targetsFromAction = _action$payload33.targets,
2825
- source = _action$payload33.source;
2849
+ var _action$payload34 = action.payload,
2850
+ targetsFromAction = _action$payload34.targets,
2851
+ source = _action$payload34.source;
2826
2852
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
2827
2853
  var targets = [];
2828
2854
  if (source) {
@@ -2846,9 +2872,9 @@ var slice$4 = createSlice({
2846
2872
  }
2847
2873
  });
2848
2874
  }).addCase(setBboxSync, function (draft, action) {
2849
- var _action$payload34 = action.payload,
2850
- targetsFromAction = _action$payload34.targets,
2851
- source = _action$payload34.source;
2875
+ var _action$payload35 = action.payload,
2876
+ targetsFromAction = _action$payload35.targets,
2877
+ source = _action$payload35.source;
2852
2878
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
2853
2879
  var targets = [];
2854
2880
  if (source) {
@@ -2880,9 +2906,9 @@ var slice$4 = createSlice({
2880
2906
  * These targets can be used as payloads in new Layer actions.
2881
2907
  * These actions are here handled via the layer reducer, as it is the same logic
2882
2908
  */
2883
- var _action$payload35 = action.payload,
2884
- targets = _action$payload35.targets,
2885
- source = _action$payload35.source;
2909
+ var _action$payload36 = action.payload,
2910
+ targets = _action$payload36.targets,
2911
+ source = _action$payload36.source;
2886
2912
  return targets.reduce(function (prevState, target) {
2887
2913
  var actionType = (source === null || source === void 0 ? void 0 : source.type) || 'GENERIC_SYNC_SETLAYERACTIONS';
2888
2914
  var action = {
@@ -2904,9 +2930,9 @@ var slice$4 = createSlice({
2904
2930
  });
2905
2931
  return draft;
2906
2932
  }).addCase(mapChangeDimension, function (draft, action) {
2907
- var _action$payload36 = action.payload,
2908
- mapId = _action$payload36.mapId,
2909
- dimensionFromAction = _action$payload36.dimension;
2933
+ var _action$payload37 = action.payload,
2934
+ mapId = _action$payload37.mapId,
2935
+ dimensionFromAction = _action$payload37.dimension;
2910
2936
  produceDraftStateSetWebMapDimension(draft, mapId, dimensionFromAction, true);
2911
2937
  }).addCase(setMapPreset, function (draft, action) {
2912
2938
  var mapId = action.payload.mapId;
@@ -2926,9 +2952,9 @@ var slice$4 = createSlice({
2926
2952
  draft.byId[mapId].animationDelay = defaultAnimationDelayAtStart;
2927
2953
  draft.byId[mapId].dockedLayerManagerSize = '';
2928
2954
  }).addCase(uiActions.registerDialog, function (draft, action) {
2929
- var _action$payload37 = action.payload,
2930
- mapId = _action$payload37.mapId,
2931
- type = _action$payload37.type;
2955
+ var _action$payload38 = action.payload,
2956
+ mapId = _action$payload38.mapId,
2957
+ type = _action$payload38.type;
2932
2958
  if (!draft.byId[mapId]) {
2933
2959
  return;
2934
2960
  }
@@ -3362,6 +3388,31 @@ var getTimeStepForLayerId = createSelector(getLayerTimeDimension, function (time
3362
3388
  var getActiveLayerInfo = createSelector(layerStore, function (store) {
3363
3389
  return store === null || store === void 0 ? void 0 : store.activeLayerInfo;
3364
3390
  });
3391
+ var getLayerType = createSelector(getLayerById, function (layer) {
3392
+ var _layer$layerType;
3393
+ return (_layer$layerType = layer === null || layer === void 0 ? void 0 : layer.layerType) !== null && _layer$layerType !== void 0 ? _layer$layerType : 'mapLayer';
3394
+ }, selectorMemoizationOptions);
3395
+ /**
3396
+ * Gets all overlayers for a given mapId
3397
+ * Example: overlayers = getOverlayersForMapId(store, 'mapId123')
3398
+ * @param {CoreAppStore} store - The Redux store from which the layers state will be extracted.
3399
+ * @param {string} mapId - The ID of the map for which to retrieve the overlayers.
3400
+ * @returns {Array<{ id: string; name: string }>} - An array of overlayers containing layer information (id and name).
3401
+ */
3402
+ var getOverlayersForMapId = createSelector([layerStore, function (_store, mapId) {
3403
+ return mapId;
3404
+ }], function (store, mapId) {
3405
+ var overLayers = [];
3406
+ (store === null || store === void 0 ? void 0 : store.byId) && Object.values(store.byId).forEach(function (layer) {
3407
+ if (layer.layerType === LayerType.overLayer && layer.mapId === mapId) {
3408
+ overLayers.push({
3409
+ id: layer.id || '',
3410
+ name: layer.name || ''
3411
+ });
3412
+ }
3413
+ });
3414
+ return overLayers;
3415
+ }, selectorMemoizationOptions);
3365
3416
 
3366
3417
  var selectors$6 = /*#__PURE__*/Object.freeze({
3367
3418
  __proto__: null,
@@ -3392,11 +3443,13 @@ var selectors$6 = /*#__PURE__*/Object.freeze({
3392
3443
  getLayerStatus: getLayerStatus,
3393
3444
  getLayerStyle: getLayerStyle,
3394
3445
  getLayerTimeDimension: getLayerTimeDimension,
3446
+ getLayerType: getLayerType,
3395
3447
  getLayers: getLayers,
3396
3448
  getLayersById: getLayersById,
3397
3449
  getLayersByMapId: getLayersByMapId,
3398
3450
  getLayersIds: getLayersIds,
3399
3451
  getOverLayers: getOverLayers,
3452
+ getOverlayersForMapId: getOverlayersForMapId,
3400
3453
  getSelectedFeatureIndex: getSelectedFeatureIndex,
3401
3454
  getTimeStepForLayerId: getTimeStepForLayerId,
3402
3455
  getUseLatestReferenceTime: getUseLatestReferenceTime
@@ -3772,18 +3825,18 @@ var constants$2 = /*#__PURE__*/Object.freeze({
3772
3825
  * @param condition Function to check each element in the array
3773
3826
  */
3774
3827
  var removeInPlace = function removeInPlace(inDraftArray, condition) {
3775
- var j = 0;
3828
+ var index = 0;
3776
3829
  inDraftArray.forEach(function (e, i) {
3777
3830
  if (!condition(e)) {
3778
- if (i !== j) {
3831
+ if (i !== index) {
3779
3832
  // eslint-disable-next-line no-param-reassign
3780
- inDraftArray[j] = e;
3833
+ inDraftArray[index] = e;
3781
3834
  }
3782
- j += 1;
3835
+ index += 1;
3783
3836
  }
3784
3837
  });
3785
3838
  // eslint-disable-next-line no-param-reassign
3786
- inDraftArray.length = j;
3839
+ inDraftArray.length = index;
3787
3840
  };
3788
3841
 
3789
3842
  var initialState$2 = {
@@ -4556,19 +4609,17 @@ var getSelectedFeature = createSelector([
4556
4609
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
4557
4610
  function (state, mapId) {
4558
4611
  var _state$linkedState;
4559
- var sharedData = (_state$linkedState = state.linkedState) === null || _state$linkedState === void 0 ? void 0 : _state$linkedState.sharedData[mapId];
4560
- var _ref = sharedData || {},
4561
- _ref$features = _ref.features,
4562
- features = _ref$features === void 0 ? [] : _ref$features,
4563
- selectedFeatureId = _ref.selectedFeatureId;
4564
- return {
4565
- features: features,
4566
- selectedFeatureId: selectedFeatureId
4567
- };
4568
- }], function (_ref2) {
4612
+ return (_state$linkedState = state.linkedState) === null || _state$linkedState === void 0 ? void 0 : _state$linkedState.sharedData[mapId];
4613
+ }], function (sharedData) {
4569
4614
  var _features$;
4570
- var features = _ref2.features,
4571
- selectedFeatureId = _ref2.selectedFeatureId;
4615
+ if (!sharedData) {
4616
+ return null;
4617
+ }
4618
+ var features = sharedData.features,
4619
+ selectedFeatureId = sharedData.selectedFeatureId;
4620
+ if (!features || !selectedFeatureId) {
4621
+ return null;
4622
+ }
4572
4623
  var selectedFeature = (_features$ = features[0]) === null || _features$ === void 0 ? void 0 : _features$.geoJSON.features.find(function (feature) {
4573
4624
  return feature.id === selectedFeatureId;
4574
4625
  });
@@ -4599,17 +4650,17 @@ function (state, mapId) {
4599
4650
  var getSelectedFeatureAsGeoJSON = createSelector([function (state, mapId) {
4600
4651
  var _state$linkedState2;
4601
4652
  var sharedData = (_state$linkedState2 = state.linkedState) === null || _state$linkedState2 === void 0 ? void 0 : _state$linkedState2.sharedData[mapId];
4602
- var _ref3 = sharedData || {},
4603
- _ref3$features = _ref3.features,
4604
- features = _ref3$features === void 0 ? [] : _ref3$features,
4605
- selectedFeatureId = _ref3.selectedFeatureId;
4653
+ var _ref = sharedData || {},
4654
+ _ref$features = _ref.features,
4655
+ features = _ref$features === void 0 ? [] : _ref$features,
4656
+ selectedFeatureId = _ref.selectedFeatureId;
4606
4657
  return {
4607
4658
  features: features,
4608
4659
  selectedFeatureId: selectedFeatureId
4609
4660
  };
4610
- }], function (_ref4) {
4611
- var features = _ref4.features,
4612
- selectedFeatureId = _ref4.selectedFeatureId;
4661
+ }], function (_ref2) {
4662
+ var features = _ref2.features,
4663
+ selectedFeatureId = _ref2.selectedFeatureId;
4613
4664
  if (features && selectedFeatureId) {
4614
4665
  var _features$2;
4615
4666
  var selectedFeature = (_features$2 = features[0]) === null || _features$2 === void 0 ? void 0 : _features$2.geoJSON.features.find(function (feature) {
@@ -5516,8 +5567,11 @@ var getLegendId = createSelector(getMapById, function (store) {
5516
5567
  * @param {string} mapId mapId: string - Id of the map
5517
5568
  * @returns {MapPreset} returnType: MapPreset
5518
5569
  */
5519
- var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLayers, getBbox, getSrs, getActiveLayerId, getAutoTimeStepLayerId, getAutoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, getDisplayMapPin, isZoomControlsVisible, getMapTimeStep, getMapAnimationDelay, getAnimationStartTime, getAnimationEndTime, getMapTimeSliderSpan, isTimestepAuto, isTimeSpanAuto, getLegendId, getUiStore, function (mapLayers, baseLayers, overLayers, bbox, srs, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, displayMapPin, isZoomControlsVisible, mapTimeStep, mapAnimationDelay, animationStartTime, animationEndTime, timeSliderSpan, isTimestepAuto, isTimeSpanAuto, legendId, uiStore) {
5520
- var _uiStore$dialogs$lege;
5570
+ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLayers, getBbox, getSrs, getActiveLayerId, getAutoTimeStepLayerId, getAutoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, getDisplayMapPin, isZoomControlsVisible, getMapTimeStep, getMapAnimationDelay, getAnimationStartTime, getAnimationEndTime, getMapTimeSliderSpan, isTimestepAuto, isTimeSpanAuto, getLegendId, getUiStore, function (_store, mapId) {
5571
+ return mapId;
5572
+ }, function (mapLayers, baseLayers, overLayers, bbox, srs, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, displayMapPin, isZoomControlsVisible, mapTimeStep, mapAnimationDelay, animationStartTime, animationEndTime, timeSliderSpan, isTimestepAuto, isTimeSpanAuto, legendId, uiStore, mapId) {
5573
+ var _overLayers$, _uiStore$dialogs$lege;
5574
+ var defaultOverlayer = arguments.length > 23 && arguments[23] !== undefined ? arguments[23] : ((_overLayers$ = overLayers[0]) === null || _overLayers$ === void 0 ? void 0 : _overLayers$.name) || 'none';
5521
5575
  var allLayers = [].concat(_toConsumableArray(baseLayers), _toConsumableArray(overLayers), _toConsumableArray(mapLayers)).map(function (_ref3) {
5522
5576
  _ref3.mapId;
5523
5577
  var layer = _objectWithoutProperties(_ref3, _excluded$2);
@@ -5538,6 +5592,8 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
5538
5592
  duration: getAnimationDuration(animationEndTime, animationStartTime)
5539
5593
  };
5540
5594
  var shouldShowLegend = legendId ? uiStore === null || uiStore === void 0 || (_uiStore$dialogs$lege = uiStore.dialogs[legendId]) === null || _uiStore$dialogs$lege === void 0 ? void 0 : _uiStore$dialogs$lege.isOpen : false;
5595
+ var dataExplorerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs[DialogTypes.DataExplorer];
5596
+ var shouldShowDataExplorer = (dataExplorerDialog === null || dataExplorerDialog === void 0 ? void 0 : dataExplorerDialog.isOpen) && (dataExplorerDialog === null || dataExplorerDialog === void 0 ? void 0 : dataExplorerDialog.activeMapId) === mapId || false;
5541
5597
  return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
5542
5598
  layers: allLayers
5543
5599
  }, activeLayerId !== undefined && {
@@ -5560,7 +5616,9 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
5560
5616
  toggleTimestepAuto: isTimestepAuto,
5561
5617
  toggleTimeSpanAuto: isTimeSpanAuto,
5562
5618
  shouldShowLegend: shouldShowLegend,
5563
- timeSliderSpan: timeSliderSpan
5619
+ timeSliderSpan: timeSliderSpan,
5620
+ shouldShowDataExplorer: shouldShowDataExplorer,
5621
+ defaultOverlayer: defaultOverlayer
5564
5622
  });
5565
5623
  }, selectorMemoizationOptions);
5566
5624
  /**
@@ -5683,6 +5741,15 @@ var getdefaultMapSettings = createSelector(getMapStore, function (state) {
5683
5741
  var getdefaultMapSettingsLayers = createSelector(getdefaultMapSettings, function (state) {
5684
5742
  return state && state.layers;
5685
5743
  }, selectorMemoizationOptions);
5744
+ /**
5745
+ * Gets the selected overlayer from webmap state
5746
+ *
5747
+ * @param {CoreAppStore} store - The Redux store from which the layers state will be extracted.
5748
+ * @returns {string | null} returnType: string | null
5749
+ */
5750
+ var getSelectedOverlayerByMapId = createSelector(getMapById, function (store) {
5751
+ return (store === null || store === void 0 ? void 0 : store.overLayers[0]) || null;
5752
+ }, selectorMemoizationOptions);
5686
5753
 
5687
5754
  var selectors$1 = /*#__PURE__*/Object.freeze({
5688
5755
  __proto__: null,
@@ -5733,6 +5800,7 @@ var selectors$1 = /*#__PURE__*/Object.freeze({
5733
5800
  getMapTimeStep: getMapTimeStep,
5734
5801
  getMapTimeStepWithoutDefault: getMapTimeStepWithoutDefault,
5735
5802
  getPinLocation: getPinLocation,
5803
+ getSelectedOverlayerByMapId: getSelectedOverlayerByMapId,
5736
5804
  getSelectedTime: getSelectedTime,
5737
5805
  getSrs: getSrs,
5738
5806
  getdefaultMapSettings: getdefaultMapSettings,
@@ -6574,27 +6642,27 @@ var isNextStepAvailable = function isNextStepAvailable(reduxLayers, nextTimeStri
6574
6642
  // Get all wmLayers for the found id's
6575
6643
  var wmLayers = reduxLayers.map(function (reduxLayer) {
6576
6644
  return reduxLayer.id && getWMLayerById(reduxLayer.id);
6577
- }).filter(function (l) {
6578
- return !!l;
6645
+ }).filter(function (layer) {
6646
+ return !!layer;
6579
6647
  });
6580
6648
  // Returns a layer which could have an image for the requested time, but which isn't loaded yet.
6581
- var isThereSomethingNotAvailable = wmLayers.map(function (l) {
6582
- var _l$getDimension;
6583
- if (!l || !l.olSource) {
6649
+ var isThereSomethingNotAvailable = wmLayers.map(function (layer) {
6650
+ var _layer$getDimension;
6651
+ if (!layer || !layer.olSource) {
6584
6652
  // No OpenLayers source, do nothing, so do not flag that something is not available
6585
6653
  return {
6586
6654
  status: true
6587
6655
  };
6588
6656
  }
6589
6657
  // Check if there is a timevalue available
6590
- var closestValue = (_l$getDimension = l.getDimension('time')) === null || _l$getDimension === void 0 ? void 0 : _l$getDimension.getClosestValue(nextTimeString);
6658
+ var closestValue = (_layer$getDimension = layer.getDimension('time')) === null || _layer$getDimension === void 0 ? void 0 : _layer$getDimension.getClosestValue(nextTimeString);
6591
6659
  if (!closestValue || WMInvalidDateValues.has(closestValue)) {
6592
6660
  // No value available, so do not flag that something is not available
6593
6661
  return {
6594
6662
  status: true
6595
6663
  };
6596
6664
  }
6597
- var olSource = l.olSource;
6665
+ var olSource = layer.olSource;
6598
6666
  var hasImageAvailableForRequestedTimeStep = olSource.hasImageForTimeValue(closestValue);
6599
6667
  // If there is no image available for requested timestep, return true and flag that this thing is not ready yet.
6600
6668
  if (hasImageAvailableForRequestedTimeStep) {
@@ -6607,8 +6675,8 @@ var isNextStepAvailable = function isNextStepAvailable(reduxLayers, nextTimeStri
6607
6675
  status: false
6608
6676
  };
6609
6677
  });
6610
- var nextStepIsAvailable = isThereSomethingNotAvailable.filter(function (d) {
6611
- return d.status === true;
6678
+ var nextStepIsAvailable = isThereSomethingNotAvailable.filter(function (step) {
6679
+ return step.status === true;
6612
6680
  }).length === wmLayers.length;
6613
6681
  return nextStepIsAvailable;
6614
6682
  };
@@ -6645,8 +6713,8 @@ var olMetronomeHandler = function olMetronomeHandler(timerIds, listenerApi) {
6645
6713
  // Collect all layers for this syncgroups target
6646
6714
  var reduxLayers = [];
6647
6715
  targets.forEach(function (target) {
6648
- reduxLayers.push.apply(reduxLayers, _toConsumableArray(getLayersByMapId(listenerApi.getState(), target.targetId).filter(function (l) {
6649
- return l.layerType === LayerType.mapLayer;
6716
+ reduxLayers.push.apply(reduxLayers, _toConsumableArray(getLayersByMapId(listenerApi.getState(), target.targetId).filter(function (layer) {
6717
+ return layer.layerType === LayerType.mapLayer;
6650
6718
  })));
6651
6719
  });
6652
6720
  var nextStep = getNextStep(timerId, animationListValues.length, 1);
@@ -6948,7 +7016,7 @@ mapListener.startListening({
6948
7016
  actionCreator: mapActions.setMapPreset,
6949
7017
  effect: function () {
6950
7018
  var _effect2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref6, listenerApi) {
6951
- var payload, mapId, initialProps, mapPreset, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, dockedLayerManagerSize, timeSliderSpan, toggleTimeSpanAuto, _filterLayers, mapLayers, baseLayers, overLayers, _newLayerIds$layers$f, _newLayerIds$layers$f2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoTimeStepLayerId, newAutoUpdateLayerId, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, checkIsprojectionSupported, animationLength, animationEndTime, shouldEndtimeOverride, interval, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, duration, _animationEnd, animationStart, shouldOpenLegend, legendId, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart;
7019
+ var payload, mapId, initialProps, mapPreset, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, shouldShowDataExplorer, dockedLayerManagerSize, timeSliderSpan, toggleTimeSpanAuto, defaultOverlayer, _filterLayers, mapLayers, baseLayers, overLayers, _newLayerIds$layers$f, _newLayerIds$layers$f2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoTimeStepLayerId, newAutoUpdateLayerId, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, _overLayers$find, foundOverlayerId, checkIsprojectionSupported, animationLength, animationEndTime, shouldEndtimeOverride, interval, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, duration, _animationEnd, animationStart, shouldOpenLegend, legendId, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart;
6952
7020
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
6953
7021
  while (1) switch (_context2.prev = _context2.next) {
6954
7022
  case 0:
@@ -6957,10 +7025,10 @@ mapListener.startListening({
6957
7025
  mapId = payload.mapId, initialProps = payload.initialProps;
6958
7026
  mapPreset = initialProps.mapPreset;
6959
7027
  if (!mapPreset) {
6960
- _context2.next = 50;
7028
+ _context2.next = 52;
6961
7029
  break;
6962
7030
  }
6963
- layers = mapPreset.layers, activeLayerId = mapPreset.activeLayerId, autoTimeStepLayerId = mapPreset.autoTimeStepLayerId, autoUpdateLayerId = mapPreset.autoUpdateLayerId, proj = mapPreset.proj, shouldAutoUpdate = mapPreset.shouldAutoUpdate, shouldAnimate = mapPreset.shouldAnimate, animationPayload = mapPreset.animationPayload, toggleTimestepAuto = mapPreset.toggleTimestepAuto, showTimeSlider = mapPreset.showTimeSlider, displayMapPin = mapPreset.displayMapPin, shouldShowZoomControls = mapPreset.shouldShowZoomControls, shouldShowLegend = mapPreset.shouldShowLegend, dockedLayerManagerSize = mapPreset.dockedLayerManagerSize, timeSliderSpan = mapPreset.timeSliderSpan, toggleTimeSpanAuto = mapPreset.toggleTimeSpanAuto;
7031
+ layers = mapPreset.layers, activeLayerId = mapPreset.activeLayerId, autoTimeStepLayerId = mapPreset.autoTimeStepLayerId, autoUpdateLayerId = mapPreset.autoUpdateLayerId, proj = mapPreset.proj, shouldAutoUpdate = mapPreset.shouldAutoUpdate, shouldAnimate = mapPreset.shouldAnimate, animationPayload = mapPreset.animationPayload, toggleTimestepAuto = mapPreset.toggleTimestepAuto, showTimeSlider = mapPreset.showTimeSlider, displayMapPin = mapPreset.displayMapPin, shouldShowZoomControls = mapPreset.shouldShowZoomControls, shouldShowLegend = mapPreset.shouldShowLegend, shouldShowDataExplorer = mapPreset.shouldShowDataExplorer, dockedLayerManagerSize = mapPreset.dockedLayerManagerSize, timeSliderSpan = mapPreset.timeSliderSpan, toggleTimeSpanAuto = mapPreset.toggleTimeSpanAuto, defaultOverlayer = mapPreset.defaultOverlayer;
6964
7032
  _filterLayers = filterLayers(layers), mapLayers = _filterLayers.mapLayers, baseLayers = _filterLayers.baseLayers, overLayers = _filterLayers.overLayers;
6965
7033
  if (layers) {
6966
7034
  // make sure all layers have a unique id before going forward
@@ -7007,24 +7075,34 @@ mapListener.startListening({
7007
7075
  });
7008
7076
  });
7009
7077
  handleBaseLayers(mapId, allBaseLayers, listenerApi);
7078
+ if (defaultOverlayer && overLayers) {
7079
+ foundOverlayerId = ((_overLayers$find = overLayers.find(function (overlayer) {
7080
+ return overlayer.name === defaultOverlayer;
7081
+ })) === null || _overLayers$find === void 0 ? void 0 : _overLayers$find.id) || 'none';
7082
+ listenerApi.dispatch(mapActions.changeOverlayer({
7083
+ mapId: mapId,
7084
+ selectedOverlayer: foundOverlayerId,
7085
+ origin: 'mapListener'
7086
+ }));
7087
+ }
7010
7088
  if (!proj) {
7011
- _context2.next = 20;
7089
+ _context2.next = 21;
7012
7090
  break;
7013
7091
  }
7014
7092
  checkIsprojectionSupported = isProjectionSupported(proj.srs);
7015
7093
  if (checkIsprojectionSupported) {
7016
- _context2.next = 19;
7094
+ _context2.next = 20;
7017
7095
  break;
7018
7096
  }
7019
7097
  throw new Error("Projection ".concat(proj.srs, " is not supported"));
7020
- case 19:
7098
+ case 20:
7021
7099
  // set bbox
7022
7100
  listenerApi.dispatch(mapActions.setBbox({
7023
7101
  mapId: mapId,
7024
7102
  bbox: proj.bbox,
7025
7103
  srs: proj.srs
7026
7104
  }));
7027
- case 20:
7105
+ case 21:
7028
7106
  animationLength = animationPayload && animationPayload.duration;
7029
7107
  animationEndTime = animationPayload && animationPayload.endTime && isAnimationEndTimeValid(animationPayload.endTime) && animationPayload.endTime;
7030
7108
  shouldEndtimeOverride = animationPayload ? animationPayload.shouldEndtimeOverride : false;
@@ -7167,21 +7245,30 @@ mapListener.startListening({
7167
7245
  setOpen: shouldOpenLegend
7168
7246
  }));
7169
7247
  }
7248
+ // show data explorer
7249
+ if (shouldShowDataExplorer) {
7250
+ listenerApi.dispatch(uiActions.setActiveMapIdForDialog({
7251
+ type: DialogTypes.DataExplorer,
7252
+ setOpen: true,
7253
+ source: 'app',
7254
+ mapId: mapId
7255
+ }));
7256
+ }
7170
7257
  if (dockedLayerManagerSize) {
7171
7258
  listenerApi.dispatch(mapActions.setDockedLayerManagerSize({
7172
7259
  mapId: mapId,
7173
7260
  dockedLayerManagerSize: dockedLayerManagerSize
7174
7261
  }));
7175
7262
  }
7176
- case 40:
7263
+ case 42:
7177
7264
  if (!(animationEndTime && (shouldEndtimeOverride || !(shouldAutoUpdate || shouldAnimate)))) {
7178
- _context2.next = 50;
7265
+ _context2.next = 52;
7179
7266
  break;
7180
7267
  }
7181
7268
  fiveMinuteDelayForAnimation = 1000 * 60 * 5; // eslint-disable-next-line no-await-in-loop
7182
- _context2.next = 44;
7269
+ _context2.next = 46;
7183
7270
  return listenerApi.delay(fiveMinuteDelayForAnimation);
7184
- case 44:
7271
+ case 46:
7185
7272
  _animationEnd2 = getAnimationEndTime(listenerApi.getState(), mapId);
7186
7273
  listenerApi.dispatch(mapActions.setAnimationEndTime({
7187
7274
  mapId: mapId,
@@ -7196,13 +7283,13 @@ mapListener.startListening({
7196
7283
  minutes: 5
7197
7284
  }).toISOString()
7198
7285
  }));
7199
- _context2.next = 40;
7200
- break;
7201
- case 50:
7202
- _context2.next = 55;
7286
+ _context2.next = 42;
7203
7287
  break;
7204
7288
  case 52:
7205
- _context2.prev = 52;
7289
+ _context2.next = 57;
7290
+ break;
7291
+ case 54:
7292
+ _context2.prev = 54;
7206
7293
  _context2.t0 = _context2["catch"](1);
7207
7294
  if (_context2.t0 instanceof Error) {
7208
7295
  listenerApi.dispatch(mapActions.setMapPresetError({
@@ -7210,11 +7297,11 @@ mapListener.startListening({
7210
7297
  error: _context2.t0.message
7211
7298
  }));
7212
7299
  }
7213
- case 55:
7300
+ case 57:
7214
7301
  case "end":
7215
7302
  return _context2.stop();
7216
7303
  }
7217
- }, _callee2, null, [[1, 52]]);
7304
+ }, _callee2, null, [[1, 54]]);
7218
7305
  }));
7219
7306
  function effect(_x3, _x4) {
7220
7307
  return _effect2.apply(this, arguments);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "12.11.0",
3
+ "version": "12.13.0",
4
4
  "description": "GeoWeb Store library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,15 +8,15 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/shared": "12.11.0",
11
+ "@opengeoweb/shared": "12.13.0",
12
12
  "react-redux": "^9.2.0",
13
13
  "@reduxjs/toolkit": "^2.6.1",
14
- "@opengeoweb/webmap-react": "12.11.0",
15
- "@opengeoweb/webmap": "12.11.0",
14
+ "@opengeoweb/webmap-react": "12.13.0",
15
+ "@opengeoweb/webmap": "12.13.0",
16
16
  "immer": "^10.0.3",
17
17
  "lodash": "^4.17.21",
18
- "@opengeoweb/metronome": "12.11.0",
19
- "@opengeoweb/timeslider": "12.11.0",
18
+ "@opengeoweb/metronome": "12.13.0",
19
+ "@opengeoweb/timeslider": "12.13.0",
20
20
  "react-router-dom": "^6.23.1",
21
21
  "ol": "^10.4.0",
22
22
  "@turf/turf": "^7.2.0",
@@ -299,28 +299,14 @@ export declare const getSelectedFeature: ((state: SynchronizationGroupState, map
299
299
  resultsCount: () => number;
300
300
  resetResultsCount: () => void;
301
301
  } & {
302
- resultFunc: (resultFuncArgs_0: {
303
- features: {
304
- id: string;
305
- originalId?: string;
306
- geoJSON: GeoJSON.FeatureCollection;
307
- }[];
308
- selectedFeatureId: string | undefined;
309
- }) => {
302
+ resultFunc: (resultFuncArgs_0: PotentialData) => {
310
303
  lat: number;
311
304
  lon: number;
312
305
  id: string;
313
306
  name: any;
314
307
  occurrences: any;
315
308
  } | null;
316
- memoizedResultFunc: ((resultFuncArgs_0: {
317
- features: {
318
- id: string;
319
- originalId?: string;
320
- geoJSON: GeoJSON.FeatureCollection;
321
- }[];
322
- selectedFeatureId: string | undefined;
323
- }) => {
309
+ memoizedResultFunc: ((resultFuncArgs_0: PotentialData) => {
324
310
  lat: number;
325
311
  lon: number;
326
312
  id: string;
@@ -338,14 +324,7 @@ export declare const getSelectedFeature: ((state: SynchronizationGroupState, map
338
324
  name: any;
339
325
  occurrences: any;
340
326
  } | null;
341
- dependencies: [(state: SynchronizationGroupState, mapId: string) => {
342
- features: {
343
- id: string;
344
- originalId?: string;
345
- geoJSON: GeoJSON.FeatureCollection;
346
- }[];
347
- selectedFeatureId: string | undefined;
348
- }];
327
+ dependencies: [(state: SynchronizationGroupState, mapId: string) => PotentialData];
349
328
  recomputations: () => number;
350
329
  resetRecomputations: () => void;
351
330
  dependencyRecomputations: () => number;
@@ -1,3 +1,4 @@
1
+ import { LayerType } from '@opengeoweb/webmap';
1
2
  import type { CoreAppStore } from '../../types';
2
3
  import type { Dimension, ReduxLayer } from '../types';
3
4
  import { LayerState, Layer, LayerStatus } from './types';
@@ -2120,3 +2121,84 @@ export declare const getActiveLayerInfo: ((state: CoreAppStore) => {
2120
2121
  memoize: typeof import("reselect").weakMapMemoize;
2121
2122
  argsMemoize: typeof import("reselect").weakMapMemoize;
2122
2123
  };
2124
+ export declare const getLayerType: ((state: any, layerId: any) => LayerType | "mapLayer") & {
2125
+ clearCache: () => void;
2126
+ resultsCount: () => number;
2127
+ resetResultsCount: () => void;
2128
+ } & {
2129
+ resultFunc: (resultFuncArgs_0: ReduxLayer | undefined) => LayerType | "mapLayer";
2130
+ memoizedResultFunc: ((resultFuncArgs_0: ReduxLayer | undefined) => LayerType | "mapLayer") & {
2131
+ clearCache: () => void;
2132
+ resultsCount: () => number;
2133
+ resetResultsCount: () => void;
2134
+ };
2135
+ lastResult: () => LayerType | "mapLayer";
2136
+ dependencies: [((state: any, layerId: any) => ReduxLayer | undefined) & {
2137
+ clearCache: () => void;
2138
+ resultsCount: () => number;
2139
+ resetResultsCount: () => void;
2140
+ } & {
2141
+ resultFunc: (resultFuncArgs_0: LayerState | undefined, resultFuncArgs_1: string) => ReduxLayer | undefined;
2142
+ memoizedResultFunc: ((resultFuncArgs_0: LayerState | undefined, resultFuncArgs_1: string) => ReduxLayer | undefined) & {
2143
+ clearCache: () => void;
2144
+ resultsCount: () => number;
2145
+ resetResultsCount: () => void;
2146
+ };
2147
+ lastResult: () => ReduxLayer | undefined;
2148
+ dependencies: [(store: CoreAppStore) => LayerState | undefined, (layerStore: any, layerId: any) => string];
2149
+ recomputations: () => number;
2150
+ resetRecomputations: () => void;
2151
+ dependencyRecomputations: () => number;
2152
+ resetDependencyRecomputations: () => void;
2153
+ } & {
2154
+ memoize: typeof import("reselect").weakMapMemoize;
2155
+ argsMemoize: typeof import("reselect").weakMapMemoize;
2156
+ }];
2157
+ recomputations: () => number;
2158
+ resetRecomputations: () => void;
2159
+ dependencyRecomputations: () => number;
2160
+ resetDependencyRecomputations: () => void;
2161
+ } & {
2162
+ memoize: typeof import("reselect").weakMapMemoize;
2163
+ argsMemoize: typeof import("reselect").weakMapMemoize;
2164
+ };
2165
+ /**
2166
+ * Gets all overlayers for a given mapId
2167
+ * Example: overlayers = getOverlayersForMapId(store, 'mapId123')
2168
+ * @param {CoreAppStore} store - The Redux store from which the layers state will be extracted.
2169
+ * @param {string} mapId - The ID of the map for which to retrieve the overlayers.
2170
+ * @returns {Array<{ id: string; name: string }>} - An array of overlayers containing layer information (id and name).
2171
+ */
2172
+ export declare const getOverlayersForMapId: ((state: CoreAppStore, mapId: string) => {
2173
+ id: string;
2174
+ name: string;
2175
+ }[]) & {
2176
+ clearCache: () => void;
2177
+ resultsCount: () => number;
2178
+ resetResultsCount: () => void;
2179
+ } & {
2180
+ resultFunc: (resultFuncArgs_0: LayerState | undefined, resultFuncArgs_1: string) => {
2181
+ id: string;
2182
+ name: string;
2183
+ }[];
2184
+ memoizedResultFunc: ((resultFuncArgs_0: LayerState | undefined, resultFuncArgs_1: string) => {
2185
+ id: string;
2186
+ name: string;
2187
+ }[]) & {
2188
+ clearCache: () => void;
2189
+ resultsCount: () => number;
2190
+ resetResultsCount: () => void;
2191
+ };
2192
+ lastResult: () => {
2193
+ id: string;
2194
+ name: string;
2195
+ }[];
2196
+ dependencies: [(store: CoreAppStore) => LayerState | undefined, (_store: CoreAppStore, mapId: string) => string];
2197
+ recomputations: () => number;
2198
+ resetRecomputations: () => void;
2199
+ dependencyRecomputations: () => number;
2200
+ resetDependencyRecomputations: () => void;
2201
+ } & {
2202
+ memoize: typeof import("reselect").weakMapMemoize;
2203
+ argsMemoize: typeof import("reselect").weakMapMemoize;
2204
+ };
@@ -15,7 +15,8 @@ export declare enum LayerActionOrigin {
15
15
  ReactMapViewParseLayer = "ReactMapViewParseLayer",
16
16
  updateLayerInformationListener = "updateLayerInformationListener",
17
17
  toggleAutoUpdateListener = "toggleAutoUpdateListener",
18
- unregisterMapListener = "unregisterMapListener"
18
+ unregisterMapListener = "unregisterMapListener",
19
+ dataExplorer = "dataExplorer"
19
20
  }
20
21
  export interface FeatureLayer {
21
22
  geojson?: FeatureCollection;
@@ -60,6 +60,11 @@ export declare const slice: import("@reduxjs/toolkit").Slice<WebMapState, {
60
60
  error: string;
61
61
  }>) => void;
62
62
  setDefaultMapSettings: (draft: Draft<WebMapState>, action: PayloadAction<SetDefaultMapSettingsPayload>) => void;
63
+ changeOverlayer: (draft: Draft<WebMapState>, action: PayloadAction<{
64
+ mapId: string;
65
+ selectedOverlayer: string;
66
+ origin: string;
67
+ }>) => void;
63
68
  }, "mapReducer", "mapReducer", import("@reduxjs/toolkit").SliceSelectors<WebMapState>>;
64
69
  export declare const mapActions: {
65
70
  setMapPreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./types").SetMapPresetPayload, string>;
@@ -112,5 +117,10 @@ export declare const mapActions: {
112
117
  error: string;
113
118
  }, "mapReducer/setMapPresetError">;
114
119
  setDefaultMapSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetDefaultMapSettingsPayload, "mapReducer/setDefaultMapSettings">;
120
+ changeOverlayer: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
121
+ mapId: string;
122
+ selectedOverlayer: string;
123
+ origin: string;
124
+ }, "mapReducer/changeOverlayer">;
115
125
  };
116
126
  export declare const mapReducer: import("redux").Reducer<WebMapState>;
@@ -1,7 +1,7 @@
1
1
  import type { Bbox, MapPreset, WebMap, WebMapState } from './types';
2
2
  import type { CoreAppStore } from '../../types';
3
+ import { uiTypes } from '../../ui';
3
4
  import type { Dimension, Layer, ReduxLayer, TimeSliderStartCenterEndTime, WebMapAnimationList } from '../types';
4
- import type { uiTypes } from '../../ui';
5
5
  /**
6
6
  * Gets the map state by mapId
7
7
  *
@@ -2051,8 +2051,8 @@ export declare const getMapPreset: ((state: CoreAppStore & uiTypes.UIModuleState
2051
2051
  resultsCount: () => number;
2052
2052
  resetResultsCount: () => void;
2053
2053
  } & {
2054
- resultFunc: (resultFuncArgs_0: ReduxLayer[], resultFuncArgs_1: ReduxLayer[], resultFuncArgs_2: ReduxLayer[], resultFuncArgs_3: Bbox, resultFuncArgs_4: string, resultFuncArgs_5: string | undefined, resultFuncArgs_6: string | undefined, resultFuncArgs_7: string | undefined, resultFuncArgs_8: boolean, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean | undefined, resultFuncArgs_11: boolean | undefined, resultFuncArgs_12: boolean | undefined, resultFuncArgs_13: number, resultFuncArgs_14: number | undefined, resultFuncArgs_15: string | undefined, resultFuncArgs_16: string | undefined, resultFuncArgs_17: number | undefined, resultFuncArgs_18: boolean | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: string | undefined, resultFuncArgs_21: uiTypes.UIStoreType) => MapPreset;
2055
- memoizedResultFunc: ((resultFuncArgs_0: ReduxLayer[], resultFuncArgs_1: ReduxLayer[], resultFuncArgs_2: ReduxLayer[], resultFuncArgs_3: Bbox, resultFuncArgs_4: string, resultFuncArgs_5: string | undefined, resultFuncArgs_6: string | undefined, resultFuncArgs_7: string | undefined, resultFuncArgs_8: boolean, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean | undefined, resultFuncArgs_11: boolean | undefined, resultFuncArgs_12: boolean | undefined, resultFuncArgs_13: number, resultFuncArgs_14: number | undefined, resultFuncArgs_15: string | undefined, resultFuncArgs_16: string | undefined, resultFuncArgs_17: number | undefined, resultFuncArgs_18: boolean | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: string | undefined, resultFuncArgs_21: uiTypes.UIStoreType) => MapPreset) & {
2054
+ resultFunc: (resultFuncArgs_0: ReduxLayer[], resultFuncArgs_1: ReduxLayer[], resultFuncArgs_2: ReduxLayer[], resultFuncArgs_3: Bbox, resultFuncArgs_4: string, resultFuncArgs_5: string | undefined, resultFuncArgs_6: string | undefined, resultFuncArgs_7: string | undefined, resultFuncArgs_8: boolean, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean | undefined, resultFuncArgs_11: boolean | undefined, resultFuncArgs_12: boolean | undefined, resultFuncArgs_13: number, resultFuncArgs_14: number | undefined, resultFuncArgs_15: string | undefined, resultFuncArgs_16: string | undefined, resultFuncArgs_17: number | undefined, resultFuncArgs_18: boolean | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: string | undefined, resultFuncArgs_21: uiTypes.UIStoreType, resultFuncArgs_22: string) => MapPreset;
2055
+ memoizedResultFunc: ((resultFuncArgs_0: ReduxLayer[], resultFuncArgs_1: ReduxLayer[], resultFuncArgs_2: ReduxLayer[], resultFuncArgs_3: Bbox, resultFuncArgs_4: string, resultFuncArgs_5: string | undefined, resultFuncArgs_6: string | undefined, resultFuncArgs_7: string | undefined, resultFuncArgs_8: boolean, resultFuncArgs_9: boolean, resultFuncArgs_10: boolean | undefined, resultFuncArgs_11: boolean | undefined, resultFuncArgs_12: boolean | undefined, resultFuncArgs_13: number, resultFuncArgs_14: number | undefined, resultFuncArgs_15: string | undefined, resultFuncArgs_16: string | undefined, resultFuncArgs_17: number | undefined, resultFuncArgs_18: boolean | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: string | undefined, resultFuncArgs_21: uiTypes.UIStoreType, resultFuncArgs_22: string) => MapPreset) & {
2056
2056
  clearCache: () => void;
2057
2057
  resultsCount: () => number;
2058
2058
  resetResultsCount: () => void;
@@ -2578,7 +2578,7 @@ export declare const getMapPreset: ((state: CoreAppStore & uiTypes.UIModuleState
2578
2578
  } & {
2579
2579
  memoize: typeof import("reselect").weakMapMemoize;
2580
2580
  argsMemoize: typeof import("reselect").weakMapMemoize;
2581
- }, (store: uiTypes.UIModuleState) => uiTypes.UIStoreType];
2581
+ }, (store: uiTypes.UIModuleState) => uiTypes.UIStoreType, (_store: CoreAppStore, mapId: string) => string];
2582
2582
  recomputations: () => number;
2583
2583
  resetRecomputations: () => void;
2584
2584
  dependencyRecomputations: () => number;
@@ -3094,3 +3094,30 @@ export declare const getdefaultMapSettingsLayers: ((state: CoreAppStore) => Laye
3094
3094
  memoize: typeof import("reselect").weakMapMemoize;
3095
3095
  argsMemoize: typeof import("reselect").weakMapMemoize;
3096
3096
  };
3097
+ /**
3098
+ * Gets the selected overlayer from webmap state
3099
+ *
3100
+ * @param {CoreAppStore} store - The Redux store from which the layers state will be extracted.
3101
+ * @returns {string | null} returnType: string | null
3102
+ */
3103
+ export declare const getSelectedOverlayerByMapId: ((state: CoreAppStore, mapId: string) => string | null) & {
3104
+ clearCache: () => void;
3105
+ resultsCount: () => number;
3106
+ resetResultsCount: () => void;
3107
+ } & {
3108
+ resultFunc: (resultFuncArgs_0: WebMap | undefined) => string | null;
3109
+ memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => string | null) & {
3110
+ clearCache: () => void;
3111
+ resultsCount: () => number;
3112
+ resetResultsCount: () => void;
3113
+ };
3114
+ lastResult: () => string | null;
3115
+ dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
3116
+ recomputations: () => number;
3117
+ resetRecomputations: () => void;
3118
+ dependencyRecomputations: () => number;
3119
+ resetDependencyRecomputations: () => void;
3120
+ } & {
3121
+ memoize: typeof import("reselect").weakMapMemoize;
3122
+ argsMemoize: typeof import("reselect").weakMapMemoize;
3123
+ };
@@ -108,6 +108,8 @@ export interface MapPreset {
108
108
  selectedMapIds?: string[];
109
109
  timeSliderSpan?: number;
110
110
  toggleTimeSpanAuto?: boolean;
111
+ shouldShowDataExplorer?: boolean;
112
+ defaultOverlayer?: string;
111
113
  }
112
114
  export interface MapPresetInitialProps {
113
115
  mapPreset: MapPreset;
@@ -137,19 +137,20 @@ export declare const getLayersFromServiceSelector: ((state: CoreAppStore, servic
137
137
  /**
138
138
  * Gets the layer from the store using the serviceUrl and layerName
139
139
  *
140
- * Example: layer = getLayerFromService(store, 'https://geoservices.knmi.nl/...', 'radar')
140
+ * Example: layer = getLayerFromService(store, 'https://geoservices.knmi.nl/...', 'radar', true)
141
141
  * @param {object} store store: object - The application store
142
142
  * @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
143
143
  * @param {string} layerName layerName: string - Name of the layer in the service
144
+ * @param {boolean} isEDRService isEDRService: boolean - if service is EDR (optional, default to false)
144
145
  * @returns {ServiceLayer} returnType: ServiceLayer - The layer from the service object.
145
146
  */
146
- export declare const getLayerFromService: ((state: CoreAppStore, _serviceUrl: string, layerName: string) => LayerProps | undefined) & {
147
+ export declare const getLayerFromService: ((state: CoreAppStore, _serviceUrl: string, _layerName: string, isEDRService?: any) => LayerProps | undefined) & {
147
148
  clearCache: () => void;
148
149
  resultsCount: () => number;
149
150
  resetResultsCount: () => void;
150
151
  } & {
151
- resultFunc: (resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string) => LayerProps | undefined;
152
- memoizedResultFunc: ((resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string) => LayerProps | undefined) & {
152
+ resultFunc: (resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string, resultFuncArgs_2: any) => LayerProps | undefined;
153
+ memoizedResultFunc: ((resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string, resultFuncArgs_2: any) => LayerProps | undefined) & {
153
154
  clearCache: () => void;
154
155
  resultsCount: () => number;
155
156
  resetResultsCount: () => void;
@@ -195,7 +196,7 @@ export declare const getLayerFromService: ((state: CoreAppStore, _serviceUrl: st
195
196
  } & {
196
197
  memoize: typeof import("reselect").weakMapMemoize;
197
198
  argsMemoize: typeof import("reselect").weakMapMemoize;
198
- }, (_store: CoreAppStore, _serviceUrl: string, layerName: string) => string];
199
+ }, (_store: CoreAppStore, _serviceUrl: string, layerName: string) => string, (_store: CoreAppStore, _serviceUrl: string, _layerName: string, isEDRService?: any) => any];
199
200
  recomputations: () => number;
200
201
  resetRecomputations: () => void;
201
202
  dependencyRecomputations: () => number;
@@ -213,7 +214,7 @@ export declare const getLayerFromService: ((state: CoreAppStore, _serviceUrl: st
213
214
  * @param {string} layerName layerName: string - Name of the layer in the service
214
215
  * @returns {array} returnType: Style[] - array containing layer styles
215
216
  */
216
- export declare const getLayerStyles: ((state: CoreAppStore, _serviceUrl: string, layerName: string) => Style[]) & {
217
+ export declare const getLayerStyles: ((state: CoreAppStore, _serviceUrl: string, _layerName: string, isEDRService?: any) => Style[]) & {
217
218
  clearCache: () => void;
218
219
  resultsCount: () => number;
219
220
  resetResultsCount: () => void;
@@ -225,13 +226,13 @@ export declare const getLayerStyles: ((state: CoreAppStore, _serviceUrl: string,
225
226
  resetResultsCount: () => void;
226
227
  };
227
228
  lastResult: () => Style[];
228
- dependencies: [((state: CoreAppStore, _serviceUrl: string, layerName: string) => LayerProps | undefined) & {
229
+ dependencies: [((state: CoreAppStore, _serviceUrl: string, _layerName: string, isEDRService?: any) => LayerProps | undefined) & {
229
230
  clearCache: () => void;
230
231
  resultsCount: () => number;
231
232
  resetResultsCount: () => void;
232
233
  } & {
233
- resultFunc: (resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string) => LayerProps | undefined;
234
- memoizedResultFunc: ((resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string) => LayerProps | undefined) & {
234
+ resultFunc: (resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string, resultFuncArgs_2: any) => LayerProps | undefined;
235
+ memoizedResultFunc: ((resultFuncArgs_0: LayerProps[], resultFuncArgs_1: string, resultFuncArgs_2: any) => LayerProps | undefined) & {
235
236
  clearCache: () => void;
236
237
  resultsCount: () => number;
237
238
  resetResultsCount: () => void;
@@ -277,7 +278,7 @@ export declare const getLayerStyles: ((state: CoreAppStore, _serviceUrl: string,
277
278
  } & {
278
279
  memoize: typeof import("reselect").weakMapMemoize;
279
280
  argsMemoize: typeof import("reselect").weakMapMemoize;
280
- }, (_store: CoreAppStore, _serviceUrl: string, layerName: string) => string];
281
+ }, (_store: CoreAppStore, _serviceUrl: string, layerName: string) => string, (_store: CoreAppStore, _serviceUrl: string, _layerName: string, isEDRService?: any) => any];
281
282
  recomputations: () => number;
282
283
  resetRecomputations: () => void;
283
284
  dependencyRecomputations: () => number;