@opengeoweb/store 9.35.1-spike-oltanstack.0 → 9.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -1,11 +1,11 @@
1
- import { webmapUtils, parseISO8601IntervalToDateInterval, LayerType, getWMJSMapById, webmapTestSettings, WMLayer, getWMSRequests, handleDateUtilsISOString, isProjectionSupported, queryWMSLayers } from '@opengeoweb/webmap';
1
+ import { webmapUtils, parseISO8601IntervalToDateInterval, LayerType, getWMJSMapById, webmapTestSettings, WMLayer, getWMSRequests, handleDateUtilsISOString, isProjectionSupported, getCapabilities } from '@opengeoweb/webmap';
2
2
  import { createAction, createSlice, createSelector, createListenerMiddleware, isAnyOf, createEntityAdapter } from '@reduxjs/toolkit';
3
3
  import { getGeoJson, moveFeature, createInterSections, getLastEmptyFeatureIndex, defaultLayers, addSelectionTypeToGeoJSON, getFeatureCollection, emptyGeoJSON, defaultIntersectionStyleProperties } from '@opengeoweb/webmap-react';
4
4
  export { defaultLayers } from '@opengeoweb/webmap-react';
5
5
  import { dateUtils, PROJECTION, defaultDelay, withEggs } from '@opengeoweb/shared';
6
6
  import { defaultTimeStep, defaultTimeSpan, defaultAnimationDelayAtStart, defaultSecondsPerPx, roundWithTimeStep, getSpeedDelay } from '@opengeoweb/timeslider';
7
7
  import { produce } from 'immer';
8
- import { isEqual, isEmpty, pick, compact } from 'lodash';
8
+ import { isEqual, isEmpty, compact } from 'lodash';
9
9
  import { useSelector, useDispatch, Provider } from 'react-redux';
10
10
  import { useCallback, useEffect } from 'react';
11
11
  import { metronome } from '@opengeoweb/metronome';
@@ -3502,21 +3502,13 @@ var slice$4 = createSlice({
3502
3502
  },
3503
3503
  deleteSharedData: function deleteSharedData(draft, action) {
3504
3504
  var panelId = action.payload.panelId;
3505
- delete draft.linkedState.links[panelId];
3506
3505
  delete draft.linkedState.sharedData[panelId];
3507
3506
  },
3508
- setFeatureSelected: function setFeatureSelected(draft, action) {
3509
- var _action$payload3 = action.payload,
3510
- mapId = _action$payload3.mapId,
3511
- featureId = _action$payload3.featureId;
3512
- var sharedData = draft.linkedState.sharedData[mapId];
3513
- sharedData.selectedFeatureId = featureId;
3514
- },
3515
3507
  syncGroupAddSource: function syncGroupAddSource(draft, action) {
3516
- var _action$payload4 = action.payload,
3517
- id = _action$payload4.id,
3518
- payloadType = _action$payload4.type,
3519
- defaultPayload = _action$payload4.defaultPayload;
3508
+ var _action$payload3 = action.payload,
3509
+ id = _action$payload3.id,
3510
+ payloadType = _action$payload3.type,
3511
+ defaultPayload = _action$payload3.defaultPayload;
3520
3512
  if (!draft.sources.byId[id]) {
3521
3513
  draft.sources.byId[id] = {
3522
3514
  types: payloadType,
@@ -3551,10 +3543,10 @@ var slice$4 = createSlice({
3551
3543
  },
3552
3544
  syncGroupAddTarget: function syncGroupAddTarget(draft, action) {
3553
3545
  var _synchronizationGroup;
3554
- var _action$payload5 = action.payload,
3555
- groupId = _action$payload5.groupId,
3556
- targetId = _action$payload5.targetId,
3557
- linked = _action$payload5.linked;
3546
+ var _action$payload4 = action.payload,
3547
+ groupId = _action$payload4.groupId,
3548
+ targetId = _action$payload4.targetId,
3549
+ linked = _action$payload4.linked;
3558
3550
  var synchronizationGroup = draft.groups.byId[groupId];
3559
3551
  if (!synchronizationGroup) {
3560
3552
  console.warn("SYNCGROUPS_ADD_TARGET: Group " + groupId + " does not exist.");
@@ -3578,9 +3570,9 @@ var slice$4 = createSlice({
3578
3570
  }
3579
3571
  },
3580
3572
  syncGroupRemoveTarget: function syncGroupRemoveTarget(draft, action) {
3581
- var _action$payload6 = action.payload,
3582
- groupId = _action$payload6.groupId,
3583
- targetId = _action$payload6.targetId;
3573
+ var _action$payload5 = action.payload,
3574
+ groupId = _action$payload5.groupId,
3575
+ targetId = _action$payload5.targetId;
3584
3576
  if (!draft.groups.byId[groupId]) {
3585
3577
  return;
3586
3578
  }
@@ -3593,20 +3585,20 @@ var slice$4 = createSlice({
3593
3585
  });
3594
3586
  },
3595
3587
  syncGroupLinkTarget: function syncGroupLinkTarget(draft, action) {
3596
- var _action$payload7 = action.payload,
3597
- groupId = _action$payload7.groupId,
3598
- targetId = _action$payload7.targetId,
3599
- linked = _action$payload7.linked;
3588
+ var _action$payload6 = action.payload,
3589
+ groupId = _action$payload6.groupId,
3590
+ targetId = _action$payload6.targetId,
3591
+ linked = _action$payload6.linked;
3600
3592
  if (!draft.groups.byId[groupId] || !draft.groups.byId[groupId].targets.byId[targetId]) {
3601
3593
  return;
3602
3594
  }
3603
3595
  draft.groups.byId[groupId].targets.byId[targetId].linked = linked;
3604
3596
  },
3605
3597
  syncGroupAddGroup: function syncGroupAddGroup(draft, action) {
3606
- var _action$payload8 = action.payload,
3607
- groupId = _action$payload8.groupId,
3608
- type = _action$payload8.type,
3609
- title = _action$payload8.title;
3598
+ var _action$payload7 = action.payload,
3599
+ groupId = _action$payload7.groupId,
3600
+ type = _action$payload7.type,
3601
+ title = _action$payload7.title;
3610
3602
  if (draft.groups.byId[groupId]) {
3611
3603
  return;
3612
3604
  }
@@ -3654,10 +3646,10 @@ var slice$4 = createSlice({
3654
3646
  }
3655
3647
  });
3656
3648
  var setBboxOrTimeSync = function setBboxOrTimeSync(draft, action) {
3657
- var _action$payload9 = action.payload,
3658
- targets = _action$payload9.targets,
3659
- source = _action$payload9.source,
3660
- groups = _action$payload9.groups;
3649
+ var _action$payload8 = action.payload,
3650
+ targets = _action$payload8.targets,
3651
+ source = _action$payload8.source,
3652
+ groups = _action$payload8.groups;
3661
3653
  var getPayLoadKey = function getPayLoadKey(type) {
3662
3654
  switch (type) {
3663
3655
  case setTimeSync.type:
@@ -4153,7 +4145,7 @@ var getLinkedFeatureProviders = function getLinkedFeatureProviders(linkedState,
4153
4145
  var selectSharedData = createSelector([selectLinkedState, function (store, panelId) {
4154
4146
  return panelId;
4155
4147
  }], function (linkedState, panelId) {
4156
- return pick(linkedState == null ? void 0 : linkedState.sharedData, [panelId]);
4148
+ return (linkedState == null ? void 0 : linkedState.sharedData[panelId]) || {};
4157
4149
  });
4158
4150
  var selectLinkedPanelId = createSelector([selectLinkedState, function (_, mapViewId) {
4159
4151
  return mapViewId;
@@ -4201,24 +4193,22 @@ function (state, mapId) {
4201
4193
  selectedFeatureId: selectedFeatureId
4202
4194
  };
4203
4195
  }], function (_ref2) {
4196
+ var _features$;
4204
4197
  var features = _ref2.features,
4205
4198
  selectedFeatureId = _ref2.selectedFeatureId;
4206
- if (!selectedFeatureId) {
4207
- return null;
4208
- }
4209
- // Find the feature by the selectedFeatureId
4210
- var selectedFeature = features[0].geoJSON.features.find(function (feature) {
4199
+ var selectedFeature = (_features$ = features[0]) == null ? void 0 : _features$.geoJSON.features.find(function (feature) {
4211
4200
  return feature.id === selectedFeatureId;
4212
4201
  });
4213
4202
  if (selectedFeature && selectedFeature.geometry.type === 'Point') {
4214
- var _selectedFeature$prop, _selectedFeature$prop2;
4203
+ var _selectedFeature$prop, _selectedFeature$prop2, _selectedFeature$prop3;
4215
4204
  var coordinates = selectedFeature.geometry.coordinates;
4216
4205
  return {
4217
4206
  lat: coordinates[1],
4218
4207
  lon: coordinates[0],
4219
4208
  id: selectedFeature.id,
4220
4209
  serviceId: (_selectedFeature$prop = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop.serviceId,
4221
- collectionId: (_selectedFeature$prop2 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop2.collectionId
4210
+ collectionId: (_selectedFeature$prop2 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop2.collectionId,
4211
+ name: (_selectedFeature$prop3 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop3.name
4222
4212
  };
4223
4213
  }
4224
4214
  return null;
@@ -4255,6 +4245,9 @@ var selectors$4 = /*#__PURE__*/Object.freeze({
4255
4245
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
4256
4246
  * */
4257
4247
  var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
4248
+ var sharedData = useSelector(function (state) {
4249
+ return selectSharedData(state, panelId);
4250
+ });
4258
4251
  var linkedMaps = useSelector(function (store) {
4259
4252
  return getLinkedMaps(store, panelId);
4260
4253
  });
@@ -4269,13 +4262,15 @@ var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
4269
4262
  };
4270
4263
  }, [dispatch, panelId]);
4271
4264
  useEffect(function () {
4272
- if (panelId && (linkedMaps == null ? void 0 : linkedMaps.length) > 0) {
4265
+ var diff = Object.assign({}, sharedData, data);
4266
+ if (panelId && (linkedMaps == null ? void 0 : linkedMaps.length) > 0 && !isEqual(diff, sharedData)) {
4273
4267
  dispatch(actions.addSharedData({
4274
4268
  panelId: panelId,
4275
4269
  data: data
4276
4270
  }));
4277
4271
  }
4278
- }, [panelId, linkedMaps, data, dispatch]);
4272
+ }, [panelId, linkedMaps, data, sharedData, dispatch]);
4273
+ return sharedData;
4279
4274
  };
4280
4275
 
4281
4276
  /* *
@@ -6497,7 +6492,7 @@ mapListener.startListening({
6497
6492
  actionCreator: mapActions.setMapPreset,
6498
6493
  effect: function () {
6499
6494
  var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref6, listenerApi) {
6500
- var payload, mapId, initialProps, mapPreset, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, dockedLayerManagerSize, _filterLayers, mapLayers, baseLayers, overLayers, _newLayerIds$layers$, _newLayerIds$autoTime, _newLayerIds$autoUpda, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, firstLayerId, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, checkIsprojectionSupported, animationLength, animationEndTime, shouldEndtimeOverride, interval, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, duration, _animationEnd, animationStart, shouldOpenLegend, legendId, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart;
6495
+ var payload, mapId, initialProps, mapPreset, layers, activeLayerId, autoTimeStepLayerId, autoUpdateLayerId, proj, shouldAutoUpdate, shouldAnimate, animationPayload, toggleTimestepAuto, showTimeSlider, displayMapPin, shouldShowZoomControls, shouldShowLegend, dockedLayerManagerSize, _filterLayers, mapLayers, baseLayers, overLayers, _newLayerIds$layers$f, _newLayerIds$layers$, _newLayerIds$layers$f2, _newLayerIds$layers$2, autoTimeStepLayerIdNew, autoUpdateLayerIdNew, onlyActiveLayerIdIsSet, newLayerIds, newAutoUpdateLayerId, newAutoTimeStepLayerId, customLayers, customBaseLayer, customOverLayer, baseLayersWithDefaultLayer, overLayersWithDefaultLayer, allBaseLayers, checkIsprojectionSupported, animationLength, animationEndTime, shouldEndtimeOverride, interval, endTime, startTime, centerTimeInSeconds, animationEnd, _startTime, duration, _animationEnd, animationStart, shouldOpenLegend, legendId, fiveMinuteDelayForAnimation, _animationEnd2, _animationStart;
6501
6496
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
6502
6497
  while (1) switch (_context2.prev = _context2.next) {
6503
6498
  case 0:
@@ -6529,12 +6524,17 @@ mapListener.startListening({
6529
6524
  mapId: mapId,
6530
6525
  layers: newLayerIds.layers
6531
6526
  }));
6532
- // set active layer if given otherwise to first layer
6533
- firstLayerId = (_newLayerIds$layers$ = newLayerIds.layers[0]) == null ? void 0 : _newLayerIds$layers$.id;
6527
+ // make sure layer with new id exist and if not, default to first layer
6528
+ newAutoUpdateLayerId = ((_newLayerIds$layers$f = newLayerIds.layers.find(function (layer) {
6529
+ return layer.id === newLayerIds.autoUpdateLayerId;
6530
+ })) == null ? void 0 : _newLayerIds$layers$f.id) || ((_newLayerIds$layers$ = newLayerIds.layers[0]) == null ? void 0 : _newLayerIds$layers$.id);
6531
+ newAutoTimeStepLayerId = ((_newLayerIds$layers$f2 = newLayerIds.layers.find(function (layer) {
6532
+ return layer.id === newLayerIds.autoTimeStepLayerId;
6533
+ })) == null ? void 0 : _newLayerIds$layers$f2.id) || ((_newLayerIds$layers$2 = newLayerIds.layers[0]) == null ? void 0 : _newLayerIds$layers$2.id);
6534
6534
  listenerApi.dispatch(mapActions.setAutoLayerId({
6535
6535
  mapId: mapId,
6536
- autoTimeStepLayerId: (_newLayerIds$autoTime = newLayerIds.autoTimeStepLayerId) != null ? _newLayerIds$autoTime : firstLayerId,
6537
- autoUpdateLayerId: (_newLayerIds$autoUpda = newLayerIds.autoUpdateLayerId) != null ? _newLayerIds$autoUpda : firstLayerId
6536
+ autoUpdateLayerId: newAutoUpdateLayerId,
6537
+ autoTimeStepLayerId: newAutoTimeStepLayerId
6538
6538
  }));
6539
6539
  }
6540
6540
  customLayers = getdefaultMapSettingsLayers(listenerApi.getState());
@@ -6820,7 +6820,7 @@ var fetchService = /*#__PURE__*/function () {
6820
6820
  case 0:
6821
6821
  _context.prev = 0;
6822
6822
  _context.next = 3;
6823
- return queryWMSLayers(service.serviceUrl);
6823
+ return getCapabilities.getLayersFlattenedFromService(service.serviceUrl);
6824
6824
  case 3:
6825
6825
  layers = _context.sent;
6826
6826
  listenerApi.dispatch(serviceActions.serviceSetLayers(Object.assign({}, service, {
@@ -6905,15 +6905,17 @@ serviceListener.startListening({
6905
6905
  }()
6906
6906
  });
6907
6907
 
6908
+ // use `required` type because all props are provided
6908
6909
  var mapStoreReducers = {
6909
6910
  webmap: reducer$4,
6910
6911
  services: reducer$2,
6911
6912
  layers: reducer$6
6912
6913
  };
6914
+ var mapStoreMiddlewares = [metronomeListener.middleware, layersListener.middleware, mapUiListener.middleware, mapListener.middleware, serviceListener.middleware];
6913
6915
  var mapStoreModuleConfig = {
6914
6916
  id: 'webmap-module',
6915
6917
  reducersMap: mapStoreReducers,
6916
- middlewares: [metronomeListener.middleware, layersListener.middleware, mapUiListener.middleware, mapListener.middleware, serviceListener.middleware]
6918
+ middlewares: mapStoreMiddlewares
6917
6919
  };
6918
6920
 
6919
6921
  /* *
@@ -7457,7 +7459,6 @@ var routerActions = slice$1.actions;
7457
7459
  * */
7458
7460
  // stores navigate hook method to object, so it can be used outside components
7459
7461
  var historyDict = {
7460
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7461
7462
  navigate: null
7462
7463
  };
7463
7464
 
@@ -7477,7 +7478,7 @@ routerListener.startListening({
7477
7478
  case 0:
7478
7479
  payload = _ref.payload;
7479
7480
  listenerApi.cancelActiveListeners();
7480
- historyDict.navigate(payload.url);
7481
+ historyDict.navigate && historyDict.navigate(payload.url);
7481
7482
  case 3:
7482
7483
  case "end":
7483
7484
  return _context.stop();
@@ -7508,12 +7509,14 @@ routerListener.startListening({
7508
7509
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
7509
7510
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
7510
7511
  * */
7512
+ var routerReducersMap = {
7513
+ router: reducer$1
7514
+ };
7515
+ var routerMiddlewares = [routerListener.middleware];
7511
7516
  var routerModuleConfig = {
7512
7517
  id: 'router',
7513
- reducersMap: {
7514
- router: reducer$1
7515
- },
7516
- middlewares: [routerListener.middleware]
7518
+ reducersMap: routerReducersMap,
7519
+ middlewares: routerMiddlewares
7517
7520
  };
7518
7521
 
7519
7522
  /* *
@@ -8030,12 +8033,14 @@ drawingToolListener.startListening({
8030
8033
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
8031
8034
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
8032
8035
  * */
8036
+ var drawtoolReducersMap = {
8037
+ drawingtools: reducer
8038
+ };
8039
+ var drawtoolMiddlewares = [drawingToolListener.middleware];
8033
8040
  var drawtoolModuleConfig = {
8034
8041
  id: 'drawtool-module',
8035
- reducersMap: {
8036
- drawingtools: reducer
8037
- },
8038
- middlewares: [drawingToolListener.middleware]
8042
+ reducersMap: drawtoolReducersMap,
8043
+ middlewares: drawtoolMiddlewares
8039
8044
  };
8040
8045
 
8041
8046
  /* *
@@ -8196,6 +8201,87 @@ var mockStateMapWithLayer = function mockStateMapWithLayer(layer, mapId) {
8196
8201
  })
8197
8202
  };
8198
8203
  };
8204
+ var mockLinkedState = function mockLinkedState() {
8205
+ return {
8206
+ syncronizationGroupStore: Object.assign({}, initialState$3, {
8207
+ viewState: {
8208
+ timeslider: {
8209
+ groups: [{
8210
+ id: 'dummyId1',
8211
+ selected: ['mapId1', 'mapId2']
8212
+ }],
8213
+ sourcesById: []
8214
+ },
8215
+ zoompane: {
8216
+ groups: [],
8217
+ sourcesById: []
8218
+ },
8219
+ level: {
8220
+ groups: [],
8221
+ sourcesById: []
8222
+ }
8223
+ },
8224
+ linkedState: {
8225
+ links: {
8226
+ mapId: ['mapId1', 'mapId2']
8227
+ },
8228
+ sharedData: {
8229
+ mapId1: {
8230
+ features: [{
8231
+ id: 'feature1',
8232
+ geoJSON: {
8233
+ type: 'FeatureCollection',
8234
+ features: [{
8235
+ type: 'Feature',
8236
+ properties: {
8237
+ name: 'Feature 1'
8238
+ },
8239
+ geometry: {
8240
+ type: 'Point',
8241
+ coordinates: [0, 0]
8242
+ }
8243
+ }, {
8244
+ type: 'Feature',
8245
+ properties: {
8246
+ name: 'Feature 2'
8247
+ },
8248
+ geometry: {
8249
+ type: 'Point',
8250
+ coordinates: [1, 1]
8251
+ }
8252
+ }]
8253
+ }
8254
+ }, {
8255
+ id: 'feature2',
8256
+ geoJSON: {
8257
+ type: 'FeatureCollection',
8258
+ features: [{
8259
+ type: 'Feature',
8260
+ properties: {
8261
+ name: 'Feature 3'
8262
+ },
8263
+ geometry: {
8264
+ type: 'Point',
8265
+ coordinates: [2, 2]
8266
+ }
8267
+ }, {
8268
+ type: 'Feature',
8269
+ properties: {
8270
+ name: 'Feature 4'
8271
+ },
8272
+ geometry: {
8273
+ type: 'Point',
8274
+ coordinates: [3, 3]
8275
+ }
8276
+ }]
8277
+ }
8278
+ }]
8279
+ }
8280
+ }
8281
+ }
8282
+ })
8283
+ };
8284
+ };
8199
8285
  var webmapStateWithMultipleLayers = function webmapStateWithMultipleLayers(layers, mapId) {
8200
8286
  var webmap = createWebmapState(mapId);
8201
8287
  // Add the layers to the map state
@@ -8325,6 +8411,7 @@ var storeTestUtils = /*#__PURE__*/Object.freeze({
8325
8411
  createMapDimensionsState: createMapDimensionsState,
8326
8412
  createMultipleLayersState: createMultipleLayersState,
8327
8413
  createWebmapState: createWebmapState,
8414
+ mockLinkedState: mockLinkedState,
8328
8415
  mockStateMapWithAnimationDelayWithoutLayers: mockStateMapWithAnimationDelayWithoutLayers,
8329
8416
  mockStateMapWithDimensions: mockStateMapWithDimensions,
8330
8417
  mockStateMapWithLayer: mockStateMapWithLayer,
@@ -8335,13 +8422,15 @@ var storeTestUtils = /*#__PURE__*/Object.freeze({
8335
8422
  webmapStateWithAddedLayer: webmapStateWithAddedLayer
8336
8423
  });
8337
8424
 
8425
+ var synchronizationGroupReducersMap = {
8426
+ syncronizationGroupStore: reducer$3,
8427
+ loadingIndicatorStore: loadingIndicatorReducer
8428
+ };
8429
+ var synchronizationGroupMiddlewares = [genericListener.middleware, syncGroupsListener.middleware];
8338
8430
  var synchronizationGroupConfig = {
8339
8431
  id: 'syncronizationGroupStore-module',
8340
- reducersMap: {
8341
- syncronizationGroupStore: reducer$3,
8342
- loadingIndicatorStore: loadingIndicatorReducer
8343
- },
8344
- middlewares: [genericListener.middleware, syncGroupsListener.middleware]
8432
+ reducersMap: synchronizationGroupReducersMap,
8433
+ middlewares: synchronizationGroupMiddlewares
8345
8434
  };
8346
8435
 
8347
8436
  /* *
@@ -8361,11 +8450,12 @@ var synchronizationGroupConfig = {
8361
8450
  * Copyright 2022 - Finnish Meteorological Institute (FMI)
8362
8451
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
8363
8452
  * */
8453
+ var uiReducersMap = {
8454
+ ui: reducer$5
8455
+ };
8364
8456
  var uiModuleConfig = {
8365
8457
  id: 'ui-module',
8366
- reducersMap: {
8367
- ui: reducer$5
8368
- }
8458
+ reducersMap: uiReducersMap
8369
8459
  };
8370
8460
 
8371
8461
  /* *
@@ -8386,6 +8476,8 @@ var uiModuleConfig = {
8386
8476
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
8387
8477
  * */
8388
8478
  var coreModuleConfig = [mapStoreModuleConfig, synchronizationGroupConfig, uiModuleConfig, drawtoolModuleConfig];
8479
+ var coreModuleReducersMap = Object.assign({}, mapStoreReducers, synchronizationGroupReducersMap, uiReducersMap, drawtoolReducersMap);
8480
+ var coreModuleMiddlewares = [].concat(mapStoreMiddlewares, synchronizationGroupMiddlewares, drawtoolMiddlewares);
8389
8481
 
8390
8482
  /* *
8391
8483
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -8441,4 +8533,4 @@ var StoreProvider = function StoreProvider(_ref2) {
8441
8533
  });
8442
8534
  };
8443
8535
 
8444
- export { IS_LEGEND_OPEN_BY_DEFAULT, StoreProvider, coreModuleConfig, createCustomStore, drawtoolActions, drawtoolModuleConfig, reducer as drawtoolReducer, selectors as drawtoolSelectors, filterLayers$1 as filterLayers, genericActions, genericListener, selectors$4 as genericSelectors, types$1 as genericTypes, getSingularDrawtoolDrawLayerId, getUserAddedServices, initialState$3 as initialState, layerActions, reducer$6 as layerReducer, selectors$7 as layerSelectors, types$5 as layerTypes, utils$2 as layerUtils, constants as linkComponentTypesConstants, loadingIndicatorActions, constants$1 as loadingIndicatorConstants, loadingIndicatorReducer, selectors$3 as loadingIndicatorSelectors, mapActions, enums as mapEnums, mapListener, selectors$2 as mapSelectors, mapStoreActions, mapStoreModuleConfig, mapStoreReducers, types$4 as mapTypes, mapUtils, routerActions, routerModuleConfig, utils as routerUtils, selectorMemoizationOptions, serviceActions, selectors$1 as serviceSelectors, types as serviceTypes, setUserAddedServices, storeTestSettings, storeTestUtils, utils$1 as storeUtils, constants$2 as syncConstants, actions as syncGroupsActions, syncGroupsListener, reducer$3 as syncGroupsReducer, selector as syncGroupsSelector, selectors$5 as syncGroupsSelectors, types$2 as syncGroupsTypes, types$2 as types, uiActions, uiModuleConfig, reducer$5 as uiReducer, selectors$6 as uiSelectors, types$3 as uiTypes, useSetupDialog, useUpdateSharedData, reducer$4 as webmapReducer };
8536
+ export { IS_LEGEND_OPEN_BY_DEFAULT, StoreProvider, coreModuleConfig, coreModuleMiddlewares, coreModuleReducersMap, createCustomStore, drawtoolActions, drawtoolMiddlewares, drawtoolModuleConfig, reducer as drawtoolReducer, drawtoolReducersMap, selectors as drawtoolSelectors, filterLayers$1 as filterLayers, genericActions, genericListener, selectors$4 as genericSelectors, types$1 as genericTypes, getSingularDrawtoolDrawLayerId, getUserAddedServices, initialState$3 as initialState, layerActions, reducer$6 as layerReducer, selectors$7 as layerSelectors, types$5 as layerTypes, utils$2 as layerUtils, constants as linkComponentTypesConstants, loadingIndicatorActions, constants$1 as loadingIndicatorConstants, loadingIndicatorReducer, selectors$3 as loadingIndicatorSelectors, mapActions, enums as mapEnums, mapListener, selectors$2 as mapSelectors, mapStoreActions, mapStoreMiddlewares, mapStoreModuleConfig, mapStoreReducers, types$4 as mapTypes, mapUtils, routerActions, routerMiddlewares, routerModuleConfig, routerReducersMap, utils as routerUtils, selectorMemoizationOptions, serviceActions, selectors$1 as serviceSelectors, types as serviceTypes, setUserAddedServices, storeTestSettings, storeTestUtils, utils$1 as storeUtils, constants$2 as syncConstants, actions as syncGroupsActions, syncGroupsListener, reducer$3 as syncGroupsReducer, selector as syncGroupsSelector, selectors$5 as syncGroupsSelectors, types$2 as syncGroupsTypes, types$2 as types, uiActions, uiModuleConfig, reducer$5 as uiReducer, selectors$6 as uiSelectors, types$3 as uiTypes, useSetupDialog, useUpdateSharedData, reducer$4 as webmapReducer };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "9.35.1-spike-oltanstack.0",
3
+ "version": "9.36.0",
4
4
  "description": "GeoWeb Store library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -18,7 +18,8 @@
18
18
  "@redux-eggs/redux-toolkit": "^2.2.0",
19
19
  "lodash": "^4.17.21",
20
20
  "@opengeoweb/metronome": "*",
21
- "@opengeoweb/timeslider": "*"
21
+ "@opengeoweb/timeslider": "*",
22
+ "react-router-dom": "^6.23.1"
22
23
  },
23
24
  "peerDependencies": {
24
25
  "react": "18"
@@ -1 +1,5 @@
1
+ import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
2
+ import { CoreAppStore } from './types';
1
3
  export declare const coreModuleConfig: (import("@redux-eggs/core").Egg<import("redux").Store<import("./mapStore").WebMapStateModuleState, import("redux").AnyAction>> | import("@redux-eggs/core").Egg<import("redux").Store<import("./generic/synchronizationGroups/types").SynchronizationGroupModuleState, import("redux").AnyAction>> | import("@redux-eggs/core").Egg<import("redux").Store<import("./ui/types").UIModuleState, import("redux").AnyAction>> | import("@redux-eggs/core").Egg<import("redux").Store<import("./drawingtool").DrawtoolModuleStore, import("redux").AnyAction>>)[];
4
+ export declare const coreModuleReducersMap: ReducersMapObject<CoreAppStore>;
5
+ export declare const coreModuleMiddlewares: ListenerMiddleware[];
@@ -1,4 +1,6 @@
1
- import { Store } from '@reduxjs/toolkit';
1
+ import { ListenerMiddleware, ReducersMapObject, Store } from '@reduxjs/toolkit';
2
2
  import { Egg } from '@redux-eggs/core';
3
3
  import type { DrawtoolModuleStore } from './reducer';
4
+ export declare const drawtoolReducersMap: ReducersMapObject<DrawtoolModuleStore>;
5
+ export declare const drawtoolMiddlewares: ListenerMiddleware[];
4
6
  export declare const drawtoolModuleConfig: Egg<Store<DrawtoolModuleStore>>;
@@ -1,5 +1,7 @@
1
1
  import { Egg } from '@redux-eggs/core';
2
- import { Store } from '@reduxjs/toolkit';
2
+ import { ListenerMiddleware, ReducersMapObject, Store } from '@reduxjs/toolkit';
3
3
  import { SynchronizationGroupModuleState } from './synchronizationGroups/types';
4
+ export declare const synchronizationGroupReducersMap: ReducersMapObject<SynchronizationGroupModuleState>;
5
+ export declare const synchronizationGroupMiddlewares: ListenerMiddleware[];
4
6
  declare const synchronizationGroupConfig: Egg<Store<SynchronizationGroupModuleState>>;
5
7
  export default synchronizationGroupConfig;
@@ -1,2 +1,2 @@
1
1
  import { PotentialData } from './synchronizationGroups/types';
2
- export declare const useUpdateSharedData: (data: PotentialData, panelId?: string) => void;
2
+ export declare const useUpdateSharedData: (data: PotentialData, panelId?: string) => PotentialData;
@@ -6,10 +6,6 @@ export declare const genericActions: {
6
6
  updateLinkedMap: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").UpdateLinkedMap, "synchronizationGroupsReducer/updateLinkedMap">;
7
7
  addSharedData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").AddSharedData, "synchronizationGroupsReducer/addSharedData">;
8
8
  deleteSharedData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").DeleteSharedData, "synchronizationGroupsReducer/deleteSharedData">;
9
- setFeatureSelected: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
10
- mapId: string;
11
- featureId: string;
12
- }, "synchronizationGroupsReducer/setFeatureSelected">;
13
9
  syncGroupAddSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupsAddSourcePayload, "synchronizationGroupsReducer/syncGroupAddSource">;
14
10
  syncGroupRemoveSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupRemoveSourcePayload, "synchronizationGroupsReducer/syncGroupRemoveSource">;
15
11
  syncGroupAddTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupAddTargetPayload, "synchronizationGroupsReducer/syncGroupAddTarget">;
@@ -16,7 +16,7 @@ export declare const getLinkedMaps: ((state: any, panelId: string) => string[])
16
16
  clearCache: () => void;
17
17
  };
18
18
  export declare const getLinkedFeatureProviders: (linkedState: LinkedState, mapId: string) => string[];
19
- export declare const selectSharedData: ((state: any, panelId: string) => Pick<Record<string, import("./synchronizationGroups/types").PotentialData>, string>) & import("reselect").OutputSelectorFields<(args_0: LinkedState, args_1: string) => Pick<Record<string, import("./synchronizationGroups/types").PotentialData>, string>, {
19
+ export declare const selectSharedData: ((state: any, panelId: string) => import("./synchronizationGroups/types").PotentialData) & import("reselect").OutputSelectorFields<(args_0: LinkedState, args_1: string) => import("./synchronizationGroups/types").PotentialData, {
20
20
  clearCache: () => void;
21
21
  }> & {
22
22
  clearCache: () => void;
@@ -33,9 +33,11 @@ export declare const selectMapViewsForPanelId: ((state: LinkedState, panelId: st
33
33
  };
34
34
  export declare const selectLinkedFeatures: ((state: any, mapId: string) => {
35
35
  id: string;
36
+ originalId?: string | undefined;
36
37
  geoJSON: import("geojson").FeatureCollection<import("geojson").Geometry, import("geojson").GeoJsonProperties>;
37
38
  }[]) & import("reselect").OutputSelectorFields<(args_0: LinkedState, args_1: string[]) => {
38
39
  id: string;
40
+ originalId?: string | undefined;
39
41
  geoJSON: import("geojson").FeatureCollection<import("geojson").Geometry, import("geojson").GeoJsonProperties>;
40
42
  }[], {
41
43
  clearCache: () => void;
@@ -46,11 +48,13 @@ export declare const getSelectedFeature: ((state: SynchronizationGroupState, map
46
48
  lat: number;
47
49
  lon: number;
48
50
  id: string;
49
- serviceId: string;
50
- collectionId: string;
51
+ serviceId: any;
52
+ collectionId: any;
53
+ name: any;
51
54
  } | null) & import("reselect").OutputSelectorFields<(args_0: {
52
55
  features: {
53
56
  id: string;
57
+ originalId?: string | undefined;
54
58
  geoJSON: import("geojson").FeatureCollection<import("geojson").Geometry, import("geojson").GeoJsonProperties>;
55
59
  }[];
56
60
  selectedFeatureId: string | undefined;
@@ -58,8 +62,9 @@ export declare const getSelectedFeature: ((state: SynchronizationGroupState, map
58
62
  lat: number;
59
63
  lon: number;
60
64
  id: string;
61
- serviceId: string;
62
- collectionId: string;
65
+ serviceId: any;
66
+ collectionId: any;
67
+ name: any;
63
68
  } | null, {
64
69
  clearCache: () => void;
65
70
  }> & {
@@ -17,10 +17,6 @@ export declare const slice: import("@reduxjs/toolkit").Slice<SynchronizationGrou
17
17
  updateLinkedMap: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<UpdateLinkedMap>) => void;
18
18
  addSharedData: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<AddSharedData>) => void;
19
19
  deleteSharedData: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<DeleteSharedData>) => void;
20
- setFeatureSelected: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<{
21
- mapId: string;
22
- featureId: string;
23
- }>) => void;
24
20
  syncGroupAddSource: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupsAddSourcePayload>) => void;
25
21
  syncGroupRemoveSource: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupRemoveSourcePayload>) => void;
26
22
  syncGroupAddTarget: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupAddTargetPayload>) => void;
@@ -49,10 +45,6 @@ export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
49
45
  updateLinkedMap: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<UpdateLinkedMap>) => void;
50
46
  addSharedData: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<AddSharedData>) => void;
51
47
  deleteSharedData: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<DeleteSharedData>) => void;
52
- setFeatureSelected: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<{
53
- mapId: string;
54
- featureId: string;
55
- }>) => void;
56
48
  syncGroupAddSource: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupsAddSourcePayload>) => void;
57
49
  syncGroupRemoveSource: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupRemoveSourcePayload>) => void;
58
50
  syncGroupAddTarget: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupAddTargetPayload>) => void;
@@ -1,3 +1,4 @@
1
+ import { LoadingIndicatorModuleState } from '../loadingIndicator/types';
1
2
  import type { GenericActionPayload } from '../types';
2
3
  import { SYNCGROUPS_TYPE_SETBBOX, SYNCGROUPS_TYPE_SETTIME, SYNCGROUPS_TYPE_SETLAYERACTIONS } from './constants';
3
4
  export interface Group {
@@ -32,9 +33,11 @@ export interface SynchronizationGroup {
32
33
  export interface PotentialData {
33
34
  features?: {
34
35
  id: string;
36
+ originalId?: string;
35
37
  geoJSON: GeoJSON.FeatureCollection;
36
38
  }[];
37
39
  selectedFeatureId?: string;
40
+ hoverId?: string;
38
41
  }
39
42
  export interface LinkedState {
40
43
  links: Record<string, string[]>;
@@ -63,6 +66,7 @@ export interface SynchronizationGroupState {
63
66
  }
64
67
  export interface SynchronizationGroupModuleState {
65
68
  syncronizationGroupStore?: SynchronizationGroupState;
69
+ loadingIndicatorStore?: LoadingIndicatorModuleState['loadingIndicatorStore'];
66
70
  }
67
71
  export type SyncType = typeof SYNCGROUPS_TYPE_SETBBOX | typeof SYNCGROUPS_TYPE_SETTIME | typeof SYNCGROUPS_TYPE_SETLAYERACTIONS;
68
72
  export interface SyncGroupsAddSourcePayload {
@@ -1,9 +1,6 @@
1
1
  import { Egg } from '@redux-eggs/core';
2
- import { Store } from '@reduxjs/toolkit';
2
+ import { ListenerMiddleware, ReducersMapObject, Store } from '@reduxjs/toolkit';
3
3
  import { WebMapStateModuleState } from './types';
4
- export declare const mapStoreReducers: {
5
- webmap: import("redux").Reducer<import("./types").WebMapState>;
6
- services: import("redux").Reducer<import("./types").ServiceState>;
7
- layers: import("redux").Reducer<import("./types").LayerState>;
8
- };
4
+ export declare const mapStoreReducers: ReducersMapObject<Required<WebMapStateModuleState>>;
5
+ export declare const mapStoreMiddlewares: ListenerMiddleware[];
9
6
  export declare const mapStoreModuleConfig: Egg<Store<WebMapStateModuleState>>;
@@ -9,6 +9,7 @@ export declare const createWebmapState: (...mapIds: string[]) => mapTypes.WebMap
9
9
  export declare const createMapDimensionsState: (dimensions?: mapTypes.Dimension[], ...mapIds: string[]) => mapTypes.WebMapState;
10
10
  export declare const webmapStateWithAddedLayer: (layerType: LayerType, layerId: string, mapId: string, dimensions?: mapTypes.Dimension[]) => mapTypes.WebMapState;
11
11
  export declare const mockStateMapWithLayer: (layer: layerTypes.Layer, mapId: string) => CoreAppStore;
12
+ export declare const mockLinkedState: () => CoreAppStore;
12
13
  export declare const mockStateMapWithMultipleLayers: (layers: layerTypes.Layer[], mapId: string) => CoreAppStore;
13
14
  export declare const testGeoJSON: GeoJSON.FeatureCollection;
14
15
  export declare const mockStateMapWithAnimationDelayWithoutLayers: (mapId: string) => WebMapStateModuleState;
@@ -1,4 +1,6 @@
1
- import { Store } from '@reduxjs/toolkit';
1
+ import { ListenerMiddleware, ReducersMapObject, Store } from '@reduxjs/toolkit';
2
2
  import { Egg } from '@redux-eggs/core';
3
3
  import { RouterModuleStore } from './types';
4
+ export declare const routerReducersMap: ReducersMapObject<RouterModuleStore>;
5
+ export declare const routerMiddlewares: ListenerMiddleware[];
4
6
  export declare const routerModuleConfig: Egg<Store<RouterModuleStore>>;
@@ -1,3 +1,4 @@
1
+ import { NavigateFunction } from 'react-router-dom';
1
2
  export declare const historyDict: {
2
- navigate: any;
3
+ navigate: NavigateFunction | null;
3
4
  };
@@ -1,4 +1,5 @@
1
1
  import { Egg } from '@redux-eggs/core';
2
- import { Store } from '@reduxjs/toolkit';
2
+ import { ReducersMapObject, Store } from '@reduxjs/toolkit';
3
3
  import { UIModuleState } from './types';
4
+ export declare const uiReducersMap: ReducersMapObject<UIModuleState>;
4
5
  export declare const uiModuleConfig: Egg<Store<UIModuleState>>;