@opengeoweb/store 19.6.1-nightly-20260917 → 20.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/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, withModeSelections, isAnchoredMode, getSpeedDelay, isWithinAnimationStepLimit } from '@opengeoweb/time-slider';
6
+ import { secondsPerPxFromCanvasWidth, defaultTimeSpan, defaultSecondsPerPx, defaultAnimationDelayAtStart, defaultTimeStep, AnimationLengthMode, defaultExactSelections, 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';
@@ -3076,7 +3076,7 @@ var slice$6 = createSlice({
3076
3076
  draft.byId[targetId].animationEndTime = value.timeSliderAnimationEndTime;
3077
3077
  }
3078
3078
  /* An exact window is the stored range, so a synced range has to move it too. */
3079
- if ((value !== null && value !== void 0 && value.timeSliderAnimationStartTime || value !== null && value !== void 0 && value.timeSliderAnimationEndTime) && ((_draft$byId$targetId$ = draft.byId[targetId].animationLength) === null || _draft$byId$targetId$ === void 0 ? void 0 : _draft$byId$targetId$.mode) === AnimationLengthMode.Exact) {
3079
+ if ((value !== null && value !== void 0 && value.timeSliderAnimationStartTime || value !== null && value !== void 0 && value.timeSliderAnimationEndTime) && (targetId !== sourceMapId || ((_draft$byId$targetId$ = draft.byId[targetId].animationLength) === null || _draft$byId$targetId$ === void 0 ? void 0 : _draft$byId$targetId$.mode) === AnimationLengthMode.Exact)) {
3080
3080
  draft.byId[targetId].animationLength = _objectSpread2(_objectSpread2({}, draft.byId[targetId].animationLength), {}, {
3081
3081
  mode: AnimationLengthMode.Exact,
3082
3082
  exact: exactSelectionsFrom(draft.byId[targetId].animationLength, draft.byId[targetId].animationStartTime, draft.byId[targetId].animationEndTime)
@@ -8090,16 +8090,22 @@ genericListener.startListening({
8090
8090
  });
8091
8091
  // Synchronize timeslider settings for actions 'centertime', 'span' and 'timestep'.
8092
8092
  genericListener.startListening({
8093
- matcher: isAnyOf(mapActions.setTimeSliderCenterTime, mapActions.setTimeSliderSpan, mapActions.setTimeStep, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, mapActions.setAnimationDelay, mapActions.mapStartAnimation),
8093
+ matcher: isAnyOf(mapActions.setTimeSliderCenterTime, mapActions.setTimeSliderSpan, mapActions.setTimeStep, mapActions.setAnimationStartTime, mapActions.setAnimationEndTime, mapActions.setAnimationLength, mapActions.refreshAnimationRange, mapActions.setAnimationDelay, mapActions.mapStartAnimation),
8094
8094
  effect: function () {
8095
8095
  var _effect2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref2, listenerApi) {
8096
- var payload, type, sourceId, newPayload, animationStartPayload, targets, groups;
8096
+ var payload, type, sourceId, newPayload, _mapSelectors$getAnim, animationStartTime, animationEndTime, animationStartPayload, targets, groups;
8097
8097
  return _regenerator().w(function (_context2) {
8098
8098
  while (1) switch (_context2.n) {
8099
8099
  case 0:
8100
8100
  payload = _ref2.payload, type = _ref2.type;
8101
8101
  listenerApi.cancelActiveListeners();
8102
8102
  sourceId = payload.mapId;
8103
+ if (!((type === mapActions.setAnimationLength.type || type === mapActions.setAnimationStartTime.type || type === mapActions.setAnimationEndTime.type) && payload.skipSync)) {
8104
+ _context2.n = 1;
8105
+ break;
8106
+ }
8107
+ return _context2.a(2);
8108
+ case 1:
8103
8109
  newPayload = {
8104
8110
  sourceId: sourceId,
8105
8111
  origin: 'timeslidersynclistener',
@@ -8112,6 +8118,11 @@ genericListener.startListening({
8112
8118
  timeSliderAnimationDelay: type === mapActions.setAnimationDelay.type ? payload.animationDelay : undefined
8113
8119
  }
8114
8120
  };
8121
+ if (type === mapActions.setAnimationLength.type || type === mapActions.refreshAnimationRange.type) {
8122
+ _mapSelectors$getAnim = getAnimationRange(listenerApi.getState(), sourceId), animationStartTime = _mapSelectors$getAnim.animationStartTime, animationEndTime = _mapSelectors$getAnim.animationEndTime;
8123
+ newPayload.value.timeSliderAnimationStartTime = animationStartTime;
8124
+ newPayload.value.timeSliderAnimationEndTime = animationEndTime;
8125
+ }
8115
8126
  if (type === mapActions.mapStartAnimation.type) {
8116
8127
  animationStartPayload = payload;
8117
8128
  if (animationStartPayload.start) {
@@ -8124,7 +8135,7 @@ genericListener.startListening({
8124
8135
  targets = getTargets(listenerApi.getState(), newPayload, SYNCGROUPS_TYPE_SETTIME);
8125
8136
  groups = getTargetGroups(listenerApi.getState(), newPayload, SYNCGROUPS_TYPE_SETTIME);
8126
8137
  listenerApi.dispatch(setTimeSync(newPayload, targets, groups));
8127
- case 1:
8138
+ case 2:
8128
8139
  return _context2.a(2);
8129
8140
  }
8130
8141
  }, _callee2);
@@ -8939,7 +8950,7 @@ mapListener.startListening({
8939
8950
  actionCreator: mapActions.setMapPreset,
8940
8951
  effect: function () {
8941
8952
  var _effect2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(_ref6, listenerApi) {
8942
- 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, animationLength, animationLengthSetting, animationEndTime, shouldEndtimeOverride, interval, timeAlreadySet, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, _animationLength, _autoTimeStepLayerId, layerRefTimeDimension, referenceTimeFromLayer, anchorTime, resolvedRange, duration, _animationEnd, animationStart, shouldOpenLegend, dockedLayerManagerType, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart, _t;
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;
8943
8954
  return _regenerator().w(function (_context2) {
8944
8955
  while (1) switch (_context2.p = _context2.n) {
8945
8956
  case 0:
@@ -8948,7 +8959,7 @@ mapListener.startListening({
8948
8959
  mapId = payload.mapId, initialProps = payload.initialProps;
8949
8960
  mapPreset = initialProps.mapPreset;
8950
8961
  if (!mapPreset) {
8951
- _context2.n = 7;
8962
+ _context2.n = 9;
8952
8963
  break;
8953
8964
  }
8954
8965
  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;
@@ -9048,7 +9059,7 @@ mapListener.startListening({
9048
9059
  layerId: layerId
9049
9060
  }));
9050
9061
  case 4:
9051
- animationLength = animationPayload === null || animationPayload === void 0 ? void 0 : animationPayload.duration;
9062
+ animationDuration = animationPayload === null || animationPayload === void 0 ? void 0 : animationPayload.duration;
9052
9063
  animationLengthSetting = animationPayload === null || animationPayload === void 0 ? void 0 : animationPayload.animationLength;
9053
9064
  animationEndTime = (animationPayload === null || animationPayload === void 0 ? void 0 : animationPayload.endTime) && isAnimationEndTimeValid(animationPayload.endTime) && animationPayload.endTime;
9054
9065
  shouldEndtimeOverride = animationPayload ? animationPayload.shouldEndtimeOverride : false;
@@ -9151,73 +9162,106 @@ mapListener.startListening({
9151
9162
  // If set, don't dispatch setTime action
9152
9163
  timeAlreadySet = (_mapPreset$dimensions = mapPreset.dimensions) === null || _mapPreset$dimensions === void 0 ? void 0 : _mapPreset$dimensions.find(function (dimension) {
9153
9164
  return dimension.name === 'time';
9154
- }); // sets animationEndTime by endTime of animationPayload
9155
- if (animationEndTime) {
9156
- endTime = animationEndTime.includes('NOW') || animationEndTime.includes('TODAY') ? dateUtils.convertNOWandTODAYFormatsToUTC(animationEndTime) : animationEndTime;
9157
- listenerApi.dispatch(mapActions.setAnimationEndTime({
9158
- mapId: mapId,
9159
- animationEndTime: handleDateUtilsISOString(endTime)
9160
- }));
9161
- startTime = handleDateUtilsISOString(dateUtils.sub(dateUtils.utc(endTime), {
9162
- minutes: 5 * 60 // set to default of 5 hours
9163
- }).toISOString());
9164
- listenerApi.dispatch(mapActions.setAnimationStartTime({
9165
- mapId: mapId,
9166
- animationStartTime: startTime
9167
- }));
9168
- if (timeAlreadySet === undefined) {
9169
- listenerApi.dispatch(genericActions.setTime({
9170
- origin: 'map/listener.ts, setMapPreset',
9171
- sourceId: mapId,
9172
- value: {
9173
- currentTime: startTime
9174
- }
9175
- }));
9165
+ });
9166
+ if (!(animationEndTime || animationDuration)) {
9167
+ _context2.n = 6;
9168
+ break;
9169
+ }
9170
+ // set animationEndTime by endTime of animationPayload
9171
+ // set animationStartTime by endTime minus duration of animationPayload
9172
+ mode = function () {
9173
+ if (animationEndTime) {
9174
+ if (animationEndTime.includes('TODAY')) {
9175
+ return AnimationLengthMode.RecurringPeriod;
9176
+ }
9177
+ if (animationEndTime.includes('NOW')) {
9178
+ return AnimationLengthMode.Now;
9179
+ }
9180
+ return AnimationLengthMode.Exact;
9176
9181
  }
9177
- centerTimeInSeconds = new Date(handleDateUtilsISOString(endTime)).getTime();
9178
- listenerApi.dispatch(mapActions.setTimeSliderCenterTime({
9179
- mapId: mapId,
9180
- timeSliderCenterTime: centerTimeInSeconds
9181
- }));
9182
+ return AnimationLengthMode.Now;
9183
+ }();
9184
+ endTimeFromPreset = animationEndTime && (animationEndTime !== null && animationEndTime !== void 0 && animationEndTime.includes('NOW') || animationEndTime !== null && animationEndTime !== void 0 && animationEndTime.includes('TODAY')) ? handleDateUtilsISOString(dateUtils.convertNOWandTODAYFormatsToUTC(animationEndTime)) : animationEndTime;
9185
+ endTime = endTimeFromPreset || getAnimationEndTime(listenerApi.getState(), mapId);
9186
+ if (endTime) {
9187
+ _context2.n = 5;
9188
+ break;
9182
9189
  }
9183
- // sets animationStartTime by duration of animationPayload
9184
- if (animationLength) {
9185
- animationEnd = getAnimationEndTime(listenerApi.getState(), mapId);
9186
- _startTime = handleDateUtilsISOString(dateUtils.sub(dateUtils.utc(animationEnd), {
9187
- minutes: animationLength
9188
- }).toISOString());
9189
- listenerApi.dispatch(mapActions.setAnimationStartTime({
9190
- mapId: mapId,
9191
- animationStartTime: _startTime
9190
+ return _context2.a(2);
9191
+ case 5:
9192
+ // startTime always relative to endTime
9193
+ startTime = handleDateUtilsISOString(dateUtils.sub(dateUtils.utc(endTime), {
9194
+ minutes: animationDuration || 5 * 60 // default 5 hours
9195
+ }).toISOString());
9196
+ listenerApi.dispatch(mapActions.setAnimationLength({
9197
+ mapId: mapId,
9198
+ animationLength: getAnimationLengthFromRange(mode, {
9199
+ animationStartTime: startTime,
9200
+ animationEndTime: endTime
9201
+ }),
9202
+ animationStartTime: startTime,
9203
+ animationEndTime: endTime,
9204
+ skipSync: !!animationLengthSetting
9205
+ }));
9206
+ if (timeAlreadySet === undefined) {
9207
+ listenerApi.dispatch(genericActions.setTime({
9208
+ origin: 'map/listener.ts, setMapPreset',
9209
+ sourceId: mapId,
9210
+ value: {
9211
+ currentTime: startTime
9212
+ }
9192
9213
  }));
9193
- if (timeAlreadySet === undefined) {
9194
- listenerApi.dispatch(genericActions.setTime({
9195
- origin: 'map/listener.ts, setAnimationStartTime',
9196
- sourceId: mapId,
9197
- value: {
9198
- currentTime: _startTime
9199
- }
9200
- }));
9201
- }
9202
9214
  }
9215
+ case 6:
9203
9216
  // restores how the animation length is determined, overriding duration and endTime
9204
- if (animationLengthSetting) {
9205
- _animationLength = withModeSelections(animationLengthSetting);
9206
- if (_animationLength.mode === AnimationLengthMode.Exact) {
9207
- listenerApi.dispatch(mapActions.setAnimationLength(_objectSpread2({
9217
+ // if preset has no animation details at all: follow the auto-time-step layer if there is one, otherwise Now
9218
+ hasNoAnimationDetails = !animationLengthSetting && !animationDuration && !animationEndTime;
9219
+ defaultAnimationLengthSetting = getAutoTimeStepLayerId(listenerApi.getState(), mapId) ? {
9220
+ mode: AnimationLengthMode.Auto
9221
+ } : {
9222
+ mode: AnimationLengthMode.Now,
9223
+ now: defaultOffsetSelections
9224
+ };
9225
+ effectiveAnimationLengthSetting = function () {
9226
+ if (animationLengthSetting) {
9227
+ return withModeSelections(animationLengthSetting);
9228
+ }
9229
+ if (hasNoAnimationDetails) {
9230
+ return defaultAnimationLengthSetting;
9231
+ }
9232
+ return undefined;
9233
+ }();
9234
+ if (effectiveAnimationLengthSetting) {
9235
+ animationLength = effectiveAnimationLengthSetting;
9236
+ if (animationLength.mode === AnimationLengthMode.Exact) {
9237
+ listenerApi.dispatch(mapActions.setAnimationLength(_objectSpread2(_objectSpread2({
9208
9238
  mapId: mapId,
9209
- animationLength: _animationLength
9210
- }, _animationLength.exact)));
9239
+ animationLength: animationLength
9240
+ }, animationLength.exact), {}, {
9241
+ skipSync: true
9242
+ })));
9243
+ animationStartTime = animationLength.exact.animationStartTime;
9244
+ if (timeAlreadySet === undefined) {
9245
+ listenerApi.dispatch(genericActions.setTime({
9246
+ origin: 'map/listener.ts, setAnimationLength',
9247
+ sourceId: mapId,
9248
+ value: {
9249
+ currentTime: animationStartTime
9250
+ }
9251
+ }));
9252
+ }
9211
9253
  } else {
9212
9254
  _autoTimeStepLayerId = getAutoTimeStepLayerId(listenerApi.getState(), mapId);
9213
9255
  layerRefTimeDimension = getLayerDimension(listenerApi.getState(), _autoTimeStepLayerId, 'reference_time');
9214
9256
  referenceTimeFromLayer = (layerRefTimeDimension === null || layerRefTimeDimension === void 0 ? void 0 : layerRefTimeDimension.currentValue) || undefined;
9215
9257
  anchorTime = dateUtils.utc(referenceTimeFromLayer);
9216
- resolvedRange = isAnchoredMode(_animationLength.mode) && isValidAnimationLength(_animationLength, anchorTime) ? resolveAnimationRange(_animationLength, anchorTime) : undefined;
9217
- listenerApi.dispatch(mapActions.setAnimationLength(_objectSpread2({
9258
+ resolvedRange = isAnchoredMode(animationLength.mode) && isValidAnimationLength(animationLength, anchorTime) ? resolveAnimationRange(animationLength, anchorTime) : undefined;
9259
+ listenerApi.dispatch(mapActions.setAnimationLength(_objectSpread2(_objectSpread2({
9218
9260
  mapId: mapId,
9219
- animationLength: _animationLength
9220
- }, resolvedRange)));
9261
+ animationLength: animationLength
9262
+ }, resolvedRange), {}, {
9263
+ skipSync: true
9264
+ })));
9221
9265
  if (resolvedRange && timeAlreadySet === undefined) {
9222
9266
  listenerApi.dispatch(genericActions.setTime({
9223
9267
  origin: 'map/listener.ts, setAnimationLength',
@@ -9238,15 +9282,8 @@ mapListener.startListening({
9238
9282
  }
9239
9283
  // turn animation on
9240
9284
  if (shouldAnimate === true) {
9241
- duration = animationPayload !== null && animationPayload !== void 0 && animationPayload.duration ? animationPayload.duration : 5 * 60; // set to default of 5 hours
9242
- _animationEnd = shouldEndtimeOverride && animationEndTime ? getAnimationEndTime(listenerApi.getState(), mapId) : dateUtils.dateToString(dateUtils.utc(), dateFormat);
9243
- animationStart = shouldEndtimeOverride && animationLength ? getAnimationStartTime(listenerApi.getState(), mapId) : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(_animationEnd), {
9244
- minutes: duration
9245
- }), dateFormat);
9246
9285
  listenerApi.dispatch(mapActions.mapStartAnimation({
9247
9286
  mapId: mapId,
9248
- start: animationStart,
9249
- end: _animationEnd,
9250
9287
  interval: interval || defaultTimeStep
9251
9288
  }));
9252
9289
  // If animation interval set, set the timestep auto property to false
@@ -9310,36 +9347,36 @@ mapListener.startListening({
9310
9347
  dockedLayerManagerDimensions: dockedLayerManagerDimensions
9311
9348
  }));
9312
9349
  }
9313
- case 5:
9350
+ case 7:
9314
9351
  if (!(animationEndTime && !derivesOwnAnimationRange(animationLengthSetting) && (shouldEndtimeOverride || !(shouldAutoUpdate || shouldAnimate)))) {
9315
- _context2.n = 7;
9352
+ _context2.n = 9;
9316
9353
  break;
9317
9354
  }
9318
9355
  fiveMinuteDelayForAnimation = 1000 * 60 * 5; // eslint-disable-next-line no-await-in-loop
9319
- _context2.n = 6;
9356
+ _context2.n = 8;
9320
9357
  return listenerApi.delay(fiveMinuteDelayForAnimation);
9321
- case 6:
9322
- _animationEnd2 = getAnimationEndTime(listenerApi.getState(), mapId);
9358
+ case 8:
9359
+ animationEnd = getAnimationEndTime(listenerApi.getState(), mapId);
9323
9360
  listenerApi.dispatch(mapActions.setAnimationEndTime({
9324
9361
  mapId: mapId,
9325
- animationEndTime: dateUtils.add(dateUtils.utc(_animationEnd2), {
9362
+ animationEndTime: dateUtils.add(dateUtils.utc(animationEnd), {
9326
9363
  minutes: 5
9327
9364
  }).toISOString()
9328
9365
  }));
9329
- _animationStart = getAnimationStartTime(listenerApi.getState(), mapId);
9366
+ animationStart = getAnimationStartTime(listenerApi.getState(), mapId);
9330
9367
  listenerApi.dispatch(mapActions.setAnimationStartTime({
9331
9368
  mapId: mapId,
9332
- animationStartTime: dateUtils.add(dateUtils.utc(_animationStart), {
9369
+ animationStartTime: dateUtils.add(dateUtils.utc(animationStart), {
9333
9370
  minutes: 5
9334
9371
  }).toISOString()
9335
9372
  }));
9336
- _context2.n = 5;
9373
+ _context2.n = 7;
9337
9374
  break;
9338
- case 7:
9339
- _context2.n = 9;
9375
+ case 9:
9376
+ _context2.n = 11;
9340
9377
  break;
9341
- case 8:
9342
- _context2.p = 8;
9378
+ case 10:
9379
+ _context2.p = 10;
9343
9380
  _t = _context2.v;
9344
9381
  if (_t instanceof Error) {
9345
9382
  listenerApi.dispatch(mapActions.setMapPresetError({
@@ -9347,10 +9384,10 @@ mapListener.startListening({
9347
9384
  error: _t.message
9348
9385
  }));
9349
9386
  }
9350
- case 9:
9387
+ case 11:
9351
9388
  return _context2.a(2);
9352
9389
  }
9353
- }, _callee2, null, [[1, 8]]);
9390
+ }, _callee2, null, [[1, 10]]);
9354
9391
  }));
9355
9392
  function effect(_x3, _x4) {
9356
9393
  return _effect2.apply(this, arguments);
@@ -200,11 +200,13 @@ export interface SetAnimationDelayPayload {
200
200
  export interface SetAnimationStartTimePayload {
201
201
  mapId: string;
202
202
  animationStartTime: string;
203
+ skipSync?: boolean;
203
204
  origin?: MapActionOrigin;
204
205
  }
205
206
  export interface SetAnimationEndTimePayload {
206
207
  mapId: string;
207
208
  animationEndTime: string;
209
+ skipSync?: boolean;
208
210
  origin?: MapActionOrigin;
209
211
  }
210
212
  export interface ToggleTimestepAutoPayload {
@@ -227,6 +229,7 @@ export interface SetAnimationLengthPayload {
227
229
  animationLength: AnimationLengthSetting;
228
230
  animationStartTime?: string;
229
231
  animationEndTime?: string;
232
+ skipSync?: boolean;
230
233
  origin?: MapActionOrigin;
231
234
  }
232
235
  export interface RefreshAnimationRangePayload {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "19.6.1-nightly-20260917",
3
+ "version": "20.0.0",
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": "19.6.1-nightly-20260917",
23
+ "@opengeoweb/shared": "20.0.0",
24
24
  "react-redux": "^9.2.0",
25
25
  "@reduxjs/toolkit": "^2.6.1",
26
- "@opengeoweb/webmap-react": "19.6.1-nightly-20260917",
27
- "@opengeoweb/webmap": "19.6.1-nightly-20260917",
26
+ "@opengeoweb/webmap-react": "20.0.0",
27
+ "@opengeoweb/webmap": "20.0.0",
28
28
  "immer": "^10.0.3",
29
29
  "lodash": "^4.18.1",
30
- "@opengeoweb/metronome": "19.6.1-nightly-20260917",
31
- "@opengeoweb/time-slider": "19.6.1-nightly-20260917",
30
+ "@opengeoweb/metronome": "20.0.0",
31
+ "@opengeoweb/time-slider": "20.0.0",
32
32
  "ol": "^10.4.0",
33
33
  "@turf/turf": "^7.2.0",
34
34
  "@types/geojson": "^7946.0.14",