@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/README.md +5 -1
- package/index.esm.js +595 -134
- package/package.json +9 -9
- package/src/index.d.ts +1 -0
- package/src/lib/api/edr-api/utils.d.ts +2 -1
- package/src/lib/components/Hodograph/Hodograph.d.ts +6 -0
- package/src/lib/components/Hodograph/Hodograph.spec.d.ts +1 -0
- package/src/lib/components/Hodograph/Hodograph.stories.d.ts +7 -0
- package/src/lib/components/Hodograph/HodographCollection.d.ts +6 -0
- package/src/lib/components/Hodograph/HodographCollection.spec.d.ts +1 -0
- package/src/lib/components/Hodograph/HodographLegend.d.ts +2 -0
- package/src/lib/components/Hodograph/drawUtils.d.ts +53 -0
- package/src/lib/components/Hodograph/drawUtils.spec.d.ts +1 -0
- package/src/lib/components/MenuBar/LocationsMenuConnect.d.ts +2 -1
- package/src/lib/components/SoundingPanelPlaceholder/SoundingPanelPlaceholder.d.ts +5 -0
- package/src/lib/components/SoundingPanelPlaceholder/SoundingPanelPlaceholder.spec.d.ts +1 -0
- package/src/lib/components/SoundingPanelPlaceholder/index.d.ts +1 -0
- package/src/lib/components/SoundingsAccordion/SoundingsAccordion.d.ts +1 -0
- package/src/lib/components/SoundingsManager/SoundingManagerListItem.d.ts +3 -1
- package/src/lib/components/SoundingsManager/SoundingsManager.d.ts +2 -1
- package/src/lib/store/reducer.d.ts +23 -14
- package/src/lib/store/selectors.d.ts +24 -23
- package/src/lib/store/store.d.ts +1 -1
- package/src/lib/store/types.d.ts +19 -2
- package/src/lib/store/utils.d.ts +10 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/soundings",
|
|
3
|
-
"version": "15.
|
|
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.
|
|
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.
|
|
17
|
+
"@opengeoweb/shared": "15.3.0",
|
|
18
18
|
"@mui/material": "^7.0.1",
|
|
19
|
-
"@opengeoweb/store": "15.
|
|
19
|
+
"@opengeoweb/store": "15.3.0",
|
|
20
20
|
"react-redux": "^9.2.0",
|
|
21
|
-
"@opengeoweb/theme": "15.
|
|
21
|
+
"@opengeoweb/theme": "15.3.0",
|
|
22
22
|
"@reduxjs/toolkit": "^2.6.1",
|
|
23
|
-
"@opengeoweb/time-slider": "15.
|
|
24
|
-
"react-window": "^
|
|
25
|
-
"@opengeoweb/webmap": "15.
|
|
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.
|
|
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
|
@@ -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
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
|
4
|
+
soundingsCollections?: SoundingsCollection[];
|
|
4
5
|
}
|
|
5
6
|
export declare const LocationsMenuConnect: ({ soundingsCollections, }: Props) => React.ReactElement;
|
|
6
7
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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 {
|
|
2
|
-
import type {
|
|
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
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
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;
|
package/src/lib/store/store.d.ts
CHANGED
|
@@ -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").
|
|
21
|
+
soundings: import("redux").Reducer<import("./types").SoundingsState>;
|
|
22
22
|
};
|
|
23
23
|
export declare const createMockStore: (mockState?: SoundingsModuleState | WebMapStateModuleState | UIModuleState) => Store;
|
package/src/lib/store/types.d.ts
CHANGED
|
@@ -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?:
|
|
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 {};
|