@opengeoweb/store 20.0.0 → 20.0.1-nightly-20261003

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/dist/index.esm.js CHANGED
@@ -3,7 +3,7 @@ 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
4
  export { LayerType } from '@opengeoweb/webmap';
5
5
  import { dateUtils, PROJECTION, defaultDelay, useDebounce } from '@opengeoweb/shared';
6
- import { secondsPerPxFromCanvasWidth, defaultTimeSpan, defaultSecondsPerPx, defaultAnimationDelayAtStart, defaultTimeStep, AnimationLengthMode, defaultExactSelections, roundWithTimeStep, resolveAnimationRange, isValidAnimationLength, defaultOffsetSelections, isAnchoredMode, getAnimationLengthFromRange, withModeSelections, getSpeedDelay, isWithinAnimationStepLimit } from '@opengeoweb/time-slider';
6
+ import { secondsPerPxFromCanvasWidth, defaultTimeSpan, defaultSecondsPerPx, defaultAnimationDelayAtStart, defaultTimeStep, MAX_ANIMATION_STEPS, AnimationLengthMode, defaultExactSelections, withDraggedRange, anchorInstantFor, roundWithTimeStep, resolveAnimationRange, isValidAnimationLength, defaultOffsetSelections, isAnchoredMode, getAnimationLengthFromRange, withModeSelections, getSpeedDelay, isWithinAnimationStepLimit } from '@opengeoweb/time-slider';
7
7
  import { produce } from 'immer';
8
8
  import { getLastEmptyFeatureIndex, getGeoJson, moveFeature, createInterSections, defaultLayers, fetchStacCatalogRoot, stacCatalogCollectionToLayerProps, fetchStacCatalogCollections, emptyGeoJSON, defaultIntersectionStyleProperties, addSelectionTypeToGeoJSON, getFeatureCollection } from '@opengeoweb/webmap-react';
9
9
  export { defaultLayers } from '@opengeoweb/webmap-react';
@@ -1019,6 +1019,24 @@ var generateAnimationList = function generateAnimationList(unixAnimationStart, u
1019
1019
  }
1020
1020
  // Initialize aggregate start time for animation points in case of multiple intervals
1021
1021
  var currentAnimationTime = unixAnimationStart;
1022
+ // Sum only the intervals' overlap with the requested animation window so
1023
+ // time outside the selected range does not force the step to widen.
1024
+ var totalActiveSpanSeconds = iso8601Intervals.reduce(function (sum, interval) {
1025
+ if (!interval.duration) {
1026
+ return sum;
1027
+ }
1028
+ var start = dateUtils.unix(dateUtils.utc(interval.startTime));
1029
+ var end = dateUtils.unix(dateUtils.utc(interval.endTime));
1030
+ var overlapStart = Math.max(start, unixAnimationStart);
1031
+ var overlapEnd = Math.min(end, unixAnimationEnd);
1032
+ return sum + Math.max(0, overlapEnd - overlapStart);
1033
+ }, 0);
1034
+ // The smallest interval that keeps the whole animation within MAX_ANIMATION_STEPS
1035
+ var minIntervalSeconds = Math.ceil(totalActiveSpanSeconds / MAX_ANIMATION_STEPS);
1036
+ // Widen the native interval to a multiple of itself so steps still land on real data timestamps
1037
+ var widenToStepLimit = function widenToStepLimit(nativeIntervalSeconds) {
1038
+ return nativeIntervalSeconds >= minIntervalSeconds ? nativeIntervalSeconds : Math.ceil(minIntervalSeconds / nativeIntervalSeconds) * nativeIntervalSeconds;
1039
+ };
1022
1040
  // Iterate over each iso8601 interval and generate animation points
1023
1041
  iso8601Intervals.forEach(function (timeInterval) {
1024
1042
  if (!timeInterval.duration) {
@@ -1032,7 +1050,7 @@ var generateAnimationList = function generateAnimationList(unixAnimationStart, u
1032
1050
  var interval = parseISO8601IntervalToDateInterval(duration);
1033
1051
  return getTimeStepFromDataInterval(interval) * 60;
1034
1052
  };
1035
- var intervalSeconds = animationInterval ? animationInterval * 60 : getIntervalInSeconds(timeInterval.duration);
1053
+ var intervalSeconds = animationInterval ? animationInterval * 60 : widenToStepLimit(getIntervalInSeconds(timeInterval.duration));
1036
1054
  // Generate animation points for the current interval
1037
1055
  for (var i = currentAnimationTime; i <= unixAnimationEnd; i += intervalSeconds) {
1038
1056
  if (i >= unixIntervalStart && i <= unixIntervalEnd) {
@@ -2425,7 +2443,7 @@ var initialState$5 = {
2425
2443
  byId: {},
2426
2444
  allIds: []
2427
2445
  };
2428
- /** Dragging the slider selects an exact window, so the mode needs its own range stored with it. */
2446
+ /** A range can arrive one side at a time, so the other side comes from what is already stored. */
2429
2447
  var exactSelectionsFrom = function exactSelectionsFrom(animationLength, animationStartTime, animationEndTime) {
2430
2448
  var _animationLength$exac;
2431
2449
  var current = (_animationLength$exac = animationLength === null || animationLength === void 0 ? void 0 : animationLength.exact) !== null && _animationLength$exac !== void 0 ? _animationLength$exac : defaultExactSelections();
@@ -2434,6 +2452,13 @@ var exactSelectionsFrom = function exactSelectionsFrom(animationLength, animatio
2434
2452
  animationEndTime: animationEndTime !== null && animationEndTime !== void 0 ? animationEndTime : current.animationEndTime
2435
2453
  };
2436
2454
  };
2455
+ /** A moved edge edits the selected mode; a map without a mode gains an exact one. */
2456
+ var animationLengthForMovedEdge = function animationLengthForMovedEdge(map, movedEdge, referenceTime) {
2457
+ return map.animationLength ? withDraggedRange(map.animationLength, movedEdge, anchorInstantFor(map.animationLength, referenceTime)) : {
2458
+ mode: AnimationLengthMode.Exact,
2459
+ exact: exactSelectionsFrom(map.animationLength, map.animationStartTime, map.animationEndTime)
2460
+ };
2461
+ };
2437
2462
  var slice$6 = createSlice({
2438
2463
  initialState: initialState$5,
2439
2464
  name: 'mapReducer',
@@ -2533,28 +2558,28 @@ var slice$6 = createSlice({
2533
2558
  setAnimationStartTime: function setAnimationStartTime(draft, action) {
2534
2559
  var _action$payload6 = action.payload,
2535
2560
  mapId = _action$payload6.mapId,
2536
- animationStartTime = _action$payload6.animationStartTime;
2561
+ animationStartTime = _action$payload6.animationStartTime,
2562
+ referenceTime = _action$payload6.referenceTime;
2537
2563
  if (!draft.byId[mapId]) {
2538
2564
  return;
2539
2565
  }
2540
2566
  draft.byId[mapId].animationStartTime = animationStartTime;
2541
- draft.byId[mapId].animationLength = _objectSpread2(_objectSpread2({}, draft.byId[mapId].animationLength), {}, {
2542
- mode: AnimationLengthMode.Exact,
2543
- exact: exactSelectionsFrom(draft.byId[mapId].animationLength, animationStartTime, draft.byId[mapId].animationEndTime)
2544
- });
2567
+ draft.byId[mapId].animationLength = animationLengthForMovedEdge(draft.byId[mapId], {
2568
+ animationStartTime: animationStartTime
2569
+ }, referenceTime);
2545
2570
  },
2546
2571
  setAnimationEndTime: function setAnimationEndTime(draft, action) {
2547
2572
  var _action$payload7 = action.payload,
2548
2573
  mapId = _action$payload7.mapId,
2549
- animationEndTime = _action$payload7.animationEndTime;
2574
+ animationEndTime = _action$payload7.animationEndTime,
2575
+ referenceTime = _action$payload7.referenceTime;
2550
2576
  if (!draft.byId[mapId]) {
2551
2577
  return;
2552
2578
  }
2553
2579
  draft.byId[mapId].animationEndTime = animationEndTime;
2554
- draft.byId[mapId].animationLength = _objectSpread2(_objectSpread2({}, draft.byId[mapId].animationLength), {}, {
2555
- mode: AnimationLengthMode.Exact,
2556
- exact: exactSelectionsFrom(draft.byId[mapId].animationLength, draft.byId[mapId].animationStartTime, animationEndTime)
2557
- });
2580
+ draft.byId[mapId].animationLength = animationLengthForMovedEdge(draft.byId[mapId], {
2581
+ animationEndTime: animationEndTime
2582
+ }, referenceTime);
2558
2583
  },
2559
2584
  setAnimationLength: function setAnimationLength(draft, action) {
2560
2585
  var _action$payload8 = action.payload,
@@ -2704,106 +2729,91 @@ var slice$6 = createSlice({
2704
2729
  }
2705
2730
  draft.byId[mapId].isTimeSpanAuto = timeSpanAuto;
2706
2731
  },
2707
- /** Superseded by setAnimationLength; removed together with the old animation length button. */
2708
- toggleAnimationLengthAuto: function toggleAnimationLengthAuto(draft, action) {
2732
+ toggleTimeSliderHover: function toggleTimeSliderHover(draft, action) {
2709
2733
  var _action$payload19 = action.payload,
2710
2734
  mapId = _action$payload19.mapId,
2711
- autoAnimationLength = _action$payload19.autoAnimationLength;
2712
- if (!draft.byId[mapId]) {
2713
- return;
2714
- }
2715
- draft.byId[mapId].animationLength = autoAnimationLength ? _objectSpread2(_objectSpread2({}, draft.byId[mapId].animationLength), {}, {
2716
- mode: AnimationLengthMode.Auto
2717
- }) : _objectSpread2(_objectSpread2({}, draft.byId[mapId].animationLength), {}, {
2718
- mode: AnimationLengthMode.Exact,
2719
- exact: exactSelectionsFrom(draft.byId[mapId].animationLength, draft.byId[mapId].animationStartTime, draft.byId[mapId].animationEndTime)
2720
- });
2721
- },
2722
- toggleTimeSliderHover: function toggleTimeSliderHover(draft, action) {
2723
- var _action$payload20 = action.payload,
2724
- mapId = _action$payload20.mapId,
2725
- isTimeSliderHoverOn = _action$payload20.isTimeSliderHoverOn;
2735
+ isTimeSliderHoverOn = _action$payload19.isTimeSliderHoverOn;
2726
2736
  if (!draft.byId[mapId]) {
2727
2737
  return;
2728
2738
  }
2729
2739
  draft.byId[mapId].isTimeSliderHoverOn = isTimeSliderHoverOn;
2730
2740
  },
2731
2741
  toggleTimeSliderIsVisible: function toggleTimeSliderIsVisible(draft, action) {
2732
- var _action$payload21 = action.payload,
2733
- mapId = _action$payload21.mapId,
2734
- isTimeSliderVisible = _action$payload21.isTimeSliderVisible;
2742
+ var _action$payload20 = action.payload,
2743
+ mapId = _action$payload20.mapId,
2744
+ isTimeSliderVisible = _action$payload20.isTimeSliderVisible;
2735
2745
  if (!draft.byId[mapId]) {
2736
2746
  return;
2737
2747
  }
2738
2748
  draft.byId[mapId].isTimeSliderVisible = isTimeSliderVisible;
2739
2749
  },
2740
2750
  toggleZoomControls: function toggleZoomControls(draft, action) {
2741
- var _action$payload22 = action.payload,
2742
- mapId = _action$payload22.mapId,
2743
- shouldShowZoomControls = _action$payload22.shouldShowZoomControls;
2751
+ var _action$payload21 = action.payload,
2752
+ mapId = _action$payload21.mapId,
2753
+ shouldShowZoomControls = _action$payload21.shouldShowZoomControls;
2744
2754
  if (!draft.byId[mapId]) {
2745
2755
  return;
2746
2756
  }
2747
2757
  draft.byId[mapId].shouldShowZoomControls = shouldShowZoomControls;
2748
2758
  },
2749
2759
  setMapPinLocation: function setMapPinLocation(draft, action) {
2750
- var _action$payload23 = action.payload,
2751
- mapId = _action$payload23.mapId,
2752
- mapPinLocation = _action$payload23.mapPinLocation;
2760
+ var _action$payload22 = action.payload,
2761
+ mapId = _action$payload22.mapId,
2762
+ mapPinLocation = _action$payload22.mapPinLocation;
2753
2763
  if (!draft.byId[mapId]) {
2754
2764
  return;
2755
2765
  }
2756
2766
  draft.byId[mapId].mapPinLocation = mapPinLocation;
2757
2767
  },
2758
2768
  setDisableMapPin: function setDisableMapPin(draft, action) {
2759
- var _action$payload24 = action.payload,
2760
- mapId = _action$payload24.mapId,
2761
- disableMapPin = _action$payload24.disableMapPin;
2769
+ var _action$payload23 = action.payload,
2770
+ mapId = _action$payload23.mapId,
2771
+ disableMapPin = _action$payload23.disableMapPin;
2762
2772
  if (!draft.byId[mapId]) {
2763
2773
  return;
2764
2774
  }
2765
2775
  draft.byId[mapId].disableMapPin = disableMapPin;
2766
2776
  },
2767
2777
  toggleMapPinIsVisible: function toggleMapPinIsVisible(draft, action) {
2768
- var _action$payload25 = action.payload,
2769
- mapId = _action$payload25.mapId,
2770
- displayMapPin = _action$payload25.displayMapPin;
2778
+ var _action$payload24 = action.payload,
2779
+ mapId = _action$payload24.mapId,
2780
+ displayMapPin = _action$payload24.displayMapPin;
2771
2781
  if (!draft.byId[mapId]) {
2772
2782
  return;
2773
2783
  }
2774
2784
  draft.byId[mapId].displayMapPin = displayMapPin;
2775
2785
  },
2776
2786
  setDockedLayerManagerSize: function setDockedLayerManagerSize(draft, action) {
2777
- var _action$payload26 = action.payload,
2778
- mapId = _action$payload26.mapId,
2779
- dockedLayerManagerSize = _action$payload26.dockedLayerManagerSize;
2787
+ var _action$payload25 = action.payload,
2788
+ mapId = _action$payload25.mapId,
2789
+ dockedLayerManagerSize = _action$payload25.dockedLayerManagerSize;
2780
2790
  if (!draft.byId[mapId]) {
2781
2791
  return;
2782
2792
  }
2783
2793
  draft.byId[mapId].dockedLayerManagerSize = dockedLayerManagerSize;
2784
2794
  },
2785
2795
  setDockedLayerManagerPosition: function setDockedLayerManagerPosition(draft, action) {
2786
- var _action$payload27 = action.payload,
2787
- mapId = _action$payload27.mapId,
2788
- dockedLayerManagerPosition = _action$payload27.dockedLayerManagerPosition;
2796
+ var _action$payload26 = action.payload,
2797
+ mapId = _action$payload26.mapId,
2798
+ dockedLayerManagerPosition = _action$payload26.dockedLayerManagerPosition;
2789
2799
  if (!draft.byId[mapId]) {
2790
2800
  return;
2791
2801
  }
2792
2802
  draft.byId[mapId].dockedLayerManagerPosition = dockedLayerManagerPosition;
2793
2803
  },
2794
2804
  setDockedLayerManagerDimensions: function setDockedLayerManagerDimensions(draft, action) {
2795
- var _action$payload28 = action.payload,
2796
- mapId = _action$payload28.mapId,
2797
- dockedLayerManagerDimensions = _action$payload28.dockedLayerManagerDimensions;
2805
+ var _action$payload27 = action.payload,
2806
+ mapId = _action$payload27.mapId,
2807
+ dockedLayerManagerDimensions = _action$payload27.dockedLayerManagerDimensions;
2798
2808
  if (!draft.byId[mapId]) {
2799
2809
  return;
2800
2810
  }
2801
2811
  draft.byId[mapId].dockedLayerManagerDimensions = dockedLayerManagerDimensions;
2802
2812
  },
2803
2813
  setPendingInitialZoomToLayer: function setPendingInitialZoomToLayer(draft, action) {
2804
- var _action$payload29 = action.payload,
2805
- mapId = _action$payload29.mapId,
2806
- layerId = _action$payload29.layerId;
2814
+ var _action$payload28 = action.payload,
2815
+ mapId = _action$payload28.mapId,
2816
+ layerId = _action$payload28.layerId;
2807
2817
  if (!draft.byId[mapId]) {
2808
2818
  return;
2809
2819
  }
@@ -2814,18 +2824,18 @@ var slice$6 = createSlice({
2814
2824
  draft.defaultMapSettings = action.payload.preset;
2815
2825
  },
2816
2826
  changeOverlayer: function changeOverlayer(draft, action) {
2817
- var _action$payload30 = action.payload,
2818
- mapId = _action$payload30.mapId,
2819
- selectedOverlayer = _action$payload30.selectedOverlayer;
2827
+ var _action$payload29 = action.payload,
2828
+ mapId = _action$payload29.mapId,
2829
+ selectedOverlayer = _action$payload29.selectedOverlayer;
2820
2830
  if (!draft.byId[mapId]) {
2821
2831
  return;
2822
2832
  }
2823
2833
  draft.byId[mapId].overLayers = [selectedOverlayer];
2824
2834
  },
2825
2835
  toggleClock: function toggleClock(draft, action) {
2826
- var _action$payload31 = action.payload,
2827
- mapId = _action$payload31.mapId,
2828
- isClockVisible = _action$payload31.isClockVisible;
2836
+ var _action$payload30 = action.payload,
2837
+ mapId = _action$payload30.mapId,
2838
+ isClockVisible = _action$payload30.isClockVisible;
2829
2839
  if (!draft.byId[mapId]) {
2830
2840
  return;
2831
2841
  }
@@ -2836,19 +2846,19 @@ var slice$6 = createSlice({
2836
2846
  }
2837
2847
  },
2838
2848
  toggleClockOptions: function toggleClockOptions(draft, action) {
2839
- var _action$payload32 = action.payload,
2840
- mapId = _action$payload32.mapId,
2841
- isClockOptionsMenuVisible = _action$payload32.isClockOptionsMenuVisible;
2849
+ var _action$payload31 = action.payload,
2850
+ mapId = _action$payload31.mapId,
2851
+ isClockOptionsMenuVisible = _action$payload31.isClockOptionsMenuVisible;
2842
2852
  if (!draft.byId[mapId]) {
2843
2853
  return;
2844
2854
  }
2845
2855
  draft.byId[mapId].isClockOptionsMenuVisible = isClockOptionsMenuVisible;
2846
2856
  },
2847
2857
  setClockPositionSize: function setClockPositionSize(draft, action) {
2848
- var _action$payload33 = action.payload,
2849
- mapId = _action$payload33.mapId,
2850
- position = _action$payload33.position,
2851
- size = _action$payload33.size;
2858
+ var _action$payload32 = action.payload,
2859
+ mapId = _action$payload32.mapId,
2860
+ position = _action$payload32.position,
2861
+ size = _action$payload32.size;
2852
2862
  if (!draft.byId[mapId]) {
2853
2863
  return;
2854
2864
  }
@@ -2860,10 +2870,10 @@ var slice$6 = createSlice({
2860
2870
  }
2861
2871
  },
2862
2872
  setLegendPositionSize: function setLegendPositionSize(draft, action) {
2863
- var _action$payload34 = action.payload,
2864
- mapId = _action$payload34.mapId,
2865
- position = _action$payload34.position,
2866
- size = _action$payload34.size;
2873
+ var _action$payload33 = action.payload,
2874
+ mapId = _action$payload33.mapId,
2875
+ position = _action$payload33.position,
2876
+ size = _action$payload33.size;
2867
2877
  if (!draft.byId[mapId]) {
2868
2878
  return;
2869
2879
  }
@@ -2877,10 +2887,10 @@ var slice$6 = createSlice({
2877
2887
  },
2878
2888
  extraReducers: function extraReducers(builder) {
2879
2889
  builder.addCase(layerActions.addLayer, function (draft, action) {
2880
- var _action$payload35 = action.payload,
2881
- layerId = _action$payload35.layerId,
2882
- mapId = _action$payload35.mapId,
2883
- layer = _action$payload35.layer;
2890
+ var _action$payload34 = action.payload,
2891
+ layerId = _action$payload34.layerId,
2892
+ mapId = _action$payload34.mapId,
2893
+ layer = _action$payload34.layer;
2884
2894
  if (!draft.byId[mapId]) {
2885
2895
  return;
2886
2896
  }
@@ -2899,10 +2909,10 @@ var slice$6 = createSlice({
2899
2909
  draft.byId[mapId].mapLayers.unshift(layerId);
2900
2910
  }
2901
2911
  }).addCase(layerActions.duplicateMapLayer, function (draft, action) {
2902
- var _action$payload36 = action.payload,
2903
- newLayerId = _action$payload36.newLayerId,
2904
- oldLayerId = _action$payload36.oldLayerId,
2905
- mapId = _action$payload36.mapId;
2912
+ var _action$payload35 = action.payload,
2913
+ newLayerId = _action$payload35.newLayerId,
2914
+ oldLayerId = _action$payload35.oldLayerId,
2915
+ mapId = _action$payload35.mapId;
2906
2916
  if (!draft.byId[mapId]) {
2907
2917
  return;
2908
2918
  }
@@ -2919,10 +2929,10 @@ var slice$6 = createSlice({
2919
2929
  draft.byId[mapId].featureLayers.unshift(newLayerId);
2920
2930
  }
2921
2931
  }).addCase(layerActions.addBaseLayer, function (draft, action) {
2922
- var _action$payload37 = action.payload,
2923
- layer = _action$payload37.layer,
2924
- layerId = _action$payload37.layerId,
2925
- mapId = _action$payload37.mapId;
2932
+ var _action$payload36 = action.payload,
2933
+ layer = _action$payload36.layer,
2934
+ layerId = _action$payload36.layerId,
2935
+ mapId = _action$payload36.mapId;
2926
2936
  if (!draft.byId[mapId]) {
2927
2937
  return;
2928
2938
  }
@@ -2952,9 +2962,9 @@ var slice$6 = createSlice({
2952
2962
  draft.byId[mapId].autoTimeStepLayerId = activeLayerId;
2953
2963
  }
2954
2964
  }).addCase(layerActions.setBaseLayers, function (draft, action) {
2955
- var _action$payload38 = action.payload,
2956
- layers = _action$payload38.layers,
2957
- mapId = _action$payload38.mapId;
2965
+ var _action$payload37 = action.payload,
2966
+ layers = _action$payload37.layers,
2967
+ mapId = _action$payload37.mapId;
2958
2968
  // Split into base and overlayers
2959
2969
  var baseLayers = [];
2960
2970
  var overLayers = [];
@@ -2984,9 +2994,9 @@ var slice$6 = createSlice({
2984
2994
  }
2985
2995
  }
2986
2996
  }).addCase(layerActions.layerDelete, function (draft, action) {
2987
- var _action$payload39 = action.payload,
2988
- mapId = _action$payload39.mapId,
2989
- layerId = _action$payload39.layerId;
2997
+ var _action$payload38 = action.payload,
2998
+ mapId = _action$payload38.mapId,
2999
+ layerId = _action$payload38.layerId;
2990
3000
  var map = draft.byId[mapId];
2991
3001
  if (!map) {
2992
3002
  return;
@@ -3012,9 +3022,9 @@ var slice$6 = createSlice({
3012
3022
  map.autoTimeStepLayerId = activeLayerId;
3013
3023
  }
3014
3024
  }).addCase(layerActions.baseLayerDelete, function (draft, action) {
3015
- var _action$payload40 = action.payload,
3016
- mapId = _action$payload40.mapId,
3017
- layerId = _action$payload40.layerId;
3025
+ var _action$payload39 = action.payload,
3026
+ mapId = _action$payload39.mapId,
3027
+ layerId = _action$payload39.layerId;
3018
3028
  if (!draft.byId[mapId]) {
3019
3029
  return;
3020
3030
  }
@@ -3025,14 +3035,14 @@ var slice$6 = createSlice({
3025
3035
  return id !== layerId;
3026
3036
  });
3027
3037
  }).addCase(layerActions.layerChangeDimension, function (draft, action) {
3028
- var _action$payload41 = action.payload,
3029
- layerId = _action$payload41.layerId,
3030
- dimension = _action$payload41.dimension;
3038
+ var _action$payload40 = action.payload,
3039
+ layerId = _action$payload40.layerId,
3040
+ dimension = _action$payload40.dimension;
3031
3041
  produceDraftStateSetMapDimensionFromLayerChangeDimension(draft, layerId, dimension);
3032
3042
  }).addCase(setTimeSync, function (draft, action) {
3033
- var _action$payload42 = action.payload,
3034
- targetsFromAction = _action$payload42.targets,
3035
- source = _action$payload42.source;
3043
+ var _action$payload41 = action.payload,
3044
+ targetsFromAction = _action$payload41.targets,
3045
+ source = _action$payload41.source;
3036
3046
  var sourceMapId = source === null || source === void 0 ? void 0 : source.payload.sourceId;
3037
3047
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
3038
3048
  var targets = [];
@@ -3098,9 +3108,9 @@ var slice$6 = createSlice({
3098
3108
  }
3099
3109
  });
3100
3110
  }).addCase(setBboxSync, function (draft, action) {
3101
- var _action$payload43 = action.payload,
3102
- targetsFromAction = _action$payload43.targets,
3103
- source = _action$payload43.source;
3111
+ var _action$payload42 = action.payload,
3112
+ targetsFromAction = _action$payload42.targets,
3113
+ source = _action$payload42.source;
3104
3114
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
3105
3115
  var targets = [];
3106
3116
  if (source) {
@@ -3132,9 +3142,9 @@ var slice$6 = createSlice({
3132
3142
  * These targets can be used as payloads in new Layer actions.
3133
3143
  * These actions are here handled via the layer reducer, as it is the same logic
3134
3144
  */
3135
- var _action$payload44 = action.payload,
3136
- targets = _action$payload44.targets,
3137
- source = _action$payload44.source;
3145
+ var _action$payload43 = action.payload,
3146
+ targets = _action$payload43.targets,
3147
+ source = _action$payload43.source;
3138
3148
  return targets.reduce(function (prevState, target) {
3139
3149
  var actionType = (source === null || source === void 0 ? void 0 : source.type) || 'GENERIC_SYNC_SETLAYERACTIONS';
3140
3150
  var action = {
@@ -3156,9 +3166,9 @@ var slice$6 = createSlice({
3156
3166
  });
3157
3167
  return draft;
3158
3168
  }).addCase(mapChangeDimension, function (draft, action) {
3159
- var _action$payload45 = action.payload,
3160
- mapId = _action$payload45.mapId,
3161
- dimensionFromAction = _action$payload45.dimension;
3169
+ var _action$payload44 = action.payload,
3170
+ mapId = _action$payload44.mapId,
3171
+ dimensionFromAction = _action$payload44.dimension;
3162
3172
  produceDraftStateSetWebMapDimension(draft, mapId, dimensionFromAction, true);
3163
3173
  }).addCase(setMapPreset, function (draft, action) {
3164
3174
  var mapId = action.payload.mapId;
@@ -8100,7 +8110,7 @@ genericListener.startListening({
8100
8110
  payload = _ref2.payload, type = _ref2.type;
8101
8111
  listenerApi.cancelActiveListeners();
8102
8112
  sourceId = payload.mapId;
8103
- if (!((type === mapActions.setAnimationLength.type || type === mapActions.setAnimationStartTime.type || type === mapActions.setAnimationEndTime.type) && payload.skipSync)) {
8113
+ if (!(type === mapActions.setAnimationLength.type && payload.skipSync)) {
8104
8114
  _context2.n = 1;
8105
8115
  break;
8106
8116
  }
@@ -8950,7 +8960,7 @@ mapListener.startListening({
8950
8960
  actionCreator: mapActions.setMapPreset,
8951
8961
  effect: function () {
8952
8962
  var _effect2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref6, listenerApi) {
8953
- var payload, mapId, initialProps, mapPreset, _mapPreset$dimensions, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, legendPosition, legendSize, shouldShowDockedLayerManager, shouldShowDataExplorer, dockedLayerManagerSize, dockedLayerManagerPosition, dockedLayerManagerDimensions, timeSliderSpan, toggleTimeSpanAuto, defaultOverlayer, isClockVisible, isClockOptionsMenuVisible, clockPosition, clockSize, initialZoomToLayerId, _filterLayers, mapLayers, baseLayers, overLayers, pendingInitialZoomToLayerId, _newLayerIds$layers$f, _newLayerIds$layers$f2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoTimeStepLayerId, newAutoUpdateLayerId, _newLayerIds$layers$i, initialZoomLayerIndex, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, _overlayersFromStore$, overlayersFromStore, foundOverlayerId, checkIsprojectionSupported, layerId, animationDuration, animationLengthSetting, animationEndTime, shouldEndtimeOverride, interval, timeAlreadySet, mode, endTimeFromPreset, endTime, startTime, hasNoAnimationDetails, defaultAnimationLengthSetting, effectiveAnimationLengthSetting, animationLength, animationStartTime, _autoTimeStepLayerId, layerRefTimeDimension, referenceTimeFromLayer, anchorTime, resolvedRange, shouldOpenLegend, dockedLayerManagerType, fiveMinuteDelayForAnimation, animationEnd, animationStart, _t;
8963
+ var payload, mapId, initialProps, mapPreset, _mapPreset$dimensions, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, legendPosition, legendSize, shouldShowDockedLayerManager, shouldShowDataExplorer, dockedLayerManagerSize, dockedLayerManagerPosition, dockedLayerManagerDimensions, timeSliderSpan, toggleTimeSpanAuto, defaultOverlayer, isClockVisible, isClockOptionsMenuVisible, clockPosition, clockSize, initialZoomToLayerId, _filterLayers, mapLayers, baseLayers, overLayers, pendingInitialZoomToLayerId, _newLayerIds$layers$f, _newLayerIds$layers$f2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoTimeStepLayerId, newAutoUpdateLayerId, _newLayerIds$layers$i, initialZoomLayerIndex, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, _overlayersFromStore$, overlayersFromStore, foundOverlayerId, checkIsprojectionSupported, layerId, animationDuration, animationLengthSetting, animationEndTime, shouldEndtimeOverride, interval, timeAlreadySet, mode, endTimeFromPreset, endTime, startTime, hasNoAnimationDetails, defaultAnimationLengthSetting, effectiveAnimationLengthSetting, animationLength, animationStartTime, _autoTimeStepLayerId, layerRefTimeDimension, referenceTimeFromLayer, anchorTime, resolvedRange, shouldOpenLegend, dockedLayerManagerType, _t;
8954
8964
  return _regenerator().w(function (_context2) {
8955
8965
  while (1) switch (_context2.p = _context2.n) {
8956
8966
  case 0:
@@ -8959,7 +8969,7 @@ mapListener.startListening({
8959
8969
  mapId = payload.mapId, initialProps = payload.initialProps;
8960
8970
  mapPreset = initialProps.mapPreset;
8961
8971
  if (!mapPreset) {
8962
- _context2.n = 9;
8972
+ _context2.n = 7;
8963
8973
  break;
8964
8974
  }
8965
8975
  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, legendPosition = mapPreset.legendPosition, legendSize = mapPreset.legendSize, 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, initialZoomToLayerId = mapPreset.initialZoomToLayerId;
@@ -9348,35 +9358,10 @@ mapListener.startListening({
9348
9358
  }));
9349
9359
  }
9350
9360
  case 7:
9351
- if (!(animationEndTime && !derivesOwnAnimationRange(animationLengthSetting) && (shouldEndtimeOverride || !(shouldAutoUpdate || shouldAnimate)))) {
9352
- _context2.n = 9;
9353
- break;
9354
- }
9355
- fiveMinuteDelayForAnimation = 1000 * 60 * 5; // eslint-disable-next-line no-await-in-loop
9356
- _context2.n = 8;
9357
- return listenerApi.delay(fiveMinuteDelayForAnimation);
9358
- case 8:
9359
- animationEnd = getAnimationEndTime(listenerApi.getState(), mapId);
9360
- listenerApi.dispatch(mapActions.setAnimationEndTime({
9361
- mapId: mapId,
9362
- animationEndTime: dateUtils.add(dateUtils.utc(animationEnd), {
9363
- minutes: 5
9364
- }).toISOString()
9365
- }));
9366
- animationStart = getAnimationStartTime(listenerApi.getState(), mapId);
9367
- listenerApi.dispatch(mapActions.setAnimationStartTime({
9368
- mapId: mapId,
9369
- animationStartTime: dateUtils.add(dateUtils.utc(animationStart), {
9370
- minutes: 5
9371
- }).toISOString()
9372
- }));
9373
- _context2.n = 7;
9361
+ _context2.n = 9;
9374
9362
  break;
9375
- case 9:
9376
- _context2.n = 11;
9377
- break;
9378
- case 10:
9379
- _context2.p = 10;
9363
+ case 8:
9364
+ _context2.p = 8;
9380
9365
  _t = _context2.v;
9381
9366
  if (_t instanceof Error) {
9382
9367
  listenerApi.dispatch(mapActions.setMapPresetError({
@@ -9384,10 +9369,10 @@ mapListener.startListening({
9384
9369
  error: _t.message
9385
9370
  }));
9386
9371
  }
9387
- case 11:
9372
+ case 9:
9388
9373
  return _context2.a(2);
9389
9374
  }
9390
- }, _callee2, null, [[1, 10]]);
9375
+ }, _callee2, null, [[1, 8]]);
9391
9376
  }));
9392
9377
  function effect(_x3, _x4) {
9393
9378
  return _effect2.apply(this, arguments);
@@ -10197,18 +10182,6 @@ var slice$1 = createSlice({
10197
10182
  drawAdapter.setOne(draft, entity);
10198
10183
  }
10199
10184
  });
10200
- // TODO: https://gitlab.com/opengeoweb/opengeoweb/-/issues/4065 enable auto registering again in
10201
- // .addCase(mapActions.registerMap, (draft: Draft<DrawState>, action) => {
10202
- // // drawAdapter.addOne(draft, {
10203
- // // mapId: action.payload.mapId,
10204
- // // area: undefined!,
10205
- // // areaName: '',
10206
- // // id: '',
10207
- // // });
10208
- // })
10209
- // .addCase(mapActions.unregisterMap, (draft: Draft<DrawState>, action) => {
10210
- // // drawAdapter.removeOne(draft, action.payload.mapId);
10211
- // });
10212
10185
  }
10213
10186
  });
10214
10187
  var drawingToolReducer = slice$1.reducer,
@@ -1,6 +1,6 @@
1
1
  import type { PayloadAction, Draft } from '@reduxjs/toolkit';
2
2
  import type { MapPinLocationPayload, SetBboxPayload, SetStepBackWardOrForward, UpdateAllMapDimensionsPayload } from '@opengeoweb/webmap-react';
3
- import type { WebMapState, SetAutoLayerIdPayload, SetMapAnimationStartPayload, SetMapAnimationStopPayload, SetTimeSliderSpanPayload, SetTimeStepPayload, SetAnimationStartTimePayload, SetAnimationEndTimePayload, SetAnimationDelayPayload, MoveLayerPayload, SetTimeSliderWidthPayload, SetTimeSliderCenterTimePayload, SetEndTimeOverriding, ToggleAutoUpdatePayload, ToggleTimestepAutoPayload, ToggleTimeSpanAutoPayload, ToggleTimeSliderHoverPayload, DisableMapPinPayload, ToggleTimeSliderIsVisiblePayload, SetDockedLayerManagerSize, SetDockedLayerManagerPosition, SetDockedLayerManagerDimensions, ToggleAnimationLengthAutoPayload, SetAnimationLengthPayload, RefreshAnimationRangePayload, SetDefaultMapSettingsPayload, ToggleClockPayload, SetClockPositionSizePayload, SetPendingInitialZoomToLayerPayload, SetLegendPositionSizePayload } from './types';
3
+ import type { WebMapState, SetAutoLayerIdPayload, SetMapAnimationStartPayload, SetMapAnimationStopPayload, SetTimeSliderSpanPayload, SetTimeStepPayload, SetAnimationStartTimePayload, SetAnimationEndTimePayload, SetAnimationDelayPayload, MoveLayerPayload, SetTimeSliderWidthPayload, SetTimeSliderCenterTimePayload, SetEndTimeOverriding, ToggleAutoUpdatePayload, ToggleTimestepAutoPayload, ToggleTimeSpanAutoPayload, ToggleTimeSliderHoverPayload, DisableMapPinPayload, ToggleTimeSliderIsVisiblePayload, SetDockedLayerManagerSize, SetDockedLayerManagerPosition, SetDockedLayerManagerDimensions, SetAnimationLengthPayload, RefreshAnimationRangePayload, SetDefaultMapSettingsPayload, ToggleClockPayload, SetClockPositionSizePayload, SetPendingInitialZoomToLayerPayload, SetLegendPositionSizePayload } from './types';
4
4
  import type { ToggleMapPinIsVisiblePayload, ToggleZoomControlsPayload } from '../types';
5
5
  import type { MapActionOrigin } from './enums';
6
6
  /**
@@ -48,8 +48,6 @@ export declare const slice: import("@reduxjs/toolkit").Slice<WebMapState, {
48
48
  setEndTimeOverriding: (draft: Draft<WebMapState>, action: PayloadAction<SetEndTimeOverriding>) => void;
49
49
  toggleTimestepAuto: (draft: Draft<WebMapState>, action: PayloadAction<ToggleTimestepAutoPayload>) => void;
50
50
  toggleTimeSpanAuto: (draft: Draft<WebMapState>, action: PayloadAction<ToggleTimeSpanAutoPayload>) => void;
51
- /** Superseded by setAnimationLength; removed together with the old animation length button. */
52
- toggleAnimationLengthAuto: (draft: Draft<WebMapState>, action: PayloadAction<ToggleAnimationLengthAutoPayload>) => void;
53
51
  toggleTimeSliderHover: (draft: Draft<WebMapState>, action: PayloadAction<ToggleTimeSliderHoverPayload>) => void;
54
52
  toggleTimeSliderIsVisible: (draft: Draft<WebMapState>, action: PayloadAction<ToggleTimeSliderIsVisiblePayload>) => void;
55
53
  toggleZoomControls: (draft: Draft<WebMapState>, action: PayloadAction<ToggleZoomControlsPayload>) => void;
@@ -118,7 +116,6 @@ export declare const mapActions: {
118
116
  setEndTimeOverriding: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetEndTimeOverriding, "mapReducer/setEndTimeOverriding">;
119
117
  toggleTimestepAuto: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleTimestepAutoPayload, "mapReducer/toggleTimestepAuto">;
120
118
  toggleTimeSpanAuto: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleTimeSpanAutoPayload, "mapReducer/toggleTimeSpanAuto">;
121
- toggleAnimationLengthAuto: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleAnimationLengthAutoPayload, "mapReducer/toggleAnimationLengthAuto">;
122
119
  toggleTimeSliderHover: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleTimeSliderHoverPayload, "mapReducer/toggleTimeSliderHover">;
123
120
  toggleTimeSliderIsVisible: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleTimeSliderIsVisiblePayload, "mapReducer/toggleTimeSliderIsVisible">;
124
121
  toggleZoomControls: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleZoomControlsPayload, "mapReducer/toggleZoomControls">;
@@ -200,13 +200,15 @@ export interface SetAnimationDelayPayload {
200
200
  export interface SetAnimationStartTimePayload {
201
201
  mapId: string;
202
202
  animationStartTime: string;
203
- skipSync?: boolean;
203
+ /** Anchor for ReferenceTime mode; the other modes count from the clock and ignore it. */
204
+ referenceTime?: string;
204
205
  origin?: MapActionOrigin;
205
206
  }
206
207
  export interface SetAnimationEndTimePayload {
207
208
  mapId: string;
208
209
  animationEndTime: string;
209
- skipSync?: boolean;
210
+ /** Anchor for ReferenceTime mode; the other modes count from the clock and ignore it. */
211
+ referenceTime?: string;
210
212
  origin?: MapActionOrigin;
211
213
  }
212
214
  export interface ToggleTimestepAutoPayload {
@@ -219,11 +221,6 @@ export interface ToggleTimeSpanAutoPayload {
219
221
  timeSpanAuto: boolean;
220
222
  origin?: MapActionOrigin;
221
223
  }
222
- export interface ToggleAnimationLengthAutoPayload {
223
- mapId: string;
224
- autoAnimationLength: boolean;
225
- origin?: MapActionOrigin;
226
- }
227
224
  export interface SetAnimationLengthPayload {
228
225
  mapId: string;
229
226
  animationLength: AnimationLengthSetting;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "20.0.0",
3
+ "version": "20.0.1-nightly-20261003",
4
4
  "description": "GeoWeb Store library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -20,15 +20,15 @@
20
20
  }
21
21
  },
22
22
  "dependencies": {
23
- "@opengeoweb/shared": "20.0.0",
23
+ "@opengeoweb/shared": "20.0.1-nightly-20261003",
24
24
  "react-redux": "^9.2.0",
25
25
  "@reduxjs/toolkit": "^2.6.1",
26
- "@opengeoweb/webmap-react": "20.0.0",
27
- "@opengeoweb/webmap": "20.0.0",
26
+ "@opengeoweb/webmap-react": "20.0.1-nightly-20261003",
27
+ "@opengeoweb/webmap": "20.0.1-nightly-20261003",
28
28
  "immer": "^10.0.3",
29
29
  "lodash": "^4.18.1",
30
- "@opengeoweb/metronome": "20.0.0",
31
- "@opengeoweb/time-slider": "20.0.0",
30
+ "@opengeoweb/metronome": "20.0.1-nightly-20261003",
31
+ "@opengeoweb/time-slider": "20.0.1-nightly-20261003",
32
32
  "ol": "^10.4.0",
33
33
  "@turf/turf": "^7.2.0",
34
34
  "@types/geojson": "^7946.0.14",