@opengeoweb/soundings 15.1.0 → 15.3.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/soundings",
3
- "version": "15.1.0",
3
+ "version": "15.3.0",
4
4
  "description": "GeoWeb soundings library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,24 +8,24 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/api": "15.1.0",
11
+ "@opengeoweb/api": "15.3.0",
12
12
  "@tanstack/react-query": "^5.85.5",
13
13
  "react": "^18.3.1",
14
14
  "d3": "^7.9.0",
15
15
  "react-i18next": "^15.1.1",
16
16
  "i18next": "^25.0.1",
17
- "@opengeoweb/shared": "15.1.0",
17
+ "@opengeoweb/shared": "15.3.0",
18
18
  "@mui/material": "^7.0.1",
19
- "@opengeoweb/store": "15.1.0",
19
+ "@opengeoweb/store": "15.3.0",
20
20
  "react-redux": "^9.2.0",
21
- "@opengeoweb/theme": "15.1.0",
21
+ "@opengeoweb/theme": "15.3.0",
22
22
  "@reduxjs/toolkit": "^2.6.1",
23
- "@opengeoweb/time-slider": "15.1.0",
24
- "react-window": "^1.8.10",
25
- "@opengeoweb/webmap": "15.1.0",
23
+ "@opengeoweb/time-slider": "15.3.0",
24
+ "react-window": "^2.2.6",
25
+ "@opengeoweb/webmap": "15.3.0",
26
26
  "lodash": "^4.17.21",
27
27
  "@types/geojson": "^7946.0.14",
28
- "@opengeoweb/webmap-react": "15.1.0",
28
+ "@opengeoweb/webmap-react": "15.3.0",
29
29
  "react-resizable-layout": "^0.7.3",
30
30
  "react-sortablejs": "^6.1.4"
31
31
  },
package/src/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from './lib/store/store';
7
7
  export * from './lib/utils/i18n';
8
8
  export * as SoundingsTypes from './lib/store/types';
9
9
  export { SoundingsActionOrigin } from './lib/store/types';
10
+ export type { SoundingsRootState } from './lib/store/types';
@@ -1,6 +1,7 @@
1
1
  import type { Coverage, CoverageCollection, VerticalProfileDomain } from '@opengeoweb/shared';
2
2
  import type { CollectionDetails, SoundingFeature, SoundingsInstance } from './types';
3
- export declare function parseCoverageCollection(response: CoverageCollection<VerticalProfileDomain> | Coverage<VerticalProfileDomain>, parameterMappings: Record<string, string>): SoundingFeature[];
3
+ export declare const getWindSpeedInKts: (windSpeed: number, windSpeedUnit: string) => number;
4
+ export declare function parseCoverageCollection(response: CoverageCollection<VerticalProfileDomain> | Coverage<VerticalProfileDomain>, parameterMappings: Record<string, string>, windSpeedUnit: string): SoundingFeature[];
4
5
  /**
5
6
  * Parse duration with repeats
6
7
  * @param dateString e.g. 'R67/2025-04-22T09:00:00Z/PT60M'
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { SoundingFeature } from '../../api/edr-api/types';
3
+ export interface HodographProps {
4
+ data: SoundingFeature[][];
5
+ }
6
+ export declare const Hodograph: React.FC<HodographProps>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-webpack5';
2
+ import { HodographCollection } from './HodographCollection';
3
+ declare const meta: Meta<typeof HodographCollection>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof HodographCollection>;
6
+ export declare const HodographStory: Story;
7
+ export declare const HodographStoryDark: Story;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { SoundingFeature } from '../../api/edr-api/types';
3
+ export interface HodographCollectionProps {
4
+ data: SoundingFeature[][];
5
+ }
6
+ export declare const HodographCollection: React.FC<HodographCollectionProps>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const HodographLegend: () => React.ReactElement;
@@ -0,0 +1,53 @@
1
+ import * as d3 from 'd3';
2
+ import type { ScalesType } from '../Soundings/types';
3
+ interface InitializeSvg {
4
+ svgRef: React.MutableRefObject<SVGSVGElement | null>;
5
+ widthHeight: number;
6
+ }
7
+ export declare const initializeSvg: ({ svgRef, widthHeight, }: InitializeSvg) => d3.Selection<SVGSVGElement | null, unknown, null, undefined>;
8
+ export declare const createScales: (widthHeight: number) => [ScalesType, ScalesType];
9
+ interface DrawAxis {
10
+ svg: d3.Selection<SVGSVGElement, unknown, HTMLElement, undefined>;
11
+ scaleRadius: ScalesType;
12
+ scaleAngle: ScalesType;
13
+ widthHeight: number;
14
+ }
15
+ export declare const drawAxes: ({ svg, scaleRadius, scaleAngle, widthHeight, }: DrawAxis) => void;
16
+ export declare const filterDomainRangeForHodograph: (pressureDomain: number[], parameterDomain: [number, number][]) => [number[], [number, number][]];
17
+ type PathSegments = [
18
+ [
19
+ number,
20
+ number
21
+ ][],
22
+ [
23
+ number,
24
+ number
25
+ ][],
26
+ [
27
+ number,
28
+ number
29
+ ][],
30
+ [
31
+ number,
32
+ number
33
+ ][],
34
+ [
35
+ number,
36
+ number
37
+ ][]
38
+ ];
39
+ export declare const altitudeBarometricFromPressure: (pressure: number) => number;
40
+ export declare const generateSegmentsBasedOnLevel: (pressure: number[], windValues: [number, number][]) => PathSegments;
41
+ export declare const HODOGRAPH_COLORS: string[];
42
+ export declare const getColorForSegment: (index: number) => string;
43
+ interface PlotHodograph {
44
+ windValues: [number, number][];
45
+ pressureValues: number[];
46
+ scaleAngle: ScalesType;
47
+ scaleRadius: ScalesType;
48
+ widthHeight: number;
49
+ svg: d3.Selection<SVGSVGElement, unknown, HTMLElement, undefined>;
50
+ index: number;
51
+ }
52
+ export declare const plotHodograph: ({ windValues, pressureValues, scaleAngle, scaleRadius, widthHeight, svg, index, }: PlotHodograph) => void;
53
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,7 @@
1
+ import React from 'react';
1
2
  import type { SoundingsCollection } from '@opengeoweb/shared';
2
3
  interface Props {
3
- soundingsCollections: SoundingsCollection[];
4
+ soundingsCollections?: SoundingsCollection[];
4
5
  }
5
6
  export declare const LocationsMenuConnect: ({ soundingsCollections, }: Props) => React.ReactElement;
6
7
  export {};
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export interface SoundingPanelPlaceholderProps {
3
+ panelName: string;
4
+ }
5
+ export declare const SoundingPanelPlaceholder: React.FC<SoundingPanelPlaceholderProps>;
@@ -0,0 +1 @@
1
+ export * from './SoundingPanelPlaceholder';
@@ -10,5 +10,6 @@ export interface SoundingsAccordionProps {
10
10
  setSoundingsIsClosed?: (isClosed: boolean) => void;
11
11
  setPreviousHeight?: (size: number) => void;
12
12
  size?: number;
13
+ isDisplayed?: boolean;
13
14
  }
14
15
  export declare const SoundingsAccordion: React.ForwardRefExoticComponent<SoundingsAccordionProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,6 @@
1
- export declare const SoundingManagerListItem: ({ name, isDisplayed, }: {
1
+ export declare const SoundingManagerListItem: ({ id, name, isDisplayed, onToggleVisibility, }: {
2
+ id: string;
2
3
  name: string;
3
4
  isDisplayed: boolean;
5
+ onToggleVisibility: (id: string) => void;
4
6
  }) => React.ReactElement;
@@ -11,6 +11,7 @@ interface SoundingsManagerProps {
11
11
  name: string;
12
12
  isDisplayed: boolean;
13
13
  }[]) => void;
14
+ onToggleVisibility: (id: string) => void;
14
15
  }
15
- export declare const SoundingsManager: ({ isOpen, onClose, onMouseDown, order, soundingPanelsInOrder, onOrderChange, }: SoundingsManagerProps) => React.ReactElement;
16
+ export declare const SoundingsManager: ({ isOpen, onClose, onMouseDown, order, soundingPanelsInOrder, onOrderChange, onToggleVisibility, }: SoundingsManagerProps) => React.ReactElement;
16
17
  export {};
@@ -1,15 +1,24 @@
1
- import type { Draft, PayloadAction } from '@reduxjs/toolkit';
2
- import type { SoundingPanels, SoundingsStore, UpdateLocationPayload, UpdateSourcePayload, UpdateTimePayload, UpdateDiagramTypePayload, ToggleLocationMarkersPayload } from './types';
1
+ import type { Reducer } from '@reduxjs/toolkit';
2
+ import type { SoundingsCollection } from '@opengeoweb/shared';
3
+ import type { SoundingsStore, RegisterSoundingsPresetPayload, UpdateLocationPayload, UpdateSourcePayload, UpdateTimePayload, UpdateDiagramTypePayload, ToggleLocationMarkersPayload, AddSoundingPanelsPayload, ChangeSoundingPanelOrderPayload, SoundingsState } from './types';
3
4
  export declare const initialSoundingsState: SoundingsStore;
4
- export declare const soundingsReducer: import("redux").Reducer<SoundingsStore>, soundingsActions: import("@reduxjs/toolkit").CaseReducerActions<{
5
- registerSoundingsPreset: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<SoundingsStore>) => void;
6
- updateSelectedSource: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateSourcePayload>) => void;
7
- updateSelectedLocation: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateLocationPayload>) => void;
8
- updateSelectedTime: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateTimePayload>) => void;
9
- updateDiagramType: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateDiagramTypePayload>) => void;
10
- toggleLocationMarkers: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<ToggleLocationMarkersPayload>) => void;
11
- addSoundingPanelsFromPreset: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<SoundingPanels>) => void;
12
- changeSoundingPanelOrder: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<{
13
- newOrderOfIds: string[];
14
- }>) => void;
15
- }, "soundings">;
5
+ export declare const soundingsActions: {
6
+ setSoundingsCollections: import("@reduxjs/toolkit").ActionCreatorWithPayload<SoundingsCollection[], string>;
7
+ registerSoundingsPanel: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
8
+ panelId: string;
9
+ }, "soundings/registerSoundingsPanel">;
10
+ registerSoundingsPreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<RegisterSoundingsPresetPayload, "soundings/registerSoundingsPreset">;
11
+ updateSelectedSource: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateSourcePayload, "soundings/updateSelectedSource">;
12
+ updateSelectedLocation: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateLocationPayload, "soundings/updateSelectedLocation">;
13
+ updateSelectedTime: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateTimePayload, "soundings/updateSelectedTime">;
14
+ updateDiagramType: import("@reduxjs/toolkit").ActionCreatorWithPayload<UpdateDiagramTypePayload, "soundings/updateDiagramType">;
15
+ toggleLocationMarkers: import("@reduxjs/toolkit").ActionCreatorWithPayload<ToggleLocationMarkersPayload, "soundings/toggleLocationMarkers">;
16
+ addSoundingPanelsFromPreset: import("@reduxjs/toolkit").ActionCreatorWithPayload<AddSoundingPanelsPayload, "soundings/addSoundingPanelsFromPreset">;
17
+ changeSoundingPanelOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<ChangeSoundingPanelOrderPayload, "soundings/changeSoundingPanelOrder">;
18
+ toggleSoundingPanelVisibility: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
19
+ id: string;
20
+ panelId?: string;
21
+ origin?: string;
22
+ }, "soundings/toggleSoundingPanelVisibility">;
23
+ };
24
+ export declare const soundingsReducer: Reducer<SoundingsState>;
@@ -1,6 +1,7 @@
1
- import type { SourceSelection } from '@opengeoweb/shared';
1
+ import type { SoundingsCollection, SourceSelection } from '@opengeoweb/shared';
2
2
  import type { SoundingsModuleState, SoundingsStore, SourceType } from './types';
3
- export declare const getSourceSelections: ((state: SoundingsModuleState) => Record<string, SourceSelection>) & {
3
+ export declare const getSoundingsCollections: (store: SoundingsModuleState) => SoundingsCollection[];
4
+ export declare const getSourceSelections: ((state: SoundingsModuleState, panelId?: string | undefined) => Record<string, SourceSelection>) & {
4
5
  clearCache: () => void;
5
6
  resultsCount: () => number;
6
7
  resetResultsCount: () => void;
@@ -12,7 +13,7 @@ export declare const getSourceSelections: ((state: SoundingsModuleState) => Reco
12
13
  resetResultsCount: () => void;
13
14
  };
14
15
  lastResult: () => Record<string, SourceSelection>;
15
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
16
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
16
17
  recomputations: () => number;
17
18
  resetRecomputations: () => void;
18
19
  dependencyRecomputations: () => number;
@@ -21,7 +22,7 @@ export declare const getSourceSelections: ((state: SoundingsModuleState) => Reco
21
22
  memoize: typeof import("reselect").weakMapMemoize;
22
23
  argsMemoize: typeof import("reselect").weakMapMemoize;
23
24
  };
24
- export declare const getLocationSelections: ((state: SoundingsModuleState) => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>) & {
25
+ export declare const getLocationSelections: ((state: SoundingsModuleState, panelId?: string | undefined) => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>) & {
25
26
  clearCache: () => void;
26
27
  resultsCount: () => number;
27
28
  resetResultsCount: () => void;
@@ -33,7 +34,7 @@ export declare const getLocationSelections: ((state: SoundingsModuleState) => Re
33
34
  resetResultsCount: () => void;
34
35
  };
35
36
  lastResult: () => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>;
36
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
37
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
37
38
  recomputations: () => number;
38
39
  resetRecomputations: () => void;
39
40
  dependencyRecomputations: () => number;
@@ -42,7 +43,7 @@ export declare const getLocationSelections: ((state: SoundingsModuleState) => Re
42
43
  memoize: typeof import("reselect").weakMapMemoize;
43
44
  argsMemoize: typeof import("reselect").weakMapMemoize;
44
45
  };
45
- export declare const getSelectedTime: ((state: SoundingsModuleState) => string) & {
46
+ export declare const getSelectedTime: ((state: SoundingsModuleState, panelId?: string | undefined) => string) & {
46
47
  clearCache: () => void;
47
48
  resultsCount: () => number;
48
49
  resetResultsCount: () => void;
@@ -54,7 +55,7 @@ export declare const getSelectedTime: ((state: SoundingsModuleState) => string)
54
55
  resetResultsCount: () => void;
55
56
  };
56
57
  lastResult: () => string;
57
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
58
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
58
59
  recomputations: () => number;
59
60
  resetRecomputations: () => void;
60
61
  dependencyRecomputations: () => number;
@@ -63,7 +64,7 @@ export declare const getSelectedTime: ((state: SoundingsModuleState) => string)
63
64
  memoize: typeof import("reselect").weakMapMemoize;
64
65
  argsMemoize: typeof import("reselect").weakMapMemoize;
65
66
  };
66
- export declare const getDiagramType: ((state: SoundingsModuleState) => "SKEWT" | "BIJVOET" | "EMAGRAM") & {
67
+ export declare const getDiagramType: ((state: SoundingsModuleState, panelId?: string | undefined) => "SKEWT" | "BIJVOET" | "EMAGRAM") & {
67
68
  clearCache: () => void;
68
69
  resultsCount: () => number;
69
70
  resetResultsCount: () => void;
@@ -75,7 +76,7 @@ export declare const getDiagramType: ((state: SoundingsModuleState) => "SKEWT" |
75
76
  resetResultsCount: () => void;
76
77
  };
77
78
  lastResult: () => "SKEWT" | "BIJVOET" | "EMAGRAM";
78
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
79
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
79
80
  recomputations: () => number;
80
81
  resetRecomputations: () => void;
81
82
  dependencyRecomputations: () => number;
@@ -84,7 +85,7 @@ export declare const getDiagramType: ((state: SoundingsModuleState) => "SKEWT" |
84
85
  memoize: typeof import("reselect").weakMapMemoize;
85
86
  argsMemoize: typeof import("reselect").weakMapMemoize;
86
87
  };
87
- export declare const getShouldHideLocationMarkers: ((state: SoundingsModuleState) => boolean) & {
88
+ export declare const getShouldHideLocationMarkers: ((state: SoundingsModuleState, panelId?: string | undefined) => boolean) & {
88
89
  clearCache: () => void;
89
90
  resultsCount: () => number;
90
91
  resetResultsCount: () => void;
@@ -96,7 +97,7 @@ export declare const getShouldHideLocationMarkers: ((state: SoundingsModuleState
96
97
  resetResultsCount: () => void;
97
98
  };
98
99
  lastResult: () => boolean;
99
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
100
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
100
101
  recomputations: () => number;
101
102
  resetRecomputations: () => void;
102
103
  dependencyRecomputations: () => number;
@@ -105,7 +106,7 @@ export declare const getShouldHideLocationMarkers: ((state: SoundingsModuleState
105
106
  memoize: typeof import("reselect").weakMapMemoize;
106
107
  argsMemoize: typeof import("reselect").weakMapMemoize;
107
108
  };
108
- export declare const getSelectedSources: ((state: SoundingsModuleState) => SourceType[]) & {
109
+ export declare const getSelectedSources: ((state: SoundingsModuleState, panelId?: string | undefined) => SourceType[]) & {
109
110
  clearCache: () => void;
110
111
  resultsCount: () => number;
111
112
  resetResultsCount: () => void;
@@ -117,7 +118,7 @@ export declare const getSelectedSources: ((state: SoundingsModuleState) => Sourc
117
118
  resetResultsCount: () => void;
118
119
  };
119
120
  lastResult: () => SourceType[];
120
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
121
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
121
122
  recomputations: () => number;
122
123
  resetRecomputations: () => void;
123
124
  dependencyRecomputations: () => number;
@@ -126,7 +127,7 @@ export declare const getSelectedSources: ((state: SoundingsModuleState) => Sourc
126
127
  memoize: typeof import("reselect").weakMapMemoize;
127
128
  argsMemoize: typeof import("reselect").weakMapMemoize;
128
129
  };
129
- export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) => number) & {
130
+ export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState, panelId?: string | undefined) => number) & {
130
131
  clearCache: () => void;
131
132
  resultsCount: () => number;
132
133
  resetResultsCount: () => void;
@@ -138,7 +139,7 @@ export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) =>
138
139
  resetResultsCount: () => void;
139
140
  };
140
141
  lastResult: () => number;
141
- dependencies: [((state: SoundingsModuleState) => SourceType[]) & {
142
+ dependencies: [((state: SoundingsModuleState, panelId?: string | undefined) => SourceType[]) & {
142
143
  clearCache: () => void;
143
144
  resultsCount: () => number;
144
145
  resetResultsCount: () => void;
@@ -150,7 +151,7 @@ export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) =>
150
151
  resetResultsCount: () => void;
151
152
  };
152
153
  lastResult: () => SourceType[];
153
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
154
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
154
155
  recomputations: () => number;
155
156
  resetRecomputations: () => void;
156
157
  dependencyRecomputations: () => number;
@@ -167,7 +168,7 @@ export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) =>
167
168
  memoize: typeof import("reselect").weakMapMemoize;
168
169
  argsMemoize: typeof import("reselect").weakMapMemoize;
169
170
  };
170
- export declare const getSelectedSourcesIds: ((state: SoundingsModuleState) => string[]) & {
171
+ export declare const getSelectedSourcesIds: ((state: SoundingsModuleState, panelId?: string | undefined) => string[]) & {
171
172
  clearCache: () => void;
172
173
  resultsCount: () => number;
173
174
  resetResultsCount: () => void;
@@ -179,7 +180,7 @@ export declare const getSelectedSourcesIds: ((state: SoundingsModuleState) => st
179
180
  resetResultsCount: () => void;
180
181
  };
181
182
  lastResult: () => string[];
182
- dependencies: [((state: SoundingsModuleState) => SourceType[]) & {
183
+ dependencies: [((state: SoundingsModuleState, panelId?: string | undefined) => SourceType[]) & {
183
184
  clearCache: () => void;
184
185
  resultsCount: () => number;
185
186
  resetResultsCount: () => void;
@@ -191,7 +192,7 @@ export declare const getSelectedSourcesIds: ((state: SoundingsModuleState) => st
191
192
  resetResultsCount: () => void;
192
193
  };
193
194
  lastResult: () => SourceType[];
194
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
195
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
195
196
  recomputations: () => number;
196
197
  resetRecomputations: () => void;
197
198
  dependencyRecomputations: () => number;
@@ -208,7 +209,7 @@ export declare const getSelectedSourcesIds: ((state: SoundingsModuleState) => st
208
209
  memoize: typeof import("reselect").weakMapMemoize;
209
210
  argsMemoize: typeof import("reselect").weakMapMemoize;
210
211
  };
211
- export declare const getSoundingsPreset: ((state: SoundingsModuleState) => SoundingsStore) & {
212
+ export declare const getSoundingsPreset: ((state: SoundingsModuleState, panelId?: string | undefined) => SoundingsStore) & {
212
213
  clearCache: () => void;
213
214
  resultsCount: () => number;
214
215
  resetResultsCount: () => void;
@@ -220,7 +221,7 @@ export declare const getSoundingsPreset: ((state: SoundingsModuleState) => Sound
220
221
  resetResultsCount: () => void;
221
222
  };
222
223
  lastResult: () => SoundingsStore;
223
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
224
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
224
225
  recomputations: () => number;
225
226
  resetRecomputations: () => void;
226
227
  dependencyRecomputations: () => number;
@@ -229,7 +230,7 @@ export declare const getSoundingsPreset: ((state: SoundingsModuleState) => Sound
229
230
  memoize: typeof import("reselect").weakMapMemoize;
230
231
  argsMemoize: typeof import("reselect").weakMapMemoize;
231
232
  };
232
- export declare const getSoundingPanelsInOrder: ((state: SoundingsModuleState) => import("./types").SoundingPanel[]) & {
233
+ export declare const getSoundingPanelsInOrder: ((state: SoundingsModuleState, panelId?: string | undefined) => import("./types").SoundingPanel[]) & {
233
234
  clearCache: () => void;
234
235
  resultsCount: () => number;
235
236
  resetResultsCount: () => void;
@@ -241,7 +242,7 @@ export declare const getSoundingPanelsInOrder: ((state: SoundingsModuleState) =>
241
242
  resetResultsCount: () => void;
242
243
  };
243
244
  lastResult: () => import("./types").SoundingPanel[];
244
- dependencies: [(store: SoundingsModuleState) => SoundingsStore];
245
+ dependencies: [(store: SoundingsModuleState, panelId?: string) => SoundingsStore];
245
246
  recomputations: () => number;
246
247
  resetRecomputations: () => void;
247
248
  dependencyRecomputations: () => number;
@@ -18,6 +18,6 @@ export declare const soundingsReducersMap: {
18
18
  }, import("redux").UnknownAction, Partial<{
19
19
  auth: import("dist/libs/store/src/store/common/auth/types").AuthStore | undefined;
20
20
  }>>;
21
- soundings: import("redux").Reducer<import("./types").SoundingsStore>;
21
+ soundings: import("redux").Reducer<import("./types").SoundingsState>;
22
22
  };
23
23
  export declare const createMockStore: (mockState?: SoundingsModuleState | WebMapStateModuleState | UIModuleState) => Store;
@@ -1,4 +1,5 @@
1
- import type { Coordinates, SourceSelection } from '@opengeoweb/shared';
1
+ import type { Coordinates, SoundingsCollection, SourceSelection } from '@opengeoweb/shared';
2
+ import type { CoreAppStore } from '@opengeoweb/store';
2
3
  export declare enum SoundingsActionOrigin {
3
4
  soundingsManager = "soundingsManager",
4
5
  soundingsComponent = "soundingsComponent"
@@ -9,6 +10,7 @@ export interface SourceType {
9
10
  instanceId?: string;
10
11
  verticalRange?: string;
11
12
  parameterMappings?: Record<string, string>;
13
+ windSpeedUnit?: string;
12
14
  name?: string;
13
15
  }
14
16
  export interface SoundingsPayload {
@@ -32,6 +34,16 @@ export interface UpdateDiagramTypePayload extends SoundingsPayload {
32
34
  export interface ToggleLocationMarkersPayload extends SoundingsPayload {
33
35
  shouldHideLocationMarkers: boolean;
34
36
  }
37
+ export interface RegisterSoundingsPresetPayload extends SoundingsPayload {
38
+ preset: SoundingsStore;
39
+ }
40
+ export interface AddSoundingPanelsPayload extends SoundingsPayload {
41
+ panels: SoundingPanels;
42
+ }
43
+ export interface ChangeSoundingPanelOrderPayload extends SoundingsPayload {
44
+ newOrderOfIds: string[];
45
+ }
46
+ export type SoundingsRootState = CoreAppStore & SoundingsModuleState;
35
47
  export interface SoundingPanel {
36
48
  id: string;
37
49
  name: string;
@@ -54,6 +66,11 @@ export interface SoundingsStore {
54
66
  /** Whether to hide location markers on the map */
55
67
  shouldHideLocationMarkers?: boolean;
56
68
  }
69
+ export interface SoundingsState {
70
+ byId: Record<string, SoundingsStore>;
71
+ registeredPanelIds?: string[];
72
+ soundingsCollections: SoundingsCollection[];
73
+ }
57
74
  export interface SoundingsModuleState {
58
- soundings?: SoundingsStore;
75
+ soundings?: SoundingsState;
59
76
  }
@@ -0,0 +1,10 @@
1
+ import type { SoundingsModuleState } from './types';
2
+ type PanelStateLike = SoundingsModuleState['soundings'];
3
+ export declare const getRegisteredPanelIds: (state: PanelStateLike | undefined) => string[];
4
+ export declare const isRegisteredPanelId: (state: PanelStateLike | undefined, panelId?: string) => boolean;
5
+ export declare const getPanelIdFromAction: (action: {
6
+ payload?: {
7
+ panelId?: string;
8
+ };
9
+ }) => string | undefined;
10
+ export {};