@opengeoweb/soundings 12.1.2 → 12.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.
Files changed (45) hide show
  1. package/index.esm.js +1950 -6
  2. package/package.json +13 -2
  3. package/src/index.d.ts +7 -1
  4. package/src/lib/api/edr-api/api.d.ts +6 -0
  5. package/src/lib/api/edr-api/crss-types.d.ts +26 -0
  6. package/src/lib/api/edr-api/fakeApi.d.ts +1 -0
  7. package/src/lib/api/edr-api/hooks.d.ts +5 -0
  8. package/src/lib/api/edr-api/types.d.ts +118 -0
  9. package/src/lib/components/DrawUtils.d.ts +39 -0
  10. package/src/lib/components/EDRFetchAndParse.stories.d.ts +7 -0
  11. package/src/lib/components/MenuBar/LocationsMenu.d.ts +13 -0
  12. package/src/lib/components/MenuBar/LocationsMenuConnect.d.ts +6 -0
  13. package/src/lib/components/MenuBar/MenuBar.d.ts +12 -0
  14. package/src/lib/components/MenuBar/MenuBar.stories.d.ts +20 -0
  15. package/src/lib/components/MenuBar/MenuBarConnect.d.ts +8 -0
  16. package/src/lib/components/MenuBar/MenuBarConnect.spec.d.ts +1 -0
  17. package/src/lib/components/MenuBar/SoundingsSourceDialogConnect.d.ts +7 -0
  18. package/src/lib/components/MenuBar/SoundingsSourceMenu.d.ts +12 -0
  19. package/src/lib/components/Providers/Providers.d.ts +12 -0
  20. package/src/lib/components/Soundings.d.ts +14 -0
  21. package/src/lib/components/Soundings.spec.d.ts +1 -0
  22. package/src/lib/components/Soundings.stories.d.ts +7 -0
  23. package/src/lib/components/SoundingsConnect.d.ts +6 -0
  24. package/src/lib/components/StaticLines/drawDryAdiabats.d.ts +11 -0
  25. package/src/lib/components/StaticLines/drawIsobars.d.ts +11 -0
  26. package/src/lib/components/StaticLines/drawIsohumes.d.ts +10 -0
  27. package/src/lib/components/StaticLines/drawIsotherms.d.ts +10 -0
  28. package/src/lib/components/StaticLines/drawMoistAdiabats.d.ts +16 -0
  29. package/src/lib/components/StaticLines/utils.d.ts +15 -0
  30. package/src/lib/components/WindBarbs/utils.d.ts +25 -0
  31. package/src/lib/components/WindBarbs/windsymbols.d.ts +5 -0
  32. package/src/lib/components/index.d.ts +3 -0
  33. package/src/lib/components/types.d.ts +5 -0
  34. package/src/lib/i18n.d.ts +7 -0
  35. package/src/lib/parser/coverages.d.ts +2 -0
  36. package/src/lib/store/reducer.d.ts +7 -0
  37. package/src/lib/store/selectors.d.ts +105 -0
  38. package/src/lib/store/selectors.spec.d.ts +1 -0
  39. package/src/lib/store/store.d.ts +9 -0
  40. package/src/lib/store/types.d.ts +25 -0
  41. package/src/lib/utils/conversions.d.ts +11 -0
  42. package/src/lib/utils/soundingsLookUp.d.ts +8 -0
  43. package/src/lib/components/Sounding.d.ts +0 -2
  44. package/src/lib/components/Sounding.spec.d.ts +0 -0
  45. package/src/lib/components/soundings.stories.d.ts +0 -9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/soundings",
3
- "version": "12.1.2",
3
+ "version": "12.3.0",
4
4
  "description": "GeoWeb soundings library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,7 +8,18 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "react": "^18.3.1"
11
+ "@opengeoweb/api": "12.3.0",
12
+ "@tanstack/react-query": "^5.69.2",
13
+ "react": "^18.3.1",
14
+ "d3": "^7.9.0",
15
+ "react-i18next": "^15.1.1",
16
+ "i18next": "^23.11.5",
17
+ "@opengeoweb/shared": "12.3.0",
18
+ "@mui/material": "^7.0.1",
19
+ "@opengeoweb/store": "12.3.0",
20
+ "react-redux": "^9.2.0",
21
+ "@opengeoweb/theme": "12.3.0",
22
+ "@reduxjs/toolkit": "^2.6.1"
12
23
  },
13
24
  "module": "./index.esm.js",
14
25
  "type": "module",
package/src/index.d.ts CHANGED
@@ -1 +1,7 @@
1
- export * from './lib/components/Sounding';
1
+ import soundingsTranslations from '../locales/soundingsTranslations.json';
2
+ export { soundingsTranslations };
3
+ export * from './lib/components';
4
+ export * from './lib/utils/soundingsLookUp';
5
+ export * from './lib/api/edr-api/types';
6
+ export * from './lib/store/store';
7
+ export * from './lib/i18n';
@@ -0,0 +1,6 @@
1
+ import { CollectionsResponseFromBE, LocationsResponseFromBE, SoundingsInstances, CoverageCollection } from './types';
2
+ export declare const getCollections: () => Promise<CollectionsResponseFromBE>;
3
+ export declare const getCollectionLocations: (collectionId: string) => Promise<LocationsResponseFromBE>;
4
+ export declare const getCollectionInstance: (baseURL: string, collectionId: string) => Promise<SoundingsInstances>;
5
+ export declare const getEdrCollectionForLocation: (collectionId: string, instanceId: string | undefined, locationId: string, parameters: string[], datetime: string) => Promise<CoverageCollection>;
6
+ export declare const getEdrCollectionForPosition: (collectionId: string, instanceId: string | undefined, coordinates: [number, number], parameters: string[], datetime: string) => Promise<CoverageCollection>;
@@ -0,0 +1,26 @@
1
+ export interface Referencing {
2
+ coordinates: string[];
3
+ system: CRSSystem;
4
+ }
5
+ interface GeographicCRS {
6
+ type: 'GeographicCRS';
7
+ id: string;
8
+ }
9
+ interface ProjectedCRS {
10
+ type: 'ProjectedCRS';
11
+ id: string;
12
+ }
13
+ interface VerticalCRS {
14
+ type: 'VerticalCRS';
15
+ id: string;
16
+ }
17
+ interface EngineeringCRS {
18
+ type: 'EngineeringCRS';
19
+ id?: string;
20
+ }
21
+ interface TemporalRS {
22
+ type: 'TemporalRS';
23
+ calendar: string;
24
+ }
25
+ type CRSSystem = GeographicCRS | ProjectedCRS | VerticalCRS | EngineeringCRS | TemporalRS;
26
+ export {};
@@ -0,0 +1 @@
1
+ export declare const fmiEdrCollectionsHandlers: import("msw").HttpHandler[];
@@ -0,0 +1,5 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { SoundingFeature } from './types';
3
+ type Coordinates = [number, number];
4
+ export declare const useEdrCollectionForLocationPosition: (collectionId: string, instanceId: string | undefined, location: string | Coordinates, datetime: string, parameters?: string[]) => UseQueryResult<SoundingFeature[]>;
5
+ export {};
@@ -0,0 +1,118 @@
1
+ import { Geometry } from 'geojson';
2
+ import { Referencing } from './crss-types';
3
+ interface LinksFromBE {
4
+ title: string;
5
+ href: string;
6
+ rel: string;
7
+ type: string;
8
+ }
9
+ export interface CollectionsFromBE {
10
+ id: string;
11
+ title: string;
12
+ description: string;
13
+ links: LinksFromBE[];
14
+ output_formats: string[];
15
+ keywords: string[];
16
+ crs: string[];
17
+ data_queries: object;
18
+ extent: object;
19
+ parameter_names: object;
20
+ }
21
+ /** These types can be expanded as needed */
22
+ export interface CollectionsResponseFromBE {
23
+ links: LinksFromBE[];
24
+ collections: CollectionsFromBE[];
25
+ }
26
+ export interface FeaturesFromBE {
27
+ id: string;
28
+ type: string;
29
+ geometry: Geometry;
30
+ properties: {
31
+ datetime: string;
32
+ detail: string;
33
+ name: string;
34
+ };
35
+ }
36
+ export interface LocationsResponseFromBE {
37
+ features: FeaturesFromBE[];
38
+ type: string;
39
+ }
40
+ interface AxisValues {
41
+ values: number[] | string[];
42
+ }
43
+ interface SingleValueAxis {
44
+ values: [number];
45
+ }
46
+ interface SingleTimeValueAxis {
47
+ values: [string];
48
+ }
49
+ interface VerticalProfileAxes {
50
+ x: SingleValueAxis;
51
+ y: SingleValueAxis;
52
+ z: AxisValues;
53
+ t?: SingleTimeValueAxis;
54
+ }
55
+ export interface VerticalProfileDomain {
56
+ type: 'Domain';
57
+ domainType: 'VerticalProfile';
58
+ axes: VerticalProfileAxes;
59
+ referencing?: Referencing[];
60
+ }
61
+ interface NdArray {
62
+ type: 'NdArray';
63
+ dataType: 'float' | 'integer' | 'string';
64
+ axisNames?: string[];
65
+ shape?: number[];
66
+ values: number[] | string[];
67
+ }
68
+ type Ranges = Record<string, NdArray>;
69
+ type Description = Record<string, string>;
70
+ type Label = Record<string, string>;
71
+ interface Parameter {
72
+ type: 'Parameter';
73
+ id?: string;
74
+ label?: Label;
75
+ description?: Description;
76
+ unit?: {
77
+ label?: Label;
78
+ symbol?: Record<string, string>;
79
+ };
80
+ observedProperty: {
81
+ id?: string;
82
+ label: Label;
83
+ description?: Description;
84
+ };
85
+ }
86
+ export interface Coverage {
87
+ type: 'Coverage';
88
+ domain: VerticalProfileDomain;
89
+ ranges: Ranges;
90
+ }
91
+ export interface CoverageCollection {
92
+ type: 'CoverageCollection';
93
+ domainType: VerticalProfileDomain;
94
+ parameters: Record<string, Parameter>;
95
+ ranges: Record<string, NdArray>;
96
+ coverages: Coverage[];
97
+ referencing: Referencing[];
98
+ }
99
+ export interface SoundingFeatureProperties {
100
+ time: string;
101
+ temp: number;
102
+ dewpoint: number;
103
+ pressure: number;
104
+ windSpeed: number;
105
+ windDirection: number;
106
+ }
107
+ export interface SoundingFeature {
108
+ type: 'Feature';
109
+ geometry: Geometry;
110
+ properties: SoundingFeatureProperties;
111
+ }
112
+ export interface SoundingsInstance {
113
+ id: string;
114
+ }
115
+ export interface SoundingsInstances {
116
+ instances: SoundingsInstance[];
117
+ }
118
+ export {};
@@ -0,0 +1,39 @@
1
+ /// <reference types="react" />
2
+ import * as d3 from 'd3';
3
+ export declare const SOUNDING_COLORS: string[];
4
+ export interface Margin {
5
+ top: number;
6
+ right: number;
7
+ bottom: number;
8
+ left: number;
9
+ }
10
+ export interface InitializeSvg {
11
+ svgRef: React.MutableRefObject<SVGSVGElement | null>;
12
+ width: number;
13
+ height: number;
14
+ margin: Margin;
15
+ }
16
+ export interface AddLegends {
17
+ width: number;
18
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
19
+ }
20
+ export interface DrawAxis {
21
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
22
+ xScale: d3.ScaleLinear<number, number>;
23
+ yScale: d3.ScaleLogarithmic<number, number>;
24
+ height: number;
25
+ }
26
+ export interface PlotSounding {
27
+ temperatureValues: number[];
28
+ pressureValues: number[];
29
+ color: string;
30
+ lineStyle: string;
31
+ xScale: d3.ScaleLinear<number, number>;
32
+ yScale: d3.ScaleLogarithmic<number, number>;
33
+ height: number;
34
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
35
+ }
36
+ export declare const initializeSvg: ({ svgRef, width, height, margin, }: InitializeSvg) => d3.Selection<SVGGElement, unknown, null, undefined>;
37
+ export declare const drawAxes: ({ svg, xScale, yScale, height }: DrawAxis) => void;
38
+ export declare const addLegends: ({ svg, width }: AddLegends) => void;
39
+ export declare const plotSounding: ({ temperatureValues, pressureValues, color, lineStyle, xScale, yScale, height, svg, }: PlotSounding) => void;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { Meta } from '@storybook/react/*';
3
+ import { Soundings } from './Soundings';
4
+ declare const meta: Meta<typeof Soundings>;
5
+ export default meta;
6
+ export declare const VerticalProfileFetchingByLocExample: React.FC;
7
+ export declare const VerticalProfileFetchingByPosExample: React.FC;
@@ -0,0 +1,13 @@
1
+ import { LocationsResponseFromBE } from '../../api/edr-api/types';
2
+ export type ServicesWithId = LocationsResponseFromBE & {
3
+ id: string;
4
+ };
5
+ interface Props {
6
+ services: ServicesWithId[];
7
+ selectedLocations: Record<string, string | undefined>;
8
+ isOpen: boolean;
9
+ onClose: () => void;
10
+ updateSelectedLocation: (sourceId: string, locationId: string | undefined) => void;
11
+ }
12
+ export declare const LocationsMenu: ({ services, selectedLocations, isOpen, onClose, updateSelectedLocation, }: Props) => React.ReactElement;
13
+ export {};
@@ -0,0 +1,6 @@
1
+ import { SoundingsCollection } from '@opengeoweb/shared';
2
+ interface Props {
3
+ soundingsCollections: SoundingsCollection[];
4
+ }
5
+ export declare const LocationsMenuConnect: ({ soundingsCollections, }: Props) => React.ReactElement;
6
+ export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export declare enum MenuOptions {
3
+ sources = "sources",
4
+ locations = "locations"
5
+ }
6
+ interface SoundingsMenuBarProps {
7
+ handleClick: (menuType: MenuOptions) => void;
8
+ isOpen: Record<MenuOptions, boolean>;
9
+ selectedSourcesAmount?: number;
10
+ }
11
+ export declare const SoundingsMenuBar: ({ handleClick, isOpen, selectedSourcesAmount, }: SoundingsMenuBarProps) => React.ReactElement;
12
+ export {};
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { StoryObj } from '@storybook/react';
3
+ import { MenuOptions } from './MenuBar';
4
+ interface Props {
5
+ menu?: MenuOptions;
6
+ isDefaultOpen?: boolean;
7
+ selectedSourcesAmount?: number;
8
+ }
9
+ declare const SoundingsMenuBarStory: ({ menu, isDefaultOpen, selectedSourcesAmount, }: Props) => React.ReactElement;
10
+ declare const _default: {
11
+ title: string;
12
+ component: ({ menu, isDefaultOpen, selectedSourcesAmount, }: Props) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
13
+ };
14
+ export default _default;
15
+ type Story = StoryObj<typeof SoundingsMenuBarStory>;
16
+ export declare const LocationsLight: Story;
17
+ export declare const LocationsDark: Story;
18
+ export declare const SourcesLight: Story;
19
+ export declare const SourcesDark: Story;
20
+ export declare const SourcesSelected: Story;
@@ -0,0 +1,8 @@
1
+ import { uiTypes } from '@opengeoweb/store';
2
+ import React from 'react';
3
+ interface MenuBarConnectProps {
4
+ viewId: string;
5
+ source?: uiTypes.Source;
6
+ }
7
+ export declare const MenuBarConnect: ({ viewId, source, }: MenuBarConnectProps) => React.ReactElement;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { SoundingsCollection } from '@opengeoweb/shared';
3
+ interface SoundingsSourceDialogConnectProps {
4
+ soundingsCollections: SoundingsCollection[] | undefined;
5
+ }
6
+ export declare const SoundingsSourceDialogConnect: ({ soundingsCollections, }: SoundingsSourceDialogConnectProps) => React.ReactElement;
7
+ export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { SoundingsCollectionsWithInstances } from '../types';
3
+ import { SourceSelection } from '../../store/types';
4
+ interface SoundingsSourceMenuProps {
5
+ soundingsCollections: SoundingsCollectionsWithInstances[] | undefined;
6
+ isOpen?: boolean;
7
+ handleClose: () => void;
8
+ updateCollection: (sourceId: string, value: SourceSelection) => void;
9
+ sourceSelections: Record<string, SourceSelection>;
10
+ }
11
+ export declare const SoundingsSourceMenu: ({ soundingsCollections, isOpen, handleClose, updateCollection, sourceSelections, }: SoundingsSourceMenuProps) => React.ReactElement;
12
+ export {};
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { Store } from '@reduxjs/toolkit';
3
+ interface SoundingsTranslationsWrapperProps {
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const SoundingsI18nProvider: React.FC<SoundingsTranslationsWrapperProps>;
7
+ interface SoundingsStoreWrapperProps {
8
+ children: React.ReactNode;
9
+ store: Store;
10
+ }
11
+ export declare const SoundingsStoreProvider: React.FC<SoundingsStoreWrapperProps>;
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { Margin } from './DrawUtils';
3
+ import { SoundingFeature } from '../api/edr-api/types';
4
+ export interface SoundingProps {
5
+ data: {
6
+ features: SoundingFeature[];
7
+ };
8
+ svgDimensions: {
9
+ width: number;
10
+ height: number;
11
+ margin: Margin;
12
+ };
13
+ }
14
+ export declare const Soundings: React.FC<SoundingProps>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Soundings } from './Soundings';
3
+ declare const meta: Meta<typeof Soundings>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Soundings>;
6
+ export declare const SoundingsExample: Story;
7
+ export declare const SoundingsExampleDark: Story;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface SoundingsConnectProps {
3
+ viewId: string;
4
+ }
5
+ declare const SoundingsConnect: ({ viewId, }: SoundingsConnectProps) => React.ReactElement;
6
+ export default SoundingsConnect;
@@ -0,0 +1,11 @@
1
+ import * as d3 from 'd3';
2
+ interface DrawDryAdiabatsProps {
3
+ staticPressureArray: number[];
4
+ height: number;
5
+ xScale: d3.ScaleLinear<number, number>;
6
+ yScale: d3.ScaleLogarithmic<number, number>;
7
+ dp: number;
8
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
9
+ }
10
+ export declare const drawDryAdiabats: ({ staticPressureArray, height, xScale, yScale, svg, dp, }: DrawDryAdiabatsProps) => void;
11
+ export {};
@@ -0,0 +1,11 @@
1
+ import * as d3 from 'd3';
2
+ export declare const isobarValues: number[];
3
+ interface DrawIsobarsProps {
4
+ minTemperature: number;
5
+ maxTemperature: number;
6
+ xScale: d3.ScaleLinear<number, number>;
7
+ yScale: d3.ScaleLogarithmic<number, number>;
8
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
9
+ }
10
+ export declare const drawIsobars: ({ minTemperature, maxTemperature, xScale, yScale, svg, }: DrawIsobarsProps) => void;
11
+ export {};
@@ -0,0 +1,10 @@
1
+ import * as d3 from 'd3';
2
+ interface DrawIsohumesProps {
3
+ staticPressureArray: number[];
4
+ height: number;
5
+ xScale: d3.ScaleLinear<number, number>;
6
+ yScale: d3.ScaleLogarithmic<number, number>;
7
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
8
+ }
9
+ export declare const drawIsohumes: ({ staticPressureArray, height, xScale, yScale, svg, }: DrawIsohumesProps) => void;
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import * as d3 from 'd3';
2
+ interface DrawIsothermsProps {
3
+ staticPressureArray: number[];
4
+ height: number;
5
+ xScale: d3.ScaleLinear<number, number>;
6
+ yScale: d3.ScaleLogarithmic<number, number>;
7
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
8
+ }
9
+ export declare const drawIsotherms: ({ staticPressureArray, height, xScale, yScale, svg, }: DrawIsothermsProps) => void;
10
+ export {};
@@ -0,0 +1,16 @@
1
+ import * as d3 from 'd3';
2
+ interface DrawMoistAdiabatsProps {
3
+ staticPressureArray: number[];
4
+ minTemperature: number;
5
+ maxTemperature: number;
6
+ minPressure: number;
7
+ maxPressure: number;
8
+ width: number;
9
+ height: number;
10
+ dp: number;
11
+ xScale: d3.ScaleLinear<number, number>;
12
+ yScale: d3.ScaleLogarithmic<number, number>;
13
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
14
+ }
15
+ export declare const drawMoistAdiabats: ({ staticPressureArray, minTemperature, maxTemperature, minPressure, maxPressure, width, height, xScale, yScale, svg, dp, }: DrawMoistAdiabatsProps) => void;
16
+ export {};
@@ -0,0 +1,15 @@
1
+ interface DrawStaticLinesProps {
2
+ dp: number;
3
+ staticPressureArray: number[];
4
+ minTemperature: number;
5
+ maxTemperature: number;
6
+ minPressure: number;
7
+ maxPressure: number;
8
+ width: number;
9
+ height: number;
10
+ xScale: d3.ScaleLinear<number, number>;
11
+ yScale: d3.ScaleLogarithmic<number, number>;
12
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
13
+ }
14
+ export declare const drawStaticLines: ({ dp, staticPressureArray, minTemperature, maxTemperature, height, width, xScale, yScale, minPressure, maxPressure, svg, }: DrawStaticLinesProps) => void;
15
+ export {};
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Margin } from '../DrawUtils';
3
+ export interface WindDataType {
4
+ pressure: number;
5
+ windSpeed: number;
6
+ windDirection: number;
7
+ }
8
+ export interface DrawWindBarbsProps {
9
+ svgRef: React.MutableRefObject<SVGSVGElement | null>;
10
+ data: WindDataType[];
11
+ width: number;
12
+ height: number;
13
+ margin: Margin;
14
+ minPressure: number;
15
+ maxPressure: number;
16
+ barbColor?: string;
17
+ }
18
+ export declare const drawWindBarbs: ({ svgRef, data, width, height, margin, minPressure, maxPressure, barbColor, }: DrawWindBarbsProps) => void;
19
+ export declare const GrowthType: {
20
+ readonly LINEAR: "LINEAR";
21
+ readonly EXPONENTIAL: "EXPONENTIAL";
22
+ readonly CUBIC: "CUBIC";
23
+ };
24
+ export declare const removeItemsByGrowthType: (array: WindDataType[], growthType?: keyof typeof GrowthType, base?: number, initial?: number) => WindDataType[];
25
+ export declare const getWindSymbol: (value: number) => Node | null;
@@ -0,0 +1,5 @@
1
+ export declare const windSpeedRanges: {
2
+ min: number;
3
+ max: number;
4
+ symbol: string;
5
+ }[];
@@ -0,0 +1,3 @@
1
+ export * from './Soundings';
2
+ export * from './MenuBar/SoundingsSourceDialogConnect';
3
+ export * from './MenuBar/LocationsMenuConnect';
@@ -0,0 +1,5 @@
1
+ import { SoundingsCollection } from '@opengeoweb/shared';
2
+ import { SoundingsInstance } from '../api/edr-api/types';
3
+ export interface SoundingsCollectionsWithInstances extends SoundingsCollection {
4
+ instances: SoundingsInstance[];
5
+ }
@@ -0,0 +1,7 @@
1
+ import i18n from 'i18next';
2
+ import { UseTranslationResponse } from 'react-i18next';
3
+ export declare const SOUNDINGS_NAMESPACE = "soundings";
4
+ export declare const initSoundingsI18n: () => void;
5
+ export declare const translateKeyOutsideComponents: (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,2 @@
1
+ import { CoverageCollection, SoundingFeature } from '../api/edr-api/types';
2
+ export declare function parseCoverageCollection(response: CoverageCollection): SoundingFeature[];
@@ -0,0 +1,7 @@
1
+ import { Draft, PayloadAction } from '@reduxjs/toolkit';
2
+ import { SoundingsStore, UpdateLocationPayload, UpdateSourcePayload } from './types';
3
+ export declare const initialSoundingsState: SoundingsStore;
4
+ export declare const soundingsReducer: import("redux").Reducer<SoundingsStore>, soundingsActions: import("@reduxjs/toolkit").CaseReducerActions<{
5
+ updateSelectedSource: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateSourcePayload>) => void;
6
+ updateSelectedLocation: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateLocationPayload>) => void;
7
+ }, "soundings">;
@@ -0,0 +1,105 @@
1
+ import { SoundingsModuleState, SoundingsStore, SourceSelection, SourceType } from './types';
2
+ export declare const getSourceSelections: ((state: SoundingsModuleState) => Record<string, SourceSelection>) & {
3
+ clearCache: () => void;
4
+ resultsCount: () => number;
5
+ resetResultsCount: () => void;
6
+ } & {
7
+ resultFunc: (resultFuncArgs_0: SoundingsStore) => Record<string, SourceSelection>;
8
+ memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => Record<string, SourceSelection>) & {
9
+ clearCache: () => void;
10
+ resultsCount: () => number;
11
+ resetResultsCount: () => void;
12
+ };
13
+ lastResult: () => Record<string, SourceSelection>;
14
+ dependencies: [(store: SoundingsModuleState) => SoundingsStore];
15
+ recomputations: () => number;
16
+ resetRecomputations: () => void;
17
+ dependencyRecomputations: () => number;
18
+ resetDependencyRecomputations: () => void;
19
+ } & {
20
+ memoize: typeof import("reselect").weakMapMemoize;
21
+ argsMemoize: typeof import("reselect").weakMapMemoize;
22
+ };
23
+ export declare const getLocationSelections: ((state: SoundingsModuleState) => Record<string, string | undefined>) & {
24
+ clearCache: () => void;
25
+ resultsCount: () => number;
26
+ resetResultsCount: () => void;
27
+ } & {
28
+ resultFunc: (resultFuncArgs_0: SoundingsStore) => Record<string, string | undefined>;
29
+ memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => Record<string, string | undefined>) & {
30
+ clearCache: () => void;
31
+ resultsCount: () => number;
32
+ resetResultsCount: () => void;
33
+ };
34
+ lastResult: () => Record<string, string | undefined>;
35
+ dependencies: [(store: SoundingsModuleState) => SoundingsStore];
36
+ recomputations: () => number;
37
+ resetRecomputations: () => void;
38
+ dependencyRecomputations: () => number;
39
+ resetDependencyRecomputations: () => void;
40
+ } & {
41
+ memoize: typeof import("reselect").weakMapMemoize;
42
+ argsMemoize: typeof import("reselect").weakMapMemoize;
43
+ };
44
+ export declare const getSelectedSources: ((state: SoundingsModuleState) => SourceType[]) & {
45
+ clearCache: () => void;
46
+ resultsCount: () => number;
47
+ resetResultsCount: () => void;
48
+ } & {
49
+ resultFunc: (resultFuncArgs_0: SoundingsStore) => SourceType[];
50
+ memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => SourceType[]) & {
51
+ clearCache: () => void;
52
+ resultsCount: () => number;
53
+ resetResultsCount: () => void;
54
+ };
55
+ lastResult: () => SourceType[];
56
+ dependencies: [(store: SoundingsModuleState) => SoundingsStore];
57
+ recomputations: () => number;
58
+ resetRecomputations: () => void;
59
+ dependencyRecomputations: () => number;
60
+ resetDependencyRecomputations: () => void;
61
+ } & {
62
+ memoize: typeof import("reselect").weakMapMemoize;
63
+ argsMemoize: typeof import("reselect").weakMapMemoize;
64
+ };
65
+ export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) => number) & {
66
+ clearCache: () => void;
67
+ resultsCount: () => number;
68
+ resetResultsCount: () => void;
69
+ } & {
70
+ resultFunc: (resultFuncArgs_0: SourceType[]) => number;
71
+ memoizedResultFunc: ((resultFuncArgs_0: SourceType[]) => number) & {
72
+ clearCache: () => void;
73
+ resultsCount: () => number;
74
+ resetResultsCount: () => void;
75
+ };
76
+ lastResult: () => number;
77
+ dependencies: [((state: SoundingsModuleState) => SourceType[]) & {
78
+ clearCache: () => void;
79
+ resultsCount: () => number;
80
+ resetResultsCount: () => void;
81
+ } & {
82
+ resultFunc: (resultFuncArgs_0: SoundingsStore) => SourceType[];
83
+ memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => SourceType[]) & {
84
+ clearCache: () => void;
85
+ resultsCount: () => number;
86
+ resetResultsCount: () => void;
87
+ };
88
+ lastResult: () => SourceType[];
89
+ dependencies: [(store: SoundingsModuleState) => SoundingsStore];
90
+ recomputations: () => number;
91
+ resetRecomputations: () => void;
92
+ dependencyRecomputations: () => number;
93
+ resetDependencyRecomputations: () => void;
94
+ } & {
95
+ memoize: typeof import("reselect").weakMapMemoize;
96
+ argsMemoize: typeof import("reselect").weakMapMemoize;
97
+ }];
98
+ recomputations: () => number;
99
+ resetRecomputations: () => void;
100
+ dependencyRecomputations: () => number;
101
+ resetDependencyRecomputations: () => void;
102
+ } & {
103
+ memoize: typeof import("reselect").weakMapMemoize;
104
+ argsMemoize: typeof import("reselect").weakMapMemoize;
105
+ };
@@ -0,0 +1 @@
1
+ export {};