@opengeoweb/store 10.2.0 → 10.2.1-spike-ol.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.
Files changed (49) hide show
  1. package/index.esm.js +3391 -2995
  2. package/package.json +4 -2
  3. package/src/store/drawingTool/index.d.ts +2 -3
  4. package/src/store/generic/hooks.d.ts +1 -1
  5. package/src/store/generic/index.d.ts +15 -15
  6. package/src/store/generic/listener.d.ts +1 -1
  7. package/src/store/generic/selectors.d.ts +2 -2
  8. package/src/store/generic/{synchronizationGroups → syncGroups}/index.d.ts +2 -1
  9. package/src/store/generic/{synchronizationGroups → syncGroups}/reducer.d.ts +2 -2
  10. package/src/store/index.d.ts +2 -2
  11. package/src/store/map/index.d.ts +1 -2
  12. package/src/store/map/layer/index.d.ts +1 -1
  13. package/src/store/map/layer/reducer.d.ts +1 -2
  14. package/src/store/map/layer/types.d.ts +1 -1
  15. package/src/store/map/map/index.d.ts +1 -1
  16. package/src/store/map/map/olMapListenerAnimationUtils.d.ts +46 -0
  17. package/src/store/map/map/olMapListenerAnimationUtils.spec.d.ts +1 -0
  18. package/src/store/map/map/reducer.d.ts +1 -1
  19. package/src/store/map/map/selectors.d.ts +6 -1
  20. package/src/store/map/map/types.d.ts +6 -0
  21. package/src/store/map/service/index.d.ts +1 -1
  22. package/src/store/map/service/reducer.d.ts +1 -2
  23. package/src/store/mapStore/openlayers/listener.d.ts +2 -0
  24. package/src/store/mapStore/openlayers/listener.spec.d.ts +1 -0
  25. package/src/store/mapStore/openlayers/syncGroupViewStore.d.ts +26 -0
  26. package/src/store/router/index.d.ts +1 -2
  27. package/src/store/router/reducer.d.ts +1 -2
  28. package/src/store/store.d.ts +19 -0
  29. package/src/store/types.d.ts +1 -1
  30. package/src/store/ui/index.d.ts +2 -1
  31. package/src/store/ui/reducer.d.ts +1 -2
  32. package/src/store/coreModuleConfig.d.ts +0 -9
  33. package/src/store/drawingTool/config.d.ts +0 -7
  34. package/src/store/generic/config.d.ts +0 -9
  35. package/src/store/map/config.d.ts +0 -8
  36. package/src/store/router/config.d.ts +0 -7
  37. package/src/store/ui/config.d.ts +0 -5
  38. package/src/store/utils/testUtils.d.ts +0 -3
  39. /package/src/store/generic/{synchronizationGroups → syncGroups}/__mocks__/mockState.d.ts +0 -0
  40. /package/src/store/generic/{synchronizationGroups → syncGroups}/constants.d.ts +0 -0
  41. /package/src/store/generic/{synchronizationGroups → syncGroups}/listener.d.ts +0 -0
  42. /package/src/store/generic/{synchronizationGroups → syncGroups}/listener.spec.d.ts +0 -0
  43. /package/src/store/generic/{synchronizationGroups → syncGroups}/reducer.spec.d.ts +0 -0
  44. /package/src/store/generic/{synchronizationGroups → syncGroups}/selector.d.ts +0 -0
  45. /package/src/store/generic/{synchronizationGroups → syncGroups}/selectors.d.ts +0 -0
  46. /package/src/store/generic/{synchronizationGroups → syncGroups}/selectors.spec.d.ts +0 -0
  47. /package/src/store/generic/{synchronizationGroups → syncGroups}/types.d.ts +0 -0
  48. /package/src/store/generic/{synchronizationGroups → syncGroups}/utils.d.ts +0 -0
  49. /package/src/store/generic/{synchronizationGroups → syncGroups}/utils.spec.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/store",
3
- "version": "10.2.0",
3
+ "version": "10.2.1-spike-ol.0",
4
4
  "description": "GeoWeb Store library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -17,7 +17,9 @@
17
17
  "lodash": "^4.17.21",
18
18
  "@opengeoweb/metronome": "*",
19
19
  "@opengeoweb/timeslider": "*",
20
- "react-router-dom": "^6.23.1"
20
+ "react-router-dom": "^6.23.1",
21
+ "ol": "^10.4.0",
22
+ "@turf/turf": "^7.2.0"
21
23
  },
22
24
  "peerDependencies": {
23
25
  "react": "18"
@@ -1,5 +1,4 @@
1
- export * as drawtoolSelectors from './selectors';
2
- export * from './config';
1
+ export { drawingToolActions, drawingToolReducer } from './reducer';
2
+ export * as drawingToolSelectors from './selectors';
3
3
  export type { DrawToolItem, DrawtoolModuleStore } from './reducer';
4
4
  export * from './utils';
5
- export { drawingToolActions, drawingToolReducer } from './reducer';
@@ -1,2 +1,2 @@
1
- import { PotentialData } from './synchronizationGroups/types';
1
+ import { PotentialData } from './syncGroups/types';
2
2
  export declare const useUpdateSharedData: (data: PotentialData, panelId?: string) => PotentialData;
@@ -1,24 +1,24 @@
1
1
  export declare const genericActions: {
2
- initialSyncState: import("./synchronizationGroups/types").SynchronizationGroupState;
2
+ initialSyncState: import("./syncGroups/types").SynchronizationGroupState;
3
3
  setTime: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./types").SetTimePayload, string>;
4
4
  setBbox: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./types").SetBboxPayload, string>;
5
- setLinkedMap: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SetLinkedMap, "synchronizationGroupsReducer/setLinkedMap">;
6
- updateLinkedMap: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").UpdateLinkedMap, "synchronizationGroupsReducer/updateLinkedMap">;
7
- addSharedData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").AddSharedData, "synchronizationGroupsReducer/addSharedData">;
8
- deleteSharedData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").DeleteSharedData, "synchronizationGroupsReducer/deleteSharedData">;
9
- syncGroupAddSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupsAddSourcePayload, "synchronizationGroupsReducer/syncGroupAddSource">;
10
- syncGroupRemoveSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupRemoveSourcePayload, "synchronizationGroupsReducer/syncGroupRemoveSource">;
11
- syncGroupAddTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupAddTargetPayload, "synchronizationGroupsReducer/syncGroupAddTarget">;
12
- syncGroupRemoveTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupRemoveTargetPayload, "synchronizationGroupsReducer/syncGroupRemoveTarget">;
13
- syncGroupLinkTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupLinkTargetPayload, "synchronizationGroupsReducer/syncGroupLinkTarget">;
14
- syncGroupAddGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupAddGroupPayload, "synchronizationGroupsReducer/syncGroupAddGroup">;
15
- syncGroupRemoveGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupRemoveGroupPayload, "synchronizationGroupsReducer/syncGroupRemoveGroup">;
5
+ setLinkedMap: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SetLinkedMap, "synchronizationGroupsReducer/setLinkedMap">;
6
+ updateLinkedMap: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").UpdateLinkedMap, "synchronizationGroupsReducer/updateLinkedMap">;
7
+ addSharedData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").AddSharedData, "synchronizationGroupsReducer/addSharedData">;
8
+ deleteSharedData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").DeleteSharedData, "synchronizationGroupsReducer/deleteSharedData">;
9
+ syncGroupAddSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupsAddSourcePayload, "synchronizationGroupsReducer/syncGroupAddSource">;
10
+ syncGroupRemoveSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupRemoveSourcePayload, "synchronizationGroupsReducer/syncGroupRemoveSource">;
11
+ syncGroupAddTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupAddTargetPayload, "synchronizationGroupsReducer/syncGroupAddTarget">;
12
+ syncGroupRemoveTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupRemoveTargetPayload, "synchronizationGroupsReducer/syncGroupRemoveTarget">;
13
+ syncGroupLinkTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupLinkTargetPayload, "synchronizationGroupsReducer/syncGroupLinkTarget">;
14
+ syncGroupAddGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupAddGroupPayload, "synchronizationGroupsReducer/syncGroupAddGroup">;
15
+ syncGroupRemoveGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupRemoveGroupPayload, "synchronizationGroupsReducer/syncGroupRemoveGroup">;
16
16
  syncGroupClear: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"synchronizationGroupsReducer/syncGroupClear">;
17
- syncGroupSetViewState: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupSetViewStatePayload, "synchronizationGroupsReducer/syncGroupSetViewState">;
18
- syncGroupToggleIsTimeScrollingEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./synchronizationGroups/types").SyncGroupToggleIsTimeScrollingEnabled, "synchronizationGroupsReducer/syncGroupToggleIsTimeScrollingEnabled">;
17
+ syncGroupSetViewState: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupSetViewStatePayload, "synchronizationGroupsReducer/syncGroupSetViewState">;
18
+ syncGroupToggleIsTimeScrollingEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("./syncGroups/types").SyncGroupToggleIsTimeScrollingEnabled, "synchronizationGroupsReducer/syncGroupToggleIsTimeScrollingEnabled">;
19
19
  };
20
20
  export * as genericSelectors from './selectors';
21
21
  export * from './hooks';
22
- export * from './synchronizationGroups';
22
+ export * from './syncGroups';
23
23
  export * as genericTypes from './types';
24
24
  export * from './loadingIndicator';
@@ -1,2 +1,2 @@
1
- import { SynchronizationGroupModuleState } from './synchronizationGroups/types';
1
+ import { SynchronizationGroupModuleState } from './syncGroups/types';
2
2
  export declare const genericListener: import("@reduxjs/toolkit").ListenerMiddlewareInstance<SynchronizationGroupModuleState, import("@reduxjs/toolkit").ThunkDispatch<SynchronizationGroupModuleState, unknown, import("redux").AnyAction>, unknown>;
@@ -1,5 +1,5 @@
1
1
  import type { CoreAppStore } from '../types';
2
- import type { LinkedState, SynchronizationGroupState, SynchronizationSource } from './synchronizationGroups/types';
2
+ import type { LinkedState, SynchronizationGroupState, SynchronizationSource } from './syncGroups/types';
3
3
  export declare const getSynchronizationGroupStore: ((state: CoreAppStore) => SynchronizationGroupState) & import("reselect").OutputSelectorFields<(args_0: SynchronizationGroupState) => SynchronizationGroupState, {
4
4
  clearCache: () => void;
5
5
  }> & {
@@ -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) => import("./synchronizationGroups/types").PotentialData) & import("reselect").OutputSelectorFields<(args_0: LinkedState, args_1: string) => import("./synchronizationGroups/types").PotentialData, {
19
+ export declare const selectSharedData: ((state: any, panelId: string) => import("./syncGroups/types").PotentialData) & import("reselect").OutputSelectorFields<(args_0: LinkedState, args_1: string) => import("./syncGroups/types").PotentialData, {
20
20
  clearCache: () => void;
21
21
  }> & {
22
22
  clearCache: () => void;
@@ -1,8 +1,9 @@
1
1
  import { syncGroupsListener } from './listener';
2
2
  export { syncGroupsListener };
3
- export { actions as syncGroupsActions, initialState, reducer as syncGroupsReducer, } from './reducer';
3
+ export { syncGroupsActions, initialState, syncGroupsReducer } from './reducer';
4
4
  export * as syncConstants from './constants';
5
5
  export * as types from './types';
6
+ export type { SynchronizationGroupModuleState } from './types';
6
7
  export * as syncGroupsSelectors from './selectors';
7
8
  export * as syncGroupsTypes from './types';
8
9
  export * as syncGroupsSelector from './selector';
@@ -29,7 +29,7 @@ export declare const slice: import("@reduxjs/toolkit").Slice<SynchronizationGrou
29
29
  syncGroupToggleIsTimeScrollingEnabled: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupToggleIsTimeScrollingEnabled>) => void;
30
30
  }, "synchronizationGroupsReducer">;
31
31
  export declare const syncGroupAddGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupAddGroupPayload, "synchronizationGroupsReducer/syncGroupAddGroup">, syncGroupAddSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupsAddSourcePayload, "synchronizationGroupsReducer/syncGroupAddSource">, syncGroupAddTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupAddTargetPayload, "synchronizationGroupsReducer/syncGroupAddTarget">, syncGroupClear: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"synchronizationGroupsReducer/syncGroupClear">, syncGroupLinkTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupLinkTargetPayload, "synchronizationGroupsReducer/syncGroupLinkTarget">, syncGroupRemoveGroup: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupRemoveGroupPayload, "synchronizationGroupsReducer/syncGroupRemoveGroup">, syncGroupRemoveSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupRemoveSourcePayload, "synchronizationGroupsReducer/syncGroupRemoveSource">, syncGroupRemoveTarget: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupRemoveTargetPayload, "synchronizationGroupsReducer/syncGroupRemoveTarget">, syncGroupSetViewState: import("@reduxjs/toolkit").ActionCreatorWithPayload<SyncGroupSetViewStatePayload, "synchronizationGroupsReducer/syncGroupSetViewState">;
32
- export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
32
+ export declare const syncGroupsReducer: import("redux").Reducer<SynchronizationGroupState>, syncGroupsActions: import("@reduxjs/toolkit").CaseReducerActions<{
33
33
  /** Sets the links map.
34
34
  * This is used to override the links when changing workspaces.
35
35
  * @param draft sync state
@@ -55,4 +55,4 @@ export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
55
55
  syncGroupClear: () => SynchronizationGroupState;
56
56
  syncGroupSetViewState: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupSetViewStatePayload>) => void;
57
57
  syncGroupToggleIsTimeScrollingEnabled: (draft: Draft<SynchronizationGroupState>, action: PayloadAction<SyncGroupToggleIsTimeScrollingEnabled>) => void;
58
- }, "synchronizationGroupsReducer">, reducer: import("redux").Reducer<SynchronizationGroupState>;
58
+ }, "synchronizationGroupsReducer">;
@@ -3,6 +3,7 @@ export * from './ui';
3
3
  export * from './generic';
4
4
  export { genericListener } from './generic/listener';
5
5
  export { mapListener } from './map/map/listener';
6
+ export { openlayersListener } from './mapStore/openlayers/listener';
6
7
  export { serviceListener } from './map/service/listener';
7
8
  export { routerListener } from './router/listener';
8
9
  export { drawingToolListener } from './drawingTool/listener';
@@ -12,8 +13,7 @@ export * from './router';
12
13
  export * from './drawingTool';
13
14
  export * from './types';
14
15
  export * as storeTestUtils from './map/storeTestUtils';
15
- export * from './coreModuleConfig';
16
16
  export * from './generic/linking';
17
17
  export * as storeUtils from './utils';
18
18
  export * from './utils';
19
- export { uiModuleConfig } from './ui/config';
19
+ export * from './store';
@@ -1,6 +1,5 @@
1
1
  export * from './service';
2
2
  export * from './map';
3
3
  export * from './layer';
4
- export type { WebMapStateModuleState, MapPreset, MapPresetInitialProps, } from './types';
4
+ export type { WebMapStateModuleState, MapPreset, MapPresetInitialProps, TimeSliderStartCenterEndTime, } from './types';
5
5
  export * as storeTestSettings from './storeTestSettings';
6
- export * from './config';
@@ -1,4 +1,4 @@
1
- export { layerActions, reducer as layerReducer } from './reducer';
1
+ export { layerActions, layerReducer } from './reducer';
2
2
  export type { LayerActions } from './reducer';
3
3
  export * as layerSelectors from './selectors';
4
4
  export * as layerTypes from './types';
@@ -43,8 +43,7 @@ export declare const slice: import("@reduxjs/toolkit").Slice<LayerState, {
43
43
  showLayerInfo: (draft: Draft<LayerState>, action: PayloadAction<ShowLayerInfoPayload>) => void;
44
44
  hideLayerInfo: (draft: Draft<LayerState>) => void;
45
45
  }, "layerReducer">;
46
- export declare const reducer: import("redux").Reducer<LayerState>;
47
- export declare const layerActions: import("@reduxjs/toolkit").CaseReducerActions<{
46
+ export declare const layerReducer: import("redux").Reducer<LayerState>, layerActions: import("@reduxjs/toolkit").CaseReducerActions<{
48
47
  addLayer: (draft: Draft<LayerState>, action: PayloadAction<AddLayerPayload>) => void;
49
48
  duplicateMapLayer: (draft: Draft<LayerState>, action: PayloadAction<DuplicateMapLayerPayload>) => void;
50
49
  layerChangeDimension: (draft: Draft<LayerState>, action: PayloadAction<SetLayerDimensionPayload>) => void;
@@ -3,7 +3,7 @@ import { FeatureCollection } from 'geojson';
3
3
  import { LayerFoundation } from '@opengeoweb/webmap';
4
4
  import { UpdateLayerInfoPayload } from '@opengeoweb/webmap-react';
5
5
  import type { Dimension } from '../map/types';
6
- import type { SyncGroupActionOrigin } from '../../generic/synchronizationGroups/types';
6
+ import type { SyncGroupActionOrigin } from '../../generic/syncGroups/types';
7
7
  import { uiTypes } from '../../ui';
8
8
  export declare enum LayerStatus {
9
9
  default = "default",
@@ -17,7 +17,7 @@ export declare const mapUtils: {
17
17
  parseTimeDimToISO8601Interval: (timeInterval: string | undefined) => mapTypes.ISO8601Interval[];
18
18
  };
19
19
  export { mapTypes };
20
- export { mapActions, reducer as webmapReducer } from './reducer';
20
+ export { mapActions, mapReducer } from './reducer';
21
21
  export * as mapSelectors from './selectors';
22
22
  export * as mapEnums from './enums';
23
23
  export * from './constants';
@@ -0,0 +1,46 @@
1
+ import { Dispatch, ListenerEffectAPI } from '@reduxjs/toolkit';
2
+ import { ReduxLayer } from '../types';
3
+ import { CoreAppStore } from '../../types';
4
+ /**
5
+ * Returns the next step for given timerId.
6
+ * @param timerId The timer id
7
+ * @param numberOfStepsInAnimation Animation length in steps
8
+ * @param numStepsToGoForward Amount of steps to go forwards, defaults to 1. Can be positive and negative
9
+ * @returns
10
+ */
11
+ export declare const getNextStep: (timerId: string, numberOfStepsInAnimation: number, numStepsToGoForward?: number) => number;
12
+ /**
13
+ * Handles dwell at the end of the animation loop sequence. The number of steps to wait till proceed can be set by the dwell parameter.
14
+ * @param timerId The timer id
15
+ * @param numberOfStepsInAnimation Number of steps in the animation
16
+ * @param dwell The number of steps to wait at the end of the animation sequence before to continue
17
+ * @returns
18
+ */
19
+ export declare const handleTimerDwell: (timerId: string, numberOfStepsInAnimation: number, dwell?: number) => boolean;
20
+ /**
21
+ * Set step for the timerId
22
+ * @param timerId
23
+ * @param timerStep
24
+ */
25
+ export declare const setStep: (timerId: string, timerStep: number) => void;
26
+ /**
27
+ * Gets the current step for the timer
28
+ * @param timerId
29
+ * @returns
30
+ */
31
+ export declare const getCurrentStep: (timerId: string) => number;
32
+ /**
33
+ * Checks if the next step is available for all provided layers
34
+ * @param reduxLayers
35
+ * @param nextTimeString
36
+ * @returns
37
+ */
38
+ export declare const isNextStepAvailable: (reduxLayers: ReduxLayer[], nextTimeString: string) => boolean;
39
+ /**
40
+ * This handler is triggered by the metronome. An array of timerIds is given as argument.
41
+ * It will update the animation loop of multiple maps and sliders
42
+ * It will prefetch images for maps
43
+ * @param timerIds string[] array of timerIds
44
+ * @param listenerApi ListenerEffectAPI<CoreAppStore, Dispatch, unknown> listenerApi as received from listener
45
+ */
46
+ export declare const olMetronomeHandler: (timerIds: string[], listenerApi: ListenerEffectAPI<CoreAppStore, Dispatch, unknown>) => void;
@@ -108,4 +108,4 @@ export declare const mapActions: {
108
108
  }, "mapReducer/setMapPresetError">;
109
109
  setDefaultMapSettings: import("@reduxjs/toolkit").ActionCreatorWithPayload<SetDefaultMapSettingsPayload, "mapReducer/setDefaultMapSettings">;
110
110
  };
111
- export declare const reducer: import("redux").Reducer<WebMapState>;
111
+ export declare const mapReducer: import("redux").Reducer<WebMapState>;
@@ -1,6 +1,6 @@
1
1
  import type { Bbox, MapPreset, WebMap, WebMapState } from './types';
2
2
  import type { CoreAppStore } from '../../types';
3
- import type { Dimension, Layer, ReduxLayer, WebMapAnimationList } from '../types';
3
+ import type { Dimension, Layer, ReduxLayer, TimeSliderStartCenterEndTime, WebMapAnimationList } from '../types';
4
4
  import type { uiTypes } from '../../ui';
5
5
  /**
6
6
  * Gets the map state by mapId
@@ -429,6 +429,11 @@ export declare const getMapTimeSliderCenterTime: ((state: CoreAppStore, mapId: s
429
429
  }> & {
430
430
  clearCache: () => void;
431
431
  };
432
+ export declare const getMapTimeSliderStartCenterEndAndStep: ((state: CoreAppStore, mapId: string) => TimeSliderStartCenterEndTime) & import("reselect").OutputSelectorFields<(args_0: WebMap | undefined) => TimeSliderStartCenterEndTime, {
433
+ clearCache: () => void;
434
+ }> & {
435
+ clearCache: () => void;
436
+ };
432
437
  /**
433
438
  * Returns the number of seconds per pixel on the time slider
434
439
  *
@@ -241,3 +241,9 @@ export interface ISO8601Interval {
241
241
  export interface SetDefaultMapSettingsPayload {
242
242
  preset: MapPreset;
243
243
  }
244
+ export interface TimeSliderStartCenterEndTime {
245
+ start: number;
246
+ center: number;
247
+ end: number;
248
+ step: number;
249
+ }
@@ -1,4 +1,4 @@
1
- export { serviceActions, reducer as serviceReducer } from './reducer';
1
+ export { serviceActions, serviceReducer } from './reducer';
2
2
  export * as serviceSelectors from './selectors';
3
3
  export * as serviceTypes from './types';
4
4
  export * from './localStorage';
@@ -2,8 +2,7 @@ import { PayloadAction, Draft } from '@reduxjs/toolkit';
2
2
  import { FetchInitialServicesPayload, MapStoreRemoveServicePayload, ServiceState, SetLayersForServicePayload } from './types';
3
3
  import { layerActions } from '../layer/reducer';
4
4
  export declare const initialState: ServiceState;
5
- export declare const reducer: import("redux").Reducer<ServiceState>;
6
- export declare const serviceActions: import("@reduxjs/toolkit").CaseReducerActions<{
5
+ export declare const serviceReducer: import("redux").Reducer<ServiceState>, serviceActions: import("@reduxjs/toolkit").CaseReducerActions<{
7
6
  serviceSetLayers: (draft: Draft<ServiceState>, action: PayloadAction<SetLayersForServicePayload>) => void;
8
7
  mapStoreRemoveService: (draft: Draft<ServiceState>, action: PayloadAction<MapStoreRemoveServicePayload>) => void;
9
8
  fetchInitialServices: (draft: Draft<ServiceState>, action: PayloadAction<FetchInitialServicesPayload>) => void;
@@ -0,0 +1,2 @@
1
+ import { WebMapStateModuleState } from '../../map/types';
2
+ export declare const openlayersListener: import("@reduxjs/toolkit").ListenerMiddlewareInstance<WebMapStateModuleState, import("@reduxjs/toolkit").ThunkDispatch<WebMapStateModuleState, unknown, import("redux").AnyAction>, unknown>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ import { Observable, View } from 'ol';
2
+ export declare const copyView: (view: View) => View;
3
+ /**
4
+ * The StoredView objects keep references to OpenLayers View objects that may be shared
5
+ * between multiple maps (when maps are pan/zoom synced).
6
+ * This file then offers and API for each map to retrieve the StoredView object
7
+ * that is relevant for the current workspace configuration.
8
+ *
9
+ * React is functional, but OpenLayers is object oriented.
10
+ * This component sits in between the two and thus you can make an argument for either style.
11
+ * Object oriented was chosen since:
12
+ * - This allows us to use OpenLayers's Observable as a base class to provide event handling,
13
+ * which is useful for the implementation.
14
+ * - For this mechanism to work smoothly with OpenLayers,
15
+ * we need to pass the exact same View object reference for all maps that are synchronized. Redux stores cannot be used in this context and prop drilling and/or context providers would likely lead to more invasive implementations.
16
+ */
17
+ export declare class StoredView extends Observable {
18
+ name: string;
19
+ view: View;
20
+ constructor(name: string, view: View);
21
+ setView(view: View): void;
22
+ }
23
+ export declare const clearSyncGroupViewStore: () => void;
24
+ export declare const getViewObjectForMapId: (id: string) => StoredView;
25
+ export declare const createViewObjectForNewMap: (createFromId: string, newId: string) => void;
26
+ export declare const getViewObjectForSyncGroup: (id: string) => StoredView;
@@ -1,3 +1,2 @@
1
- export { routerActions, reducer as routerReducer } from './reducer';
1
+ export { routerActions, routerReducer } from './reducer';
2
2
  export * as routerUtils from './utils';
3
- export * from './config';
@@ -2,8 +2,7 @@ import { Draft } from 'immer';
2
2
  import { PayloadAction } from '@reduxjs/toolkit';
3
3
  import { NavigateToUrlPayload } from './types';
4
4
  export declare const initialState: {};
5
- export declare const reducer: import("redux").Reducer<{}>;
6
- export declare const routerActions: import("@reduxjs/toolkit").CaseReducerActions<{
5
+ export declare const routerReducer: import("redux").Reducer<{}>, routerActions: import("@reduxjs/toolkit").CaseReducerActions<{
7
6
  navigateToUrl: (draft: Draft<unknown>, action: PayloadAction<NavigateToUrlPayload>) => void;
8
7
  }, "router">;
9
8
  export type RouterActions = ReturnType<typeof routerActions.navigateToUrl>;
@@ -0,0 +1,19 @@
1
+ import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore';
2
+ import { WebMapStateModuleState } from './map';
3
+ import { SynchronizationGroupModuleState } from './generic/syncGroups/types';
4
+ import { LoadingIndicatorModuleState } from './generic/loadingIndicator/types';
5
+ import { UIModuleState } from './ui/types';
6
+ import { DrawtoolModuleStore } from './drawingTool/reducer';
7
+ export declare const storeReducerMap: {
8
+ webmap: import("redux").Reducer<import("./map/types").WebMapState>;
9
+ services: import("redux").Reducer<import("./map/types").ServiceState>;
10
+ layers: import("redux").Reducer<import("./map/types").LayerState>;
11
+ syncGroups: import("redux").Reducer<import("./generic/syncGroups/types").SynchronizationGroupState>;
12
+ loadingIndicator: import("redux").Reducer<import("@reduxjs/toolkit").EntityState<import("./generic/loadingIndicator/types").LoadingIndicatorType>>;
13
+ ui: import("redux").Reducer<import("./ui/types").UIStoreType>;
14
+ drawingtools: import("redux").Reducer<import("./drawingTool/reducer").DrawingToolState>;
15
+ router: import("redux").Reducer<{}>;
16
+ };
17
+ export declare const storeMiddlewares: (import("@reduxjs/toolkit").ListenerMiddleware<import("./types").CoreAppStore, import("@reduxjs/toolkit").ThunkDispatch<import("./types").CoreAppStore, unknown, import("redux").AnyAction>, unknown> | import("@reduxjs/toolkit").ListenerMiddleware<import("./router/types").RouterModuleStore, import("@reduxjs/toolkit").ThunkDispatch<import("./router/types").RouterModuleStore, unknown, import("redux").AnyAction>, unknown>)[];
18
+ export declare const createMockStore: (mockState?: WebMapStateModuleState | SynchronizationGroupModuleState | LoadingIndicatorModuleState | UIModuleState | DrawtoolModuleStore) => ToolkitStore;
19
+ export { getViewObjectForSyncGroup, getViewObjectForMapId, createViewObjectForNewMap, } from './mapStore/openlayers/syncGroupViewStore';
@@ -1,5 +1,5 @@
1
1
  import type { WebMapStateModuleState } from './map/types';
2
- import type { SynchronizationGroupModuleState } from './generic/synchronizationGroups/types';
2
+ import type { SynchronizationGroupModuleState } from './generic/syncGroups/types';
3
3
  import type { uiTypes } from '.';
4
4
  import type { DrawtoolModuleStore } from './drawingTool';
5
5
  import type { LoadingIndicatorModuleState } from './generic/loadingIndicator/types';
@@ -1,4 +1,5 @@
1
- export { uiActions, reducer as uiReducer } from './reducer';
1
+ export { uiActions, uiReducer } from './reducer';
2
2
  export * as uiSelectors from './selectors';
3
3
  export * as uiTypes from './types';
4
4
  export { useSetupDialog } from './useSetupDialog';
5
+ export type { UIModuleState } from './types';
@@ -20,8 +20,7 @@ export declare const slice: import("@reduxjs/toolkit").Slice<UIStoreType, {
20
20
  toggleIsLoadingDialog: (draft: Draft<UIStoreType>, action: PayloadAction<UIToggleIsLoadingPayload>) => void;
21
21
  setErrorDialog: (draft: Draft<UIStoreType>, action: PayloadAction<UISetErrorPayload>) => void;
22
22
  }, "uiReducer">;
23
- export declare const reducer: import("redux").Reducer<UIStoreType>;
24
- export declare const uiActions: import("@reduxjs/toolkit").CaseReducerActions<{
23
+ export declare const uiReducer: import("redux").Reducer<UIStoreType>, uiActions: import("@reduxjs/toolkit").CaseReducerActions<{
25
24
  registerDialog: (draft: Draft<UIStoreType>, action: PayloadAction<UIRegisterDialogPayload>) => void;
26
25
  unregisterDialog: (draft: Draft<UIStoreType>, action: PayloadAction<UIUnRegisterDialogPayload>) => void;
27
26
  setActiveMapIdForDialog: (draft: Draft<UIStoreType>, action: PayloadAction<SetActiveMapIdForDialogPayload>) => void;
@@ -1,9 +0,0 @@
1
- import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
2
- export declare const coreModuleConfig: ({
3
- reducersMap: ReducersMapObject<Required<import("./map").WebMapStateModuleState>, import("redux").Action<any>>;
4
- middlewares: ListenerMiddleware[];
5
- } | {
6
- reducersMap: ReducersMapObject<any, import("redux").Action<any>>;
7
- })[];
8
- export declare const coreModuleReducersMap: ReducersMapObject;
9
- export declare const coreModuleMiddlewares: ListenerMiddleware[];
@@ -1,7 +0,0 @@
1
- import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
2
- export declare const drawtoolReducersMap: ReducersMapObject;
3
- export declare const drawtoolMiddlewares: ListenerMiddleware[];
4
- export declare const drawtoolModuleConfig: {
5
- reducersMap: ReducersMapObject<any, import("redux").Action<any>>;
6
- middlewares: ListenerMiddleware[];
7
- };
@@ -1,9 +0,0 @@
1
- import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
2
- export declare const synchronizationGroupReducersMap: ReducersMapObject;
3
- export declare const synchronizationGroupMiddlewares: ListenerMiddleware[];
4
- declare const synchronizationGroupConfig: {
5
- id: string;
6
- reducersMap: ReducersMapObject<any, import("redux").Action<any>>;
7
- middlewares: ListenerMiddleware[];
8
- };
9
- export default synchronizationGroupConfig;
@@ -1,8 +0,0 @@
1
- import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
2
- import { WebMapStateModuleState } from './types';
3
- export declare const mapStoreReducers: ReducersMapObject<Required<WebMapStateModuleState>>;
4
- export declare const mapStoreMiddlewares: ListenerMiddleware[];
5
- export declare const mapStoreModuleConfig: {
6
- reducersMap: ReducersMapObject<Required<WebMapStateModuleState>, import("redux").Action<any>>;
7
- middlewares: ListenerMiddleware[];
8
- };
@@ -1,7 +0,0 @@
1
- import { ListenerMiddleware, ReducersMapObject } from '@reduxjs/toolkit';
2
- export declare const routerReducersMap: ReducersMapObject;
3
- export declare const routerMiddlewares: ListenerMiddleware[];
4
- export declare const routerModuleConfig: {
5
- reducersMap: ReducersMapObject<any, import("redux").Action<any>>;
6
- middlewares: ListenerMiddleware[];
7
- };
@@ -1,5 +0,0 @@
1
- import { ReducersMapObject } from '@reduxjs/toolkit';
2
- export declare const uiReducersMap: ReducersMapObject;
3
- export declare const uiModuleConfig: {
4
- reducersMap: ReducersMapObject<any, import("redux").Action<any>>;
5
- };
@@ -1,3 +0,0 @@
1
- import { Store } from '@reduxjs/toolkit';
2
- import { WebMapStateModuleState } from '../map';
3
- export declare const createMockStore: (mockState?: WebMapStateModuleState | undefined) => Store;