@opengeoweb/soundings 19.0.0 → 19.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/README.md +59 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +7803 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/lib/api/edr-api/api.d.ts +13 -0
- package/dist/src/lib/api/edr-api/fakeApi.d.ts +16 -0
- package/dist/src/lib/api/edr-api/hooks.d.ts +98 -0
- package/dist/src/lib/api/edr-api/types.d.ts +38 -0
- package/dist/src/lib/api/edr-api/utils.d.ts +21 -0
- package/dist/src/lib/components/Hodograph/Hodograph.d.ts +6 -0
- package/dist/src/lib/components/Hodograph/HodographCollection.d.ts +6 -0
- package/dist/src/lib/components/Hodograph/HodographLegend.d.ts +2 -0
- package/dist/src/lib/components/Hodograph/drawUtils.d.ts +53 -0
- package/dist/src/lib/components/MenuBar/LocationsMenu.d.ts +20 -0
- package/dist/src/lib/components/MenuBar/LocationsMenuConnect.d.ts +7 -0
- package/dist/src/lib/components/MenuBar/MenuBar.d.ts +16 -0
- package/dist/src/lib/components/MenuBar/MenuBarConnect.d.ts +8 -0
- package/dist/src/lib/components/MenuBar/SoundingsMarkersSwitch.d.ts +6 -0
- package/dist/src/lib/components/MenuBar/SoundingsProfileDataDialogConnect.d.ts +2 -0
- package/dist/src/lib/components/MenuBar/SoundingsProfileDataMenu.d.ts +11 -0
- package/dist/src/lib/components/MenuBar/SoundingsSourceDialogConnect.d.ts +7 -0
- package/dist/src/lib/components/MenuBar/SoundingsSourceMenu.d.ts +16 -0
- package/dist/src/lib/components/MenuBar/SoundingsTopRowButton.d.ts +9 -0
- package/dist/src/lib/components/Providers/Providers.d.ts +12 -0
- package/dist/src/lib/components/ResizablePanel/MultipleResizablePanelsDemo.d.ts +2 -0
- package/dist/src/lib/components/ResizablePanel/ResizablePanel.d.ts +18 -0
- package/dist/src/lib/components/ResizablePanel/ResizablePanelStandalone.d.ts +25 -0
- package/dist/src/lib/components/SortablePanels/SortablePanels.d.ts +30 -0
- package/dist/src/lib/components/SoundingPanelPlaceholder/SoundingPanelPlaceholder.d.ts +5 -0
- package/dist/src/lib/components/SoundingPanelPlaceholder/index.d.ts +1 -0
- package/dist/src/lib/components/Soundings/DiagramTypeButton.d.ts +8 -0
- package/dist/src/lib/components/Soundings/SharedMouseYProvider.d.ts +13 -0
- package/dist/src/lib/components/Soundings/Soundings.d.ts +15 -0
- package/dist/src/lib/components/Soundings/SoundingsConnect.d.ts +8 -0
- package/dist/src/lib/components/Soundings/SoundingsLegend.d.ts +13 -0
- package/dist/src/lib/components/Soundings/WindBarbs.d.ts +16 -0
- package/dist/src/lib/components/Soundings/animateResizeTransform.d.ts +4 -0
- package/dist/src/lib/components/Soundings/constants.d.ts +20 -0
- package/dist/src/lib/components/Soundings/drawUtils.d.ts +45 -0
- package/dist/src/lib/components/Soundings/timeMismatchUtils.d.ts +4 -0
- package/dist/src/lib/components/Soundings/types.d.ts +6 -0
- package/dist/src/lib/components/Soundings/useSoundingsDiagramSize.d.ts +2 -0
- package/dist/src/lib/components/SoundingsManager/SoundingManagerListItem.d.ts +6 -0
- package/dist/src/lib/components/SoundingsManager/SoundingsManager.d.ts +17 -0
- package/dist/src/lib/components/SoundingsManager/SoundingsManagerConnect.d.ts +2 -0
- package/dist/src/lib/components/SoundingsPanels/SoundingsPanelConnect.d.ts +3 -0
- package/dist/src/lib/components/SoundingsPanels/SoundingsPanels.d.ts +20 -0
- package/dist/src/lib/components/SoundingsProfileDataTable/SoundingsProfileDataTable.d.ts +9 -0
- package/dist/src/lib/components/SoundingsTimeSlider/SoundingsTimeSlider.d.ts +8 -0
- package/dist/src/lib/components/SoundingsTimeSlider/SoundingsTimeSliderConnect.d.ts +8 -0
- package/dist/src/lib/components/SoundingsTimeSlider/index.d.ts +2 -0
- package/dist/src/lib/components/SoundingsTooltip/utils.d.ts +31 -0
- package/dist/src/lib/components/StaticLines/bijvoetUtils.d.ts +6 -0
- package/dist/src/lib/components/StaticLines/drawDryAdiabats.d.ts +23 -0
- package/dist/src/lib/components/StaticLines/drawIsobars.d.ts +14 -0
- package/dist/src/lib/components/StaticLines/drawIsohumes.d.ts +23 -0
- package/dist/src/lib/components/StaticLines/drawIsotherms.d.ts +23 -0
- package/dist/src/lib/components/StaticLines/drawMoistAdiabats.d.ts +29 -0
- package/dist/src/lib/components/StaticLines/utils.d.ts +19 -0
- package/dist/src/lib/components/WindBarbs/utils.d.ts +22 -0
- package/dist/src/lib/components/WindBarbs/windsymbols.d.ts +5 -0
- package/dist/src/lib/components/index.d.ts +20 -0
- package/dist/src/lib/components/utils.d.ts +36 -0
- package/dist/src/lib/store/reducer.d.ts +44 -0
- package/dist/src/lib/store/selectors.d.ts +339 -0
- package/dist/src/lib/store/store.d.ts +8 -0
- package/dist/src/lib/store/types.d.ts +108 -0
- package/dist/src/lib/store/utils.d.ts +10 -0
- package/dist/src/lib/utils/i18n.d.ts +7 -0
- package/dist/src/lib/utils/profileDataPreferences.d.ts +50 -0
- package/dist/src/lib/utils/soundingsLookUp.d.ts +9 -0
- package/package.json +2 -1
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
import type { SoundingsCollection, SourceSelection } from '@opengeoweb/shared';
|
|
2
|
+
import type { SoundingsModuleState, SoundingsViewState, SourceType } from './types';
|
|
3
|
+
import type { SoundingsProfileDataPreferences } from '../utils/profileDataPreferences';
|
|
4
|
+
export declare const getSoundingsCollections: (store: SoundingsModuleState) => SoundingsCollection[];
|
|
5
|
+
export declare const getResizeOnViewCloseSignal: (store: SoundingsModuleState) => number;
|
|
6
|
+
export declare const getSourceSelections: ((state: SoundingsModuleState, viewId?: string | undefined) => Record<string, SourceSelection>) & {
|
|
7
|
+
clearCache: () => void;
|
|
8
|
+
resultsCount: () => number;
|
|
9
|
+
resetResultsCount: () => void;
|
|
10
|
+
} & {
|
|
11
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => Record<string, SourceSelection>;
|
|
12
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => Record<string, SourceSelection>) & {
|
|
13
|
+
clearCache: () => void;
|
|
14
|
+
resultsCount: () => number;
|
|
15
|
+
resetResultsCount: () => void;
|
|
16
|
+
};
|
|
17
|
+
lastResult: () => Record<string, SourceSelection>;
|
|
18
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
19
|
+
recomputations: () => number;
|
|
20
|
+
resetRecomputations: () => void;
|
|
21
|
+
dependencyRecomputations: () => number;
|
|
22
|
+
resetDependencyRecomputations: () => void;
|
|
23
|
+
} & {
|
|
24
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
25
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
26
|
+
};
|
|
27
|
+
export declare const getLocationSelections: ((state: SoundingsModuleState, viewId?: string | undefined) => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>) & {
|
|
28
|
+
clearCache: () => void;
|
|
29
|
+
resultsCount: () => number;
|
|
30
|
+
resetResultsCount: () => void;
|
|
31
|
+
} & {
|
|
32
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>;
|
|
33
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>) & {
|
|
34
|
+
clearCache: () => void;
|
|
35
|
+
resultsCount: () => number;
|
|
36
|
+
resetResultsCount: () => void;
|
|
37
|
+
};
|
|
38
|
+
lastResult: () => Record<string, string | import("@opengeoweb/shared").Coordinates | undefined>;
|
|
39
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
40
|
+
recomputations: () => number;
|
|
41
|
+
resetRecomputations: () => void;
|
|
42
|
+
dependencyRecomputations: () => number;
|
|
43
|
+
resetDependencyRecomputations: () => void;
|
|
44
|
+
} & {
|
|
45
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
46
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
47
|
+
};
|
|
48
|
+
export declare const getSelectedTime: ((state: SoundingsModuleState, viewId?: string | undefined) => string) & {
|
|
49
|
+
clearCache: () => void;
|
|
50
|
+
resultsCount: () => number;
|
|
51
|
+
resetResultsCount: () => void;
|
|
52
|
+
} & {
|
|
53
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => string;
|
|
54
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => string) & {
|
|
55
|
+
clearCache: () => void;
|
|
56
|
+
resultsCount: () => number;
|
|
57
|
+
resetResultsCount: () => void;
|
|
58
|
+
};
|
|
59
|
+
lastResult: () => string;
|
|
60
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
61
|
+
recomputations: () => number;
|
|
62
|
+
resetRecomputations: () => void;
|
|
63
|
+
dependencyRecomputations: () => number;
|
|
64
|
+
resetDependencyRecomputations: () => void;
|
|
65
|
+
} & {
|
|
66
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
67
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
68
|
+
};
|
|
69
|
+
export declare const getDiagramType: ((state: SoundingsModuleState, viewId?: string | undefined) => "SKEWT" | "BIJVOET" | "EMAGRAM") & {
|
|
70
|
+
clearCache: () => void;
|
|
71
|
+
resultsCount: () => number;
|
|
72
|
+
resetResultsCount: () => void;
|
|
73
|
+
} & {
|
|
74
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => "SKEWT" | "BIJVOET" | "EMAGRAM";
|
|
75
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => "SKEWT" | "BIJVOET" | "EMAGRAM") & {
|
|
76
|
+
clearCache: () => void;
|
|
77
|
+
resultsCount: () => number;
|
|
78
|
+
resetResultsCount: () => void;
|
|
79
|
+
};
|
|
80
|
+
lastResult: () => "SKEWT" | "BIJVOET" | "EMAGRAM";
|
|
81
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
82
|
+
recomputations: () => number;
|
|
83
|
+
resetRecomputations: () => void;
|
|
84
|
+
dependencyRecomputations: () => number;
|
|
85
|
+
resetDependencyRecomputations: () => void;
|
|
86
|
+
} & {
|
|
87
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
88
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
89
|
+
};
|
|
90
|
+
export declare const getPanelIsOpen: ((state: SoundingsModuleState, viewId: string, _panelId: string) => boolean | undefined) & {
|
|
91
|
+
clearCache: () => void;
|
|
92
|
+
resultsCount: () => number;
|
|
93
|
+
resetResultsCount: () => void;
|
|
94
|
+
} & {
|
|
95
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState, resultFuncArgs_1: string) => boolean | undefined;
|
|
96
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState, resultFuncArgs_1: string) => boolean | undefined) & {
|
|
97
|
+
clearCache: () => void;
|
|
98
|
+
resultsCount: () => number;
|
|
99
|
+
resetResultsCount: () => void;
|
|
100
|
+
};
|
|
101
|
+
lastResult: () => boolean | undefined;
|
|
102
|
+
dependencies: [(store: SoundingsModuleState, viewId: string, _panelId: string) => SoundingsViewState, (_store: SoundingsModuleState, _viewId: string, panelId: string) => string];
|
|
103
|
+
recomputations: () => number;
|
|
104
|
+
resetRecomputations: () => void;
|
|
105
|
+
dependencyRecomputations: () => number;
|
|
106
|
+
resetDependencyRecomputations: () => void;
|
|
107
|
+
} & {
|
|
108
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
109
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
110
|
+
};
|
|
111
|
+
export declare const getPanelCustomWidth: ((state: SoundingsModuleState, viewId: string, _panelId: string) => number | undefined) & {
|
|
112
|
+
clearCache: () => void;
|
|
113
|
+
resultsCount: () => number;
|
|
114
|
+
resetResultsCount: () => void;
|
|
115
|
+
} & {
|
|
116
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState, resultFuncArgs_1: string) => number | undefined;
|
|
117
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState, resultFuncArgs_1: string) => number | undefined) & {
|
|
118
|
+
clearCache: () => void;
|
|
119
|
+
resultsCount: () => number;
|
|
120
|
+
resetResultsCount: () => void;
|
|
121
|
+
};
|
|
122
|
+
lastResult: () => number | undefined;
|
|
123
|
+
dependencies: [(store: SoundingsModuleState, viewId: string, _panelId: string) => SoundingsViewState, (_store: SoundingsModuleState, _viewId: string, panelId: string) => string];
|
|
124
|
+
recomputations: () => number;
|
|
125
|
+
resetRecomputations: () => void;
|
|
126
|
+
dependencyRecomputations: () => number;
|
|
127
|
+
resetDependencyRecomputations: () => void;
|
|
128
|
+
} & {
|
|
129
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
130
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
131
|
+
};
|
|
132
|
+
export declare const getShouldHideLocationMarkers: ((state: SoundingsModuleState, viewId?: string | undefined) => boolean) & {
|
|
133
|
+
clearCache: () => void;
|
|
134
|
+
resultsCount: () => number;
|
|
135
|
+
resetResultsCount: () => void;
|
|
136
|
+
} & {
|
|
137
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => boolean;
|
|
138
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => boolean) & {
|
|
139
|
+
clearCache: () => void;
|
|
140
|
+
resultsCount: () => number;
|
|
141
|
+
resetResultsCount: () => void;
|
|
142
|
+
};
|
|
143
|
+
lastResult: () => boolean;
|
|
144
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
145
|
+
recomputations: () => number;
|
|
146
|
+
resetRecomputations: () => void;
|
|
147
|
+
dependencyRecomputations: () => number;
|
|
148
|
+
resetDependencyRecomputations: () => void;
|
|
149
|
+
} & {
|
|
150
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
151
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
152
|
+
};
|
|
153
|
+
export declare const getIsTimeSliderVisible: ((state: SoundingsModuleState, viewId?: string | undefined) => boolean) & {
|
|
154
|
+
clearCache: () => void;
|
|
155
|
+
resultsCount: () => number;
|
|
156
|
+
resetResultsCount: () => void;
|
|
157
|
+
} & {
|
|
158
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => boolean;
|
|
159
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => boolean) & {
|
|
160
|
+
clearCache: () => void;
|
|
161
|
+
resultsCount: () => number;
|
|
162
|
+
resetResultsCount: () => void;
|
|
163
|
+
};
|
|
164
|
+
lastResult: () => boolean;
|
|
165
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
166
|
+
recomputations: () => number;
|
|
167
|
+
resetRecomputations: () => void;
|
|
168
|
+
dependencyRecomputations: () => number;
|
|
169
|
+
resetDependencyRecomputations: () => void;
|
|
170
|
+
} & {
|
|
171
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
172
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
173
|
+
};
|
|
174
|
+
export declare const getProfileDataPreferences: ((state: SoundingsModuleState, viewId?: string | undefined) => SoundingsProfileDataPreferences) & {
|
|
175
|
+
clearCache: () => void;
|
|
176
|
+
resultsCount: () => number;
|
|
177
|
+
resetResultsCount: () => void;
|
|
178
|
+
} & {
|
|
179
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => SoundingsProfileDataPreferences;
|
|
180
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => SoundingsProfileDataPreferences) & {
|
|
181
|
+
clearCache: () => void;
|
|
182
|
+
resultsCount: () => number;
|
|
183
|
+
resetResultsCount: () => void;
|
|
184
|
+
};
|
|
185
|
+
lastResult: () => SoundingsProfileDataPreferences;
|
|
186
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
187
|
+
recomputations: () => number;
|
|
188
|
+
resetRecomputations: () => void;
|
|
189
|
+
dependencyRecomputations: () => number;
|
|
190
|
+
resetDependencyRecomputations: () => void;
|
|
191
|
+
} & {
|
|
192
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
193
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
194
|
+
};
|
|
195
|
+
export declare const getSelectedSources: ((state: SoundingsModuleState, viewId?: string | undefined) => SourceType[]) & {
|
|
196
|
+
clearCache: () => void;
|
|
197
|
+
resultsCount: () => number;
|
|
198
|
+
resetResultsCount: () => void;
|
|
199
|
+
} & {
|
|
200
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => SourceType[];
|
|
201
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => SourceType[]) & {
|
|
202
|
+
clearCache: () => void;
|
|
203
|
+
resultsCount: () => number;
|
|
204
|
+
resetResultsCount: () => void;
|
|
205
|
+
};
|
|
206
|
+
lastResult: () => SourceType[];
|
|
207
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
208
|
+
recomputations: () => number;
|
|
209
|
+
resetRecomputations: () => void;
|
|
210
|
+
dependencyRecomputations: () => number;
|
|
211
|
+
resetDependencyRecomputations: () => void;
|
|
212
|
+
} & {
|
|
213
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
214
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
215
|
+
};
|
|
216
|
+
export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState, viewId?: string | undefined) => number) & {
|
|
217
|
+
clearCache: () => void;
|
|
218
|
+
resultsCount: () => number;
|
|
219
|
+
resetResultsCount: () => void;
|
|
220
|
+
} & {
|
|
221
|
+
resultFunc: (resultFuncArgs_0: SourceType[]) => number;
|
|
222
|
+
memoizedResultFunc: ((resultFuncArgs_0: SourceType[]) => number) & {
|
|
223
|
+
clearCache: () => void;
|
|
224
|
+
resultsCount: () => number;
|
|
225
|
+
resetResultsCount: () => void;
|
|
226
|
+
};
|
|
227
|
+
lastResult: () => number;
|
|
228
|
+
dependencies: [((state: SoundingsModuleState, viewId?: string | undefined) => SourceType[]) & {
|
|
229
|
+
clearCache: () => void;
|
|
230
|
+
resultsCount: () => number;
|
|
231
|
+
resetResultsCount: () => void;
|
|
232
|
+
} & {
|
|
233
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => SourceType[];
|
|
234
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => SourceType[]) & {
|
|
235
|
+
clearCache: () => void;
|
|
236
|
+
resultsCount: () => number;
|
|
237
|
+
resetResultsCount: () => void;
|
|
238
|
+
};
|
|
239
|
+
lastResult: () => SourceType[];
|
|
240
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
241
|
+
recomputations: () => number;
|
|
242
|
+
resetRecomputations: () => void;
|
|
243
|
+
dependencyRecomputations: () => number;
|
|
244
|
+
resetDependencyRecomputations: () => void;
|
|
245
|
+
} & {
|
|
246
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
247
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
248
|
+
}];
|
|
249
|
+
recomputations: () => number;
|
|
250
|
+
resetRecomputations: () => void;
|
|
251
|
+
dependencyRecomputations: () => number;
|
|
252
|
+
resetDependencyRecomputations: () => void;
|
|
253
|
+
} & {
|
|
254
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
255
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
256
|
+
};
|
|
257
|
+
export declare const getSelectedSourcesIds: ((state: SoundingsModuleState, viewId?: string | undefined) => string[]) & {
|
|
258
|
+
clearCache: () => void;
|
|
259
|
+
resultsCount: () => number;
|
|
260
|
+
resetResultsCount: () => void;
|
|
261
|
+
} & {
|
|
262
|
+
resultFunc: (resultFuncArgs_0: SourceType[]) => string[];
|
|
263
|
+
memoizedResultFunc: ((resultFuncArgs_0: SourceType[]) => string[]) & {
|
|
264
|
+
clearCache: () => void;
|
|
265
|
+
resultsCount: () => number;
|
|
266
|
+
resetResultsCount: () => void;
|
|
267
|
+
};
|
|
268
|
+
lastResult: () => string[];
|
|
269
|
+
dependencies: [((state: SoundingsModuleState, viewId?: string | undefined) => SourceType[]) & {
|
|
270
|
+
clearCache: () => void;
|
|
271
|
+
resultsCount: () => number;
|
|
272
|
+
resetResultsCount: () => void;
|
|
273
|
+
} & {
|
|
274
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => SourceType[];
|
|
275
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => SourceType[]) & {
|
|
276
|
+
clearCache: () => void;
|
|
277
|
+
resultsCount: () => number;
|
|
278
|
+
resetResultsCount: () => void;
|
|
279
|
+
};
|
|
280
|
+
lastResult: () => SourceType[];
|
|
281
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
282
|
+
recomputations: () => number;
|
|
283
|
+
resetRecomputations: () => void;
|
|
284
|
+
dependencyRecomputations: () => number;
|
|
285
|
+
resetDependencyRecomputations: () => void;
|
|
286
|
+
} & {
|
|
287
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
288
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
289
|
+
}];
|
|
290
|
+
recomputations: () => number;
|
|
291
|
+
resetRecomputations: () => void;
|
|
292
|
+
dependencyRecomputations: () => number;
|
|
293
|
+
resetDependencyRecomputations: () => void;
|
|
294
|
+
} & {
|
|
295
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
296
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
297
|
+
};
|
|
298
|
+
export declare const getSoundingsPreset: ((state: SoundingsModuleState, viewId?: string | undefined) => SoundingsViewState) & {
|
|
299
|
+
clearCache: () => void;
|
|
300
|
+
resultsCount: () => number;
|
|
301
|
+
resetResultsCount: () => void;
|
|
302
|
+
} & {
|
|
303
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => SoundingsViewState;
|
|
304
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => SoundingsViewState) & {
|
|
305
|
+
clearCache: () => void;
|
|
306
|
+
resultsCount: () => number;
|
|
307
|
+
resetResultsCount: () => void;
|
|
308
|
+
};
|
|
309
|
+
lastResult: () => SoundingsViewState;
|
|
310
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
311
|
+
recomputations: () => number;
|
|
312
|
+
resetRecomputations: () => void;
|
|
313
|
+
dependencyRecomputations: () => number;
|
|
314
|
+
resetDependencyRecomputations: () => void;
|
|
315
|
+
} & {
|
|
316
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
317
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
318
|
+
};
|
|
319
|
+
export declare const getSoundingPanelsInOrder: ((state: SoundingsModuleState, viewId?: string | undefined) => import("./types").SoundingPanel[]) & {
|
|
320
|
+
clearCache: () => void;
|
|
321
|
+
resultsCount: () => number;
|
|
322
|
+
resetResultsCount: () => void;
|
|
323
|
+
} & {
|
|
324
|
+
resultFunc: (resultFuncArgs_0: SoundingsViewState) => import("./types").SoundingPanel[];
|
|
325
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsViewState) => import("./types").SoundingPanel[]) & {
|
|
326
|
+
clearCache: () => void;
|
|
327
|
+
resultsCount: () => number;
|
|
328
|
+
resetResultsCount: () => void;
|
|
329
|
+
};
|
|
330
|
+
lastResult: () => import("./types").SoundingPanel[];
|
|
331
|
+
dependencies: [(store: SoundingsModuleState, viewId?: string) => SoundingsViewState];
|
|
332
|
+
recomputations: () => number;
|
|
333
|
+
resetRecomputations: () => void;
|
|
334
|
+
dependencyRecomputations: () => number;
|
|
335
|
+
resetDependencyRecomputations: () => void;
|
|
336
|
+
} & {
|
|
337
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
338
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
339
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Store } from '@reduxjs/toolkit';
|
|
2
|
+
import type { ReducerMap, UIModuleState, WebMapStateModuleState } from '@opengeoweb/store';
|
|
3
|
+
import type { SoundingsModuleState } from './types';
|
|
4
|
+
export * as soundingsSelectors from './selectors';
|
|
5
|
+
export { soundingsReducer, soundingsActions, initialSoundingsViewState, } from './reducer';
|
|
6
|
+
export type { SoundingsModuleState, SoundingsViewState } from './types';
|
|
7
|
+
export declare const soundingsReducersMap: ReducerMap;
|
|
8
|
+
export declare const createMockStore: (mockState?: SoundingsModuleState | WebMapStateModuleState | UIModuleState) => Store;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { Coordinates, SoundingsCollection, SourceSelection } from '@opengeoweb/shared';
|
|
2
|
+
import type { CoreAppStore } from '@opengeoweb/store';
|
|
3
|
+
import type { SoundingsProfileDataPreferences } from '../utils/profileDataPreferences';
|
|
4
|
+
export declare enum SoundingsActionOrigin {
|
|
5
|
+
soundingsManager = "soundingsManager",
|
|
6
|
+
soundingsComponent = "soundingsComponent"
|
|
7
|
+
}
|
|
8
|
+
export interface SourceType {
|
|
9
|
+
collectionId: string;
|
|
10
|
+
url: string;
|
|
11
|
+
instanceId?: string;
|
|
12
|
+
verticalRange?: string;
|
|
13
|
+
parameterMappings?: Record<string, string>;
|
|
14
|
+
windSpeedUnit?: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
prefetchAllTimesteps?: boolean;
|
|
17
|
+
/** Grid resolution in km, used for radius queries to find nearby grid points. Default ~2.5km */
|
|
18
|
+
gridResolution?: number;
|
|
19
|
+
}
|
|
20
|
+
export interface SoundingsPayload {
|
|
21
|
+
viewId?: string;
|
|
22
|
+
origin?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface UpdateSourcePayload extends SoundingsPayload {
|
|
25
|
+
sourceId: string;
|
|
26
|
+
value: SourceSelection;
|
|
27
|
+
}
|
|
28
|
+
export interface UpdateLocationPayload extends SoundingsPayload {
|
|
29
|
+
sourceId: string;
|
|
30
|
+
location: string | Coordinates | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface UpdateTimePayload extends SoundingsPayload {
|
|
33
|
+
selectedTime: string;
|
|
34
|
+
}
|
|
35
|
+
export interface UpdateDiagramTypePayload extends SoundingsPayload {
|
|
36
|
+
diagramType: 'SKEWT' | 'BIJVOET' | 'EMAGRAM';
|
|
37
|
+
}
|
|
38
|
+
export interface ToggleLocationMarkersPayload extends SoundingsPayload {
|
|
39
|
+
shouldHideLocationMarkers: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface ToggleTimeSliderVisibilityPayload extends SoundingsPayload {
|
|
42
|
+
isTimeSliderVisible: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface UpdateProfileDataPreferencesPayload extends SoundingsPayload {
|
|
45
|
+
profileDataPreferences: SoundingsProfileDataPreferences;
|
|
46
|
+
}
|
|
47
|
+
export interface RegisterSoundingsPresetPayload extends SoundingsPayload {
|
|
48
|
+
preset: SoundingsViewState;
|
|
49
|
+
}
|
|
50
|
+
export interface AddSoundingPanelsPayload extends SoundingsPayload {
|
|
51
|
+
panels: SoundingPanels;
|
|
52
|
+
}
|
|
53
|
+
export interface ChangeSoundingPanelOrderPayload extends SoundingsPayload {
|
|
54
|
+
newOrderOfIds: string[];
|
|
55
|
+
}
|
|
56
|
+
export type SoundingsRootState = CoreAppStore & SoundingsModuleState;
|
|
57
|
+
export interface SoundingPanel {
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
isDisplayed: boolean;
|
|
61
|
+
isOpen?: boolean;
|
|
62
|
+
customWidth?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface SoundingPanels {
|
|
65
|
+
order: string[];
|
|
66
|
+
entities: Record<string, SoundingPanel>;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* State for a single soundings view. Each open soundings view gets its
|
|
70
|
+
* own instance of this state, so multiple views can show different
|
|
71
|
+
* sources, locations, and settings independently.
|
|
72
|
+
*/
|
|
73
|
+
export interface SoundingsViewState {
|
|
74
|
+
/** key: sourceId */
|
|
75
|
+
selectedSources: Record<string, SourceSelection>;
|
|
76
|
+
/** key: sourceId, value: locationId or position coordinates */
|
|
77
|
+
selectedLocations: Record<string, string | Coordinates | undefined>;
|
|
78
|
+
/** ISO date, e.g., 2025-01-02T12:00:00.000Z */
|
|
79
|
+
selectedTime?: string;
|
|
80
|
+
/** Diagram type: SKEWT, BIJVOET, or EMAGRAM */
|
|
81
|
+
diagramType?: 'SKEWT' | 'BIJVOET' | 'EMAGRAM';
|
|
82
|
+
soundingPanels: SoundingPanels;
|
|
83
|
+
/** Whether to hide location markers on the map */
|
|
84
|
+
shouldHideLocationMarkers?: boolean;
|
|
85
|
+
/** Whether the timeslider is shown below the panels (defaults to true) */
|
|
86
|
+
isTimeSliderVisible?: boolean;
|
|
87
|
+
/** Per-view profile data table preferences: visible columns + units */
|
|
88
|
+
profileDataPreferences?: SoundingsProfileDataPreferences;
|
|
89
|
+
syncGroupsIds: string[];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Root state for the soundings slice. Views are added dynamically when
|
|
93
|
+
* a soundings view mounts, so the state is organized as a map keyed by
|
|
94
|
+
* viewId. `soundingsCollections` is shared across all views.
|
|
95
|
+
*/
|
|
96
|
+
export interface SoundingsState {
|
|
97
|
+
/** Each open soundings view's state, keyed by its viewId */
|
|
98
|
+
byId: Record<string, SoundingsViewState>;
|
|
99
|
+
/** Which views are currently active — actions for unknown views are ignored */
|
|
100
|
+
registeredSoundingsViewIds?: string[];
|
|
101
|
+
/** Available sounding data collections, shared across all views */
|
|
102
|
+
soundingsCollections: SoundingsCollection[];
|
|
103
|
+
/** Counter bumped on each view close so soundings panels re-grow into the freed space; transient, never persisted to presets. */
|
|
104
|
+
resizeOnViewCloseSignal?: number;
|
|
105
|
+
}
|
|
106
|
+
export interface SoundingsModuleState {
|
|
107
|
+
soundings?: SoundingsState;
|
|
108
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SoundingsModuleState } from './types';
|
|
2
|
+
type SoundingsStateLike = SoundingsModuleState['soundings'];
|
|
3
|
+
export declare const getRegisteredViewIds: (state: SoundingsStateLike | undefined) => string[];
|
|
4
|
+
export declare const isRegisteredViewId: (state: SoundingsStateLike | undefined, viewId?: string) => boolean;
|
|
5
|
+
export declare const getViewIdFromAction: (action: {
|
|
6
|
+
payload?: {
|
|
7
|
+
viewId?: string;
|
|
8
|
+
};
|
|
9
|
+
}) => string | undefined;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import i18n from 'i18next';
|
|
2
|
+
import type { UseTranslationResponse } from 'react-i18next';
|
|
3
|
+
export declare const SOUNDINGS_NAMESPACE = "soundings";
|
|
4
|
+
export declare const initSoundingsI18n: () => void;
|
|
5
|
+
export declare const translateInTestsAndStories: (key: string, params?: Record<string, string | number> | undefined) => string;
|
|
6
|
+
export declare const useSoundingsTranslation: () => UseTranslationResponse<typeof SOUNDINGS_NAMESPACE, typeof i18n>;
|
|
7
|
+
export { i18n };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export type SoundingsColumnKey = 'pressure' | 'temperature' | 'dewPoint' | 'height' | 'windSpeed' | 'windDirection';
|
|
2
|
+
export type TemperatureUnit = 'C' | 'F';
|
|
3
|
+
export type HeightUnit = 'm' | 'ft';
|
|
4
|
+
export type WindSpeedUnit = 'ms' | 'kts' | 'kmh';
|
|
5
|
+
export interface SoundingsProfileDataUnits {
|
|
6
|
+
temperature: TemperatureUnit;
|
|
7
|
+
dewPoint: TemperatureUnit;
|
|
8
|
+
height: HeightUnit;
|
|
9
|
+
windSpeed: WindSpeedUnit;
|
|
10
|
+
}
|
|
11
|
+
export interface SoundingsProfileDataPreferences {
|
|
12
|
+
visibleColumns: Record<SoundingsColumnKey, boolean>;
|
|
13
|
+
units: SoundingsProfileDataUnits;
|
|
14
|
+
}
|
|
15
|
+
export declare const convertTemperature: (valueCelsius: number, unit: TemperatureUnit) => number;
|
|
16
|
+
export declare const convertHeight: (valueMeters: number, unit: HeightUnit) => number;
|
|
17
|
+
export declare const convertWindSpeed: (valueKnots: number, unit: WindSpeedUnit) => number;
|
|
18
|
+
/**
|
|
19
|
+
* Single source of truth for everything column-specific in the profile data
|
|
20
|
+
* table: ordering, labels, units, formatting and conversion. Adding a new
|
|
21
|
+
* column means adding one entry here.
|
|
22
|
+
*/
|
|
23
|
+
export interface ColumnDefinition {
|
|
24
|
+
key: SoundingsColumnKey;
|
|
25
|
+
/** Short header label, e.g. 'P', 'T', 'Td' */
|
|
26
|
+
shortLabel: string;
|
|
27
|
+
/** User-facing long label used in menus, e.g. 'Pressure' */
|
|
28
|
+
longLabel: string;
|
|
29
|
+
/** Which slot of `SoundingsProfileDataUnits` drives this column's unit */
|
|
30
|
+
unitKey?: keyof SoundingsProfileDataUnits;
|
|
31
|
+
/** Allowed unit options when the column has selectable units */
|
|
32
|
+
unitOptions?: readonly string[];
|
|
33
|
+
/**
|
|
34
|
+
* Optional display labels for `unitOptions` — used by both the menu toggle
|
|
35
|
+
* buttons and the column header when the internal identifier differs from
|
|
36
|
+
* the conventional unit symbol (e.g. `kts` → `kt`, `kmh` → `km/h`). Falls
|
|
37
|
+
* back to the option identifier when no mapping is provided.
|
|
38
|
+
*/
|
|
39
|
+
unitOptionLabels?: Readonly<Record<string, string>>;
|
|
40
|
+
/** How many decimals the formatted value should have */
|
|
41
|
+
fractionDigits: (units: SoundingsProfileDataUnits) => number;
|
|
42
|
+
/** Render-time unit label shown next to the header, e.g. '°C', 'hPa' */
|
|
43
|
+
unitLabel: (units: SoundingsProfileDataUnits) => string;
|
|
44
|
+
/** Convert a stored (canonical) value into the currently selected unit */
|
|
45
|
+
convert: (value: number, units: SoundingsProfileDataUnits) => number;
|
|
46
|
+
}
|
|
47
|
+
export declare const COLUMN_DEFINITIONS: ColumnDefinition[];
|
|
48
|
+
export declare const getColumnDefinition: (key: SoundingsColumnKey) => ColumnDefinition;
|
|
49
|
+
export declare const COLUMN_ORDER: SoundingsColumnKey[];
|
|
50
|
+
export declare const DEFAULT_PROFILE_DATA_PREFERENCES: SoundingsProfileDataPreferences;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SoundingsViewState } from '../store/types';
|
|
2
|
+
export type SoundingsComponentType = 'Soundings';
|
|
3
|
+
export interface SoundingsLookUpPayload {
|
|
4
|
+
componentType: SoundingsComponentType;
|
|
5
|
+
id: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
initialProps: SoundingsViewState;
|
|
8
|
+
}
|
|
9
|
+
export declare const soundingsLookUp: (payload: SoundingsLookUpPayload) => React.JSX.Element | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/soundings",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.1.1",
|
|
4
4
|
"description": "GeoWeb soundings library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
50
|
"dist",
|
|
51
|
+
"!dist/package.json",
|
|
51
52
|
"README.md",
|
|
52
53
|
"package.json"
|
|
53
54
|
]
|