@opengeoweb/store 15.3.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 +332 -114
- package/package.json +6 -6
- package/src/store/generic/index.d.ts +1 -0
- package/src/store/generic/selectors.d.ts +4 -4
- package/src/store/generic/syncGroups/hooks.d.ts +12 -4
- package/src/store/generic/syncGroups/index.d.ts +1 -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/layer/reducer.d.ts +4 -2
- package/src/store/map/layer/types.d.ts +4 -0
- package/src/store/map/map/reducer.d.ts +10 -0
- package/src/store/map/map/selectors.d.ts +49 -2
- package/src/store/map/map/types.d.ts +2 -0
package/index.esm.js
CHANGED
|
@@ -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: []
|
|
@@ -2763,12 +2782,25 @@ var slice$5 = createSlice({
|
|
|
2763
2782
|
return;
|
|
2764
2783
|
}
|
|
2765
2784
|
draft.byId[mapId].isClockVisible = isClockVisible;
|
|
2785
|
+
if (!isClockVisible) {
|
|
2786
|
+
// close options menu when clock is closed
|
|
2787
|
+
draft.byId[mapId].isClockOptionsMenuVisible = false;
|
|
2788
|
+
}
|
|
2766
2789
|
},
|
|
2767
|
-
|
|
2790
|
+
toggleClockOptions: function toggleClockOptions(draft, action) {
|
|
2768
2791
|
var _action$payload29 = action.payload,
|
|
2769
2792
|
mapId = _action$payload29.mapId,
|
|
2770
|
-
|
|
2771
|
-
|
|
2793
|
+
isClockOptionsMenuVisible = _action$payload29.isClockOptionsMenuVisible;
|
|
2794
|
+
if (!draft.byId[mapId]) {
|
|
2795
|
+
return;
|
|
2796
|
+
}
|
|
2797
|
+
draft.byId[mapId].isClockOptionsMenuVisible = isClockOptionsMenuVisible;
|
|
2798
|
+
},
|
|
2799
|
+
setClockPositionSize: function setClockPositionSize(draft, action) {
|
|
2800
|
+
var _action$payload30 = action.payload,
|
|
2801
|
+
mapId = _action$payload30.mapId,
|
|
2802
|
+
position = _action$payload30.position,
|
|
2803
|
+
size = _action$payload30.size;
|
|
2772
2804
|
if (!draft.byId[mapId]) {
|
|
2773
2805
|
return;
|
|
2774
2806
|
}
|
|
@@ -2782,10 +2814,10 @@ var slice$5 = createSlice({
|
|
|
2782
2814
|
},
|
|
2783
2815
|
extraReducers: function extraReducers(builder) {
|
|
2784
2816
|
builder.addCase(layerActions.addLayer, function (draft, action) {
|
|
2785
|
-
var _action$
|
|
2786
|
-
layerId = _action$
|
|
2787
|
-
mapId = _action$
|
|
2788
|
-
layer = _action$
|
|
2817
|
+
var _action$payload31 = action.payload,
|
|
2818
|
+
layerId = _action$payload31.layerId,
|
|
2819
|
+
mapId = _action$payload31.mapId,
|
|
2820
|
+
layer = _action$payload31.layer;
|
|
2789
2821
|
if (!draft.byId[mapId]) {
|
|
2790
2822
|
return;
|
|
2791
2823
|
}
|
|
@@ -2793,21 +2825,21 @@ var slice$5 = createSlice({
|
|
|
2793
2825
|
console.warn("Warning: Layer id ".concat(layerId, " was already taken"));
|
|
2794
2826
|
return;
|
|
2795
2827
|
}
|
|
2796
|
-
|
|
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)) {
|
|
2797
2830
|
draft.byId[mapId].autoUpdateLayerId = layerId;
|
|
2798
2831
|
draft.byId[mapId].autoTimeStepLayerId = layerId;
|
|
2799
2832
|
}
|
|
2800
|
-
var isFeatureLayer = (layer === null || layer === void 0 ? void 0 : layer.layerType) === LayerType.featureLayer;
|
|
2801
2833
|
if (isFeatureLayer) {
|
|
2802
2834
|
draft.byId[mapId].featureLayers.unshift(layerId);
|
|
2803
2835
|
} else {
|
|
2804
2836
|
draft.byId[mapId].mapLayers.unshift(layerId);
|
|
2805
2837
|
}
|
|
2806
2838
|
}).addCase(layerActions.duplicateMapLayer, function (draft, action) {
|
|
2807
|
-
var _action$
|
|
2808
|
-
newLayerId = _action$
|
|
2809
|
-
oldLayerId = _action$
|
|
2810
|
-
mapId = _action$
|
|
2839
|
+
var _action$payload32 = action.payload,
|
|
2840
|
+
newLayerId = _action$payload32.newLayerId,
|
|
2841
|
+
oldLayerId = _action$payload32.oldLayerId,
|
|
2842
|
+
mapId = _action$payload32.mapId;
|
|
2811
2843
|
if (!draft.byId[mapId]) {
|
|
2812
2844
|
return;
|
|
2813
2845
|
}
|
|
@@ -2824,10 +2856,10 @@ var slice$5 = createSlice({
|
|
|
2824
2856
|
draft.byId[mapId].featureLayers.unshift(newLayerId);
|
|
2825
2857
|
}
|
|
2826
2858
|
}).addCase(layerActions.addBaseLayer, function (draft, action) {
|
|
2827
|
-
var _action$
|
|
2828
|
-
layer = _action$
|
|
2829
|
-
layerId = _action$
|
|
2830
|
-
mapId = _action$
|
|
2859
|
+
var _action$payload33 = action.payload,
|
|
2860
|
+
layer = _action$payload33.layer,
|
|
2861
|
+
layerId = _action$payload33.layerId,
|
|
2862
|
+
mapId = _action$payload33.mapId;
|
|
2831
2863
|
if (!draft.byId[mapId]) {
|
|
2832
2864
|
return;
|
|
2833
2865
|
}
|
|
@@ -2843,23 +2875,23 @@ var slice$5 = createSlice({
|
|
|
2843
2875
|
draft.byId[mapId].overLayers.unshift(layerId);
|
|
2844
2876
|
}
|
|
2845
2877
|
}).addCase(layerActions.setLayers, function (draft, action) {
|
|
2878
|
+
var _layersWithIds$find;
|
|
2846
2879
|
var mapId = action.payload.mapId;
|
|
2847
2880
|
var layersWithIds = createLayersWithIds(draft, action.payload.layers);
|
|
2848
2881
|
var layerIds = layersWithIds.map(function (_ref) {
|
|
2849
2882
|
var id = _ref.id;
|
|
2850
2883
|
return id;
|
|
2851
2884
|
});
|
|
2852
|
-
var
|
|
2853
|
-
activeLayerId = _layerIds[0];
|
|
2885
|
+
var activeLayerId = (_layersWithIds$find = layersWithIds.find(layerHasTimeDimension)) === null || _layersWithIds$find === void 0 ? void 0 : _layersWithIds$find.id;
|
|
2854
2886
|
if (draft.byId[mapId]) {
|
|
2855
2887
|
draft.byId[mapId].mapLayers = layerIds;
|
|
2856
2888
|
draft.byId[mapId].autoUpdateLayerId = activeLayerId;
|
|
2857
2889
|
draft.byId[mapId].autoTimeStepLayerId = activeLayerId;
|
|
2858
2890
|
}
|
|
2859
2891
|
}).addCase(layerActions.setBaseLayers, function (draft, action) {
|
|
2860
|
-
var _action$
|
|
2861
|
-
layers = _action$
|
|
2862
|
-
mapId = _action$
|
|
2892
|
+
var _action$payload34 = action.payload,
|
|
2893
|
+
layers = _action$payload34.layers,
|
|
2894
|
+
mapId = _action$payload34.mapId;
|
|
2863
2895
|
// Split into base and overlayers
|
|
2864
2896
|
var baseLayers = [];
|
|
2865
2897
|
var overLayers = [];
|
|
@@ -2889,9 +2921,9 @@ var slice$5 = createSlice({
|
|
|
2889
2921
|
}
|
|
2890
2922
|
}
|
|
2891
2923
|
}).addCase(layerActions.layerDelete, function (draft, action) {
|
|
2892
|
-
var _action$
|
|
2893
|
-
mapId = _action$
|
|
2894
|
-
layerId = _action$
|
|
2924
|
+
var _action$payload35 = action.payload,
|
|
2925
|
+
mapId = _action$payload35.mapId,
|
|
2926
|
+
layerId = _action$payload35.layerId;
|
|
2895
2927
|
var map = draft.byId[mapId];
|
|
2896
2928
|
if (!map) {
|
|
2897
2929
|
return;
|
|
@@ -2917,9 +2949,9 @@ var slice$5 = createSlice({
|
|
|
2917
2949
|
return id !== layerId;
|
|
2918
2950
|
});
|
|
2919
2951
|
}).addCase(layerActions.baseLayerDelete, function (draft, action) {
|
|
2920
|
-
var _action$
|
|
2921
|
-
mapId = _action$
|
|
2922
|
-
layerId = _action$
|
|
2952
|
+
var _action$payload36 = action.payload,
|
|
2953
|
+
mapId = _action$payload36.mapId,
|
|
2954
|
+
layerId = _action$payload36.layerId;
|
|
2923
2955
|
if (!draft.byId[mapId]) {
|
|
2924
2956
|
return;
|
|
2925
2957
|
}
|
|
@@ -2930,14 +2962,14 @@ var slice$5 = createSlice({
|
|
|
2930
2962
|
return id !== layerId;
|
|
2931
2963
|
});
|
|
2932
2964
|
}).addCase(layerActions.layerChangeDimension, function (draft, action) {
|
|
2933
|
-
var _action$
|
|
2934
|
-
layerId = _action$
|
|
2935
|
-
dimension = _action$
|
|
2965
|
+
var _action$payload37 = action.payload,
|
|
2966
|
+
layerId = _action$payload37.layerId,
|
|
2967
|
+
dimension = _action$payload37.dimension;
|
|
2936
2968
|
produceDraftStateSetMapDimensionFromLayerChangeDimension(draft, layerId, dimension);
|
|
2937
2969
|
}).addCase(setTimeSync, function (draft, action) {
|
|
2938
|
-
var _action$
|
|
2939
|
-
targetsFromAction = _action$
|
|
2940
|
-
source = _action$
|
|
2970
|
+
var _action$payload38 = action.payload,
|
|
2971
|
+
targetsFromAction = _action$payload38.targets,
|
|
2972
|
+
source = _action$payload38.source;
|
|
2941
2973
|
/* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
|
|
2942
2974
|
var targets = [];
|
|
2943
2975
|
if (source) {
|
|
@@ -2990,9 +3022,9 @@ var slice$5 = createSlice({
|
|
|
2990
3022
|
}
|
|
2991
3023
|
});
|
|
2992
3024
|
}).addCase(setBboxSync, function (draft, action) {
|
|
2993
|
-
var _action$
|
|
2994
|
-
targetsFromAction = _action$
|
|
2995
|
-
source = _action$
|
|
3025
|
+
var _action$payload39 = action.payload,
|
|
3026
|
+
targetsFromAction = _action$payload39.targets,
|
|
3027
|
+
source = _action$payload39.source;
|
|
2996
3028
|
/* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
|
|
2997
3029
|
var targets = [];
|
|
2998
3030
|
if (source) {
|
|
@@ -3024,9 +3056,9 @@ var slice$5 = createSlice({
|
|
|
3024
3056
|
* These targets can be used as payloads in new Layer actions.
|
|
3025
3057
|
* These actions are here handled via the layer reducer, as it is the same logic
|
|
3026
3058
|
*/
|
|
3027
|
-
var _action$
|
|
3028
|
-
targets = _action$
|
|
3029
|
-
source = _action$
|
|
3059
|
+
var _action$payload40 = action.payload,
|
|
3060
|
+
targets = _action$payload40.targets,
|
|
3061
|
+
source = _action$payload40.source;
|
|
3030
3062
|
return targets.reduce(function (prevState, target) {
|
|
3031
3063
|
var actionType = (source === null || source === void 0 ? void 0 : source.type) || 'GENERIC_SYNC_SETLAYERACTIONS';
|
|
3032
3064
|
var action = {
|
|
@@ -3048,9 +3080,9 @@ var slice$5 = createSlice({
|
|
|
3048
3080
|
});
|
|
3049
3081
|
return draft;
|
|
3050
3082
|
}).addCase(mapChangeDimension, function (draft, action) {
|
|
3051
|
-
var _action$
|
|
3052
|
-
mapId = _action$
|
|
3053
|
-
dimensionFromAction = _action$
|
|
3083
|
+
var _action$payload41 = action.payload,
|
|
3084
|
+
mapId = _action$payload41.mapId,
|
|
3085
|
+
dimensionFromAction = _action$payload41.dimension;
|
|
3054
3086
|
produceDraftStateSetWebMapDimension(draft, mapId, dimensionFromAction, true);
|
|
3055
3087
|
}).addCase(setMapPreset, function (draft, action) {
|
|
3056
3088
|
var mapId = action.payload.mapId;
|
|
@@ -3070,9 +3102,9 @@ var slice$5 = createSlice({
|
|
|
3070
3102
|
draft.byId[mapId].animationDelay = defaultAnimationDelayAtStart;
|
|
3071
3103
|
draft.byId[mapId].dockedLayerManagerSize = '';
|
|
3072
3104
|
}).addCase(uiActions.registerDialog, function (draft, action) {
|
|
3073
|
-
var _action$
|
|
3074
|
-
mapId = _action$
|
|
3075
|
-
type = _action$
|
|
3105
|
+
var _action$payload42 = action.payload,
|
|
3106
|
+
mapId = _action$payload42.mapId,
|
|
3107
|
+
type = _action$payload42.type;
|
|
3076
3108
|
if (!draft.byId[mapId]) {
|
|
3077
3109
|
return;
|
|
3078
3110
|
}
|
|
@@ -3538,9 +3570,16 @@ var getTargets = createSelector([syncGroupStore, function (syncGroupStore, paylo
|
|
|
3538
3570
|
var source = syncronizationGroup.targets.byId[payload.sourceId];
|
|
3539
3571
|
/* If the source is part of the target list, and is linked, continue syncing the other targets */
|
|
3540
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
|
+
}
|
|
3541
3580
|
syncronizationGroup.targets.allIds.forEach(function (targetId) {
|
|
3542
3581
|
var target = syncronizationGroup.targets.byId[targetId];
|
|
3543
|
-
if (target.linked && !targetsInActionPayload[targetId]) {
|
|
3582
|
+
if (targetId !== payload.sourceId && target.linked && !targetsInActionPayload[targetId]) {
|
|
3544
3583
|
/* Remember that we have already added this target in the action payloads, prevents adding it twice */
|
|
3545
3584
|
targetsInActionPayload[targetId] = true;
|
|
3546
3585
|
/* Compose the payload */
|
|
@@ -3637,6 +3676,44 @@ var selectors$6 = /*#__PURE__*/Object.freeze({
|
|
|
3637
3676
|
syncGroupStore: syncGroupStore
|
|
3638
3677
|
});
|
|
3639
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
|
+
|
|
3640
3717
|
/* *
|
|
3641
3718
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3642
3719
|
* you may not use this file except in compliance with the License.
|
|
@@ -3682,7 +3759,7 @@ var groupTypes = [{
|
|
|
3682
3759
|
- Runs Each time viewState is created:
|
|
3683
3760
|
- Fill arrays inside initialState with objects containing new values from Redux
|
|
3684
3761
|
*/
|
|
3685
|
-
var createSyncGroupViewState = function createSyncGroupViewState(groups, sources) {
|
|
3762
|
+
var createSyncGroupViewState = function createSyncGroupViewState(groups, sources, viewsById) {
|
|
3686
3763
|
var initialState = produce(emptyState, function (draft) {
|
|
3687
3764
|
/*
|
|
3688
3765
|
_____ 1. Fill groups _____
|
|
@@ -3713,7 +3790,7 @@ var createSyncGroupViewState = function createSyncGroupViewState(groups, sources
|
|
|
3713
3790
|
if (sources.byId[id].types.includes(syncType)) {
|
|
3714
3791
|
draft[groupType].sourcesById.push({
|
|
3715
3792
|
id: id,
|
|
3716
|
-
name: id
|
|
3793
|
+
name: constructSyncSourceDisplayName(id, viewsById === null || viewsById === void 0 ? void 0 : viewsById[id], id)
|
|
3717
3794
|
});
|
|
3718
3795
|
}
|
|
3719
3796
|
});
|
|
@@ -3727,7 +3804,12 @@ var groups = function groups(store) {
|
|
|
3727
3804
|
var sources = function sources(store) {
|
|
3728
3805
|
return store.syncGroups.sources;
|
|
3729
3806
|
};
|
|
3730
|
-
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);
|
|
3731
3813
|
|
|
3732
3814
|
var selector = /*#__PURE__*/Object.freeze({
|
|
3733
3815
|
__proto__: null,
|
|
@@ -3741,49 +3823,64 @@ syncGroupsListener.startListening({
|
|
|
3741
3823
|
matcher: isAnyOf(syncGroupsActions.syncGroupAddTarget, syncGroupsActions.syncGroupLinkTarget),
|
|
3742
3824
|
effect: function () {
|
|
3743
3825
|
var _effect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
|
|
3744
|
-
var payload, groupId, linked, targetToUpdate, group;
|
|
3826
|
+
var payload, type, groupId, linked, targetToUpdate, group;
|
|
3745
3827
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3746
3828
|
while (1) switch (_context.prev = _context.next) {
|
|
3747
3829
|
case 0:
|
|
3748
|
-
payload = _ref.payload;
|
|
3830
|
+
payload = _ref.payload, type = _ref.type;
|
|
3749
3831
|
listenerApi.cancelActiveListeners();
|
|
3750
3832
|
groupId = payload.groupId, linked = payload.linked, targetToUpdate = payload.targetId;
|
|
3751
3833
|
group = getSynchronizationGroup(listenerApi.getState(), groupId);
|
|
3752
3834
|
if (!(!linked && group)) {
|
|
3753
|
-
_context.next =
|
|
3835
|
+
_context.next = 21;
|
|
3754
3836
|
break;
|
|
3755
3837
|
}
|
|
3756
3838
|
_context.t0 = group.type;
|
|
3757
|
-
_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;
|
|
3758
3840
|
break;
|
|
3759
3841
|
case 8:
|
|
3760
|
-
if (
|
|
3842
|
+
if (!(type === syncGroupsActions.syncGroupLinkTarget.type)) {
|
|
3761
3843
|
_context.next = 10;
|
|
3762
3844
|
break;
|
|
3763
3845
|
}
|
|
3764
|
-
return _context.abrupt("
|
|
3846
|
+
return _context.abrupt("break", 21);
|
|
3765
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:
|
|
3766
3863
|
listenerApi.dispatch(setTimeSync(group.payloadByType[SYNCGROUPS_TYPE_SETTIME], [{
|
|
3767
3864
|
targetId: targetToUpdate,
|
|
3768
3865
|
value: group.payloadByType[SYNCGROUPS_TYPE_SETTIME].value
|
|
3769
3866
|
}], [groupId]));
|
|
3770
|
-
return _context.abrupt("break",
|
|
3771
|
-
case
|
|
3867
|
+
return _context.abrupt("break", 21);
|
|
3868
|
+
case 16:
|
|
3772
3869
|
if (group.payloadByType[SYNCGROUPS_TYPE_SETBBOX]) {
|
|
3773
|
-
_context.next =
|
|
3870
|
+
_context.next = 18;
|
|
3774
3871
|
break;
|
|
3775
3872
|
}
|
|
3776
3873
|
return _context.abrupt("return");
|
|
3777
|
-
case
|
|
3874
|
+
case 18:
|
|
3778
3875
|
listenerApi.dispatch(setBboxSync(group.payloadByType[SYNCGROUPS_TYPE_SETBBOX], [{
|
|
3779
3876
|
targetId: targetToUpdate,
|
|
3780
3877
|
bbox: group.payloadByType[SYNCGROUPS_TYPE_SETBBOX].bbox,
|
|
3781
3878
|
srs: group.payloadByType[SYNCGROUPS_TYPE_SETBBOX].srs
|
|
3782
3879
|
}], [groupId]));
|
|
3783
|
-
return _context.abrupt("break",
|
|
3784
|
-
case
|
|
3785
|
-
return _context.abrupt("break",
|
|
3786
|
-
case
|
|
3880
|
+
return _context.abrupt("break", 21);
|
|
3881
|
+
case 20:
|
|
3882
|
+
return _context.abrupt("break", 21);
|
|
3883
|
+
case 21:
|
|
3787
3884
|
case "end":
|
|
3788
3885
|
return _context.stop();
|
|
3789
3886
|
}
|
|
@@ -4054,32 +4151,25 @@ var selectors$5 = /*#__PURE__*/Object.freeze({
|
|
|
4054
4151
|
selectSharedData: selectSharedData
|
|
4055
4152
|
});
|
|
4056
4153
|
|
|
4057
|
-
|
|
4058
|
-
*
|
|
4059
|
-
*
|
|
4060
|
-
* You may obtain a copy of the License at
|
|
4061
|
-
*
|
|
4062
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
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).
|
|
4063
4157
|
*
|
|
4064
|
-
*
|
|
4065
|
-
*
|
|
4066
|
-
*
|
|
4067
|
-
*
|
|
4068
|
-
*
|
|
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.
|
|
4069
4164
|
*
|
|
4070
|
-
*
|
|
4071
|
-
*
|
|
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
|
|
4165
|
+
* @param panelId panelId to register as sync source
|
|
4166
|
+
* @returns timeslider state
|
|
4079
4167
|
*/
|
|
4080
4168
|
var useSyncgroupTimeState = function useSyncgroupTimeState(panelId) {
|
|
4169
|
+
var _ref;
|
|
4081
4170
|
var debounceMs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
|
|
4082
4171
|
var dispatch = useDispatch();
|
|
4172
|
+
var defaultNowTime = React.useRef(Math.round(Date.now() / 1000));
|
|
4083
4173
|
var syncGroupsAddSourceCallBack = React.useCallback(function (payload) {
|
|
4084
4174
|
dispatch(syncGroupAddSource(payload));
|
|
4085
4175
|
}, [dispatch]);
|
|
@@ -4101,11 +4191,94 @@ var useSyncgroupTimeState = function useSyncgroupTimeState(panelId) {
|
|
|
4101
4191
|
var syncGroupTimeSliderCenterStartEndStep = useSelector(function (store) {
|
|
4102
4192
|
return getSyncedStartCenterEndStepCurrentTime(store, panelId);
|
|
4103
4193
|
});
|
|
4194
|
+
var syncSourceTime = useSelector(function (store) {
|
|
4195
|
+
return getTime(getSynchronizationGroupStore(store), panelId);
|
|
4196
|
+
});
|
|
4104
4197
|
var syncTargets = useSelector(function (store) {
|
|
4105
4198
|
return getAllTargetGroupsForSource(store, panelId);
|
|
4106
4199
|
});
|
|
4107
|
-
var isSyncgroupLinked =
|
|
4108
|
-
|
|
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);
|
|
4109
4282
|
};
|
|
4110
4283
|
|
|
4111
4284
|
var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
|
|
@@ -5871,6 +6044,15 @@ var getLegendId = createSelector(getMapById, function (store) {
|
|
|
5871
6044
|
var getIsClockVisible = createSelector(getMapById, function (store) {
|
|
5872
6045
|
return store === null || store === void 0 ? void 0 : store.isClockVisible;
|
|
5873
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);
|
|
5874
6056
|
/**
|
|
5875
6057
|
* Returns if clock position from webmap state
|
|
5876
6058
|
*
|
|
@@ -5910,14 +6092,14 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5910
6092
|
}, function (store, mapId) {
|
|
5911
6093
|
var _getMapById3;
|
|
5912
6094
|
return (_getMapById3 = getMapById(store, mapId)) === null || _getMapById3 === void 0 ? void 0 : _getMapById3.dockedLayerManagerDimensions;
|
|
5913
|
-
}, getIsClockVisible, getClockPosition, getClockSize, getUiStore, function (_store, mapId) {
|
|
6095
|
+
}, getIsClockVisible, getIsClockOptionsMenuVisible, getClockPosition, getClockSize, getUiStore, function (_store, mapId) {
|
|
5914
6096
|
return mapId;
|
|
5915
6097
|
}, function (_store, _mapId) {
|
|
5916
6098
|
var keepAllDims = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
5917
6099
|
return 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) {
|
|
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) {
|
|
5919
6101
|
var _overLayers$, _uiStore$dialogs$lege;
|
|
5920
|
-
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';
|
|
5921
6103
|
var allLayers = [].concat(_toConsumableArray(baseLayers), _toConsumableArray(overLayers), _toConsumableArray(mapLayers)).map(function (_ref3) {
|
|
5922
6104
|
_ref3.mapId;
|
|
5923
6105
|
var layer = _objectWithoutProperties(_ref3, _excluded$2);
|
|
@@ -5957,7 +6139,7 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5957
6139
|
}, dockedLayerManagerDimensions && {
|
|
5958
6140
|
dockedLayerManagerDimensions: dockedLayerManagerDimensions
|
|
5959
6141
|
}) : {};
|
|
5960
|
-
return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
6142
|
+
return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
5961
6143
|
layers: allLayers
|
|
5962
6144
|
}, activeLayerId && {
|
|
5963
6145
|
activeLayerId: activeLayerId
|
|
@@ -5984,6 +6166,8 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5984
6166
|
defaultOverlayer: defaultOverlayer
|
|
5985
6167
|
}, dockedLayerManagerPreset), isClockVisible !== undefined && {
|
|
5986
6168
|
isClockVisible: isClockVisible
|
|
6169
|
+
}), isClockOptionsMenuVisible !== undefined && {
|
|
6170
|
+
isClockOptionsMenuVisible: isClockOptionsMenuVisible
|
|
5987
6171
|
}), clockPosition !== undefined && {
|
|
5988
6172
|
clockPosition: clockPosition
|
|
5989
6173
|
}), clockSize !== undefined && {
|
|
@@ -6246,6 +6430,7 @@ var selectors$1 = /*#__PURE__*/Object.freeze({
|
|
|
6246
6430
|
getFirstMap: getFirstMap,
|
|
6247
6431
|
getFirstMapId: getFirstMapId,
|
|
6248
6432
|
getHarmonieInitialProps: getHarmonieInitialProps,
|
|
6433
|
+
getIsClockOptionsMenuVisible: getIsClockOptionsMenuVisible,
|
|
6249
6434
|
getIsClockVisible: getIsClockVisible,
|
|
6250
6435
|
getIsEnabledLayersForMapDimension: getIsEnabledLayersForMapDimension,
|
|
6251
6436
|
getIsLayerActiveLayer: getIsLayerActiveLayer,
|
|
@@ -7230,6 +7415,16 @@ var olMetronomeHandler = function olMetronomeHandler(timerIds, listenerApi) {
|
|
|
7230
7415
|
}
|
|
7231
7416
|
});
|
|
7232
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
|
+
}
|
|
7233
7428
|
var timerIsInDwell = handleTimerDwell(timerId, animationListValues.length);
|
|
7234
7429
|
// Collect all layers for this syncgroups target
|
|
7235
7430
|
var reduxLayers = [];
|
|
@@ -7324,9 +7519,23 @@ mapListener.startListening({
|
|
|
7324
7519
|
return;
|
|
7325
7520
|
}
|
|
7326
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;
|
|
7327
7525
|
var shouldAutoUpdate = isAutoUpdating(listenerApi.getState(), mapId);
|
|
7328
7526
|
var prevTimeDimension = getLayerTimeDimension(listenerApi.getState(), layerId);
|
|
7329
|
-
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;
|
|
7330
7539
|
var incomingMaxTime = newTimeDimension === null || newTimeDimension === void 0 ? void 0 : newTimeDimension.maxValue;
|
|
7331
7540
|
var isIncomingMaxTimeLaterThanCurrentLayerTime = incomingMaxTime && (prevTimeDimension === null || prevTimeDimension === void 0 ? void 0 : prevTimeDimension.currentValue) && prevTimeDimension.currentValue !== incomingMaxTime;
|
|
7332
7541
|
if (isAutoUpdateLayer &&
|
|
@@ -7548,7 +7757,7 @@ mapListener.startListening({
|
|
|
7548
7757
|
actionCreator: mapActions.setMapPreset,
|
|
7549
7758
|
effect: function () {
|
|
7550
7759
|
var _effect2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref6, listenerApi) {
|
|
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;
|
|
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;
|
|
7552
7761
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
7553
7762
|
while (1) switch (_context2.prev = _context2.next) {
|
|
7554
7763
|
case 0:
|
|
@@ -7557,10 +7766,10 @@ mapListener.startListening({
|
|
|
7557
7766
|
mapId = payload.mapId, initialProps = payload.initialProps;
|
|
7558
7767
|
mapPreset = initialProps.mapPreset;
|
|
7559
7768
|
if (!mapPreset) {
|
|
7560
|
-
_context2.next =
|
|
7769
|
+
_context2.next = 62;
|
|
7561
7770
|
break;
|
|
7562
7771
|
}
|
|
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;
|
|
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;
|
|
7564
7773
|
_filterLayers = filterLayers(layers), mapLayers = _filterLayers.mapLayers, baseLayers = _filterLayers.baseLayers, overLayers = _filterLayers.overLayers;
|
|
7565
7774
|
if (layers) {
|
|
7566
7775
|
// make sure all layers have a unique id before going forward
|
|
@@ -7693,6 +7902,13 @@ mapListener.startListening({
|
|
|
7693
7902
|
isClockVisible: isClockVisible
|
|
7694
7903
|
}));
|
|
7695
7904
|
}
|
|
7905
|
+
if (isClockOptionsMenuVisible) {
|
|
7906
|
+
// toggle clock options menu visibility
|
|
7907
|
+
listenerApi.dispatch(mapActions.toggleClockOptions({
|
|
7908
|
+
mapId: mapId,
|
|
7909
|
+
isClockOptionsMenuVisible: isClockOptionsMenuVisible
|
|
7910
|
+
}));
|
|
7911
|
+
}
|
|
7696
7912
|
if (clockPosition !== undefined) {
|
|
7697
7913
|
// set clock position
|
|
7698
7914
|
listenerApi.dispatch(mapActions.setClockPositionSize({
|
|
@@ -7851,15 +8067,15 @@ mapListener.startListening({
|
|
|
7851
8067
|
dockedLayerManagerDimensions: dockedLayerManagerDimensions
|
|
7852
8068
|
}));
|
|
7853
8069
|
}
|
|
7854
|
-
case
|
|
8070
|
+
case 52:
|
|
7855
8071
|
if (!(animationEndTime && (shouldEndtimeOverride || !(shouldAutoUpdate || shouldAnimate)))) {
|
|
7856
|
-
_context2.next =
|
|
8072
|
+
_context2.next = 62;
|
|
7857
8073
|
break;
|
|
7858
8074
|
}
|
|
7859
8075
|
fiveMinuteDelayForAnimation = 1000 * 60 * 5; // eslint-disable-next-line no-await-in-loop
|
|
7860
|
-
_context2.next =
|
|
8076
|
+
_context2.next = 56;
|
|
7861
8077
|
return listenerApi.delay(fiveMinuteDelayForAnimation);
|
|
7862
|
-
case
|
|
8078
|
+
case 56:
|
|
7863
8079
|
_animationEnd2 = getAnimationEndTime(listenerApi.getState(), mapId);
|
|
7864
8080
|
listenerApi.dispatch(mapActions.setAnimationEndTime({
|
|
7865
8081
|
mapId: mapId,
|
|
@@ -7874,13 +8090,13 @@ mapListener.startListening({
|
|
|
7874
8090
|
minutes: 5
|
|
7875
8091
|
}).toISOString()
|
|
7876
8092
|
}));
|
|
7877
|
-
_context2.next =
|
|
8093
|
+
_context2.next = 52;
|
|
7878
8094
|
break;
|
|
7879
|
-
case
|
|
7880
|
-
_context2.next =
|
|
8095
|
+
case 62:
|
|
8096
|
+
_context2.next = 67;
|
|
7881
8097
|
break;
|
|
7882
|
-
case
|
|
7883
|
-
_context2.prev =
|
|
8098
|
+
case 64:
|
|
8099
|
+
_context2.prev = 64;
|
|
7884
8100
|
_context2.t0 = _context2["catch"](1);
|
|
7885
8101
|
if (_context2.t0 instanceof Error) {
|
|
7886
8102
|
listenerApi.dispatch(mapActions.setMapPresetError({
|
|
@@ -7888,11 +8104,11 @@ mapListener.startListening({
|
|
|
7888
8104
|
error: _context2.t0.message
|
|
7889
8105
|
}));
|
|
7890
8106
|
}
|
|
7891
|
-
case
|
|
8107
|
+
case 67:
|
|
7892
8108
|
case "end":
|
|
7893
8109
|
return _context2.stop();
|
|
7894
8110
|
}
|
|
7895
|
-
}, _callee2, null, [[1,
|
|
8111
|
+
}, _callee2, null, [[1, 64]]);
|
|
7896
8112
|
}));
|
|
7897
8113
|
function effect(_x3, _x4) {
|
|
7898
8114
|
return _effect2.apply(this, arguments);
|
|
@@ -7932,6 +8148,8 @@ mapListener.startListening({
|
|
|
7932
8148
|
_mapSelectors$getData2 = _slicedToArray(_mapSelectors$getData, 2),
|
|
7933
8149
|
dataStartTime = _mapSelectors$getData2[0],
|
|
7934
8150
|
dataEndTime = _mapSelectors$getData2[1];
|
|
8151
|
+
var hasValidDataStartTime = Number.isFinite(dataStartTime) && dataStartTime > 0 && dataStartTime < 2147483647;
|
|
8152
|
+
var hasValidDataEndTime = Number.isFinite(dataEndTime) && dataEndTime > 0;
|
|
7935
8153
|
if (dateUtils.isValid(currentTime)) {
|
|
7936
8154
|
var makeForwardStep = function makeForwardStep() {
|
|
7937
8155
|
// timeStep is in minutes, convert to seconds
|
|
@@ -7941,7 +8159,7 @@ mapListener.startListening({
|
|
|
7941
8159
|
// This ensures 12:07 with 24h step goes to 12:00 next day, not 00:00
|
|
7942
8160
|
var roundingStep = timeStep > 12 * 60 ? 60 : timeStep; // Use 1 hour for large steps
|
|
7943
8161
|
var roundedTime = roundWithTimeStep(nextTime, roundingStep, 'round');
|
|
7944
|
-
var newTime = Math.min(roundedTime, dataEndTime
|
|
8162
|
+
var newTime = hasValidDataEndTime ? Math.min(roundedTime, dataEndTime) : roundedTime;
|
|
7945
8163
|
return dateUtils.fromUnix(newTime).toISOString();
|
|
7946
8164
|
};
|
|
7947
8165
|
var makeBackwardStep = function makeBackwardStep() {
|
|
@@ -7951,7 +8169,7 @@ mapListener.startListening({
|
|
|
7951
8169
|
// For large timesteps (>12h), round to nearest hour instead of timestep
|
|
7952
8170
|
var roundingStep = timeStep > 12 * 60 ? 60 : timeStep; // Use 1 hour for large steps
|
|
7953
8171
|
var roundedTime = roundWithTimeStep(nextTime, roundingStep, 'round');
|
|
7954
|
-
var newTime = Math.max(roundedTime, dataStartTime
|
|
8172
|
+
var newTime = hasValidDataStartTime ? Math.max(roundedTime, dataStartTime) : roundedTime;
|
|
7955
8173
|
return dateUtils.fromUnix(newTime).toISOString();
|
|
7956
8174
|
};
|
|
7957
8175
|
var selectedTimeString = isForwardStep ? makeForwardStep() : makeBackwardStep();
|
|
@@ -9568,4 +9786,4 @@ var configureOpenGeoWebStore = function configureOpenGeoWebStore() {
|
|
|
9568
9786
|
});
|
|
9569
9787
|
};
|
|
9570
9788
|
|
|
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 };
|
|
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 };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/store",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "16.0.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": "
|
|
11
|
+
"@opengeoweb/shared": "16.0.0",
|
|
12
12
|
"react-redux": "^9.2.0",
|
|
13
13
|
"@reduxjs/toolkit": "^2.6.1",
|
|
14
|
-
"@opengeoweb/webmap-react": "
|
|
15
|
-
"@opengeoweb/webmap": "
|
|
14
|
+
"@opengeoweb/webmap-react": "16.0.0",
|
|
15
|
+
"@opengeoweb/webmap": "16.0.0",
|
|
16
16
|
"immer": "^10.0.3",
|
|
17
17
|
"lodash": "^4.17.21",
|
|
18
|
-
"@opengeoweb/metronome": "
|
|
19
|
-
"@opengeoweb/time-slider": "
|
|
18
|
+
"@opengeoweb/metronome": "16.0.0",
|
|
19
|
+
"@opengeoweb/time-slider": "16.0.0",
|
|
20
20
|
"react-router-dom": "^6.23.1",
|
|
21
21
|
"ol": "^10.4.0",
|
|
22
22
|
"@turf/turf": "^7.2.0",
|
|
@@ -2,18 +2,18 @@ import type { CoreAppStore } from '../types';
|
|
|
2
2
|
import type { LinkedState, PotentialData, SynchronizationGroupState, SynchronizationSource } from './syncGroups/types';
|
|
3
3
|
import type { TimeSliderStartEndStepCurrent } from '../map/types';
|
|
4
4
|
export declare const getSynchronizationGroupStore: (store: CoreAppStore) => SynchronizationGroupState;
|
|
5
|
-
export declare const getTime: ((state: SynchronizationGroupState, id: string) => import("
|
|
5
|
+
export declare const getTime: ((state: SynchronizationGroupState, id: string) => import(".").SetTimeSyncProps | null) & {
|
|
6
6
|
clearCache: () => void;
|
|
7
7
|
resultsCount: () => number;
|
|
8
8
|
resetResultsCount: () => void;
|
|
9
9
|
} & {
|
|
10
|
-
resultFunc: (resultFuncArgs_0: SynchronizationSource) => import("
|
|
11
|
-
memoizedResultFunc: ((resultFuncArgs_0: SynchronizationSource) => import("
|
|
10
|
+
resultFunc: (resultFuncArgs_0: SynchronizationSource) => import(".").SetTimeSyncProps | null;
|
|
11
|
+
memoizedResultFunc: ((resultFuncArgs_0: SynchronizationSource) => import(".").SetTimeSyncProps | null) & {
|
|
12
12
|
clearCache: () => void;
|
|
13
13
|
resultsCount: () => number;
|
|
14
14
|
resetResultsCount: () => void;
|
|
15
15
|
};
|
|
16
|
-
lastResult: () => import("
|
|
16
|
+
lastResult: () => import(".").SetTimeSyncProps | null;
|
|
17
17
|
dependencies: [(state: SynchronizationGroupState, id: string) => SynchronizationSource];
|
|
18
18
|
recomputations: () => number;
|
|
19
19
|
resetRecomputations: () => void;
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import type { TimeSliderStartEndStepCurrent } from '../../map/map/types';
|
|
2
2
|
/**
|
|
3
|
-
* This registers a new syncgroup
|
|
4
|
-
* When the user links the source with a group, this hook returns an object with the timeslider state
|
|
5
|
-
*
|
|
6
|
-
*
|
|
3
|
+
* This registers a new syncgroup source for given panelId. 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) for the panel (if effectively linked).
|
|
5
|
+
*
|
|
6
|
+
* How it works:
|
|
7
|
+
* - Registers/unregisters the source on mount/unmount.
|
|
8
|
+
* - Returns `{ start, end, step, current }` when linked.
|
|
9
|
+
* - Uses linked map selected time as `current` when available.
|
|
10
|
+
* - Falls back to sync source "now" timestamp when
|
|
11
|
+
* synced state is not initialized yet.
|
|
12
|
+
*
|
|
13
|
+
* @param panelId panelId to register as sync source
|
|
14
|
+
* @returns timeslider state
|
|
7
15
|
*/
|
|
8
16
|
export declare const useSyncgroupTimeState: (panelId: string, debounceMs?: number) => TimeSliderStartEndStepCurrent | undefined;
|
|
@@ -7,4 +7,5 @@ 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 './syncSourceDisplayName';
|
|
10
11
|
export * from './hooks';
|
|
@@ -5,20 +5,36 @@ export declare const groupTypes: {
|
|
|
5
5
|
syncType: SyncType;
|
|
6
6
|
groupType: string;
|
|
7
7
|
}[];
|
|
8
|
-
export declare const createSyncGroupViewState: (groups: SynchronizationGroups, sources: SynchronizationSources
|
|
8
|
+
export declare const createSyncGroupViewState: (groups: SynchronizationGroups, sources: SynchronizationSources, viewsById?: Record<string, {
|
|
9
|
+
id?: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
componentType?: string;
|
|
12
|
+
}>) => SyncGroupViewState;
|
|
9
13
|
export declare const createSyncGroupViewStateSelector: ((state: CoreAppStore) => SyncGroupViewState) & {
|
|
10
14
|
clearCache: () => void;
|
|
11
15
|
resultsCount: () => number;
|
|
12
16
|
resetResultsCount: () => void;
|
|
13
17
|
} & {
|
|
14
|
-
resultFunc: (resultFuncArgs_0: SynchronizationGroups, resultFuncArgs_1: SynchronizationSources
|
|
15
|
-
|
|
18
|
+
resultFunc: (resultFuncArgs_0: SynchronizationGroups, resultFuncArgs_1: SynchronizationSources, resultFuncArgs_2: Record<string, {
|
|
19
|
+
id?: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
componentType?: string;
|
|
22
|
+
}> | undefined) => SyncGroupViewState;
|
|
23
|
+
memoizedResultFunc: ((resultFuncArgs_0: SynchronizationGroups, resultFuncArgs_1: SynchronizationSources, resultFuncArgs_2: Record<string, {
|
|
24
|
+
id?: string;
|
|
25
|
+
title?: string;
|
|
26
|
+
componentType?: string;
|
|
27
|
+
}> | undefined) => SyncGroupViewState) & {
|
|
16
28
|
clearCache: () => void;
|
|
17
29
|
resultsCount: () => number;
|
|
18
30
|
resetResultsCount: () => void;
|
|
19
31
|
};
|
|
20
32
|
lastResult: () => SyncGroupViewState;
|
|
21
|
-
dependencies: [(store: CoreAppStore) => SynchronizationGroups, (store: CoreAppStore) => SynchronizationSources
|
|
33
|
+
dependencies: [(store: CoreAppStore) => SynchronizationGroups, (store: CoreAppStore) => SynchronizationSources, (store: CoreAppStore) => Record<string, {
|
|
34
|
+
id?: string;
|
|
35
|
+
title?: string;
|
|
36
|
+
componentType?: string;
|
|
37
|
+
}> | undefined];
|
|
22
38
|
recomputations: () => number;
|
|
23
39
|
resetRecomputations: () => void;
|
|
24
40
|
dependencyRecomputations: () => number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Draft, PayloadAction } from '@reduxjs/toolkit';
|
|
2
2
|
import type { SetLayerAcceptanceTimePayload, SetLayerDimensionsPayload, SetLayerStylePayload, UpdateLayerInfoPayload } from '@opengeoweb/webmap-react';
|
|
3
|
-
import type { LayerState, Layer, AddLayerPayload, SetLayerDimensionPayload, SetLayerEnabledPayload, SetLayerOpacityPayload, SetLayerNamePayload, SetLayerGeojsonPayload, DeleteLayerPayload, ErrorLayerPayload, SetLayersPayload, SetBaseLayersPayload, AddBaseLayerPayload, AddAvailableBaseLayerPayload, AddAvailableBaseLayersPayload, SetAvailableBaseLayersPayload, SetSelectedFeaturePayload, UpdateFeaturePayload, ExitFeatureDrawModePayload, ToggleFeatureModePayload, UpdateFeaturePropertiesPayload, DuplicateMapLayerPayload, ShowLayerInfoPayload, SetLayerGeojsonFromLayerPayload, SetLayerOptionsPayload } from './types';
|
|
3
|
+
import type { LayerState, Layer, AddLayerPayload, SetLayerDimensionPayload, SetLayerEnabledPayload, SetLayerOpacityPayload, SetLayerNamePayload, SetLayerGeojsonPayload, DeleteLayerPayload, ErrorLayerPayload, SetLayersPayload, SetBaseLayersPayload, AddBaseLayerPayload, AddAvailableBaseLayerPayload, AddAvailableBaseLayersPayload, SetAvailableBaseLayersPayload, SetSelectedFeaturePayload, UpdateFeaturePayload, ExitFeatureDrawModePayload, ToggleFeatureModePayload, UpdateFeaturePropertiesPayload, DuplicateMapLayerPayload, ShowLayerInfoPayload, SetLayerGeojsonFromLayerPayload, SetLayerOptionsPayload, SetLayerLegendVisibilityPayload } from './types';
|
|
4
4
|
export declare const createLayer: ({ id, opacity, acceptanceTimeInMinutes, enabled, layerType, status, useLatestReferenceTime, ...props }: Layer) => Layer;
|
|
5
5
|
export declare const initialState: LayerState;
|
|
6
6
|
export declare const slice: import("@reduxjs/toolkit").Slice<LayerState, {
|
|
@@ -43,6 +43,7 @@ export declare const slice: import("@reduxjs/toolkit").Slice<LayerState, {
|
|
|
43
43
|
}>) => void;
|
|
44
44
|
showLayerInfo: (draft: Draft<LayerState>, action: PayloadAction<ShowLayerInfoPayload>) => void;
|
|
45
45
|
hideLayerInfo: (draft: Draft<LayerState>) => void;
|
|
46
|
+
SetLayerLegendVisibilityPayload: (draft: Draft<LayerState>, action: PayloadAction<SetLayerLegendVisibilityPayload>) => void;
|
|
46
47
|
}, "layerReducer", "layerReducer", import("@reduxjs/toolkit").SliceSelectors<LayerState>>;
|
|
47
48
|
export declare const layerReducer: import("redux").Reducer<LayerState>, layerActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
48
49
|
addLayer: (draft: Draft<LayerState>, action: PayloadAction<AddLayerPayload>) => void;
|
|
@@ -84,5 +85,6 @@ export declare const layerReducer: import("redux").Reducer<LayerState>, layerAct
|
|
|
84
85
|
}>) => void;
|
|
85
86
|
showLayerInfo: (draft: Draft<LayerState>, action: PayloadAction<ShowLayerInfoPayload>) => void;
|
|
86
87
|
hideLayerInfo: (draft: Draft<LayerState>) => void;
|
|
88
|
+
SetLayerLegendVisibilityPayload: (draft: Draft<LayerState>, action: PayloadAction<SetLayerLegendVisibilityPayload>) => void;
|
|
87
89
|
}, "layerReducer">;
|
|
88
|
-
export type LayerActions = ReturnType<typeof layerActions.layerSetDimensions> | ReturnType<typeof layerActions.layerChangeStyle> | ReturnType<typeof layerActions.addAvailableBaseLayer> | ReturnType<typeof layerActions.addAvailableBaseLayers> | ReturnType<typeof layerActions.addBaseLayer> | ReturnType<typeof layerActions.addLayer> | ReturnType<typeof layerActions.baseLayerDelete> | ReturnType<typeof layerActions.onUpdateLayerInformation> | ReturnType<typeof layerActions.layerChangeDimension> | ReturnType<typeof layerActions.layerChangeEnabled> | ReturnType<typeof layerActions.layerChangeGeojson> | ReturnType<typeof layerActions.layerChangeName> | ReturnType<typeof layerActions.layerChangeOpacity> | ReturnType<typeof layerActions.layerDelete> | ReturnType<typeof layerActions.layerError> | ReturnType<typeof layerActions.setBaseLayers> | ReturnType<typeof layerActions.setLayers>;
|
|
90
|
+
export type LayerActions = ReturnType<typeof layerActions.layerSetDimensions> | ReturnType<typeof layerActions.layerChangeStyle> | ReturnType<typeof layerActions.addAvailableBaseLayer> | ReturnType<typeof layerActions.addAvailableBaseLayers> | ReturnType<typeof layerActions.addBaseLayer> | ReturnType<typeof layerActions.addLayer> | ReturnType<typeof layerActions.baseLayerDelete> | ReturnType<typeof layerActions.onUpdateLayerInformation> | ReturnType<typeof layerActions.layerChangeDimension> | ReturnType<typeof layerActions.layerChangeEnabled> | ReturnType<typeof layerActions.layerChangeGeojson> | ReturnType<typeof layerActions.layerChangeName> | ReturnType<typeof layerActions.layerChangeOpacity> | ReturnType<typeof layerActions.layerDelete> | ReturnType<typeof layerActions.layerError> | ReturnType<typeof layerActions.setBaseLayers> | ReturnType<typeof layerActions.setLayers> | ReturnType<typeof layerActions.SetLayerLegendVisibilityPayload>;
|
|
@@ -67,6 +67,11 @@ export declare const slice: import("@reduxjs/toolkit").Slice<WebMapState, {
|
|
|
67
67
|
origin: string;
|
|
68
68
|
}>) => void;
|
|
69
69
|
toggleClock: (draft: Draft<WebMapState>, action: PayloadAction<ToggleClockPayload>) => void;
|
|
70
|
+
toggleClockOptions: (draft: Draft<WebMapState>, action: PayloadAction<{
|
|
71
|
+
mapId: string;
|
|
72
|
+
isClockOptionsMenuVisible: boolean;
|
|
73
|
+
origin?: string;
|
|
74
|
+
}>) => void;
|
|
70
75
|
setClockPositionSize: (draft: Draft<WebMapState>, action: PayloadAction<SetClockPositionSizePayload>) => void;
|
|
71
76
|
}, "mapReducer", "mapReducer", import("@reduxjs/toolkit").SliceSelectors<WebMapState>>;
|
|
72
77
|
export declare const mapActions: {
|
|
@@ -127,6 +132,11 @@ export declare const mapActions: {
|
|
|
127
132
|
origin: string;
|
|
128
133
|
}, "mapReducer/changeOverlayer">;
|
|
129
134
|
toggleClock: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleClockPayload, "mapReducer/toggleClock">;
|
|
135
|
+
toggleClockOptions: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
136
|
+
mapId: string;
|
|
137
|
+
isClockOptionsMenuVisible: boolean;
|
|
138
|
+
origin?: string;
|
|
139
|
+
}, "mapReducer/toggleClockOptions">;
|
|
130
140
|
setClockPositionSize: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetClockPositionSizePayload, "mapReducer/setClockPositionSize">;
|
|
131
141
|
};
|
|
132
142
|
export declare const mapReducer: import("redux").Reducer<WebMapState>;
|
|
@@ -2094,6 +2094,33 @@ export declare const getIsClockVisible: ((state: CoreAppStore, mapId: string) =>
|
|
|
2094
2094
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
2095
2095
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
2096
2096
|
};
|
|
2097
|
+
/**
|
|
2098
|
+
* Returns if clock options menu is visible from webmap state
|
|
2099
|
+
*
|
|
2100
|
+
* @param {CoreAppStore} store - The Redux store from which the map state will be extracted.
|
|
2101
|
+
* @returns {boolean | undefined} returnType: boolean
|
|
2102
|
+
*/
|
|
2103
|
+
export declare const getIsClockOptionsMenuVisible: ((state: CoreAppStore, mapId: string) => boolean | undefined) & {
|
|
2104
|
+
clearCache: () => void;
|
|
2105
|
+
resultsCount: () => number;
|
|
2106
|
+
resetResultsCount: () => void;
|
|
2107
|
+
} & {
|
|
2108
|
+
resultFunc: (resultFuncArgs_0: WebMap | undefined) => boolean | undefined;
|
|
2109
|
+
memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => boolean | undefined) & {
|
|
2110
|
+
clearCache: () => void;
|
|
2111
|
+
resultsCount: () => number;
|
|
2112
|
+
resetResultsCount: () => void;
|
|
2113
|
+
};
|
|
2114
|
+
lastResult: () => boolean | undefined;
|
|
2115
|
+
dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
|
|
2116
|
+
recomputations: () => number;
|
|
2117
|
+
resetRecomputations: () => void;
|
|
2118
|
+
dependencyRecomputations: () => number;
|
|
2119
|
+
resetDependencyRecomputations: () => void;
|
|
2120
|
+
} & {
|
|
2121
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
2122
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
2123
|
+
};
|
|
2097
2124
|
/**
|
|
2098
2125
|
* Returns if clock position from webmap state
|
|
2099
2126
|
*
|
|
@@ -2162,8 +2189,8 @@ export declare const getMapPreset: ((state: CoreAppStore & uiTypes.UIModuleState
|
|
|
2162
2189
|
resultsCount: () => number;
|
|
2163
2190
|
resetResultsCount: () => void;
|
|
2164
2191
|
} & {
|
|
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:
|
|
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:
|
|
2192
|
+
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: boolean | undefined, resultFuncArgs_27: ClockPosition | undefined, resultFuncArgs_28: ClockSize | undefined, resultFuncArgs_29: uiTypes.UIStoreType, resultFuncArgs_30: string, resultFuncArgs_31: string) => MapPreset;
|
|
2193
|
+
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: boolean | undefined, resultFuncArgs_27: ClockPosition | undefined, resultFuncArgs_28: ClockSize | undefined, resultFuncArgs_29: uiTypes.UIStoreType, resultFuncArgs_30: string, resultFuncArgs_31: string) => MapPreset) & {
|
|
2167
2194
|
clearCache: () => void;
|
|
2168
2195
|
resultsCount: () => number;
|
|
2169
2196
|
resetResultsCount: () => void;
|
|
@@ -2729,6 +2756,26 @@ export declare const getMapPreset: ((state: CoreAppStore & uiTypes.UIModuleState
|
|
|
2729
2756
|
} & {
|
|
2730
2757
|
memoize: typeof import("reselect").weakMapMemoize;
|
|
2731
2758
|
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
2759
|
+
}, ((state: CoreAppStore, mapId: string) => boolean | undefined) & {
|
|
2760
|
+
clearCache: () => void;
|
|
2761
|
+
resultsCount: () => number;
|
|
2762
|
+
resetResultsCount: () => void;
|
|
2763
|
+
} & {
|
|
2764
|
+
resultFunc: (resultFuncArgs_0: WebMap | undefined) => boolean | undefined;
|
|
2765
|
+
memoizedResultFunc: ((resultFuncArgs_0: WebMap | undefined) => boolean | undefined) & {
|
|
2766
|
+
clearCache: () => void;
|
|
2767
|
+
resultsCount: () => number;
|
|
2768
|
+
resetResultsCount: () => void;
|
|
2769
|
+
};
|
|
2770
|
+
lastResult: () => boolean | undefined;
|
|
2771
|
+
dependencies: [(store: CoreAppStore, mapId: string) => WebMap | undefined];
|
|
2772
|
+
recomputations: () => number;
|
|
2773
|
+
resetRecomputations: () => void;
|
|
2774
|
+
dependencyRecomputations: () => number;
|
|
2775
|
+
resetDependencyRecomputations: () => void;
|
|
2776
|
+
} & {
|
|
2777
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
2778
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
2732
2779
|
}, ((state: CoreAppStore, mapId: string) => ClockPosition | undefined) & {
|
|
2733
2780
|
clearCache: () => void;
|
|
2734
2781
|
resultsCount: () => number;
|
|
@@ -57,6 +57,7 @@ export interface WebMap {
|
|
|
57
57
|
isTimeScrollingEnabled?: boolean;
|
|
58
58
|
selectedMapIds?: string[];
|
|
59
59
|
isClockVisible?: boolean;
|
|
60
|
+
isClockOptionsMenuVisible?: boolean;
|
|
60
61
|
clockPosition?: ClockPosition;
|
|
61
62
|
clockSize?: ClockSize;
|
|
62
63
|
}
|
|
@@ -127,6 +128,7 @@ export interface MapPreset {
|
|
|
127
128
|
defaultOverlayer?: string;
|
|
128
129
|
refTimeDimensionModes?: RefTimeDimensionModes;
|
|
129
130
|
isClockVisible?: boolean;
|
|
131
|
+
isClockOptionsMenuVisible?: boolean;
|
|
130
132
|
clockPosition?: ClockPosition;
|
|
131
133
|
clockSize?: ClockSize;
|
|
132
134
|
}
|