@opengeoweb/store 15.2.0 → 15.3.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,14 +1,14 @@
1
1
  import { createSlice, createSelector, createAction, createListenerMiddleware, isAnyOf, createEntityAdapter, combineReducers, configureStore } from '@reduxjs/toolkit';
2
- import { isEqual, merge, isEmpty, compact } from 'lodash';
2
+ import { isEqual, mergeWith, merge, isEmpty, compact } from 'lodash';
3
3
  import { webmapUtils, parseISO8601IntervalToDateInterval, LayerType, handleDateUtilsISOString, webmapTestSettings, WMLayer, getWMLayerById, WMInvalidDateValues, isProjectionSupported, queryWMSLayers } from '@opengeoweb/webmap';
4
- import { dateUtils, PROJECTION, defaultDelay } from '@opengeoweb/shared';
4
+ import { dateUtils, PROJECTION, defaultDelay, useDebounce } from '@opengeoweb/shared';
5
5
  import { secondsPerPxFromCanvasWidth, defaultTimeSpan, defaultSecondsPerPx, defaultAnimationDelayAtStart, defaultTimeStep, roundWithTimeStep, getSpeedDelay } from '@opengeoweb/time-slider';
6
6
  import { produce } from 'immer';
7
7
  import { getLastEmptyFeatureIndex, getGeoJson, moveFeature, createInterSections, defaultLayers, emptyGeoJSON, defaultIntersectionStyleProperties, addSelectionTypeToGeoJSON, getFeatureCollection } from '@opengeoweb/webmap-react';
8
8
  export { defaultLayers } from '@opengeoweb/webmap-react';
9
+ import React, { useEffect, useCallback } from 'react';
10
+ import { useDispatch, useSelector } from 'react-redux';
9
11
  import { center } from '@turf/turf';
10
- import { useEffect, useCallback } from 'react';
11
- import { useSelector, useDispatch } from 'react-redux';
12
12
  import { metronome } from '@opengeoweb/metronome';
13
13
  import { View, Observable } from 'ol';
14
14
  import { boundingExtent, getCenter } from 'ol/extent';
@@ -2724,33 +2724,51 @@ var slice$5 = createSlice({
2724
2724
  }
2725
2725
  draft.byId[mapId].dockedLayerManagerSize = dockedLayerManagerSize;
2726
2726
  },
2727
+ setDockedLayerManagerPosition: function setDockedLayerManagerPosition(draft, action) {
2728
+ var _action$payload25 = action.payload,
2729
+ mapId = _action$payload25.mapId,
2730
+ dockedLayerManagerPosition = _action$payload25.dockedLayerManagerPosition;
2731
+ if (!draft.byId[mapId]) {
2732
+ return;
2733
+ }
2734
+ draft.byId[mapId].dockedLayerManagerPosition = dockedLayerManagerPosition;
2735
+ },
2736
+ setDockedLayerManagerDimensions: function setDockedLayerManagerDimensions(draft, action) {
2737
+ var _action$payload26 = action.payload,
2738
+ mapId = _action$payload26.mapId,
2739
+ dockedLayerManagerDimensions = _action$payload26.dockedLayerManagerDimensions;
2740
+ if (!draft.byId[mapId]) {
2741
+ return;
2742
+ }
2743
+ draft.byId[mapId].dockedLayerManagerDimensions = dockedLayerManagerDimensions;
2744
+ },
2727
2745
  setMapPresetError: function setMapPresetError(_draft, _action) {},
2728
2746
  setDefaultMapSettings: function setDefaultMapSettings(draft, action) {
2729
2747
  draft.defaultMapSettings = action.payload.preset;
2730
2748
  },
2731
2749
  changeOverlayer: function changeOverlayer(draft, action) {
2732
- var _action$payload25 = action.payload,
2733
- mapId = _action$payload25.mapId,
2734
- selectedOverlayer = _action$payload25.selectedOverlayer;
2750
+ var _action$payload27 = action.payload,
2751
+ mapId = _action$payload27.mapId,
2752
+ selectedOverlayer = _action$payload27.selectedOverlayer;
2735
2753
  if (!draft.byId[mapId]) {
2736
2754
  return;
2737
2755
  }
2738
2756
  draft.byId[mapId].overLayers = [selectedOverlayer];
2739
2757
  },
2740
2758
  toggleClock: function toggleClock(draft, action) {
2741
- var _action$payload26 = action.payload,
2742
- mapId = _action$payload26.mapId,
2743
- isClockVisible = _action$payload26.isClockVisible;
2759
+ var _action$payload28 = action.payload,
2760
+ mapId = _action$payload28.mapId,
2761
+ isClockVisible = _action$payload28.isClockVisible;
2744
2762
  if (!draft.byId[mapId]) {
2745
2763
  return;
2746
2764
  }
2747
2765
  draft.byId[mapId].isClockVisible = isClockVisible;
2748
2766
  },
2749
2767
  setClockPositionSize: function setClockPositionSize(draft, action) {
2750
- var _action$payload27 = action.payload,
2751
- mapId = _action$payload27.mapId,
2752
- position = _action$payload27.position,
2753
- size = _action$payload27.size;
2768
+ var _action$payload29 = action.payload,
2769
+ mapId = _action$payload29.mapId,
2770
+ position = _action$payload29.position,
2771
+ size = _action$payload29.size;
2754
2772
  if (!draft.byId[mapId]) {
2755
2773
  return;
2756
2774
  }
@@ -2764,10 +2782,10 @@ var slice$5 = createSlice({
2764
2782
  },
2765
2783
  extraReducers: function extraReducers(builder) {
2766
2784
  builder.addCase(layerActions.addLayer, function (draft, action) {
2767
- var _action$payload28 = action.payload,
2768
- layerId = _action$payload28.layerId,
2769
- mapId = _action$payload28.mapId,
2770
- layer = _action$payload28.layer;
2785
+ var _action$payload30 = action.payload,
2786
+ layerId = _action$payload30.layerId,
2787
+ mapId = _action$payload30.mapId,
2788
+ layer = _action$payload30.layer;
2771
2789
  if (!draft.byId[mapId]) {
2772
2790
  return;
2773
2791
  }
@@ -2786,10 +2804,10 @@ var slice$5 = createSlice({
2786
2804
  draft.byId[mapId].mapLayers.unshift(layerId);
2787
2805
  }
2788
2806
  }).addCase(layerActions.duplicateMapLayer, function (draft, action) {
2789
- var _action$payload29 = action.payload,
2790
- newLayerId = _action$payload29.newLayerId,
2791
- oldLayerId = _action$payload29.oldLayerId,
2792
- mapId = _action$payload29.mapId;
2807
+ var _action$payload31 = action.payload,
2808
+ newLayerId = _action$payload31.newLayerId,
2809
+ oldLayerId = _action$payload31.oldLayerId,
2810
+ mapId = _action$payload31.mapId;
2793
2811
  if (!draft.byId[mapId]) {
2794
2812
  return;
2795
2813
  }
@@ -2806,10 +2824,10 @@ var slice$5 = createSlice({
2806
2824
  draft.byId[mapId].featureLayers.unshift(newLayerId);
2807
2825
  }
2808
2826
  }).addCase(layerActions.addBaseLayer, function (draft, action) {
2809
- var _action$payload30 = action.payload,
2810
- layer = _action$payload30.layer,
2811
- layerId = _action$payload30.layerId,
2812
- mapId = _action$payload30.mapId;
2827
+ var _action$payload32 = action.payload,
2828
+ layer = _action$payload32.layer,
2829
+ layerId = _action$payload32.layerId,
2830
+ mapId = _action$payload32.mapId;
2813
2831
  if (!draft.byId[mapId]) {
2814
2832
  return;
2815
2833
  }
@@ -2839,9 +2857,9 @@ var slice$5 = createSlice({
2839
2857
  draft.byId[mapId].autoTimeStepLayerId = activeLayerId;
2840
2858
  }
2841
2859
  }).addCase(layerActions.setBaseLayers, function (draft, action) {
2842
- var _action$payload31 = action.payload,
2843
- layers = _action$payload31.layers,
2844
- mapId = _action$payload31.mapId;
2860
+ var _action$payload33 = action.payload,
2861
+ layers = _action$payload33.layers,
2862
+ mapId = _action$payload33.mapId;
2845
2863
  // Split into base and overlayers
2846
2864
  var baseLayers = [];
2847
2865
  var overLayers = [];
@@ -2871,9 +2889,9 @@ var slice$5 = createSlice({
2871
2889
  }
2872
2890
  }
2873
2891
  }).addCase(layerActions.layerDelete, function (draft, action) {
2874
- var _action$payload32 = action.payload,
2875
- mapId = _action$payload32.mapId,
2876
- layerId = _action$payload32.layerId;
2892
+ var _action$payload34 = action.payload,
2893
+ mapId = _action$payload34.mapId,
2894
+ layerId = _action$payload34.layerId;
2877
2895
  var map = draft.byId[mapId];
2878
2896
  if (!map) {
2879
2897
  return;
@@ -2899,9 +2917,9 @@ var slice$5 = createSlice({
2899
2917
  return id !== layerId;
2900
2918
  });
2901
2919
  }).addCase(layerActions.baseLayerDelete, function (draft, action) {
2902
- var _action$payload33 = action.payload,
2903
- mapId = _action$payload33.mapId,
2904
- layerId = _action$payload33.layerId;
2920
+ var _action$payload35 = action.payload,
2921
+ mapId = _action$payload35.mapId,
2922
+ layerId = _action$payload35.layerId;
2905
2923
  if (!draft.byId[mapId]) {
2906
2924
  return;
2907
2925
  }
@@ -2912,14 +2930,14 @@ var slice$5 = createSlice({
2912
2930
  return id !== layerId;
2913
2931
  });
2914
2932
  }).addCase(layerActions.layerChangeDimension, function (draft, action) {
2915
- var _action$payload34 = action.payload,
2916
- layerId = _action$payload34.layerId,
2917
- dimension = _action$payload34.dimension;
2933
+ var _action$payload36 = action.payload,
2934
+ layerId = _action$payload36.layerId,
2935
+ dimension = _action$payload36.dimension;
2918
2936
  produceDraftStateSetMapDimensionFromLayerChangeDimension(draft, layerId, dimension);
2919
2937
  }).addCase(setTimeSync, function (draft, action) {
2920
- var _action$payload35 = action.payload,
2921
- targetsFromAction = _action$payload35.targets,
2922
- source = _action$payload35.source;
2938
+ var _action$payload37 = action.payload,
2939
+ targetsFromAction = _action$payload37.targets,
2940
+ source = _action$payload37.source;
2923
2941
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
2924
2942
  var targets = [];
2925
2943
  if (source) {
@@ -2972,9 +2990,9 @@ var slice$5 = createSlice({
2972
2990
  }
2973
2991
  });
2974
2992
  }).addCase(setBboxSync, function (draft, action) {
2975
- var _action$payload36 = action.payload,
2976
- targetsFromAction = _action$payload36.targets,
2977
- source = _action$payload36.source;
2993
+ var _action$payload38 = action.payload,
2994
+ targetsFromAction = _action$payload38.targets,
2995
+ source = _action$payload38.source;
2978
2996
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
2979
2997
  var targets = [];
2980
2998
  if (source) {
@@ -3006,9 +3024,9 @@ var slice$5 = createSlice({
3006
3024
  * These targets can be used as payloads in new Layer actions.
3007
3025
  * These actions are here handled via the layer reducer, as it is the same logic
3008
3026
  */
3009
- var _action$payload37 = action.payload,
3010
- targets = _action$payload37.targets,
3011
- source = _action$payload37.source;
3027
+ var _action$payload39 = action.payload,
3028
+ targets = _action$payload39.targets,
3029
+ source = _action$payload39.source;
3012
3030
  return targets.reduce(function (prevState, target) {
3013
3031
  var actionType = (source === null || source === void 0 ? void 0 : source.type) || 'GENERIC_SYNC_SETLAYERACTIONS';
3014
3032
  var action = {
@@ -3030,9 +3048,9 @@ var slice$5 = createSlice({
3030
3048
  });
3031
3049
  return draft;
3032
3050
  }).addCase(mapChangeDimension, function (draft, action) {
3033
- var _action$payload38 = action.payload,
3034
- mapId = _action$payload38.mapId,
3035
- dimensionFromAction = _action$payload38.dimension;
3051
+ var _action$payload40 = action.payload,
3052
+ mapId = _action$payload40.mapId,
3053
+ dimensionFromAction = _action$payload40.dimension;
3036
3054
  produceDraftStateSetWebMapDimension(draft, mapId, dimensionFromAction, true);
3037
3055
  }).addCase(setMapPreset, function (draft, action) {
3038
3056
  var mapId = action.payload.mapId;
@@ -3052,9 +3070,9 @@ var slice$5 = createSlice({
3052
3070
  draft.byId[mapId].animationDelay = defaultAnimationDelayAtStart;
3053
3071
  draft.byId[mapId].dockedLayerManagerSize = '';
3054
3072
  }).addCase(uiActions.registerDialog, function (draft, action) {
3055
- var _action$payload39 = action.payload,
3056
- mapId = _action$payload39.mapId,
3057
- type = _action$payload39.type;
3073
+ var _action$payload41 = action.payload,
3074
+ mapId = _action$payload41.mapId,
3075
+ type = _action$payload41.type;
3058
3076
  if (!draft.byId[mapId]) {
3059
3077
  return;
3060
3078
  }
@@ -3305,14 +3323,31 @@ var slice$4 = createSlice({
3305
3323
  if (synchronizationGroup.targets.allIds.includes(targetId)) {
3306
3324
  return;
3307
3325
  }
3308
- var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId]) === null || _synchronizationGroup === void 0 ? void 0 : _synchronizationGroup.linked;
3309
3326
  synchronizationGroup.targets.allIds.push(targetId);
3310
3327
  synchronizationGroup.targets.byId[targetId] = {
3311
3328
  linked: linked !== false
3312
3329
  };
3330
+ var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId]) === null || _synchronizationGroup === void 0 ? void 0 : _synchronizationGroup.linked;
3313
3331
  if (isSourceLinked) {
3314
- var type = synchronizationGroup.type;
3315
- draft.sources.byId[targetId].payloadByType[type] = synchronizationGroup.payloadByType[type];
3332
+ // In order to make syncgroup work correctly we need to have defaults
3333
+ var defaultS = {
3334
+ payloadByType: {
3335
+ SYNCGROUPS_TYPE_SETTIME: {
3336
+ value: {
3337
+ timeSliderSpan: defaultTimeSpan,
3338
+ timeSliderStep: defaultTimeStep
3339
+ }
3340
+ }
3341
+ }
3342
+ };
3343
+ if (draft.sources.byId[targetId]) {
3344
+ // Assign object based on 1: defaults, 2: The values in the group, 3: the values of the source.
3345
+ mergeWith(draft.sources.byId[targetId], defaultS, synchronizationGroup, draft.sources.byId[targetId],
3346
+ // eslint-disable-next-line id-length, @typescript-eslint/no-unsafe-return
3347
+ function (a, b) {
3348
+ return b === null ? a : undefined;
3349
+ });
3350
+ }
3316
3351
  }
3317
3352
  },
3318
3353
  syncGroupRemoveTarget: function syncGroupRemoveTarget(draft, action) {
@@ -3437,13 +3472,13 @@ var setBboxOrTimeSync = function setBboxOrTimeSync(draft, action) {
3437
3472
  }
3438
3473
  };
3439
3474
  var _slice$actions = slice$4.actions,
3440
- syncGroupAddGroup = _slice$actions.syncGroupAddGroup;
3441
- _slice$actions.syncGroupAddSource;
3442
- var syncGroupAddTarget = _slice$actions.syncGroupAddTarget;
3475
+ syncGroupAddGroup = _slice$actions.syncGroupAddGroup,
3476
+ syncGroupAddSource = _slice$actions.syncGroupAddSource,
3477
+ syncGroupAddTarget = _slice$actions.syncGroupAddTarget;
3443
3478
  _slice$actions.syncGroupClear;
3444
3479
  _slice$actions.syncGroupLinkTarget;
3445
3480
  _slice$actions.syncGroupRemoveGroup;
3446
- _slice$actions.syncGroupRemoveSource;
3481
+ var syncGroupRemoveSource = _slice$actions.syncGroupRemoveSource;
3447
3482
  _slice$actions.syncGroupRemoveTarget;
3448
3483
  _slice$actions.syncGroupSetViewState;
3449
3484
  var syncGroupsReducer = slice$4.reducer,
@@ -3990,12 +4025,26 @@ var getSelectedFeatureAsGeoJSON = createSelector([function (state, mapId) {
3990
4025
  });
3991
4026
  return selectedFeature;
3992
4027
  });
4028
+ var getSyncedStartCenterEndStepCurrentTime = createSelector(function (coreAppStore, sourceId) {
4029
+ return getTime(getSynchronizationGroupStore(coreAppStore), sourceId);
4030
+ }, function (store) {
4031
+ if (!(store !== null && store !== void 0 && store.timeSliderCenterTime) || !(store !== null && store !== void 0 && store.timeSliderSpan)) {
4032
+ return undefined;
4033
+ }
4034
+ return {
4035
+ start: Math.round(store.timeSliderCenterTime - store.timeSliderSpan / 2),
4036
+ end: Math.round(store.timeSliderCenterTime + store.timeSliderSpan / 2),
4037
+ step: (store === null || store === void 0 ? void 0 : store.timeSliderStep) || 60,
4038
+ current: dateUtils.unixFromISOString(store === null || store === void 0 ? void 0 : store.currentTime)
4039
+ };
4040
+ }, selectorMemoizationOptions);
3993
4041
 
3994
4042
  var selectors$5 = /*#__PURE__*/Object.freeze({
3995
4043
  __proto__: null,
3996
4044
  getLinkedMaps: getLinkedMaps,
3997
4045
  getSelectedFeature: getSelectedFeature,
3998
4046
  getSelectedFeatureAsGeoJSON: getSelectedFeatureAsGeoJSON,
4047
+ getSyncedStartCenterEndStepCurrentTime: getSyncedStartCenterEndStepCurrentTime,
3999
4048
  getSynchronizationGroupStore: getSynchronizationGroupStore,
4000
4049
  getTime: getTime,
4001
4050
  selectLinkedFeatures: selectLinkedFeatures,
@@ -4005,6 +4054,60 @@ var selectors$5 = /*#__PURE__*/Object.freeze({
4005
4054
  selectSharedData: selectSharedData
4006
4055
  });
4007
4056
 
4057
+ /* *
4058
+ * Licensed under the Apache License, Version 2.0 (the "License");
4059
+ * you may not use this file except in compliance with the License.
4060
+ * You may obtain a copy of the License at
4061
+ *
4062
+ * http://www.apache.org/licenses/LICENSE-2.0
4063
+ *
4064
+ * Unless required by applicable law or agreed to in writing, software
4065
+ * distributed under the License is distributed on an "AS IS" BASIS,
4066
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4067
+ * See the License for the specific language governing permissions and
4068
+ * limitations under the License.
4069
+ *
4070
+ * Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
4071
+ * Copyright 2026 - Finnish Meteorological Institute (FMI)
4072
+ * Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
4073
+ * */
4074
+ /**
4075
+ * This registers a new syncgroup souce for given panel id. The source is not synced to any group by default.
4076
+ * When the user links the source with a group, this hook returns an object with the timeslider state: start, end, step and current time.
4077
+ * @param panelId panelId to register
4078
+ * @returns the timeslider state
4079
+ */
4080
+ var useSyncgroupTimeState = function useSyncgroupTimeState(panelId) {
4081
+ var debounceMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
4082
+ var dispatch = useDispatch();
4083
+ var syncGroupsAddSourceCallBack = React.useCallback(function (payload) {
4084
+ dispatch(syncGroupAddSource(payload));
4085
+ }, [dispatch]);
4086
+ var syncGroupRemoveSourceCallback = React.useCallback(function (payload) {
4087
+ dispatch(syncGroupRemoveSource(payload));
4088
+ }, [dispatch]);
4089
+ // Register
4090
+ useEffect(function () {
4091
+ syncGroupsAddSourceCallBack({
4092
+ id: panelId,
4093
+ type: [SYNCGROUPS_TYPE_SETTIME]
4094
+ });
4095
+ return function () {
4096
+ syncGroupRemoveSourceCallback({
4097
+ id: panelId
4098
+ });
4099
+ };
4100
+ }, [panelId, syncGroupsAddSourceCallBack, syncGroupRemoveSourceCallback]);
4101
+ var syncGroupTimeSliderCenterStartEndStep = useSelector(function (store) {
4102
+ return getSyncedStartCenterEndStepCurrentTime(store, panelId);
4103
+ });
4104
+ var syncTargets = useSelector(function (store) {
4105
+ return getAllTargetGroupsForSource(store, panelId);
4106
+ });
4107
+ var isSyncgroupLinked = syncTargets.length > 0;
4108
+ return useDebounce(isSyncgroupLinked ? syncGroupTimeSliderCenterStartEndStep : undefined, debounceMs);
4109
+ };
4110
+
4008
4111
  var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
4009
4112
  var sharedData = useSelector(function (state) {
4010
4113
  return selectSharedData(state, panelId);
@@ -4772,6 +4875,20 @@ var getLayerService = createSelector(getLayerById, function (layer) {
4772
4875
  var _layer$service;
4773
4876
  return (_layer$service = layer === null || layer === void 0 ? void 0 : layer.service) !== null && _layer$service !== void 0 ? _layer$service : '';
4774
4877
  }, selectorMemoizationOptions);
4878
+ /**
4879
+ * Gets layer service name
4880
+ *
4881
+ * Example: layerService = getLayerServiceName(store, 'layerId_1')
4882
+ * @param {object} store store: object - object from which the layers state will be extracted
4883
+ * @param {string} layerId layerId: string - Id of the layer
4884
+ * @returns {string} returnType: string - layer service name
4885
+ */
4886
+ var getLayerServiceName = createSelector(function (store) {
4887
+ return store;
4888
+ }, getLayerById, getLayerService, function (store, layer, service) {
4889
+ var layerService = getServiceByUrl(store, service);
4890
+ return layerService !== null && layerService !== void 0 && layerService.name ? layerService === null || layerService === void 0 ? void 0 : layerService.name : '';
4891
+ }, selectorMemoizationOptions);
4775
4892
  /**
4776
4893
  * Gets selected style of the passed layer
4777
4894
  *
@@ -5047,6 +5164,7 @@ var selectors$2 = /*#__PURE__*/Object.freeze({
5047
5164
  getLayerOpacity: getLayerOpacity,
5048
5165
  getLayerOptions: getLayerOptions,
5049
5166
  getLayerService: getLayerService,
5167
+ getLayerServiceName: getLayerServiceName,
5050
5168
  getLayerStatus: getLayerStatus,
5051
5169
  getLayerStyle: getLayerStyle,
5052
5170
  getLayerTimeDimension: getLayerTimeDimension,
@@ -5520,7 +5638,6 @@ var getMapTimeSliderStartCenterEndAndStep = createSelector(getMapById, function
5520
5638
  var step = (_store$timeStep2 = store === null || store === void 0 ? void 0 : store.timeStep) !== null && _store$timeStep2 !== void 0 ? _store$timeStep2 : defaultTimeStep;
5521
5639
  return {
5522
5640
  start: start,
5523
- center: center,
5524
5641
  end: end,
5525
5642
  step: step
5526
5643
  };
@@ -5781,14 +5898,26 @@ var getClockSize = createSelector(getMapById, function (store) {
5781
5898
  * @param {boolean} keepAllDims? keepAllDims: boolean - default false: whether or not to leave the time and reference_time dimentions
5782
5899
  * @returns {MapPreset} returnType: MapPreset
5783
5900
  */
5784
- var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLayers, getBbox, getSrs, getActiveLayerId, getAutoTimeStepLayerId, getAutoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, getDisplayMapPin, isZoomControlsVisible, getMapTimeStep, getMapAnimationDelay, getAnimationStartTime, getAnimationEndTime, getMapTimeSliderSpan, getMapDimensions, isTimestepAuto, isTimeSpanAuto, getLegendId, getIsClockVisible, getClockPosition, getClockSize, getUiStore, function (_store, mapId) {
5901
+ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLayers, getBbox, getSrs, getActiveLayerId, getAutoTimeStepLayerId, getAutoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, getDisplayMapPin, isZoomControlsVisible, getMapTimeStep, getMapAnimationDelay, getAnimationStartTime, getAnimationEndTime, getMapTimeSliderSpan, getMapDimensions, isTimestepAuto, isTimeSpanAuto, getLegendId, function (store, mapId) {
5902
+ var _getMapById$dockedLay, _getMapById;
5903
+ return (_getMapById$dockedLay = (_getMapById = getMapById(store, mapId)) === null || _getMapById === void 0 ? void 0 : _getMapById.dockedLayerManagerSize) !== null && _getMapById$dockedLay !== void 0 ? _getMapById$dockedLay : 'sizeSmall';
5904
+ }, function (store, mapId) {
5905
+ var _getMapById$dockedLay2, _getMapById2;
5906
+ return (_getMapById$dockedLay2 = (_getMapById2 = getMapById(store, mapId)) === null || _getMapById2 === void 0 ? void 0 : _getMapById2.dockedLayerManagerPosition) !== null && _getMapById$dockedLay2 !== void 0 ? _getMapById$dockedLay2 : {
5907
+ x: 0,
5908
+ y: 0
5909
+ };
5910
+ }, function (store, mapId) {
5911
+ var _getMapById3;
5912
+ return (_getMapById3 = getMapById(store, mapId)) === null || _getMapById3 === void 0 ? void 0 : _getMapById3.dockedLayerManagerDimensions;
5913
+ }, getIsClockVisible, getClockPosition, getClockSize, getUiStore, function (_store, mapId) {
5785
5914
  return mapId;
5786
5915
  }, function (_store, _mapId) {
5787
5916
  var keepAllDims = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
5788
5917
  return keepAllDims;
5789
- }, function (mapLayers, baseLayers, overLayers, bbox, srs, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, displayMapPin, isZoomControlsVisible, mapTimeStep, mapAnimationDelay, animationStartTime, animationEndTime, timeSliderSpan, mapDimensions, isTimestepAuto, isTimeSpanAuto, legendId, isClockVisible, clockPosition, clockSize, uiStore, mapId, keepAllDims) {
5918
+ }, function (mapLayers, baseLayers, overLayers, bbox, srs, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, displayMapPin, isZoomControlsVisible, mapTimeStep, mapAnimationDelay, animationStartTime, animationEndTime, timeSliderSpan, mapDimensions, isTimestepAuto, isTimeSpanAuto, legendId, dockedLayerManagerSize, dockedLayerManagerPosition, dockedLayerManagerDimensions, isClockVisible, clockPosition, clockSize, uiStore, mapId, keepAllDims) {
5790
5919
  var _overLayers$, _uiStore$dialogs$lege;
5791
- var defaultOverlayer = arguments.length > 28 && arguments[28] !== undefined ? arguments[28] : ((_overLayers$ = overLayers[0]) === null || _overLayers$ === void 0 ? void 0 : _overLayers$.name) || 'none';
5920
+ var defaultOverlayer = arguments.length > 31 && arguments[31] !== undefined ? arguments[31] : ((_overLayers$ = overLayers[0]) === null || _overLayers$ === void 0 ? void 0 : _overLayers$.name) || 'none';
5792
5921
  var allLayers = [].concat(_toConsumableArray(baseLayers), _toConsumableArray(overLayers), _toConsumableArray(mapLayers)).map(function (_ref3) {
5793
5922
  _ref3.mapId;
5794
5923
  var layer = _objectWithoutProperties(_ref3, _excluded$2);
@@ -5816,7 +5945,19 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
5816
5945
  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;
5817
5946
  var dataExplorerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs[DialogTypes.DataExplorer];
5818
5947
  var shouldShowDataExplorer = (dataExplorerDialog === null || dataExplorerDialog === void 0 ? void 0 : dataExplorerDialog.isOpen) && (dataExplorerDialog === null || dataExplorerDialog === void 0 ? void 0 : dataExplorerDialog.activeMapId) === mapId || false;
5819
- return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
5948
+ var dockedLayerManagerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs["".concat(DialogTypes.DockedLayerManager, "-").concat(mapId)];
5949
+ var floatingLayerManagerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs[DialogTypes.LayerManager];
5950
+ var floatingLayerManagerMultimapDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs["".concat(DialogTypes.LayerManager, "-").concat(mapId)];
5951
+ var isFloatingLayerManagerOpenForMap = (floatingLayerManagerDialog === null || floatingLayerManagerDialog === void 0 ? void 0 : floatingLayerManagerDialog.isOpen) && (floatingLayerManagerDialog === null || floatingLayerManagerDialog === void 0 ? void 0 : floatingLayerManagerDialog.activeMapId) === mapId || (floatingLayerManagerMultimapDialog === null || floatingLayerManagerMultimapDialog === void 0 ? void 0 : floatingLayerManagerMultimapDialog.isOpen) || false;
5952
+ var shouldShowDockedLayerManager = ((dockedLayerManagerDialog === null || dockedLayerManagerDialog === void 0 ? void 0 : dockedLayerManagerDialog.isOpen) || false) && !isFloatingLayerManagerOpenForMap;
5953
+ var dockedLayerManagerPreset = shouldShowDockedLayerManager ? _objectSpread2({
5954
+ shouldShowDockedLayerManager: shouldShowDockedLayerManager,
5955
+ dockedLayerManagerSize: dockedLayerManagerSize,
5956
+ dockedLayerManagerPosition: dockedLayerManagerPosition
5957
+ }, dockedLayerManagerDimensions && {
5958
+ dockedLayerManagerDimensions: dockedLayerManagerDimensions
5959
+ }) : {};
5960
+ return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
5820
5961
  layers: allLayers
5821
5962
  }, activeLayerId && {
5822
5963
  activeLayerId: activeLayerId
@@ -5841,7 +5982,7 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
5841
5982
  timeSliderSpan: timeSliderSpan,
5842
5983
  shouldShowDataExplorer: shouldShowDataExplorer,
5843
5984
  defaultOverlayer: defaultOverlayer
5844
- }, isClockVisible !== undefined && {
5985
+ }, dockedLayerManagerPreset), isClockVisible !== undefined && {
5845
5986
  isClockVisible: isClockVisible
5846
5987
  }), clockPosition !== undefined && {
5847
5988
  clockPosition: clockPosition
@@ -5961,6 +6102,24 @@ var getIsEnabledLayersForMapDimension = createSelector(getMapLayerIdsEnabled, fu
5961
6102
  var getDockedLayerManagerSize = createSelector(getMapById, function (store) {
5962
6103
  return store ? store.dockedLayerManagerSize : 'sizeSmall';
5963
6104
  }, selectorMemoizationOptions);
6105
+ /**
6106
+ * Returns the dockedLayerManagerPosition originally set in mapPresets
6107
+ *
6108
+ * Example getDockedLayerManagerPosition(store);
6109
+ * @param {object} store store: object - store object
6110
+ * @param {string} mapId mapId: string - Id of the map
6111
+ * @returns {DockedLayerManagerPosition} returnType: object
6112
+ */
6113
+ var getDockedLayerManagerPosition = createSelector(getMapById, function (store) {
6114
+ var _store$dockedLayerMan;
6115
+ return (_store$dockedLayerMan = store === null || store === void 0 ? void 0 : store.dockedLayerManagerPosition) !== null && _store$dockedLayerMan !== void 0 ? _store$dockedLayerMan : {
6116
+ x: 0,
6117
+ y: 0
6118
+ };
6119
+ }, selectorMemoizationOptions);
6120
+ var getDockedLayerManagerDimensions = createSelector(getMapById, function (store) {
6121
+ return store === null || store === void 0 ? void 0 : store.dockedLayerManagerDimensions;
6122
+ }, selectorMemoizationOptions);
5964
6123
  /**
5965
6124
  * Returns the animation list for given map id
5966
6125
  * @param {object} store store: object - store object
@@ -6081,6 +6240,8 @@ var selectors$1 = /*#__PURE__*/Object.freeze({
6081
6240
  getDataLimitsFromLayers: getDataLimitsFromLayers,
6082
6241
  getDisableMapPin: getDisableMapPin,
6083
6242
  getDisplayMapPin: getDisplayMapPin,
6243
+ getDockedLayerManagerDimensions: getDockedLayerManagerDimensions,
6244
+ getDockedLayerManagerPosition: getDockedLayerManagerPosition,
6084
6245
  getDockedLayerManagerSize: getDockedLayerManagerSize,
6085
6246
  getFirstMap: getFirstMap,
6086
6247
  getFirstMapId: getFirstMapId,
@@ -6604,18 +6765,25 @@ genericListener.startListening({
6604
6765
  payload = _ref.payload;
6605
6766
  listenerApi.cancelActiveListeners();
6606
6767
  value = payload.value, origin = payload.origin;
6607
- if (value !== null && value !== void 0 && value.currentTime) {
6608
- currentTime = value.currentTime;
6609
- /* Test if the current is according to the expected time format */
6610
- if (!setTimeValidatorRexexp.test(currentTime)) {
6611
- console.error("setTime value ".concat(currentTime, " does not conform to format [YYYY-MM-DDThh:mm:ssZ]. It was triggered by ").concat(origin));
6612
- } else {
6613
- targets = getTargets(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
6614
- groups = getTargetGroups(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
6615
- listenerApi.dispatch(setTimeSync(payload, targets, groups));
6616
- }
6768
+ if (!(value !== null && value !== void 0 && value.currentTime)) {
6769
+ _context.next = 8;
6770
+ break;
6617
6771
  }
6618
- case 4:
6772
+ currentTime = value.currentTime;
6773
+ /* Test if the current is according to the expected time format */
6774
+ if (setTimeValidatorRexexp.test(currentTime)) {
6775
+ _context.next = 8;
6776
+ break;
6777
+ }
6778
+ console.error("setTime value ".concat(currentTime, " does not conform to format [YYYY-MM-DDThh:mm:ssZ]. It was triggered by ").concat(origin));
6779
+ // Do not do anything
6780
+ return _context.abrupt("return");
6781
+ case 8:
6782
+ // SetTimeSyncProps contains besides currenttime many other props. Set these.
6783
+ targets = getTargets(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
6784
+ groups = getTargetGroups(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
6785
+ listenerApi.dispatch(setTimeSync(payload, targets, groups));
6786
+ case 11:
6619
6787
  case "end":
6620
6788
  return _context.stop();
6621
6789
  }
@@ -7380,7 +7548,7 @@ mapListener.startListening({
7380
7548
  actionCreator: mapActions.setMapPreset,
7381
7549
  effect: function () {
7382
7550
  var _effect2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref6, listenerApi) {
7383
- var payload, mapId, initialProps, mapPreset, _mapPreset$dimensions, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, shouldShowDataExplorer, dockedLayerManagerSize, timeSliderSpan, toggleTimeSpanAuto, defaultOverlayer, isClockVisible, clockPosition, clockSize, _filterLayers, mapLayers, baseLayers, overLayers, _newLayerIds$layers$f, _newLayerIds$layers$f2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoTimeStepLayerId, newAutoUpdateLayerId, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, _overlayersFromStore$, overlayersFromStore, foundOverlayerId, checkIsprojectionSupported, animationLength, animationEndTime, shouldEndtimeOverride, interval, timeAlreadySet, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, duration, _animationEnd, animationStart, shouldOpenLegend, legendId, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart;
7551
+ var payload, mapId, initialProps, mapPreset, _mapPreset$dimensions, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, shouldShowDockedLayerManager, shouldShowDataExplorer, dockedLayerManagerSize, dockedLayerManagerPosition, dockedLayerManagerDimensions, timeSliderSpan, toggleTimeSpanAuto, defaultOverlayer, isClockVisible, clockPosition, clockSize, _filterLayers, mapLayers, baseLayers, overLayers, _newLayerIds$layers$f, _newLayerIds$layers$f2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoTimeStepLayerId, newAutoUpdateLayerId, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, _overlayersFromStore$, overlayersFromStore, foundOverlayerId, checkIsprojectionSupported, animationLength, animationEndTime, shouldEndtimeOverride, interval, timeAlreadySet, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, duration, _animationEnd, animationStart, shouldOpenLegend, legendId, dockedLayerManagerType, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart;
7384
7552
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
7385
7553
  while (1) switch (_context2.prev = _context2.next) {
7386
7554
  case 0:
@@ -7389,10 +7557,10 @@ mapListener.startListening({
7389
7557
  mapId = payload.mapId, initialProps = payload.initialProps;
7390
7558
  mapPreset = initialProps.mapPreset;
7391
7559
  if (!mapPreset) {
7392
- _context2.next = 56;
7560
+ _context2.next = 61;
7393
7561
  break;
7394
7562
  }
7395
- 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, isClockVisible = mapPreset.isClockVisible, clockPosition = mapPreset.clockPosition, clockSize = mapPreset.clockSize;
7563
+ 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, shouldShowDockedLayerManager = mapPreset.shouldShowDockedLayerManager, shouldShowDataExplorer = mapPreset.shouldShowDataExplorer, dockedLayerManagerSize = mapPreset.dockedLayerManagerSize, dockedLayerManagerPosition = mapPreset.dockedLayerManagerPosition, dockedLayerManagerDimensions = mapPreset.dockedLayerManagerDimensions, timeSliderSpan = mapPreset.timeSliderSpan, toggleTimeSpanAuto = mapPreset.toggleTimeSpanAuto, defaultOverlayer = mapPreset.defaultOverlayer, isClockVisible = mapPreset.isClockVisible, clockPosition = mapPreset.clockPosition, clockSize = mapPreset.clockSize;
7396
7564
  _filterLayers = filterLayers(layers), mapLayers = _filterLayers.mapLayers, baseLayers = _filterLayers.baseLayers, overLayers = _filterLayers.overLayers;
7397
7565
  if (layers) {
7398
7566
  // make sure all layers have a unique id before going forward
@@ -7658,15 +7826,40 @@ mapListener.startListening({
7658
7826
  dockedLayerManagerSize: dockedLayerManagerSize
7659
7827
  }));
7660
7828
  }
7661
- case 46:
7829
+ dockedLayerManagerType = "".concat(DialogTypes.DockedLayerManager, "-").concat(mapId);
7830
+ if (shouldShowDockedLayerManager !== undefined) {
7831
+ listenerApi.dispatch(uiActions.setToggleOpenDialog({
7832
+ type: dockedLayerManagerType,
7833
+ setOpen: shouldShowDockedLayerManager
7834
+ }));
7835
+ }
7836
+ if (shouldShowDockedLayerManager) {
7837
+ listenerApi.dispatch(uiActions.setToggleOpenDialog({
7838
+ type: DialogTypes.LayerManager,
7839
+ setOpen: false
7840
+ }));
7841
+ }
7842
+ if (dockedLayerManagerPosition) {
7843
+ listenerApi.dispatch(mapActions.setDockedLayerManagerPosition({
7844
+ mapId: mapId,
7845
+ dockedLayerManagerPosition: dockedLayerManagerPosition
7846
+ }));
7847
+ }
7848
+ if (dockedLayerManagerDimensions) {
7849
+ listenerApi.dispatch(mapActions.setDockedLayerManagerDimensions({
7850
+ mapId: mapId,
7851
+ dockedLayerManagerDimensions: dockedLayerManagerDimensions
7852
+ }));
7853
+ }
7854
+ case 51:
7662
7855
  if (!(animationEndTime && (shouldEndtimeOverride || !(shouldAutoUpdate || shouldAnimate)))) {
7663
- _context2.next = 56;
7856
+ _context2.next = 61;
7664
7857
  break;
7665
7858
  }
7666
7859
  fiveMinuteDelayForAnimation = 1000 * 60 * 5; // eslint-disable-next-line no-await-in-loop
7667
- _context2.next = 50;
7860
+ _context2.next = 55;
7668
7861
  return listenerApi.delay(fiveMinuteDelayForAnimation);
7669
- case 50:
7862
+ case 55:
7670
7863
  _animationEnd2 = getAnimationEndTime(listenerApi.getState(), mapId);
7671
7864
  listenerApi.dispatch(mapActions.setAnimationEndTime({
7672
7865
  mapId: mapId,
@@ -7681,13 +7874,13 @@ mapListener.startListening({
7681
7874
  minutes: 5
7682
7875
  }).toISOString()
7683
7876
  }));
7684
- _context2.next = 46;
7877
+ _context2.next = 51;
7685
7878
  break;
7686
- case 56:
7687
- _context2.next = 61;
7879
+ case 61:
7880
+ _context2.next = 66;
7688
7881
  break;
7689
- case 58:
7690
- _context2.prev = 58;
7882
+ case 63:
7883
+ _context2.prev = 63;
7691
7884
  _context2.t0 = _context2["catch"](1);
7692
7885
  if (_context2.t0 instanceof Error) {
7693
7886
  listenerApi.dispatch(mapActions.setMapPresetError({
@@ -7695,11 +7888,11 @@ mapListener.startListening({
7695
7888
  error: _context2.t0.message
7696
7889
  }));
7697
7890
  }
7698
- case 61:
7891
+ case 66:
7699
7892
  case "end":
7700
7893
  return _context2.stop();
7701
7894
  }
7702
- }, _callee2, null, [[1, 58]]);
7895
+ }, _callee2, null, [[1, 63]]);
7703
7896
  }));
7704
7897
  function effect(_x3, _x4) {
7705
7898
  return _effect2.apply(this, arguments);
@@ -9375,4 +9568,4 @@ var configureOpenGeoWebStore = function configureOpenGeoWebStore() {
9375
9568
  });
9376
9569
  };
9377
9570
 
9378
- export { IS_LEGEND_OPEN_BY_DEFAULT, SECONDS_IN_DAY, SECONDS_IN_HOUR, commonActions, commonListener, commonReducers, commonSelectors, configureOpenGeoWebStore, createMockStore, createViewObjectForNewMap, drawingToolActions, drawingToolListener, drawingToolReducer, selectors as drawingToolSelectors, filterLayers$1 as filterLayers, genericActions, genericListener, selectors$5 as genericSelectors, getSingularDrawtoolDrawLayerId, getUserAddedServices, getViewObjectForMapId, getViewObjectForSyncGroup, initialState$3 as initialState, layerActions, layerReducer, selectors$2 as layerSelectors, types$2 as layerTypes, utils$1 as layerUtils, layersListener, constants as linkComponentTypesConstants, loadingIndicatorActions, constants$1 as loadingIndicatorConstants, loadingIndicatorReducer, selectors$4 as loadingIndicatorSelectors, mapActions, enums as mapEnums, mapListener, mapReducer, selectors$1 as mapSelectors, types$3 as mapTypes, mapUtils, metronomeListener, openlayersListener, routerActions, routerListener, routerReducer, utils as routerUtils, selectorMemoizationOptions, serviceActions, serviceListener, serviceReducer, selectors$7 as serviceSelectors, setUserAddedServices, storeMiddlewares, storeReducerMap, storeTestSettings, storeTestUtils, utils$3 as storeUtils, constants$2 as syncConstants, syncGroupsActions, syncGroupsListener, syncGroupsReducer, selector as syncGroupsSelector, selectors$6 as syncGroupsSelectors, types$1 as syncGroupsTypes, types$1 as types, uiActions, uiReducer, selectors$3 as uiSelectors, types as uiTypes, unifyReducerMaps, useSetupDialog, useUpdateSharedData };
9571
+ export { IS_LEGEND_OPEN_BY_DEFAULT, SECONDS_IN_DAY, SECONDS_IN_HOUR, commonActions, commonListener, commonReducers, commonSelectors, configureOpenGeoWebStore, createMockStore, createViewObjectForNewMap, drawingToolActions, drawingToolListener, drawingToolReducer, selectors as drawingToolSelectors, filterLayers$1 as filterLayers, genericActions, genericListener, selectors$5 as genericSelectors, getSingularDrawtoolDrawLayerId, getUserAddedServices, getViewObjectForMapId, getViewObjectForSyncGroup, initialState$3 as initialState, layerActions, layerReducer, selectors$2 as layerSelectors, types$2 as layerTypes, utils$1 as layerUtils, layersListener, constants as linkComponentTypesConstants, loadingIndicatorActions, constants$1 as loadingIndicatorConstants, loadingIndicatorReducer, selectors$4 as loadingIndicatorSelectors, mapActions, enums as mapEnums, mapListener, mapReducer, selectors$1 as mapSelectors, types$3 as mapTypes, mapUtils, metronomeListener, openlayersListener, routerActions, routerListener, routerReducer, utils as routerUtils, selectorMemoizationOptions, serviceActions, serviceListener, serviceReducer, selectors$7 as serviceSelectors, setUserAddedServices, storeMiddlewares, storeReducerMap, storeTestSettings, storeTestUtils, utils$3 as storeUtils, constants$2 as syncConstants, syncGroupsActions, syncGroupsListener, syncGroupsReducer, selector as syncGroupsSelector, selectors$6 as syncGroupsSelectors, types$1 as syncGroupsTypes, types$1 as types, uiActions, uiReducer, selectors$3 as uiSelectors, types as uiTypes, unifyReducerMaps, useSetupDialog, useSyncgroupTimeState, useUpdateSharedData };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "15.2.0",
3
+ "version": "15.3.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": "15.2.0",
11
+ "@opengeoweb/shared": "15.3.0",
12
12
  "react-redux": "^9.2.0",
13
13
  "@reduxjs/toolkit": "^2.6.1",
14
- "@opengeoweb/webmap-react": "15.2.0",
15
- "@opengeoweb/webmap": "15.2.0",
14
+ "@opengeoweb/webmap-react": "15.3.0",
15
+ "@opengeoweb/webmap": "15.3.0",
16
16
  "immer": "^10.0.3",
17
17
  "lodash": "^4.17.21",
18
- "@opengeoweb/metronome": "15.2.0",
19
- "@opengeoweb/time-slider": "15.2.0",
18
+ "@opengeoweb/metronome": "15.3.0",
19
+ "@opengeoweb/time-slider": "15.3.0",
20
20
  "react-router-dom": "^6.23.1",
21
21
  "ol": "^10.4.0",
22
22
  "@turf/turf": "^7.2.0",
@@ -1,5 +1,6 @@
1
1
  import type { CoreAppStore } from '../types';
2
2
  import type { LinkedState, PotentialData, SynchronizationGroupState, SynchronizationSource } from './syncGroups/types';
3
+ import type { TimeSliderStartEndStepCurrent } from '../map/types';
3
4
  export declare const getSynchronizationGroupStore: (store: CoreAppStore) => SynchronizationGroupState;
4
5
  export declare const getTime: ((state: SynchronizationGroupState, id: string) => import("./synchronizationActions/types").SetTimeSyncProps | null) & {
5
6
  clearCache: () => void;
@@ -386,3 +387,24 @@ export declare const getSelectedFeatureAsGeoJSON: ((state: SynchronizationGroupS
386
387
  memoize: typeof import("reselect").weakMapMemoize;
387
388
  argsMemoize: typeof import("reselect").weakMapMemoize;
388
389
  };
390
+ export declare const getSyncedStartCenterEndStepCurrentTime: ((state: any, ...params: any[]) => TimeSliderStartEndStepCurrent | undefined) & {
391
+ clearCache: () => void;
392
+ resultsCount: () => number;
393
+ resetResultsCount: () => void;
394
+ } & {
395
+ resultFunc: (...resultFuncArgs: readonly any[]) => TimeSliderStartEndStepCurrent | undefined;
396
+ memoizedResultFunc: ((...resultFuncArgs: readonly any[]) => TimeSliderStartEndStepCurrent | undefined) & {
397
+ clearCache: () => void;
398
+ resultsCount: () => number;
399
+ resetResultsCount: () => void;
400
+ };
401
+ lastResult: () => TimeSliderStartEndStepCurrent | undefined;
402
+ dependencies: import("reselect").SelectorArray<any>;
403
+ recomputations: () => number;
404
+ resetRecomputations: () => void;
405
+ dependencyRecomputations: () => number;
406
+ resetDependencyRecomputations: () => void;
407
+ } & {
408
+ memoize: typeof import("reselect").weakMapMemoize;
409
+ argsMemoize: typeof import("reselect").weakMapMemoize;
410
+ };
@@ -0,0 +1,8 @@
1
+ import type { TimeSliderStartEndStepCurrent } from '../../map/map/types';
2
+ /**
3
+ * This registers a new syncgroup souce for given panel id. The source is not synced to any group by default.
4
+ * When the user links the source with a group, this hook returns an object with the timeslider state: start, end, step and current time.
5
+ * @param panelId panelId to register
6
+ * @returns the timeslider state
7
+ */
8
+ export declare const useSyncgroupTimeState: (panelId: string, debounceMs?: number) => TimeSliderStartEndStepCurrent | undefined;
@@ -0,0 +1 @@
1
+ export {};
@@ -7,3 +7,4 @@ export type { SynchronizationGroupModuleState } from './types';
7
7
  export * as syncGroupsSelectors from './selectors';
8
8
  export * as syncGroupsTypes from './types';
9
9
  export * as syncGroupsSelector from './selector';
10
+ export * from './hooks';
@@ -1,5 +1,5 @@
1
1
  export * from './service';
2
2
  export * from './map';
3
3
  export * from './layer';
4
- export type { WebMapStateModuleState, MapPreset, MapPresetInitialProps, TimeSliderStartCenterEndTime, } from './types';
4
+ export type { WebMapStateModuleState, MapPreset, MapPresetInitialProps, TimeSliderStartEndStep, } from './types';
5
5
  export * as storeTestSettings from './storeTestSettings';
@@ -1297,6 +1297,35 @@ export declare const getLayerService: ((state: any, layerId: any) => string) & {
1297
1297
  memoize: typeof import("reselect").weakMapMemoize;
1298
1298
  argsMemoize: typeof import("reselect").weakMapMemoize;
1299
1299
  };
1300
+ /**
1301
+ * Gets layer service name
1302
+ *
1303
+ * Example: layerService = getLayerServiceName(store, 'layerId_1')
1304
+ * @param {object} store store: object - object from which the layers state will be extracted
1305
+ * @param {string} layerId layerId: string - Id of the layer
1306
+ * @returns {string} returnType: string - layer service name
1307
+ */
1308
+ export declare const getLayerServiceName: ((state: any, ...params: any[]) => string) & {
1309
+ clearCache: () => void;
1310
+ resultsCount: () => number;
1311
+ resetResultsCount: () => void;
1312
+ } & {
1313
+ resultFunc: (...resultFuncArgs: readonly any[]) => string;
1314
+ memoizedResultFunc: ((...resultFuncArgs: readonly any[]) => string) & {
1315
+ clearCache: () => void;
1316
+ resultsCount: () => number;
1317
+ resetResultsCount: () => void;
1318
+ };
1319
+ lastResult: () => string;
1320
+ dependencies: import("reselect").SelectorArray<any>;
1321
+ recomputations: () => number;
1322
+ resetRecomputations: () => void;
1323
+ dependencyRecomputations: () => number;
1324
+ resetDependencyRecomputations: () => void;
1325
+ } & {
1326
+ memoize: typeof import("reselect").weakMapMemoize;
1327
+ argsMemoize: typeof import("reselect").weakMapMemoize;
1328
+ };
1300
1329
  /**
1301
1330
  * Gets selected style of the passed layer
1302
1331
  *
@@ -1,6 +1,6 @@
1
1
  import type { PayloadAction, Draft } from '@reduxjs/toolkit';
2
2
  import type { MapPinLocationPayload, SetBboxPayload, SetStepBackWardOrForward, UpdateAllMapDimensionsPayload } from '@opengeoweb/webmap-react';
3
- import type { WebMapState, SetAutoLayerIdPayload, SetMapAnimationStartPayload, SetMapAnimationStopPayload, SetTimeSliderSpanPayload, SetTimeStepPayload, SetAnimationStartTimePayload, SetAnimationEndTimePayload, SetAnimationDelayPayload, MoveLayerPayload, SetTimeSliderWidthPayload, SetTimeSliderCenterTimePayload, SetEndTimeOverriding, ToggleAutoUpdatePayload, ToggleTimestepAutoPayload, ToggleTimeSpanAutoPayload, ToggleTimeSliderHoverPayload, DisableMapPinPayload, ToggleTimeSliderIsVisiblePayload, SetDockedLayerManagerSize, ToggleAnimationLengthAutoPayload, SetDefaultMapSettingsPayload, ToggleClockPayload, SetClockPositionSizePayload } from './types';
3
+ import type { WebMapState, SetAutoLayerIdPayload, SetMapAnimationStartPayload, SetMapAnimationStopPayload, SetTimeSliderSpanPayload, SetTimeStepPayload, SetAnimationStartTimePayload, SetAnimationEndTimePayload, SetAnimationDelayPayload, MoveLayerPayload, SetTimeSliderWidthPayload, SetTimeSliderCenterTimePayload, SetEndTimeOverriding, ToggleAutoUpdatePayload, ToggleTimestepAutoPayload, ToggleTimeSpanAutoPayload, ToggleTimeSliderHoverPayload, DisableMapPinPayload, ToggleTimeSliderIsVisiblePayload, SetDockedLayerManagerSize, SetDockedLayerManagerPosition, SetDockedLayerManagerDimensions, ToggleAnimationLengthAutoPayload, SetDefaultMapSettingsPayload, ToggleClockPayload, SetClockPositionSizePayload } from './types';
4
4
  import type { ToggleMapPinIsVisiblePayload, ToggleZoomControlsPayload } from '../types';
5
5
  import type { MapActionOrigin } from './enums';
6
6
  /**
@@ -54,6 +54,8 @@ export declare const slice: import("@reduxjs/toolkit").Slice<WebMapState, {
54
54
  setDisableMapPin: (draft: Draft<WebMapState>, action: PayloadAction<DisableMapPinPayload>) => void;
55
55
  toggleMapPinIsVisible: (draft: Draft<WebMapState>, action: PayloadAction<ToggleMapPinIsVisiblePayload>) => void;
56
56
  setDockedLayerManagerSize: (draft: Draft<WebMapState>, action: PayloadAction<SetDockedLayerManagerSize>) => void;
57
+ setDockedLayerManagerPosition: (draft: Draft<WebMapState>, action: PayloadAction<SetDockedLayerManagerPosition>) => void;
58
+ setDockedLayerManagerDimensions: (draft: Draft<WebMapState>, action: PayloadAction<SetDockedLayerManagerDimensions>) => void;
57
59
  setMapPresetError: (_draft: Draft<WebMapState>, _action: PayloadAction<{
58
60
  mapId: string;
59
61
  error?: string;
@@ -112,6 +114,8 @@ export declare const mapActions: {
112
114
  setDisableMapPin: import("@reduxjs/toolkit").ActionCreatorWithPayload<DisableMapPinPayload, "mapReducer/setDisableMapPin">;
113
115
  toggleMapPinIsVisible: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleMapPinIsVisiblePayload, "mapReducer/toggleMapPinIsVisible">;
114
116
  setDockedLayerManagerSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetDockedLayerManagerSize, "mapReducer/setDockedLayerManagerSize">;
117
+ setDockedLayerManagerPosition: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetDockedLayerManagerPosition, "mapReducer/setDockedLayerManagerPosition">;
118
+ setDockedLayerManagerDimensions: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetDockedLayerManagerDimensions, "mapReducer/setDockedLayerManagerDimensions">;
115
119
  setMapPresetError: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
116
120
  mapId: string;
117
121
  error?: string;
@@ -1,7 +1,7 @@
1
1
  import type { Bbox, ClockPosition, ClockSize, MapPreset, WebMap, WebMapState } from './types';
2
2
  import type { CoreAppStore } from '../../types';
3
3
  import { uiTypes } from '../../ui';
4
- import type { Dimension, HarmonieInitialPropsResult, InitialTimeSliderProps, Layer, MultiMapInitialProps, ReduxLayer, TimeSliderStartCenterEndTime, WebMapAnimationList } from '../types';
4
+ import type { Dimension, DockedLayerManagerPosition, DockedLayerManagerSize, DockedLayerManagerDimensions, HarmonieInitialPropsResult, InitialTimeSliderProps, Layer, MultiMapInitialProps, ReduxLayer, TimeSliderStartEndStep, WebMapAnimationList } from '../types';
5
5
  /**
6
6
  * Gets the map state by mapId
7
7
  *
@@ -1332,18 +1332,18 @@ export declare const getMapTimeSliderWidth: ((state: CoreAppStore, mapId: string
1332
1332
  * @returns {number} returnType: number - center time as a unix timestamp
1333
1333
  */
1334
1334
  export declare const getMapTimeSliderCenterTime: (store: CoreAppStore, mapId: string) => number;
1335
- export declare const getMapTimeSliderStartCenterEndAndStep: ((state: CoreAppStore, mapId: string) => TimeSliderStartCenterEndTime) & {
1335
+ export declare const getMapTimeSliderStartCenterEndAndStep: ((state: CoreAppStore, mapId: string) => TimeSliderStartEndStep) & {
1336
1336
  clearCache: () => void;
1337
1337
  resultsCount: () => number;
1338
1338
  resetResultsCount: () => void;
1339
1339
  } & {
1340
- resultFunc: (resultFuncArgs_0: WebMap | undefined) => TimeSliderStartCenterEndTime;
1341
- memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => TimeSliderStartCenterEndTime) & {
1340
+ resultFunc: (resultFuncArgs_0: WebMap | undefined) => TimeSliderStartEndStep;
1341
+ memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => TimeSliderStartEndStep) & {
1342
1342
  clearCache: () => void;
1343
1343
  resultsCount: () => number;
1344
1344
  resetResultsCount: () => void;
1345
1345
  };
1346
- lastResult: () => TimeSliderStartCenterEndTime;
1346
+ lastResult: () => TimeSliderStartEndStep;
1347
1347
  dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
1348
1348
  recomputations: () => number;
1349
1349
  resetRecomputations: () => void;
@@ -2162,8 +2162,8 @@ export declare const getMapPreset: ((state: CoreAppStore & uiTypes.UIModuleState
2162
2162
  resultsCount: () => number;
2163
2163
  resetResultsCount: () => void;
2164
2164
  } & {
2165
- 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: Dimension[] | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: boolean | undefined, resultFuncArgs_21: string | undefined, resultFuncArgs_22: boolean | undefined, resultFuncArgs_23: ClockPosition | undefined, resultFuncArgs_24: ClockSize | undefined, resultFuncArgs_25: uiTypes.UIStoreType, resultFuncArgs_26: string, resultFuncArgs_27: string) => MapPreset;
2166
- 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: Dimension[] | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: boolean | undefined, resultFuncArgs_21: string | undefined, resultFuncArgs_22: boolean | undefined, resultFuncArgs_23: ClockPosition | undefined, resultFuncArgs_24: ClockSize | undefined, resultFuncArgs_25: uiTypes.UIStoreType, resultFuncArgs_26: string, resultFuncArgs_27: string) => MapPreset) & {
2165
+ 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: Dimension[] | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: boolean | undefined, resultFuncArgs_21: string | undefined, resultFuncArgs_22: DockedLayerManagerSize, resultFuncArgs_23: DockedLayerManagerPosition, resultFuncArgs_24: DockedLayerManagerDimensions | undefined, resultFuncArgs_25: boolean | undefined, resultFuncArgs_26: ClockPosition | undefined, resultFuncArgs_27: ClockSize | undefined, resultFuncArgs_28: uiTypes.UIStoreType, resultFuncArgs_29: string, resultFuncArgs_30: string) => MapPreset;
2166
+ 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: Dimension[] | undefined, resultFuncArgs_19: boolean | undefined, resultFuncArgs_20: boolean | undefined, resultFuncArgs_21: string | undefined, resultFuncArgs_22: DockedLayerManagerSize, resultFuncArgs_23: DockedLayerManagerPosition, resultFuncArgs_24: DockedLayerManagerDimensions | undefined, resultFuncArgs_25: boolean | undefined, resultFuncArgs_26: ClockPosition | undefined, resultFuncArgs_27: ClockSize | undefined, resultFuncArgs_28: uiTypes.UIStoreType, resultFuncArgs_29: string, resultFuncArgs_30: string) => MapPreset) & {
2167
2167
  clearCache: () => void;
2168
2168
  resultsCount: () => number;
2169
2169
  resetResultsCount: () => void;
@@ -2709,7 +2709,7 @@ export declare const getMapPreset: ((state: CoreAppStore & uiTypes.UIModuleState
2709
2709
  } & {
2710
2710
  memoize: typeof import("reselect").weakMapMemoize;
2711
2711
  argsMemoize: typeof import("reselect").weakMapMemoize;
2712
- }, ((state: CoreAppStore, mapId: string) => boolean | undefined) & {
2712
+ }, (store: CoreAppStore, mapId: string) => DockedLayerManagerSize, (store: CoreAppStore, mapId: string) => DockedLayerManagerPosition, (store: CoreAppStore, mapId: string) => DockedLayerManagerDimensions | undefined, ((state: CoreAppStore, mapId: string) => boolean | undefined) & {
2713
2713
  clearCache: () => void;
2714
2714
  resultsCount: () => number;
2715
2715
  resetResultsCount: () => void;
@@ -2948,18 +2948,68 @@ export declare const getIsEnabledLayersForMapDimension: ((state: CoreAppStore, _
2948
2948
  * @param {string} mapId mapId: string - Id of the map
2949
2949
  * @returns {DockedLayerManagerSize} returnType: string
2950
2950
  */
2951
- export declare const getDockedLayerManagerSize: ((state: CoreAppStore, mapId: string) => import("./types").DockedLayerManagerSize | undefined) & {
2951
+ export declare const getDockedLayerManagerSize: ((state: CoreAppStore, mapId: string) => DockedLayerManagerSize | undefined) & {
2952
+ clearCache: () => void;
2953
+ resultsCount: () => number;
2954
+ resetResultsCount: () => void;
2955
+ } & {
2956
+ resultFunc: (resultFuncArgs_0: WebMap | undefined) => DockedLayerManagerSize | undefined;
2957
+ memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => DockedLayerManagerSize | undefined) & {
2958
+ clearCache: () => void;
2959
+ resultsCount: () => number;
2960
+ resetResultsCount: () => void;
2961
+ };
2962
+ lastResult: () => DockedLayerManagerSize | undefined;
2963
+ dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
2964
+ recomputations: () => number;
2965
+ resetRecomputations: () => void;
2966
+ dependencyRecomputations: () => number;
2967
+ resetDependencyRecomputations: () => void;
2968
+ } & {
2969
+ memoize: typeof import("reselect").weakMapMemoize;
2970
+ argsMemoize: typeof import("reselect").weakMapMemoize;
2971
+ };
2972
+ /**
2973
+ * Returns the dockedLayerManagerPosition originally set in mapPresets
2974
+ *
2975
+ * Example getDockedLayerManagerPosition(store);
2976
+ * @param {object} store store: object - store object
2977
+ * @param {string} mapId mapId: string - Id of the map
2978
+ * @returns {DockedLayerManagerPosition} returnType: object
2979
+ */
2980
+ export declare const getDockedLayerManagerPosition: ((state: CoreAppStore, mapId: string) => DockedLayerManagerPosition) & {
2981
+ clearCache: () => void;
2982
+ resultsCount: () => number;
2983
+ resetResultsCount: () => void;
2984
+ } & {
2985
+ resultFunc: (resultFuncArgs_0: WebMap | undefined) => DockedLayerManagerPosition;
2986
+ memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => DockedLayerManagerPosition) & {
2987
+ clearCache: () => void;
2988
+ resultsCount: () => number;
2989
+ resetResultsCount: () => void;
2990
+ };
2991
+ lastResult: () => DockedLayerManagerPosition;
2992
+ dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
2993
+ recomputations: () => number;
2994
+ resetRecomputations: () => void;
2995
+ dependencyRecomputations: () => number;
2996
+ resetDependencyRecomputations: () => void;
2997
+ } & {
2998
+ memoize: typeof import("reselect").weakMapMemoize;
2999
+ argsMemoize: typeof import("reselect").weakMapMemoize;
3000
+ };
3001
+ export declare const getDockedLayerManagerDimensions: ((state: CoreAppStore, mapId: string) => DockedLayerManagerDimensions | undefined) & {
2952
3002
  clearCache: () => void;
2953
3003
  resultsCount: () => number;
2954
3004
  resetResultsCount: () => void;
2955
3005
  } & {
2956
- resultFunc: (resultFuncArgs_0: WebMap | undefined) => import("./types").DockedLayerManagerSize | undefined;
2957
- memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => import("./types").DockedLayerManagerSize | undefined) & {
3006
+ resultFunc: (resultFuncArgs_0: WebMap | undefined) => DockedLayerManagerDimensions | undefined;
3007
+ memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => DockedLayerManagerDimensions | undefined) & {
2958
3008
  clearCache: () => void;
2959
3009
  resultsCount: () => number;
2960
3010
  resetResultsCount: () => void;
2961
3011
  };
2962
- lastResult: () => import("./types").DockedLayerManagerSize | undefined;
3012
+ lastResult: () => DockedLayerManagerDimensions | undefined;
2963
3013
  dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
2964
3014
  recomputations: () => number;
2965
3015
  resetRecomputations: () => void;
@@ -52,6 +52,8 @@ export interface WebMap {
52
52
  displayMapPin?: boolean;
53
53
  legendId?: string;
54
54
  dockedLayerManagerSize?: DockedLayerManagerSize;
55
+ dockedLayerManagerPosition?: DockedLayerManagerPosition;
56
+ dockedLayerManagerDimensions?: DockedLayerManagerDimensions;
55
57
  isTimeScrollingEnabled?: boolean;
56
58
  selectedMapIds?: string[];
57
59
  isClockVisible?: boolean;
@@ -59,6 +61,14 @@ export interface WebMap {
59
61
  clockSize?: ClockSize;
60
62
  }
61
63
  export type DockedLayerManagerSize = 'sizeSmall' | 'sizeMedium' | 'sizeLarge' | '';
64
+ export interface DockedLayerManagerPosition {
65
+ x: number;
66
+ y: number;
67
+ }
68
+ export interface DockedLayerManagerDimensions {
69
+ width: number;
70
+ height: number;
71
+ }
62
72
  export interface WebMapState {
63
73
  byId: Record<string, WebMap>;
64
74
  allIds: string[];
@@ -108,6 +118,8 @@ export interface MapPreset {
108
118
  shouldShowLayerManager?: boolean;
109
119
  shouldShowDockedLayerManager?: boolean;
110
120
  dockedLayerManagerSize?: DockedLayerManagerSize;
121
+ dockedLayerManagerPosition?: DockedLayerManagerPosition;
122
+ dockedLayerManagerDimensions?: DockedLayerManagerDimensions;
111
123
  selectedMapIds?: string[];
112
124
  timeSliderSpan?: number;
113
125
  toggleTimeSpanAuto?: boolean;
@@ -242,6 +254,17 @@ export interface SetMapPresetPayload {
242
254
  export interface SetDockedLayerManagerSize {
243
255
  mapId: string;
244
256
  dockedLayerManagerSize: DockedLayerManagerSize;
257
+ origin?: MapActionOrigin;
258
+ }
259
+ export interface SetDockedLayerManagerPosition {
260
+ mapId: string;
261
+ dockedLayerManagerPosition: DockedLayerManagerPosition;
262
+ origin?: MapActionOrigin;
263
+ }
264
+ export interface SetDockedLayerManagerDimensions {
265
+ mapId: string;
266
+ dockedLayerManagerDimensions: DockedLayerManagerDimensions;
267
+ origin?: MapActionOrigin;
245
268
  }
246
269
  export interface ISO8601Interval {
247
270
  startTime: string;
@@ -251,12 +274,14 @@ export interface ISO8601Interval {
251
274
  export interface SetDefaultMapSettingsPayload {
252
275
  preset: MapPreset;
253
276
  }
254
- export interface TimeSliderStartCenterEndTime {
277
+ export interface TimeSliderStartEndStep {
255
278
  start: number;
256
- center: number;
257
279
  end: number;
258
280
  step: number;
259
281
  }
282
+ export interface TimeSliderStartEndStepCurrent extends TimeSliderStartEndStep {
283
+ current: number;
284
+ }
260
285
  export interface MultiMapInitialProps {
261
286
  mapPreset: MapPreset[];
262
287
  syncGroupsIds: string[];