@opengeoweb/store 15.2.0 → 16.0.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 +534 -123
- package/package.json +6 -6
- package/src/store/generic/index.d.ts +1 -0
- package/src/store/generic/selectors.d.ts +26 -4
- package/src/store/generic/syncGroups/hooks.d.ts +16 -0
- package/src/store/generic/syncGroups/hooks.spec.d.ts +1 -0
- package/src/store/generic/syncGroups/index.d.ts +2 -0
- package/src/store/generic/syncGroups/selector.d.ts +20 -4
- package/src/store/generic/syncGroups/selector.spec.d.ts +1 -0
- package/src/store/generic/syncGroups/syncSourceDisplayName.d.ts +2 -0
- package/src/store/generic/syncGroups/types.d.ts +5 -0
- package/src/store/map/index.d.ts +1 -1
- package/src/store/map/layer/reducer.d.ts +4 -2
- package/src/store/map/layer/selectors.d.ts +29 -0
- package/src/store/map/layer/types.d.ts +4 -0
- package/src/store/map/map/reducer.d.ts +15 -1
- package/src/store/map/map/selectors.d.ts +108 -11
- package/src/store/map/map/types.d.ts +29 -2
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';
|
|
@@ -2301,13 +2301,26 @@ var slice$6 = createSlice({
|
|
|
2301
2301
|
},
|
|
2302
2302
|
hideLayerInfo: function hideLayerInfo(draft) {
|
|
2303
2303
|
delete draft.activeLayerInfo;
|
|
2304
|
+
},
|
|
2305
|
+
SetLayerLegendVisibilityPayload: function SetLayerLegendVisibilityPayload(draft, action) {
|
|
2306
|
+
var _action$payload22 = action.payload,
|
|
2307
|
+
layerId = _action$payload22.layerId,
|
|
2308
|
+
showLayerLegend = _action$payload22.showLayerLegend;
|
|
2309
|
+
var layer = draft.byId[layerId];
|
|
2310
|
+
if (!layer) {
|
|
2311
|
+
return;
|
|
2312
|
+
}
|
|
2313
|
+
if (!layer.showLayerLegend) {
|
|
2314
|
+
layer.showLayerLegend = true;
|
|
2315
|
+
}
|
|
2316
|
+
draft.byId[layerId].showLayerLegend = showLayerLegend;
|
|
2304
2317
|
}
|
|
2305
2318
|
},
|
|
2306
2319
|
extraReducers: function extraReducers(builder) {
|
|
2307
2320
|
builder.addCase(setTimeSync, function (draft, action) {
|
|
2308
|
-
var _action$
|
|
2309
|
-
targetsFromAction = _action$
|
|
2310
|
-
source = _action$
|
|
2321
|
+
var _action$payload23 = action.payload,
|
|
2322
|
+
targetsFromAction = _action$payload23.targets,
|
|
2323
|
+
source = _action$payload23.source;
|
|
2311
2324
|
/* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
|
|
2312
2325
|
var targets = [];
|
|
2313
2326
|
if (source) {
|
|
@@ -2337,9 +2350,9 @@ var slice$6 = createSlice({
|
|
|
2337
2350
|
* These targets can be used as payloads in new Layer actions.
|
|
2338
2351
|
* These actions are here handled via the layer reducer, as it is the same logic
|
|
2339
2352
|
*/
|
|
2340
|
-
var _action$
|
|
2341
|
-
targets = _action$
|
|
2342
|
-
source = _action$
|
|
2353
|
+
var _action$payload24 = action.payload,
|
|
2354
|
+
targets = _action$payload24.targets,
|
|
2355
|
+
source = _action$payload24.source;
|
|
2343
2356
|
return targets.reduce(function (prevState, target) {
|
|
2344
2357
|
var actionType = (source === null || source === void 0 ? void 0 : source.type) || 'GENERIC_SYNC_SETLAYERACTIONS';
|
|
2345
2358
|
var action = {
|
|
@@ -2412,6 +2425,12 @@ var createLayersWithIds = function createLayersWithIds(state, layers) {
|
|
|
2412
2425
|
}
|
|
2413
2426
|
});
|
|
2414
2427
|
};
|
|
2428
|
+
var layerHasTimeDimension = function layerHasTimeDimension(layer) {
|
|
2429
|
+
var _layer$dimensions;
|
|
2430
|
+
return !!((_layer$dimensions = layer.dimensions) !== null && _layer$dimensions !== void 0 && _layer$dimensions.some(function (dimension) {
|
|
2431
|
+
return dimension.name === 'time';
|
|
2432
|
+
}));
|
|
2433
|
+
};
|
|
2415
2434
|
var initialState$4 = {
|
|
2416
2435
|
byId: {},
|
|
2417
2436
|
allIds: []
|
|
@@ -2724,33 +2743,64 @@ var slice$5 = createSlice({
|
|
|
2724
2743
|
}
|
|
2725
2744
|
draft.byId[mapId].dockedLayerManagerSize = dockedLayerManagerSize;
|
|
2726
2745
|
},
|
|
2746
|
+
setDockedLayerManagerPosition: function setDockedLayerManagerPosition(draft, action) {
|
|
2747
|
+
var _action$payload25 = action.payload,
|
|
2748
|
+
mapId = _action$payload25.mapId,
|
|
2749
|
+
dockedLayerManagerPosition = _action$payload25.dockedLayerManagerPosition;
|
|
2750
|
+
if (!draft.byId[mapId]) {
|
|
2751
|
+
return;
|
|
2752
|
+
}
|
|
2753
|
+
draft.byId[mapId].dockedLayerManagerPosition = dockedLayerManagerPosition;
|
|
2754
|
+
},
|
|
2755
|
+
setDockedLayerManagerDimensions: function setDockedLayerManagerDimensions(draft, action) {
|
|
2756
|
+
var _action$payload26 = action.payload,
|
|
2757
|
+
mapId = _action$payload26.mapId,
|
|
2758
|
+
dockedLayerManagerDimensions = _action$payload26.dockedLayerManagerDimensions;
|
|
2759
|
+
if (!draft.byId[mapId]) {
|
|
2760
|
+
return;
|
|
2761
|
+
}
|
|
2762
|
+
draft.byId[mapId].dockedLayerManagerDimensions = dockedLayerManagerDimensions;
|
|
2763
|
+
},
|
|
2727
2764
|
setMapPresetError: function setMapPresetError(_draft, _action) {},
|
|
2728
2765
|
setDefaultMapSettings: function setDefaultMapSettings(draft, action) {
|
|
2729
2766
|
draft.defaultMapSettings = action.payload.preset;
|
|
2730
2767
|
},
|
|
2731
2768
|
changeOverlayer: function changeOverlayer(draft, action) {
|
|
2732
|
-
var _action$
|
|
2733
|
-
mapId = _action$
|
|
2734
|
-
selectedOverlayer = _action$
|
|
2769
|
+
var _action$payload27 = action.payload,
|
|
2770
|
+
mapId = _action$payload27.mapId,
|
|
2771
|
+
selectedOverlayer = _action$payload27.selectedOverlayer;
|
|
2735
2772
|
if (!draft.byId[mapId]) {
|
|
2736
2773
|
return;
|
|
2737
2774
|
}
|
|
2738
2775
|
draft.byId[mapId].overLayers = [selectedOverlayer];
|
|
2739
2776
|
},
|
|
2740
2777
|
toggleClock: function toggleClock(draft, action) {
|
|
2741
|
-
var _action$
|
|
2742
|
-
mapId = _action$
|
|
2743
|
-
isClockVisible = _action$
|
|
2778
|
+
var _action$payload28 = action.payload,
|
|
2779
|
+
mapId = _action$payload28.mapId,
|
|
2780
|
+
isClockVisible = _action$payload28.isClockVisible;
|
|
2744
2781
|
if (!draft.byId[mapId]) {
|
|
2745
2782
|
return;
|
|
2746
2783
|
}
|
|
2747
2784
|
draft.byId[mapId].isClockVisible = isClockVisible;
|
|
2785
|
+
if (!isClockVisible) {
|
|
2786
|
+
// close options menu when clock is closed
|
|
2787
|
+
draft.byId[mapId].isClockOptionsMenuVisible = false;
|
|
2788
|
+
}
|
|
2789
|
+
},
|
|
2790
|
+
toggleClockOptions: function toggleClockOptions(draft, action) {
|
|
2791
|
+
var _action$payload29 = action.payload,
|
|
2792
|
+
mapId = _action$payload29.mapId,
|
|
2793
|
+
isClockOptionsMenuVisible = _action$payload29.isClockOptionsMenuVisible;
|
|
2794
|
+
if (!draft.byId[mapId]) {
|
|
2795
|
+
return;
|
|
2796
|
+
}
|
|
2797
|
+
draft.byId[mapId].isClockOptionsMenuVisible = isClockOptionsMenuVisible;
|
|
2748
2798
|
},
|
|
2749
2799
|
setClockPositionSize: function setClockPositionSize(draft, action) {
|
|
2750
|
-
var _action$
|
|
2751
|
-
mapId = _action$
|
|
2752
|
-
position = _action$
|
|
2753
|
-
size = _action$
|
|
2800
|
+
var _action$payload30 = action.payload,
|
|
2801
|
+
mapId = _action$payload30.mapId,
|
|
2802
|
+
position = _action$payload30.position,
|
|
2803
|
+
size = _action$payload30.size;
|
|
2754
2804
|
if (!draft.byId[mapId]) {
|
|
2755
2805
|
return;
|
|
2756
2806
|
}
|
|
@@ -2764,10 +2814,10 @@ var slice$5 = createSlice({
|
|
|
2764
2814
|
},
|
|
2765
2815
|
extraReducers: function extraReducers(builder) {
|
|
2766
2816
|
builder.addCase(layerActions.addLayer, function (draft, action) {
|
|
2767
|
-
var _action$
|
|
2768
|
-
layerId = _action$
|
|
2769
|
-
mapId = _action$
|
|
2770
|
-
layer = _action$
|
|
2817
|
+
var _action$payload31 = action.payload,
|
|
2818
|
+
layerId = _action$payload31.layerId,
|
|
2819
|
+
mapId = _action$payload31.mapId,
|
|
2820
|
+
layer = _action$payload31.layer;
|
|
2771
2821
|
if (!draft.byId[mapId]) {
|
|
2772
2822
|
return;
|
|
2773
2823
|
}
|
|
@@ -2775,21 +2825,21 @@ var slice$5 = createSlice({
|
|
|
2775
2825
|
console.warn("Warning: Layer id ".concat(layerId, " was already taken"));
|
|
2776
2826
|
return;
|
|
2777
2827
|
}
|
|
2778
|
-
|
|
2828
|
+
var isFeatureLayer = (layer === null || layer === void 0 ? void 0 : layer.layerType) === LayerType.featureLayer;
|
|
2829
|
+
if (!isFeatureLayer && !draft.byId[mapId].autoUpdateLayerId && !draft.byId[mapId].autoTimeStepLayerId && layerHasTimeDimension(layer)) {
|
|
2779
2830
|
draft.byId[mapId].autoUpdateLayerId = layerId;
|
|
2780
2831
|
draft.byId[mapId].autoTimeStepLayerId = layerId;
|
|
2781
2832
|
}
|
|
2782
|
-
var isFeatureLayer = (layer === null || layer === void 0 ? void 0 : layer.layerType) === LayerType.featureLayer;
|
|
2783
2833
|
if (isFeatureLayer) {
|
|
2784
2834
|
draft.byId[mapId].featureLayers.unshift(layerId);
|
|
2785
2835
|
} else {
|
|
2786
2836
|
draft.byId[mapId].mapLayers.unshift(layerId);
|
|
2787
2837
|
}
|
|
2788
2838
|
}).addCase(layerActions.duplicateMapLayer, function (draft, action) {
|
|
2789
|
-
var _action$
|
|
2790
|
-
newLayerId = _action$
|
|
2791
|
-
oldLayerId = _action$
|
|
2792
|
-
mapId = _action$
|
|
2839
|
+
var _action$payload32 = action.payload,
|
|
2840
|
+
newLayerId = _action$payload32.newLayerId,
|
|
2841
|
+
oldLayerId = _action$payload32.oldLayerId,
|
|
2842
|
+
mapId = _action$payload32.mapId;
|
|
2793
2843
|
if (!draft.byId[mapId]) {
|
|
2794
2844
|
return;
|
|
2795
2845
|
}
|
|
@@ -2806,10 +2856,10 @@ var slice$5 = createSlice({
|
|
|
2806
2856
|
draft.byId[mapId].featureLayers.unshift(newLayerId);
|
|
2807
2857
|
}
|
|
2808
2858
|
}).addCase(layerActions.addBaseLayer, function (draft, action) {
|
|
2809
|
-
var _action$
|
|
2810
|
-
layer = _action$
|
|
2811
|
-
layerId = _action$
|
|
2812
|
-
mapId = _action$
|
|
2859
|
+
var _action$payload33 = action.payload,
|
|
2860
|
+
layer = _action$payload33.layer,
|
|
2861
|
+
layerId = _action$payload33.layerId,
|
|
2862
|
+
mapId = _action$payload33.mapId;
|
|
2813
2863
|
if (!draft.byId[mapId]) {
|
|
2814
2864
|
return;
|
|
2815
2865
|
}
|
|
@@ -2825,23 +2875,23 @@ var slice$5 = createSlice({
|
|
|
2825
2875
|
draft.byId[mapId].overLayers.unshift(layerId);
|
|
2826
2876
|
}
|
|
2827
2877
|
}).addCase(layerActions.setLayers, function (draft, action) {
|
|
2878
|
+
var _layersWithIds$find;
|
|
2828
2879
|
var mapId = action.payload.mapId;
|
|
2829
2880
|
var layersWithIds = createLayersWithIds(draft, action.payload.layers);
|
|
2830
2881
|
var layerIds = layersWithIds.map(function (_ref) {
|
|
2831
2882
|
var id = _ref.id;
|
|
2832
2883
|
return id;
|
|
2833
2884
|
});
|
|
2834
|
-
var
|
|
2835
|
-
activeLayerId = _layerIds[0];
|
|
2885
|
+
var activeLayerId = (_layersWithIds$find = layersWithIds.find(layerHasTimeDimension)) === null || _layersWithIds$find === void 0 ? void 0 : _layersWithIds$find.id;
|
|
2836
2886
|
if (draft.byId[mapId]) {
|
|
2837
2887
|
draft.byId[mapId].mapLayers = layerIds;
|
|
2838
2888
|
draft.byId[mapId].autoUpdateLayerId = activeLayerId;
|
|
2839
2889
|
draft.byId[mapId].autoTimeStepLayerId = activeLayerId;
|
|
2840
2890
|
}
|
|
2841
2891
|
}).addCase(layerActions.setBaseLayers, function (draft, action) {
|
|
2842
|
-
var _action$
|
|
2843
|
-
layers = _action$
|
|
2844
|
-
mapId = _action$
|
|
2892
|
+
var _action$payload34 = action.payload,
|
|
2893
|
+
layers = _action$payload34.layers,
|
|
2894
|
+
mapId = _action$payload34.mapId;
|
|
2845
2895
|
// Split into base and overlayers
|
|
2846
2896
|
var baseLayers = [];
|
|
2847
2897
|
var overLayers = [];
|
|
@@ -2871,9 +2921,9 @@ var slice$5 = createSlice({
|
|
|
2871
2921
|
}
|
|
2872
2922
|
}
|
|
2873
2923
|
}).addCase(layerActions.layerDelete, function (draft, action) {
|
|
2874
|
-
var _action$
|
|
2875
|
-
mapId = _action$
|
|
2876
|
-
layerId = _action$
|
|
2924
|
+
var _action$payload35 = action.payload,
|
|
2925
|
+
mapId = _action$payload35.mapId,
|
|
2926
|
+
layerId = _action$payload35.layerId;
|
|
2877
2927
|
var map = draft.byId[mapId];
|
|
2878
2928
|
if (!map) {
|
|
2879
2929
|
return;
|
|
@@ -2899,9 +2949,9 @@ var slice$5 = createSlice({
|
|
|
2899
2949
|
return id !== layerId;
|
|
2900
2950
|
});
|
|
2901
2951
|
}).addCase(layerActions.baseLayerDelete, function (draft, action) {
|
|
2902
|
-
var _action$
|
|
2903
|
-
mapId = _action$
|
|
2904
|
-
layerId = _action$
|
|
2952
|
+
var _action$payload36 = action.payload,
|
|
2953
|
+
mapId = _action$payload36.mapId,
|
|
2954
|
+
layerId = _action$payload36.layerId;
|
|
2905
2955
|
if (!draft.byId[mapId]) {
|
|
2906
2956
|
return;
|
|
2907
2957
|
}
|
|
@@ -2912,14 +2962,14 @@ var slice$5 = createSlice({
|
|
|
2912
2962
|
return id !== layerId;
|
|
2913
2963
|
});
|
|
2914
2964
|
}).addCase(layerActions.layerChangeDimension, function (draft, action) {
|
|
2915
|
-
var _action$
|
|
2916
|
-
layerId = _action$
|
|
2917
|
-
dimension = _action$
|
|
2965
|
+
var _action$payload37 = action.payload,
|
|
2966
|
+
layerId = _action$payload37.layerId,
|
|
2967
|
+
dimension = _action$payload37.dimension;
|
|
2918
2968
|
produceDraftStateSetMapDimensionFromLayerChangeDimension(draft, layerId, dimension);
|
|
2919
2969
|
}).addCase(setTimeSync, function (draft, action) {
|
|
2920
|
-
var _action$
|
|
2921
|
-
targetsFromAction = _action$
|
|
2922
|
-
source = _action$
|
|
2970
|
+
var _action$payload38 = action.payload,
|
|
2971
|
+
targetsFromAction = _action$payload38.targets,
|
|
2972
|
+
source = _action$payload38.source;
|
|
2923
2973
|
/* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
|
|
2924
2974
|
var targets = [];
|
|
2925
2975
|
if (source) {
|
|
@@ -2972,9 +3022,9 @@ var slice$5 = createSlice({
|
|
|
2972
3022
|
}
|
|
2973
3023
|
});
|
|
2974
3024
|
}).addCase(setBboxSync, function (draft, action) {
|
|
2975
|
-
var _action$
|
|
2976
|
-
targetsFromAction = _action$
|
|
2977
|
-
source = _action$
|
|
3025
|
+
var _action$payload39 = action.payload,
|
|
3026
|
+
targetsFromAction = _action$payload39.targets,
|
|
3027
|
+
source = _action$payload39.source;
|
|
2978
3028
|
/* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
|
|
2979
3029
|
var targets = [];
|
|
2980
3030
|
if (source) {
|
|
@@ -3006,9 +3056,9 @@ var slice$5 = createSlice({
|
|
|
3006
3056
|
* These targets can be used as payloads in new Layer actions.
|
|
3007
3057
|
* These actions are here handled via the layer reducer, as it is the same logic
|
|
3008
3058
|
*/
|
|
3009
|
-
var _action$
|
|
3010
|
-
targets = _action$
|
|
3011
|
-
source = _action$
|
|
3059
|
+
var _action$payload40 = action.payload,
|
|
3060
|
+
targets = _action$payload40.targets,
|
|
3061
|
+
source = _action$payload40.source;
|
|
3012
3062
|
return targets.reduce(function (prevState, target) {
|
|
3013
3063
|
var actionType = (source === null || source === void 0 ? void 0 : source.type) || 'GENERIC_SYNC_SETLAYERACTIONS';
|
|
3014
3064
|
var action = {
|
|
@@ -3030,9 +3080,9 @@ var slice$5 = createSlice({
|
|
|
3030
3080
|
});
|
|
3031
3081
|
return draft;
|
|
3032
3082
|
}).addCase(mapChangeDimension, function (draft, action) {
|
|
3033
|
-
var _action$
|
|
3034
|
-
mapId = _action$
|
|
3035
|
-
dimensionFromAction = _action$
|
|
3083
|
+
var _action$payload41 = action.payload,
|
|
3084
|
+
mapId = _action$payload41.mapId,
|
|
3085
|
+
dimensionFromAction = _action$payload41.dimension;
|
|
3036
3086
|
produceDraftStateSetWebMapDimension(draft, mapId, dimensionFromAction, true);
|
|
3037
3087
|
}).addCase(setMapPreset, function (draft, action) {
|
|
3038
3088
|
var mapId = action.payload.mapId;
|
|
@@ -3052,9 +3102,9 @@ var slice$5 = createSlice({
|
|
|
3052
3102
|
draft.byId[mapId].animationDelay = defaultAnimationDelayAtStart;
|
|
3053
3103
|
draft.byId[mapId].dockedLayerManagerSize = '';
|
|
3054
3104
|
}).addCase(uiActions.registerDialog, function (draft, action) {
|
|
3055
|
-
var _action$
|
|
3056
|
-
mapId = _action$
|
|
3057
|
-
type = _action$
|
|
3105
|
+
var _action$payload42 = action.payload,
|
|
3106
|
+
mapId = _action$payload42.mapId,
|
|
3107
|
+
type = _action$payload42.type;
|
|
3058
3108
|
if (!draft.byId[mapId]) {
|
|
3059
3109
|
return;
|
|
3060
3110
|
}
|
|
@@ -3305,14 +3355,31 @@ var slice$4 = createSlice({
|
|
|
3305
3355
|
if (synchronizationGroup.targets.allIds.includes(targetId)) {
|
|
3306
3356
|
return;
|
|
3307
3357
|
}
|
|
3308
|
-
var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId]) === null || _synchronizationGroup === void 0 ? void 0 : _synchronizationGroup.linked;
|
|
3309
3358
|
synchronizationGroup.targets.allIds.push(targetId);
|
|
3310
3359
|
synchronizationGroup.targets.byId[targetId] = {
|
|
3311
3360
|
linked: linked !== false
|
|
3312
3361
|
};
|
|
3362
|
+
var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId]) === null || _synchronizationGroup === void 0 ? void 0 : _synchronizationGroup.linked;
|
|
3313
3363
|
if (isSourceLinked) {
|
|
3314
|
-
|
|
3315
|
-
|
|
3364
|
+
// In order to make syncgroup work correctly we need to have defaults
|
|
3365
|
+
var defaultS = {
|
|
3366
|
+
payloadByType: {
|
|
3367
|
+
SYNCGROUPS_TYPE_SETTIME: {
|
|
3368
|
+
value: {
|
|
3369
|
+
timeSliderSpan: defaultTimeSpan,
|
|
3370
|
+
timeSliderStep: defaultTimeStep
|
|
3371
|
+
}
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
};
|
|
3375
|
+
if (draft.sources.byId[targetId]) {
|
|
3376
|
+
// Assign object based on 1: defaults, 2: The values in the group, 3: the values of the source.
|
|
3377
|
+
mergeWith(draft.sources.byId[targetId], defaultS, synchronizationGroup, draft.sources.byId[targetId],
|
|
3378
|
+
// eslint-disable-next-line id-length, @typescript-eslint/no-unsafe-return
|
|
3379
|
+
function (a, b) {
|
|
3380
|
+
return b === null ? a : undefined;
|
|
3381
|
+
});
|
|
3382
|
+
}
|
|
3316
3383
|
}
|
|
3317
3384
|
},
|
|
3318
3385
|
syncGroupRemoveTarget: function syncGroupRemoveTarget(draft, action) {
|
|
@@ -3437,13 +3504,13 @@ var setBboxOrTimeSync = function setBboxOrTimeSync(draft, action) {
|
|
|
3437
3504
|
}
|
|
3438
3505
|
};
|
|
3439
3506
|
var _slice$actions = slice$4.actions,
|
|
3440
|
-
syncGroupAddGroup = _slice$actions.syncGroupAddGroup
|
|
3441
|
-
_slice$actions.syncGroupAddSource
|
|
3442
|
-
|
|
3507
|
+
syncGroupAddGroup = _slice$actions.syncGroupAddGroup,
|
|
3508
|
+
syncGroupAddSource = _slice$actions.syncGroupAddSource,
|
|
3509
|
+
syncGroupAddTarget = _slice$actions.syncGroupAddTarget;
|
|
3443
3510
|
_slice$actions.syncGroupClear;
|
|
3444
3511
|
_slice$actions.syncGroupLinkTarget;
|
|
3445
3512
|
_slice$actions.syncGroupRemoveGroup;
|
|
3446
|
-
_slice$actions.syncGroupRemoveSource;
|
|
3513
|
+
var syncGroupRemoveSource = _slice$actions.syncGroupRemoveSource;
|
|
3447
3514
|
_slice$actions.syncGroupRemoveTarget;
|
|
3448
3515
|
_slice$actions.syncGroupSetViewState;
|
|
3449
3516
|
var syncGroupsReducer = slice$4.reducer,
|
|
@@ -3503,9 +3570,16 @@ var getTargets = createSelector([syncGroupStore, function (syncGroupStore, paylo
|
|
|
3503
3570
|
var source = syncronizationGroup.targets.byId[payload.sourceId];
|
|
3504
3571
|
/* If the source is part of the target list, and is linked, continue syncing the other targets */
|
|
3505
3572
|
if (source !== null && source !== void 0 && source.linked) {
|
|
3573
|
+
var hasLinkedPeer = syncronizationGroup.targets.allIds.some(function (targetId) {
|
|
3574
|
+
var _syncronizationGroup$;
|
|
3575
|
+
return targetId !== payload.sourceId && ((_syncronizationGroup$ = syncronizationGroup.targets.byId[targetId]) === null || _syncronizationGroup$ === void 0 ? void 0 : _syncronizationGroup$.linked);
|
|
3576
|
+
});
|
|
3577
|
+
if (!hasLinkedPeer) {
|
|
3578
|
+
return;
|
|
3579
|
+
}
|
|
3506
3580
|
syncronizationGroup.targets.allIds.forEach(function (targetId) {
|
|
3507
3581
|
var target = syncronizationGroup.targets.byId[targetId];
|
|
3508
|
-
if (target.linked && !targetsInActionPayload[targetId]) {
|
|
3582
|
+
if (targetId !== payload.sourceId && target.linked && !targetsInActionPayload[targetId]) {
|
|
3509
3583
|
/* Remember that we have already added this target in the action payloads, prevents adding it twice */
|
|
3510
3584
|
targetsInActionPayload[targetId] = true;
|
|
3511
3585
|
/* Compose the payload */
|
|
@@ -3602,6 +3676,44 @@ var selectors$6 = /*#__PURE__*/Object.freeze({
|
|
|
3602
3676
|
syncGroupStore: syncGroupStore
|
|
3603
3677
|
});
|
|
3604
3678
|
|
|
3679
|
+
/* *
|
|
3680
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3681
|
+
* you may not use this file except in compliance with the License.
|
|
3682
|
+
* You may obtain a copy of the License at
|
|
3683
|
+
*
|
|
3684
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3685
|
+
*
|
|
3686
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3687
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3688
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3689
|
+
* See the License for the specific language governing permissions and
|
|
3690
|
+
* limitations under the License.
|
|
3691
|
+
*
|
|
3692
|
+
* Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3693
|
+
* Copyright 2026 - Finnish Meteorological Institute (FMI)
|
|
3694
|
+
* Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
|
|
3695
|
+
* */
|
|
3696
|
+
var constructSyncSourceDisplayName = function constructSyncSourceDisplayName(sourceId, viewMeta, fallbackName) {
|
|
3697
|
+
var _viewMeta$title;
|
|
3698
|
+
var rawTitle = viewMeta === null || viewMeta === void 0 || (_viewMeta$title = viewMeta.title) === null || _viewMeta$title === void 0 ? void 0 : _viewMeta$title.trim();
|
|
3699
|
+
if (rawTitle === sourceId) {
|
|
3700
|
+
return sourceId;
|
|
3701
|
+
}
|
|
3702
|
+
var title = rawTitle && rawTitle !== sourceId ? rawTitle : undefined;
|
|
3703
|
+
if (!title) {
|
|
3704
|
+
return fallbackName;
|
|
3705
|
+
}
|
|
3706
|
+
var isSavedView = !!(viewMeta !== null && viewMeta !== void 0 && viewMeta.id) && viewMeta.id !== sourceId;
|
|
3707
|
+
if (isSavedView) {
|
|
3708
|
+
return title;
|
|
3709
|
+
}
|
|
3710
|
+
var isDefaultUnsavedTitle = /^New .+ preset$/i.test(title);
|
|
3711
|
+
if (isDefaultUnsavedTitle) {
|
|
3712
|
+
return title.includes(sourceId) ? title : "".concat(title, " (").concat(sourceId, ")");
|
|
3713
|
+
}
|
|
3714
|
+
return title;
|
|
3715
|
+
};
|
|
3716
|
+
|
|
3605
3717
|
/* *
|
|
3606
3718
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3607
3719
|
* you may not use this file except in compliance with the License.
|
|
@@ -3647,7 +3759,7 @@ var groupTypes = [{
|
|
|
3647
3759
|
- Runs Each time viewState is created:
|
|
3648
3760
|
- Fill arrays inside initialState with objects containing new values from Redux
|
|
3649
3761
|
*/
|
|
3650
|
-
var createSyncGroupViewState = function createSyncGroupViewState(groups, sources) {
|
|
3762
|
+
var createSyncGroupViewState = function createSyncGroupViewState(groups, sources, viewsById) {
|
|
3651
3763
|
var initialState = produce(emptyState, function (draft) {
|
|
3652
3764
|
/*
|
|
3653
3765
|
_____ 1. Fill groups _____
|
|
@@ -3678,7 +3790,7 @@ var createSyncGroupViewState = function createSyncGroupViewState(groups, sources
|
|
|
3678
3790
|
if (sources.byId[id].types.includes(syncType)) {
|
|
3679
3791
|
draft[groupType].sourcesById.push({
|
|
3680
3792
|
id: id,
|
|
3681
|
-
name: id
|
|
3793
|
+
name: constructSyncSourceDisplayName(id, viewsById === null || viewsById === void 0 ? void 0 : viewsById[id], id)
|
|
3682
3794
|
});
|
|
3683
3795
|
}
|
|
3684
3796
|
});
|
|
@@ -3692,7 +3804,12 @@ var groups = function groups(store) {
|
|
|
3692
3804
|
var sources = function sources(store) {
|
|
3693
3805
|
return store.syncGroups.sources;
|
|
3694
3806
|
};
|
|
3695
|
-
var
|
|
3807
|
+
var workspaceViewsById = function workspaceViewsById(store) {
|
|
3808
|
+
var _storeWithWorkspace$w;
|
|
3809
|
+
var storeWithWorkspace = store;
|
|
3810
|
+
return (_storeWithWorkspace$w = storeWithWorkspace.workspace) === null || _storeWithWorkspace$w === void 0 || (_storeWithWorkspace$w = _storeWithWorkspace$w.views) === null || _storeWithWorkspace$w === void 0 ? void 0 : _storeWithWorkspace$w.byId;
|
|
3811
|
+
};
|
|
3812
|
+
var createSyncGroupViewStateSelector = createSelector(groups, sources, workspaceViewsById, createSyncGroupViewState);
|
|
3696
3813
|
|
|
3697
3814
|
var selector = /*#__PURE__*/Object.freeze({
|
|
3698
3815
|
__proto__: null,
|
|
@@ -3706,49 +3823,64 @@ syncGroupsListener.startListening({
|
|
|
3706
3823
|
matcher: isAnyOf(syncGroupsActions.syncGroupAddTarget, syncGroupsActions.syncGroupLinkTarget),
|
|
3707
3824
|
effect: function () {
|
|
3708
3825
|
var _effect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
|
|
3709
|
-
var payload, groupId, linked, targetToUpdate, group;
|
|
3826
|
+
var payload, type, groupId, linked, targetToUpdate, group;
|
|
3710
3827
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3711
3828
|
while (1) switch (_context.prev = _context.next) {
|
|
3712
3829
|
case 0:
|
|
3713
|
-
payload = _ref.payload;
|
|
3830
|
+
payload = _ref.payload, type = _ref.type;
|
|
3714
3831
|
listenerApi.cancelActiveListeners();
|
|
3715
3832
|
groupId = payload.groupId, linked = payload.linked, targetToUpdate = payload.targetId;
|
|
3716
3833
|
group = getSynchronizationGroup(listenerApi.getState(), groupId);
|
|
3717
3834
|
if (!(!linked && group)) {
|
|
3718
|
-
_context.next =
|
|
3835
|
+
_context.next = 21;
|
|
3719
3836
|
break;
|
|
3720
3837
|
}
|
|
3721
3838
|
_context.t0 = group.type;
|
|
3722
|
-
_context.next = _context.t0 === SYNCGROUPS_TYPE_SETTIME ? 8 : _context.t0 === SYNCGROUPS_TYPE_SETBBOX ?
|
|
3839
|
+
_context.next = _context.t0 === SYNCGROUPS_TYPE_SETTIME ? 8 : _context.t0 === SYNCGROUPS_TYPE_SETBBOX ? 16 : 20;
|
|
3723
3840
|
break;
|
|
3724
3841
|
case 8:
|
|
3725
|
-
if (
|
|
3842
|
+
if (!(type === syncGroupsActions.syncGroupLinkTarget.type)) {
|
|
3726
3843
|
_context.next = 10;
|
|
3727
3844
|
break;
|
|
3728
3845
|
}
|
|
3729
|
-
return _context.abrupt("
|
|
3846
|
+
return _context.abrupt("break", 21);
|
|
3730
3847
|
case 10:
|
|
3848
|
+
if (group.targets.allIds.some(function (targetId) {
|
|
3849
|
+
var _group$targets$byId$t;
|
|
3850
|
+
return targetId !== targetToUpdate && ((_group$targets$byId$t = group.targets.byId[targetId]) === null || _group$targets$byId$t === void 0 ? void 0 : _group$targets$byId$t.linked);
|
|
3851
|
+
})) {
|
|
3852
|
+
_context.next = 12;
|
|
3853
|
+
break;
|
|
3854
|
+
}
|
|
3855
|
+
return _context.abrupt("break", 21);
|
|
3856
|
+
case 12:
|
|
3857
|
+
if (group.payloadByType[SYNCGROUPS_TYPE_SETTIME]) {
|
|
3858
|
+
_context.next = 14;
|
|
3859
|
+
break;
|
|
3860
|
+
}
|
|
3861
|
+
return _context.abrupt("return");
|
|
3862
|
+
case 14:
|
|
3731
3863
|
listenerApi.dispatch(setTimeSync(group.payloadByType[SYNCGROUPS_TYPE_SETTIME], [{
|
|
3732
3864
|
targetId: targetToUpdate,
|
|
3733
3865
|
value: group.payloadByType[SYNCGROUPS_TYPE_SETTIME].value
|
|
3734
3866
|
}], [groupId]));
|
|
3735
|
-
return _context.abrupt("break",
|
|
3736
|
-
case
|
|
3867
|
+
return _context.abrupt("break", 21);
|
|
3868
|
+
case 16:
|
|
3737
3869
|
if (group.payloadByType[SYNCGROUPS_TYPE_SETBBOX]) {
|
|
3738
|
-
_context.next =
|
|
3870
|
+
_context.next = 18;
|
|
3739
3871
|
break;
|
|
3740
3872
|
}
|
|
3741
3873
|
return _context.abrupt("return");
|
|
3742
|
-
case
|
|
3874
|
+
case 18:
|
|
3743
3875
|
listenerApi.dispatch(setBboxSync(group.payloadByType[SYNCGROUPS_TYPE_SETBBOX], [{
|
|
3744
3876
|
targetId: targetToUpdate,
|
|
3745
3877
|
bbox: group.payloadByType[SYNCGROUPS_TYPE_SETBBOX].bbox,
|
|
3746
3878
|
srs: group.payloadByType[SYNCGROUPS_TYPE_SETBBOX].srs
|
|
3747
3879
|
}], [groupId]));
|
|
3748
|
-
return _context.abrupt("break",
|
|
3749
|
-
case
|
|
3750
|
-
return _context.abrupt("break",
|
|
3751
|
-
case
|
|
3880
|
+
return _context.abrupt("break", 21);
|
|
3881
|
+
case 20:
|
|
3882
|
+
return _context.abrupt("break", 21);
|
|
3883
|
+
case 21:
|
|
3752
3884
|
case "end":
|
|
3753
3885
|
return _context.stop();
|
|
3754
3886
|
}
|
|
@@ -3990,12 +4122,26 @@ var getSelectedFeatureAsGeoJSON = createSelector([function (state, mapId) {
|
|
|
3990
4122
|
});
|
|
3991
4123
|
return selectedFeature;
|
|
3992
4124
|
});
|
|
4125
|
+
var getSyncedStartCenterEndStepCurrentTime = createSelector(function (coreAppStore, sourceId) {
|
|
4126
|
+
return getTime(getSynchronizationGroupStore(coreAppStore), sourceId);
|
|
4127
|
+
}, function (store) {
|
|
4128
|
+
if (!(store !== null && store !== void 0 && store.timeSliderCenterTime) || !(store !== null && store !== void 0 && store.timeSliderSpan)) {
|
|
4129
|
+
return undefined;
|
|
4130
|
+
}
|
|
4131
|
+
return {
|
|
4132
|
+
start: Math.round(store.timeSliderCenterTime - store.timeSliderSpan / 2),
|
|
4133
|
+
end: Math.round(store.timeSliderCenterTime + store.timeSliderSpan / 2),
|
|
4134
|
+
step: (store === null || store === void 0 ? void 0 : store.timeSliderStep) || 60,
|
|
4135
|
+
current: dateUtils.unixFromISOString(store === null || store === void 0 ? void 0 : store.currentTime)
|
|
4136
|
+
};
|
|
4137
|
+
}, selectorMemoizationOptions);
|
|
3993
4138
|
|
|
3994
4139
|
var selectors$5 = /*#__PURE__*/Object.freeze({
|
|
3995
4140
|
__proto__: null,
|
|
3996
4141
|
getLinkedMaps: getLinkedMaps,
|
|
3997
4142
|
getSelectedFeature: getSelectedFeature,
|
|
3998
4143
|
getSelectedFeatureAsGeoJSON: getSelectedFeatureAsGeoJSON,
|
|
4144
|
+
getSyncedStartCenterEndStepCurrentTime: getSyncedStartCenterEndStepCurrentTime,
|
|
3999
4145
|
getSynchronizationGroupStore: getSynchronizationGroupStore,
|
|
4000
4146
|
getTime: getTime,
|
|
4001
4147
|
selectLinkedFeatures: selectLinkedFeatures,
|
|
@@ -4005,6 +4151,136 @@ var selectors$5 = /*#__PURE__*/Object.freeze({
|
|
|
4005
4151
|
selectSharedData: selectSharedData
|
|
4006
4152
|
});
|
|
4007
4153
|
|
|
4154
|
+
/**
|
|
4155
|
+
* This registers a new syncgroup source for given panelId. The source is not synced to any group by default.
|
|
4156
|
+
* When the user links the source with a group, this hook returns an object with the timeslider state (start, end, step and current time) for the panel (if effectively linked).
|
|
4157
|
+
*
|
|
4158
|
+
* How it works:
|
|
4159
|
+
* - Registers/unregisters the source on mount/unmount.
|
|
4160
|
+
* - Returns `{ start, end, step, current }` when linked.
|
|
4161
|
+
* - Uses linked map selected time as `current` when available.
|
|
4162
|
+
* - Falls back to sync source "now" timestamp when
|
|
4163
|
+
* synced state is not initialized yet.
|
|
4164
|
+
*
|
|
4165
|
+
* @param panelId panelId to register as sync source
|
|
4166
|
+
* @returns timeslider state
|
|
4167
|
+
*/
|
|
4168
|
+
var useSyncgroupTimeState = function useSyncgroupTimeState(panelId) {
|
|
4169
|
+
var _ref;
|
|
4170
|
+
var debounceMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
|
|
4171
|
+
var dispatch = useDispatch();
|
|
4172
|
+
var defaultNowTime = React.useRef(Math.round(Date.now() / 1000));
|
|
4173
|
+
var syncGroupsAddSourceCallBack = React.useCallback(function (payload) {
|
|
4174
|
+
dispatch(syncGroupAddSource(payload));
|
|
4175
|
+
}, [dispatch]);
|
|
4176
|
+
var syncGroupRemoveSourceCallback = React.useCallback(function (payload) {
|
|
4177
|
+
dispatch(syncGroupRemoveSource(payload));
|
|
4178
|
+
}, [dispatch]);
|
|
4179
|
+
// Register
|
|
4180
|
+
useEffect(function () {
|
|
4181
|
+
syncGroupsAddSourceCallBack({
|
|
4182
|
+
id: panelId,
|
|
4183
|
+
type: [SYNCGROUPS_TYPE_SETTIME]
|
|
4184
|
+
});
|
|
4185
|
+
return function () {
|
|
4186
|
+
syncGroupRemoveSourceCallback({
|
|
4187
|
+
id: panelId
|
|
4188
|
+
});
|
|
4189
|
+
};
|
|
4190
|
+
}, [panelId, syncGroupsAddSourceCallBack, syncGroupRemoveSourceCallback]);
|
|
4191
|
+
var syncGroupTimeSliderCenterStartEndStep = useSelector(function (store) {
|
|
4192
|
+
return getSyncedStartCenterEndStepCurrentTime(store, panelId);
|
|
4193
|
+
});
|
|
4194
|
+
var syncSourceTime = useSelector(function (store) {
|
|
4195
|
+
return getTime(getSynchronizationGroupStore(store), panelId);
|
|
4196
|
+
});
|
|
4197
|
+
var syncTargets = useSelector(function (store) {
|
|
4198
|
+
return getAllTargetGroupsForSource(store, panelId);
|
|
4199
|
+
});
|
|
4200
|
+
var isSyncgroupLinked = useSelector(function (store) {
|
|
4201
|
+
return syncTargets.some(function (groupId) {
|
|
4202
|
+
var group = getSynchronizationGroup(store, groupId);
|
|
4203
|
+
if ((group === null || group === void 0 ? void 0 : group.type) !== SYNCGROUPS_TYPE_SETTIME) {
|
|
4204
|
+
return false;
|
|
4205
|
+
}
|
|
4206
|
+
return group.targets.allIds.some(function (targetId) {
|
|
4207
|
+
var _group$targets$byId$t;
|
|
4208
|
+
return targetId !== panelId && ((_group$targets$byId$t = group.targets.byId[targetId]) === null || _group$targets$byId$t === void 0 ? void 0 : _group$targets$byId$t.linked);
|
|
4209
|
+
});
|
|
4210
|
+
});
|
|
4211
|
+
});
|
|
4212
|
+
var linkedMapIdsInTimeGroup = useSelector(function (store) {
|
|
4213
|
+
var _iterator = _createForOfIteratorHelper(syncTargets),
|
|
4214
|
+
_step;
|
|
4215
|
+
try {
|
|
4216
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
4217
|
+
var groupId = _step.value;
|
|
4218
|
+
var group = getSynchronizationGroup(store, groupId);
|
|
4219
|
+
if ((group === null || group === void 0 ? void 0 : group.type) === SYNCGROUPS_TYPE_SETTIME) {
|
|
4220
|
+
var _iterator2 = _createForOfIteratorHelper(group.targets.allIds),
|
|
4221
|
+
_step2;
|
|
4222
|
+
try {
|
|
4223
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
4224
|
+
var _group$targets$byId$t2, _store$webmap;
|
|
4225
|
+
var targetId = _step2.value;
|
|
4226
|
+
if (targetId !== panelId && (_group$targets$byId$t2 = group.targets.byId[targetId]) !== null && _group$targets$byId$t2 !== void 0 && _group$targets$byId$t2.linked && !!((_store$webmap = store.webmap) !== null && _store$webmap !== void 0 && (_store$webmap = _store$webmap.byId) !== null && _store$webmap !== void 0 && _store$webmap[targetId])) {
|
|
4227
|
+
return targetId;
|
|
4228
|
+
}
|
|
4229
|
+
}
|
|
4230
|
+
} catch (err) {
|
|
4231
|
+
_iterator2.e(err);
|
|
4232
|
+
} finally {
|
|
4233
|
+
_iterator2.f();
|
|
4234
|
+
}
|
|
4235
|
+
}
|
|
4236
|
+
}
|
|
4237
|
+
} catch (err) {
|
|
4238
|
+
_iterator.e(err);
|
|
4239
|
+
} finally {
|
|
4240
|
+
_iterator.f();
|
|
4241
|
+
}
|
|
4242
|
+
return undefined;
|
|
4243
|
+
});
|
|
4244
|
+
var linkedMapSelectedTime = useSelector(function (store) {
|
|
4245
|
+
var _store$webmap2;
|
|
4246
|
+
if (!linkedMapIdsInTimeGroup) {
|
|
4247
|
+
return undefined;
|
|
4248
|
+
}
|
|
4249
|
+
var selectedTime = (_store$webmap2 = store.webmap) === null || _store$webmap2 === void 0 || (_store$webmap2 = _store$webmap2.byId) === null || _store$webmap2 === void 0 || (_store$webmap2 = _store$webmap2[linkedMapIdsInTimeGroup]) === null || _store$webmap2 === void 0 || (_store$webmap2 = _store$webmap2.dimensions) === null || _store$webmap2 === void 0 || (_store$webmap2 = _store$webmap2.find(function (dimension) {
|
|
4250
|
+
return dimension.name === 'time';
|
|
4251
|
+
})) === null || _store$webmap2 === void 0 ? void 0 : _store$webmap2.currentValue;
|
|
4252
|
+
if (!selectedTime) {
|
|
4253
|
+
return undefined;
|
|
4254
|
+
}
|
|
4255
|
+
var selectedTimeAsUnix = Date.parse(selectedTime) / 1000;
|
|
4256
|
+
if (!Number.isFinite(selectedTimeAsUnix)) {
|
|
4257
|
+
return undefined;
|
|
4258
|
+
}
|
|
4259
|
+
return Math.round(selectedTimeAsUnix);
|
|
4260
|
+
});
|
|
4261
|
+
var syncSourceCurrentTime = syncSourceTime !== null && syncSourceTime !== void 0 && syncSourceTime.currentTime ? Date.parse(syncSourceTime.currentTime) / 1000 : undefined;
|
|
4262
|
+
var roundedSyncSourceCurrentTime = syncSourceCurrentTime !== undefined && Number.isFinite(syncSourceCurrentTime) ? Math.round(syncSourceCurrentTime) : undefined;
|
|
4263
|
+
var fallbackCurrentTime = (_ref = linkedMapSelectedTime !== null && linkedMapSelectedTime !== void 0 ? linkedMapSelectedTime : roundedSyncSourceCurrentTime) !== null && _ref !== void 0 ? _ref : defaultNowTime.current;
|
|
4264
|
+
var fallbackState = isSyncgroupLinked ? {
|
|
4265
|
+
start: fallbackCurrentTime - defaultTimeSpan / 2,
|
|
4266
|
+
end: fallbackCurrentTime + defaultTimeSpan / 2,
|
|
4267
|
+
step: defaultTimeStep,
|
|
4268
|
+
current: fallbackCurrentTime
|
|
4269
|
+
} : undefined;
|
|
4270
|
+
var syncedState = isSyncgroupLinked ? syncGroupTimeSliderCenterStartEndStep || fallbackState : undefined;
|
|
4271
|
+
var mapFallbackState = linkedMapSelectedTime !== undefined ? {
|
|
4272
|
+
start: linkedMapSelectedTime - defaultTimeSpan / 2,
|
|
4273
|
+
end: linkedMapSelectedTime + defaultTimeSpan / 2,
|
|
4274
|
+
step: defaultTimeStep,
|
|
4275
|
+
current: linkedMapSelectedTime
|
|
4276
|
+
} : undefined;
|
|
4277
|
+
var baseState = syncedState || mapFallbackState;
|
|
4278
|
+
var stateWithAuthoritativeCurrent = baseState && linkedMapSelectedTime !== undefined ? _objectSpread2(_objectSpread2({}, baseState), {}, {
|
|
4279
|
+
current: linkedMapSelectedTime
|
|
4280
|
+
}) : baseState;
|
|
4281
|
+
return useDebounce(stateWithAuthoritativeCurrent, debounceMs);
|
|
4282
|
+
};
|
|
4283
|
+
|
|
4008
4284
|
var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
|
|
4009
4285
|
var sharedData = useSelector(function (state) {
|
|
4010
4286
|
return selectSharedData(state, panelId);
|
|
@@ -4772,6 +5048,20 @@ var getLayerService = createSelector(getLayerById, function (layer) {
|
|
|
4772
5048
|
var _layer$service;
|
|
4773
5049
|
return (_layer$service = layer === null || layer === void 0 ? void 0 : layer.service) !== null && _layer$service !== void 0 ? _layer$service : '';
|
|
4774
5050
|
}, selectorMemoizationOptions);
|
|
5051
|
+
/**
|
|
5052
|
+
* Gets layer service name
|
|
5053
|
+
*
|
|
5054
|
+
* Example: layerService = getLayerServiceName(store, 'layerId_1')
|
|
5055
|
+
* @param {object} store store: object - object from which the layers state will be extracted
|
|
5056
|
+
* @param {string} layerId layerId: string - Id of the layer
|
|
5057
|
+
* @returns {string} returnType: string - layer service name
|
|
5058
|
+
*/
|
|
5059
|
+
var getLayerServiceName = createSelector(function (store) {
|
|
5060
|
+
return store;
|
|
5061
|
+
}, getLayerById, getLayerService, function (store, layer, service) {
|
|
5062
|
+
var layerService = getServiceByUrl(store, service);
|
|
5063
|
+
return layerService !== null && layerService !== void 0 && layerService.name ? layerService === null || layerService === void 0 ? void 0 : layerService.name : '';
|
|
5064
|
+
}, selectorMemoizationOptions);
|
|
4775
5065
|
/**
|
|
4776
5066
|
* Gets selected style of the passed layer
|
|
4777
5067
|
*
|
|
@@ -5047,6 +5337,7 @@ var selectors$2 = /*#__PURE__*/Object.freeze({
|
|
|
5047
5337
|
getLayerOpacity: getLayerOpacity,
|
|
5048
5338
|
getLayerOptions: getLayerOptions,
|
|
5049
5339
|
getLayerService: getLayerService,
|
|
5340
|
+
getLayerServiceName: getLayerServiceName,
|
|
5050
5341
|
getLayerStatus: getLayerStatus,
|
|
5051
5342
|
getLayerStyle: getLayerStyle,
|
|
5052
5343
|
getLayerTimeDimension: getLayerTimeDimension,
|
|
@@ -5520,7 +5811,6 @@ var getMapTimeSliderStartCenterEndAndStep = createSelector(getMapById, function
|
|
|
5520
5811
|
var step = (_store$timeStep2 = store === null || store === void 0 ? void 0 : store.timeStep) !== null && _store$timeStep2 !== void 0 ? _store$timeStep2 : defaultTimeStep;
|
|
5521
5812
|
return {
|
|
5522
5813
|
start: start,
|
|
5523
|
-
center: center,
|
|
5524
5814
|
end: end,
|
|
5525
5815
|
step: step
|
|
5526
5816
|
};
|
|
@@ -5754,6 +6044,15 @@ var getLegendId = createSelector(getMapById, function (store) {
|
|
|
5754
6044
|
var getIsClockVisible = createSelector(getMapById, function (store) {
|
|
5755
6045
|
return store === null || store === void 0 ? void 0 : store.isClockVisible;
|
|
5756
6046
|
}, selectorMemoizationOptions);
|
|
6047
|
+
/**
|
|
6048
|
+
* Returns if clock options menu is visible from webmap state
|
|
6049
|
+
*
|
|
6050
|
+
* @param {CoreAppStore} store - The Redux store from which the map state will be extracted.
|
|
6051
|
+
* @returns {boolean | undefined} returnType: boolean
|
|
6052
|
+
*/
|
|
6053
|
+
var getIsClockOptionsMenuVisible = createSelector(getMapById, function (store) {
|
|
6054
|
+
return store === null || store === void 0 ? void 0 : store.isClockOptionsMenuVisible;
|
|
6055
|
+
}, selectorMemoizationOptions);
|
|
5757
6056
|
/**
|
|
5758
6057
|
* Returns if clock position from webmap state
|
|
5759
6058
|
*
|
|
@@ -5781,14 +6080,26 @@ var getClockSize = createSelector(getMapById, function (store) {
|
|
|
5781
6080
|
* @param {boolean} keepAllDims? keepAllDims: boolean - default false: whether or not to leave the time and reference_time dimentions
|
|
5782
6081
|
* @returns {MapPreset} returnType: MapPreset
|
|
5783
6082
|
*/
|
|
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,
|
|
6083
|
+
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) {
|
|
6084
|
+
var _getMapById$dockedLay, _getMapById;
|
|
6085
|
+
return (_getMapById$dockedLay = (_getMapById = getMapById(store, mapId)) === null || _getMapById === void 0 ? void 0 : _getMapById.dockedLayerManagerSize) !== null && _getMapById$dockedLay !== void 0 ? _getMapById$dockedLay : 'sizeSmall';
|
|
6086
|
+
}, function (store, mapId) {
|
|
6087
|
+
var _getMapById$dockedLay2, _getMapById2;
|
|
6088
|
+
return (_getMapById$dockedLay2 = (_getMapById2 = getMapById(store, mapId)) === null || _getMapById2 === void 0 ? void 0 : _getMapById2.dockedLayerManagerPosition) !== null && _getMapById$dockedLay2 !== void 0 ? _getMapById$dockedLay2 : {
|
|
6089
|
+
x: 0,
|
|
6090
|
+
y: 0
|
|
6091
|
+
};
|
|
6092
|
+
}, function (store, mapId) {
|
|
6093
|
+
var _getMapById3;
|
|
6094
|
+
return (_getMapById3 = getMapById(store, mapId)) === null || _getMapById3 === void 0 ? void 0 : _getMapById3.dockedLayerManagerDimensions;
|
|
6095
|
+
}, getIsClockVisible, getIsClockOptionsMenuVisible, getClockPosition, getClockSize, getUiStore, function (_store, mapId) {
|
|
5785
6096
|
return mapId;
|
|
5786
6097
|
}, function (_store, _mapId) {
|
|
5787
6098
|
var keepAllDims = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
5788
6099
|
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) {
|
|
6100
|
+
}, 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, isClockOptionsMenuVisible, clockPosition, clockSize, uiStore, mapId, keepAllDims) {
|
|
5790
6101
|
var _overLayers$, _uiStore$dialogs$lege;
|
|
5791
|
-
var defaultOverlayer = arguments.length >
|
|
6102
|
+
var defaultOverlayer = arguments.length > 32 && arguments[32] !== undefined ? arguments[32] : ((_overLayers$ = overLayers[0]) === null || _overLayers$ === void 0 ? void 0 : _overLayers$.name) || 'none';
|
|
5792
6103
|
var allLayers = [].concat(_toConsumableArray(baseLayers), _toConsumableArray(overLayers), _toConsumableArray(mapLayers)).map(function (_ref3) {
|
|
5793
6104
|
_ref3.mapId;
|
|
5794
6105
|
var layer = _objectWithoutProperties(_ref3, _excluded$2);
|
|
@@ -5816,7 +6127,19 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5816
6127
|
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
6128
|
var dataExplorerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs[DialogTypes.DataExplorer];
|
|
5818
6129
|
var shouldShowDataExplorer = (dataExplorerDialog === null || dataExplorerDialog === void 0 ? void 0 : dataExplorerDialog.isOpen) && (dataExplorerDialog === null || dataExplorerDialog === void 0 ? void 0 : dataExplorerDialog.activeMapId) === mapId || false;
|
|
5819
|
-
|
|
6130
|
+
var dockedLayerManagerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs["".concat(DialogTypes.DockedLayerManager, "-").concat(mapId)];
|
|
6131
|
+
var floatingLayerManagerDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs[DialogTypes.LayerManager];
|
|
6132
|
+
var floatingLayerManagerMultimapDialog = uiStore === null || uiStore === void 0 ? void 0 : uiStore.dialogs["".concat(DialogTypes.LayerManager, "-").concat(mapId)];
|
|
6133
|
+
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;
|
|
6134
|
+
var shouldShowDockedLayerManager = ((dockedLayerManagerDialog === null || dockedLayerManagerDialog === void 0 ? void 0 : dockedLayerManagerDialog.isOpen) || false) && !isFloatingLayerManagerOpenForMap;
|
|
6135
|
+
var dockedLayerManagerPreset = shouldShowDockedLayerManager ? _objectSpread2({
|
|
6136
|
+
shouldShowDockedLayerManager: shouldShowDockedLayerManager,
|
|
6137
|
+
dockedLayerManagerSize: dockedLayerManagerSize,
|
|
6138
|
+
dockedLayerManagerPosition: dockedLayerManagerPosition
|
|
6139
|
+
}, dockedLayerManagerDimensions && {
|
|
6140
|
+
dockedLayerManagerDimensions: dockedLayerManagerDimensions
|
|
6141
|
+
}) : {};
|
|
6142
|
+
return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
5820
6143
|
layers: allLayers
|
|
5821
6144
|
}, activeLayerId && {
|
|
5822
6145
|
activeLayerId: activeLayerId
|
|
@@ -5841,8 +6164,10 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5841
6164
|
timeSliderSpan: timeSliderSpan,
|
|
5842
6165
|
shouldShowDataExplorer: shouldShowDataExplorer,
|
|
5843
6166
|
defaultOverlayer: defaultOverlayer
|
|
5844
|
-
}, isClockVisible !== undefined && {
|
|
6167
|
+
}, dockedLayerManagerPreset), isClockVisible !== undefined && {
|
|
5845
6168
|
isClockVisible: isClockVisible
|
|
6169
|
+
}), isClockOptionsMenuVisible !== undefined && {
|
|
6170
|
+
isClockOptionsMenuVisible: isClockOptionsMenuVisible
|
|
5846
6171
|
}), clockPosition !== undefined && {
|
|
5847
6172
|
clockPosition: clockPosition
|
|
5848
6173
|
}), clockSize !== undefined && {
|
|
@@ -5961,6 +6286,24 @@ var getIsEnabledLayersForMapDimension = createSelector(getMapLayerIdsEnabled, fu
|
|
|
5961
6286
|
var getDockedLayerManagerSize = createSelector(getMapById, function (store) {
|
|
5962
6287
|
return store ? store.dockedLayerManagerSize : 'sizeSmall';
|
|
5963
6288
|
}, selectorMemoizationOptions);
|
|
6289
|
+
/**
|
|
6290
|
+
* Returns the dockedLayerManagerPosition originally set in mapPresets
|
|
6291
|
+
*
|
|
6292
|
+
* Example getDockedLayerManagerPosition(store);
|
|
6293
|
+
* @param {object} store store: object - store object
|
|
6294
|
+
* @param {string} mapId mapId: string - Id of the map
|
|
6295
|
+
* @returns {DockedLayerManagerPosition} returnType: object
|
|
6296
|
+
*/
|
|
6297
|
+
var getDockedLayerManagerPosition = createSelector(getMapById, function (store) {
|
|
6298
|
+
var _store$dockedLayerMan;
|
|
6299
|
+
return (_store$dockedLayerMan = store === null || store === void 0 ? void 0 : store.dockedLayerManagerPosition) !== null && _store$dockedLayerMan !== void 0 ? _store$dockedLayerMan : {
|
|
6300
|
+
x: 0,
|
|
6301
|
+
y: 0
|
|
6302
|
+
};
|
|
6303
|
+
}, selectorMemoizationOptions);
|
|
6304
|
+
var getDockedLayerManagerDimensions = createSelector(getMapById, function (store) {
|
|
6305
|
+
return store === null || store === void 0 ? void 0 : store.dockedLayerManagerDimensions;
|
|
6306
|
+
}, selectorMemoizationOptions);
|
|
5964
6307
|
/**
|
|
5965
6308
|
* Returns the animation list for given map id
|
|
5966
6309
|
* @param {object} store store: object - store object
|
|
@@ -6081,10 +6424,13 @@ var selectors$1 = /*#__PURE__*/Object.freeze({
|
|
|
6081
6424
|
getDataLimitsFromLayers: getDataLimitsFromLayers,
|
|
6082
6425
|
getDisableMapPin: getDisableMapPin,
|
|
6083
6426
|
getDisplayMapPin: getDisplayMapPin,
|
|
6427
|
+
getDockedLayerManagerDimensions: getDockedLayerManagerDimensions,
|
|
6428
|
+
getDockedLayerManagerPosition: getDockedLayerManagerPosition,
|
|
6084
6429
|
getDockedLayerManagerSize: getDockedLayerManagerSize,
|
|
6085
6430
|
getFirstMap: getFirstMap,
|
|
6086
6431
|
getFirstMapId: getFirstMapId,
|
|
6087
6432
|
getHarmonieInitialProps: getHarmonieInitialProps,
|
|
6433
|
+
getIsClockOptionsMenuVisible: getIsClockOptionsMenuVisible,
|
|
6088
6434
|
getIsClockVisible: getIsClockVisible,
|
|
6089
6435
|
getIsEnabledLayersForMapDimension: getIsEnabledLayersForMapDimension,
|
|
6090
6436
|
getIsLayerActiveLayer: getIsLayerActiveLayer,
|
|
@@ -6604,18 +6950,25 @@ genericListener.startListening({
|
|
|
6604
6950
|
payload = _ref.payload;
|
|
6605
6951
|
listenerApi.cancelActiveListeners();
|
|
6606
6952
|
value = payload.value, origin = payload.origin;
|
|
6607
|
-
if (value !== null && value !== void 0 && value.currentTime) {
|
|
6608
|
-
|
|
6609
|
-
|
|
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
|
-
}
|
|
6953
|
+
if (!(value !== null && value !== void 0 && value.currentTime)) {
|
|
6954
|
+
_context.next = 8;
|
|
6955
|
+
break;
|
|
6617
6956
|
}
|
|
6618
|
-
|
|
6957
|
+
currentTime = value.currentTime;
|
|
6958
|
+
/* Test if the current is according to the expected time format */
|
|
6959
|
+
if (setTimeValidatorRexexp.test(currentTime)) {
|
|
6960
|
+
_context.next = 8;
|
|
6961
|
+
break;
|
|
6962
|
+
}
|
|
6963
|
+
console.error("setTime value ".concat(currentTime, " does not conform to format [YYYY-MM-DDThh:mm:ssZ]. It was triggered by ").concat(origin));
|
|
6964
|
+
// Do not do anything
|
|
6965
|
+
return _context.abrupt("return");
|
|
6966
|
+
case 8:
|
|
6967
|
+
// SetTimeSyncProps contains besides currenttime many other props. Set these.
|
|
6968
|
+
targets = getTargets(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
|
|
6969
|
+
groups = getTargetGroups(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
|
|
6970
|
+
listenerApi.dispatch(setTimeSync(payload, targets, groups));
|
|
6971
|
+
case 11:
|
|
6619
6972
|
case "end":
|
|
6620
6973
|
return _context.stop();
|
|
6621
6974
|
}
|
|
@@ -7062,6 +7415,16 @@ var olMetronomeHandler = function olMetronomeHandler(timerIds, listenerApi) {
|
|
|
7062
7415
|
}
|
|
7063
7416
|
});
|
|
7064
7417
|
}
|
|
7418
|
+
if (!targets.some(function (target) {
|
|
7419
|
+
return target.targetId === timerId;
|
|
7420
|
+
})) {
|
|
7421
|
+
targets.push({
|
|
7422
|
+
targetId: timerId,
|
|
7423
|
+
value: {
|
|
7424
|
+
currentTime: ''
|
|
7425
|
+
}
|
|
7426
|
+
});
|
|
7427
|
+
}
|
|
7065
7428
|
var timerIsInDwell = handleTimerDwell(timerId, animationListValues.length);
|
|
7066
7429
|
// Collect all layers for this syncgroups target
|
|
7067
7430
|
var reduxLayers = [];
|
|
@@ -7156,9 +7519,23 @@ mapListener.startListening({
|
|
|
7156
7519
|
return;
|
|
7157
7520
|
}
|
|
7158
7521
|
var autoUpdateLayerId = getAutoUpdateLayerId(listenerApi.getState(), mapId);
|
|
7522
|
+
var autoTimeStepLayerId = getAutoTimeStepLayerId(listenerApi.getState(), mapId);
|
|
7523
|
+
var autoUpdateLayerHasTimeDimension = autoUpdateLayerId ? getLayerHasTimeDimension(listenerApi.getState(), autoUpdateLayerId) : false;
|
|
7524
|
+
var autoTimeStepLayerHasTimeDimension = autoTimeStepLayerId ? getLayerHasTimeDimension(listenerApi.getState(), autoTimeStepLayerId) : false;
|
|
7159
7525
|
var shouldAutoUpdate = isAutoUpdating(listenerApi.getState(), mapId);
|
|
7160
7526
|
var prevTimeDimension = getLayerTimeDimension(listenerApi.getState(), layerId);
|
|
7161
|
-
var
|
|
7527
|
+
var hasAutoLayers = !!autoUpdateLayerId && !!autoTimeStepLayerId;
|
|
7528
|
+
var isAutoLayerValid = hasAutoLayers && autoUpdateLayerHasTimeDimension && autoTimeStepLayerHasTimeDimension;
|
|
7529
|
+
var hasTimeDimension = !!newTimeDimension;
|
|
7530
|
+
var shouldSetAutoLayer = !isAutoLayerValid && hasTimeDimension;
|
|
7531
|
+
if (shouldSetAutoLayer) {
|
|
7532
|
+
listenerApi.dispatch(mapActions.setAutoLayerId({
|
|
7533
|
+
mapId: mapId,
|
|
7534
|
+
layerId: layerId
|
|
7535
|
+
}));
|
|
7536
|
+
}
|
|
7537
|
+
var effectiveAutoUpdateLayerId = shouldSetAutoLayer ? layerId : autoUpdateLayerId;
|
|
7538
|
+
var isAutoUpdateLayer = layerId === effectiveAutoUpdateLayerId;
|
|
7162
7539
|
var incomingMaxTime = newTimeDimension === null || newTimeDimension === void 0 ? void 0 : newTimeDimension.maxValue;
|
|
7163
7540
|
var isIncomingMaxTimeLaterThanCurrentLayerTime = incomingMaxTime && (prevTimeDimension === null || prevTimeDimension === void 0 ? void 0 : prevTimeDimension.currentValue) && prevTimeDimension.currentValue !== incomingMaxTime;
|
|
7164
7541
|
if (isAutoUpdateLayer &&
|
|
@@ -7380,7 +7757,7 @@ mapListener.startListening({
|
|
|
7380
7757
|
actionCreator: mapActions.setMapPreset,
|
|
7381
7758
|
effect: function () {
|
|
7382
7759
|
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;
|
|
7760
|
+
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, isClockOptionsMenuVisible, 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
7761
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
7385
7762
|
while (1) switch (_context2.prev = _context2.next) {
|
|
7386
7763
|
case 0:
|
|
@@ -7389,10 +7766,10 @@ mapListener.startListening({
|
|
|
7389
7766
|
mapId = payload.mapId, initialProps = payload.initialProps;
|
|
7390
7767
|
mapPreset = initialProps.mapPreset;
|
|
7391
7768
|
if (!mapPreset) {
|
|
7392
|
-
_context2.next =
|
|
7769
|
+
_context2.next = 62;
|
|
7393
7770
|
break;
|
|
7394
7771
|
}
|
|
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;
|
|
7772
|
+
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, isClockOptionsMenuVisible = mapPreset.isClockOptionsMenuVisible, clockPosition = mapPreset.clockPosition, clockSize = mapPreset.clockSize;
|
|
7396
7773
|
_filterLayers = filterLayers(layers), mapLayers = _filterLayers.mapLayers, baseLayers = _filterLayers.baseLayers, overLayers = _filterLayers.overLayers;
|
|
7397
7774
|
if (layers) {
|
|
7398
7775
|
// make sure all layers have a unique id before going forward
|
|
@@ -7525,6 +7902,13 @@ mapListener.startListening({
|
|
|
7525
7902
|
isClockVisible: isClockVisible
|
|
7526
7903
|
}));
|
|
7527
7904
|
}
|
|
7905
|
+
if (isClockOptionsMenuVisible) {
|
|
7906
|
+
// toggle clock options menu visibility
|
|
7907
|
+
listenerApi.dispatch(mapActions.toggleClockOptions({
|
|
7908
|
+
mapId: mapId,
|
|
7909
|
+
isClockOptionsMenuVisible: isClockOptionsMenuVisible
|
|
7910
|
+
}));
|
|
7911
|
+
}
|
|
7528
7912
|
if (clockPosition !== undefined) {
|
|
7529
7913
|
// set clock position
|
|
7530
7914
|
listenerApi.dispatch(mapActions.setClockPositionSize({
|
|
@@ -7658,15 +8042,40 @@ mapListener.startListening({
|
|
|
7658
8042
|
dockedLayerManagerSize: dockedLayerManagerSize
|
|
7659
8043
|
}));
|
|
7660
8044
|
}
|
|
7661
|
-
|
|
8045
|
+
dockedLayerManagerType = "".concat(DialogTypes.DockedLayerManager, "-").concat(mapId);
|
|
8046
|
+
if (shouldShowDockedLayerManager !== undefined) {
|
|
8047
|
+
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
8048
|
+
type: dockedLayerManagerType,
|
|
8049
|
+
setOpen: shouldShowDockedLayerManager
|
|
8050
|
+
}));
|
|
8051
|
+
}
|
|
8052
|
+
if (shouldShowDockedLayerManager) {
|
|
8053
|
+
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
8054
|
+
type: DialogTypes.LayerManager,
|
|
8055
|
+
setOpen: false
|
|
8056
|
+
}));
|
|
8057
|
+
}
|
|
8058
|
+
if (dockedLayerManagerPosition) {
|
|
8059
|
+
listenerApi.dispatch(mapActions.setDockedLayerManagerPosition({
|
|
8060
|
+
mapId: mapId,
|
|
8061
|
+
dockedLayerManagerPosition: dockedLayerManagerPosition
|
|
8062
|
+
}));
|
|
8063
|
+
}
|
|
8064
|
+
if (dockedLayerManagerDimensions) {
|
|
8065
|
+
listenerApi.dispatch(mapActions.setDockedLayerManagerDimensions({
|
|
8066
|
+
mapId: mapId,
|
|
8067
|
+
dockedLayerManagerDimensions: dockedLayerManagerDimensions
|
|
8068
|
+
}));
|
|
8069
|
+
}
|
|
8070
|
+
case 52:
|
|
7662
8071
|
if (!(animationEndTime && (shouldEndtimeOverride || !(shouldAutoUpdate || shouldAnimate)))) {
|
|
7663
|
-
_context2.next =
|
|
8072
|
+
_context2.next = 62;
|
|
7664
8073
|
break;
|
|
7665
8074
|
}
|
|
7666
8075
|
fiveMinuteDelayForAnimation = 1000 * 60 * 5; // eslint-disable-next-line no-await-in-loop
|
|
7667
|
-
_context2.next =
|
|
8076
|
+
_context2.next = 56;
|
|
7668
8077
|
return listenerApi.delay(fiveMinuteDelayForAnimation);
|
|
7669
|
-
case
|
|
8078
|
+
case 56:
|
|
7670
8079
|
_animationEnd2 = getAnimationEndTime(listenerApi.getState(), mapId);
|
|
7671
8080
|
listenerApi.dispatch(mapActions.setAnimationEndTime({
|
|
7672
8081
|
mapId: mapId,
|
|
@@ -7681,13 +8090,13 @@ mapListener.startListening({
|
|
|
7681
8090
|
minutes: 5
|
|
7682
8091
|
}).toISOString()
|
|
7683
8092
|
}));
|
|
7684
|
-
_context2.next =
|
|
8093
|
+
_context2.next = 52;
|
|
7685
8094
|
break;
|
|
7686
|
-
case
|
|
7687
|
-
_context2.next =
|
|
8095
|
+
case 62:
|
|
8096
|
+
_context2.next = 67;
|
|
7688
8097
|
break;
|
|
7689
|
-
case
|
|
7690
|
-
_context2.prev =
|
|
8098
|
+
case 64:
|
|
8099
|
+
_context2.prev = 64;
|
|
7691
8100
|
_context2.t0 = _context2["catch"](1);
|
|
7692
8101
|
if (_context2.t0 instanceof Error) {
|
|
7693
8102
|
listenerApi.dispatch(mapActions.setMapPresetError({
|
|
@@ -7695,11 +8104,11 @@ mapListener.startListening({
|
|
|
7695
8104
|
error: _context2.t0.message
|
|
7696
8105
|
}));
|
|
7697
8106
|
}
|
|
7698
|
-
case
|
|
8107
|
+
case 67:
|
|
7699
8108
|
case "end":
|
|
7700
8109
|
return _context2.stop();
|
|
7701
8110
|
}
|
|
7702
|
-
}, _callee2, null, [[1,
|
|
8111
|
+
}, _callee2, null, [[1, 64]]);
|
|
7703
8112
|
}));
|
|
7704
8113
|
function effect(_x3, _x4) {
|
|
7705
8114
|
return _effect2.apply(this, arguments);
|
|
@@ -7739,6 +8148,8 @@ mapListener.startListening({
|
|
|
7739
8148
|
_mapSelectors$getData2 = _slicedToArray(_mapSelectors$getData, 2),
|
|
7740
8149
|
dataStartTime = _mapSelectors$getData2[0],
|
|
7741
8150
|
dataEndTime = _mapSelectors$getData2[1];
|
|
8151
|
+
var hasValidDataStartTime = Number.isFinite(dataStartTime) && dataStartTime > 0 && dataStartTime < 2147483647;
|
|
8152
|
+
var hasValidDataEndTime = Number.isFinite(dataEndTime) && dataEndTime > 0;
|
|
7742
8153
|
if (dateUtils.isValid(currentTime)) {
|
|
7743
8154
|
var makeForwardStep = function makeForwardStep() {
|
|
7744
8155
|
// timeStep is in minutes, convert to seconds
|
|
@@ -7748,7 +8159,7 @@ mapListener.startListening({
|
|
|
7748
8159
|
// This ensures 12:07 with 24h step goes to 12:00 next day, not 00:00
|
|
7749
8160
|
var roundingStep = timeStep > 12 * 60 ? 60 : timeStep; // Use 1 hour for large steps
|
|
7750
8161
|
var roundedTime = roundWithTimeStep(nextTime, roundingStep, 'round');
|
|
7751
|
-
var newTime = Math.min(roundedTime, dataEndTime
|
|
8162
|
+
var newTime = hasValidDataEndTime ? Math.min(roundedTime, dataEndTime) : roundedTime;
|
|
7752
8163
|
return dateUtils.fromUnix(newTime).toISOString();
|
|
7753
8164
|
};
|
|
7754
8165
|
var makeBackwardStep = function makeBackwardStep() {
|
|
@@ -7758,7 +8169,7 @@ mapListener.startListening({
|
|
|
7758
8169
|
// For large timesteps (>12h), round to nearest hour instead of timestep
|
|
7759
8170
|
var roundingStep = timeStep > 12 * 60 ? 60 : timeStep; // Use 1 hour for large steps
|
|
7760
8171
|
var roundedTime = roundWithTimeStep(nextTime, roundingStep, 'round');
|
|
7761
|
-
var newTime = Math.max(roundedTime, dataStartTime
|
|
8172
|
+
var newTime = hasValidDataStartTime ? Math.max(roundedTime, dataStartTime) : roundedTime;
|
|
7762
8173
|
return dateUtils.fromUnix(newTime).toISOString();
|
|
7763
8174
|
};
|
|
7764
8175
|
var selectedTimeString = isForwardStep ? makeForwardStep() : makeBackwardStep();
|
|
@@ -9375,4 +9786,4 @@ var configureOpenGeoWebStore = function configureOpenGeoWebStore() {
|
|
|
9375
9786
|
});
|
|
9376
9787
|
};
|
|
9377
9788
|
|
|
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 };
|
|
9789
|
+
export { IS_LEGEND_OPEN_BY_DEFAULT, SECONDS_IN_DAY, SECONDS_IN_HOUR, commonActions, commonListener, commonReducers, commonSelectors, configureOpenGeoWebStore, constructSyncSourceDisplayName, 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 };
|