@opengeoweb/soundings 12.2.0 → 12.4.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/index.esm.js +1781 -554
- package/package.json +11 -9
- package/src/index.d.ts +4 -0
- package/src/lib/api/edr-api/api.d.ts +4 -5
- package/src/lib/api/edr-api/hooks.d.ts +16 -3
- package/src/lib/api/edr-api/types.d.ts +0 -23
- package/src/lib/{parser/coverages.d.ts → api/edr-api/utils.d.ts} +1 -1
- package/src/lib/components/EDRFetchAndParse.stories.d.ts +12 -5
- package/src/lib/components/MenuBar/LocationsMenu.d.ts +16 -0
- package/src/lib/components/{SoundingsMenuBar → MenuBar}/MenuBar.d.ts +2 -1
- package/src/lib/components/MenuBar/MenuBar.stories.d.ts +20 -0
- package/src/lib/components/MenuBar/MenuBarConnect.spec.d.ts +1 -0
- package/src/lib/components/MenuBar/SoundingsSourceDialogConnect.spec.d.ts +1 -0
- package/src/lib/components/MenuBar/SoundingsSourceMenu.d.ts +16 -0
- package/src/lib/components/Providers/Providers.d.ts +12 -0
- package/src/lib/components/{Soundings.d.ts → Soundings/Soundings.d.ts} +4 -5
- package/src/lib/components/Soundings/Soundings.spec.d.ts +1 -0
- package/src/lib/components/Soundings/SoundingsConnect.d.ts +6 -0
- package/src/lib/components/Soundings/SoundingsConnect.integration.spec.d.ts +1 -0
- package/src/lib/components/Soundings/SoundingsConnect.spec.d.ts +1 -0
- package/src/lib/components/Soundings/SoundingsConnect.stories.d.ts +35 -0
- package/src/lib/components/{DrawUtils.d.ts → Soundings/drawUtils.d.ts} +7 -6
- package/src/lib/components/Soundings/drawUtils.spec.d.ts +1 -0
- package/src/lib/components/{types.d.ts → Soundings/types.d.ts} +1 -1
- package/src/lib/components/SoundingsDemo.stories.d.ts +15 -0
- package/src/lib/components/SoundingsTimeSlider/SoundingsTimeSlider.d.ts +7 -0
- package/src/lib/components/SoundingsTimeSlider/SoundingsTimeSlider.spec.d.ts +1 -0
- package/src/lib/components/SoundingsTimeSlider/SoundingsTimeSlider.stories.d.ts +8 -0
- package/src/lib/components/SoundingsTimeSlider/SoundingsTimeSliderConnect.d.ts +6 -0
- package/src/lib/components/SoundingsTimeSlider/SoundingsTimeSliderConnect.spec.d.ts +1 -0
- package/src/lib/components/SoundingsTimeSlider/index.d.ts +2 -0
- package/src/lib/components/SoundingsTooltip/utils.d.ts +29 -0
- package/src/lib/components/SoundingsTooltip/utils.spec.d.ts +1 -0
- package/src/lib/components/StaticLines/drawIsobars.d.ts +1 -0
- package/src/lib/components/WindBarbs/utils.d.ts +20 -0
- package/src/lib/components/WindBarbs/utils.spec.d.ts +1 -0
- package/src/lib/components/WindBarbs/windsymbols.d.ts +5 -0
- package/src/lib/components/index.d.ts +3 -3
- package/src/lib/store/reducer.d.ts +8 -0
- package/src/lib/store/selectors.d.ts +126 -0
- package/src/lib/store/selectors.spec.d.ts +1 -0
- package/src/lib/store/store.d.ts +15 -0
- package/src/lib/store/types.d.ts +30 -0
- package/src/lib/{i18n.d.ts → utils/i18n.d.ts} +1 -0
- package/src/lib/utils/soundingsLookUp.spec.d.ts +1 -0
- package/src/lib/components/SoundingsConnect.d.ts +0 -5
- package/src/lib/components/SoundingsMenuBar/LocationsMenu.d.ts +0 -11
- package/src/lib/components/SoundingsMenuBar/MenuBar.stories.d.ts +0 -26
- package/src/lib/components/SoundingsSourceMenu.d.ts +0 -9
- package/src/lib/utils/conversions.d.ts +0 -11
- /package/src/lib/{utils/testHandlers.d.ts → api/edr-api/fakeApi.d.ts} +0 -0
- /package/src/lib/{components/Soundings.spec.d.ts → api/edr-api/hooks.spec.d.ts} +0 -0
- /package/src/lib/components/{SoundingsMenuBar → MenuBar}/LocationsMenuConnect.d.ts +0 -0
- /package/src/lib/components/{SoundingsMenuBar → MenuBar}/MenuBarConnect.d.ts +0 -0
- /package/src/lib/components/{SoundingsMenuBar/MenuBarConnect.spec.d.ts → MenuBar/MenuBarConnect.integration.spec.d.ts} +0 -0
- /package/src/lib/components/{SoundingsSourceDialogConnect.d.ts → MenuBar/SoundingsSourceDialogConnect.d.ts} +0 -0
- /package/src/lib/components/{Soundings.stories.d.ts → Soundings/Soundings.stories.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/soundings",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.4.1",
|
|
4
4
|
"description": "GeoWeb soundings library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,18 +8,20 @@
|
|
|
8
8
|
"url": "git@gitlab.com:opengeoweb/opengeoweb.git"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@opengeoweb/api": "12.
|
|
11
|
+
"@opengeoweb/api": "12.4.1",
|
|
12
12
|
"@tanstack/react-query": "^5.69.2",
|
|
13
13
|
"react": "^18.3.1",
|
|
14
14
|
"d3": "^7.9.0",
|
|
15
15
|
"react-i18next": "^15.1.1",
|
|
16
|
-
"i18next": "^
|
|
17
|
-
"@opengeoweb/shared": "12.
|
|
18
|
-
"@mui/material": "^
|
|
19
|
-
"@opengeoweb/store": "12.
|
|
20
|
-
"react-redux": "^
|
|
21
|
-
"@opengeoweb/theme": "12.
|
|
22
|
-
"
|
|
16
|
+
"i18next": "^25.0.1",
|
|
17
|
+
"@opengeoweb/shared": "12.4.1",
|
|
18
|
+
"@mui/material": "^7.0.1",
|
|
19
|
+
"@opengeoweb/store": "12.4.1",
|
|
20
|
+
"react-redux": "^9.2.0",
|
|
21
|
+
"@opengeoweb/theme": "12.4.1",
|
|
22
|
+
"@reduxjs/toolkit": "^2.6.1",
|
|
23
|
+
"@opengeoweb/timeslider": "12.4.1",
|
|
24
|
+
"react-window": "^1.8.10"
|
|
23
25
|
},
|
|
24
26
|
"module": "./index.esm.js",
|
|
25
27
|
"type": "module",
|
package/src/index.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import soundingsTranslations from '../locales/soundingsTranslations.json';
|
|
2
|
+
export { soundingsTranslations };
|
|
1
3
|
export * from './lib/components';
|
|
2
4
|
export * from './lib/utils/soundingsLookUp';
|
|
3
5
|
export * from './lib/api/edr-api/types';
|
|
6
|
+
export * from './lib/store/store';
|
|
7
|
+
export * from './lib/utils/i18n';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const getCollections: () => Promise<CollectionsResponseFromBE>;
|
|
1
|
+
import { LocationsResponseFromBE, SoundingsInstances, CoverageCollection } from './types';
|
|
3
2
|
export declare const getCollectionLocations: (collectionId: string) => Promise<LocationsResponseFromBE>;
|
|
4
|
-
export declare const getCollectionInstance: (
|
|
5
|
-
export declare const getEdrCollectionForLocation: (collectionId: string, locationId: string, parameters: string[], datetime: string) => Promise<CoverageCollection>;
|
|
6
|
-
export declare const getEdrCollectionForPosition: (collectionId: string, coordinates: [number, number], parameters: string[], datetime: string) => Promise<CoverageCollection>;
|
|
3
|
+
export declare const getCollectionInstance: (collectionId: string) => Promise<SoundingsInstances>;
|
|
4
|
+
export declare const getEdrCollectionForLocation: (collectionId: string, instanceId: string | undefined, locationId: string, parameters: string[], datetime: string) => Promise<CoverageCollection>;
|
|
5
|
+
export declare const getEdrCollectionForPosition: (collectionId: string, instanceId: string | undefined, coordinates: [number, number], parameters: string[], datetime: string) => Promise<CoverageCollection>;
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SoundingsCollection } from '@opengeoweb/shared';
|
|
2
2
|
import { SoundingFeature } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { SourceType } from '../../store/types';
|
|
4
|
+
import { SoundingsCollectionsWithInstances } from '../../components/Soundings/types';
|
|
5
|
+
type Coordinates = [number, number];
|
|
6
|
+
export declare const parameters: string[];
|
|
7
|
+
export declare const useMultipleSources: (sources: SourceType[], locations: Record<string, string | undefined | Coordinates>, datetime?: string) => {
|
|
8
|
+
data: SoundingFeature[][];
|
|
9
|
+
isPending: boolean;
|
|
10
|
+
error: Error | null | undefined;
|
|
11
|
+
};
|
|
12
|
+
export declare const useGetCollectionsInstances: (collections?: SoundingsCollection[], isDialogOpen?: boolean) => {
|
|
13
|
+
data: SoundingsCollectionsWithInstances[] | undefined;
|
|
14
|
+
isPending: boolean;
|
|
15
|
+
error: Error | null | undefined;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -1,28 +1,5 @@
|
|
|
1
1
|
import { Geometry } from 'geojson';
|
|
2
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
3
|
export interface FeaturesFromBE {
|
|
27
4
|
id: string;
|
|
28
5
|
type: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { CoverageCollection, SoundingFeature } from '
|
|
1
|
+
import { CoverageCollection, SoundingFeature } from './types';
|
|
2
2
|
export declare function parseCoverageCollection(response: CoverageCollection): SoundingFeature[];
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Meta } from '@storybook/react/*';
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { Meta, StoryObj } from '@storybook/react/*';
|
|
3
|
+
import { getEdrCollectionForLocation, getEdrCollectionForPosition } from '../api/edr-api/api';
|
|
4
|
+
interface FetchVerticalProfileProps {
|
|
5
|
+
fetchRawDataCall: typeof getEdrCollectionForLocation | typeof getEdrCollectionForPosition;
|
|
6
|
+
location: string | [number, number];
|
|
7
|
+
description: string;
|
|
8
|
+
}
|
|
9
|
+
declare const VerticalProfileFetchingExample: React.FC<FetchVerticalProfileProps>;
|
|
10
|
+
declare const meta: Meta<typeof VerticalProfileFetchingExample>;
|
|
5
11
|
export default meta;
|
|
6
|
-
|
|
7
|
-
export declare const
|
|
12
|
+
type Story = StoryObj<typeof VerticalProfileFetchingExample>;
|
|
13
|
+
export declare const VerticalProfileFetchingByLocExample: Story;
|
|
14
|
+
export declare const VerticalProfileFetchingByPosExample: Story;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LocationsResponseFromBE } from '../../api/edr-api/types';
|
|
2
|
+
export type ServiceWithLocations = LocationsResponseFromBE & {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
};
|
|
6
|
+
interface Props {
|
|
7
|
+
services: ServiceWithLocations[];
|
|
8
|
+
selectedLocations: Record<string, string | undefined>;
|
|
9
|
+
isOpen: boolean;
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
updateSelectedLocation: (sourceId: string, locationId: string | undefined) => void;
|
|
12
|
+
onMouseDown?: () => void;
|
|
13
|
+
order?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare const LocationsMenu: ({ services, selectedLocations, isOpen, onClose, updateSelectedLocation, onMouseDown, order, }: Props) => React.ReactElement;
|
|
16
|
+
export {};
|
|
@@ -6,6 +6,7 @@ export declare enum MenuOptions {
|
|
|
6
6
|
interface SoundingsMenuBarProps {
|
|
7
7
|
handleClick: (menuType: MenuOptions) => void;
|
|
8
8
|
isOpen: Record<MenuOptions, boolean>;
|
|
9
|
+
selectedSourcesAmount?: number;
|
|
9
10
|
}
|
|
10
|
-
export declare const SoundingsMenuBar: ({ handleClick, isOpen, }: SoundingsMenuBarProps) => React.ReactElement;
|
|
11
|
+
export declare const SoundingsMenuBar: ({ handleClick, isOpen, selectedSourcesAmount, }: SoundingsMenuBarProps) => React.ReactElement;
|
|
11
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SoundingsCollectionsWithInstances } from '../Soundings/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
|
+
onMouseDown?: () => void;
|
|
11
|
+
order?: number;
|
|
12
|
+
isLoading?: boolean;
|
|
13
|
+
error?: Error | null;
|
|
14
|
+
}
|
|
15
|
+
export declare const SoundingsSourceMenu: ({ soundingsCollections, isOpen, handleClose, updateCollection, sourceSelections, onMouseDown, order, isLoading, error, }: SoundingsSourceMenuProps) => React.ReactElement;
|
|
16
|
+
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 {};
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Margin } from './
|
|
3
|
-
import { SoundingFeature } from '
|
|
2
|
+
import { Margin } from './drawUtils';
|
|
3
|
+
import { SoundingFeature } from '../../api/edr-api/types';
|
|
4
4
|
export interface SoundingProps {
|
|
5
|
-
data:
|
|
6
|
-
features: SoundingFeature[];
|
|
7
|
-
};
|
|
5
|
+
data: SoundingFeature[][];
|
|
8
6
|
svgDimensions: {
|
|
9
7
|
width: number;
|
|
10
8
|
height: number;
|
|
11
9
|
margin: Margin;
|
|
12
10
|
};
|
|
11
|
+
showTooltip?: boolean;
|
|
13
12
|
}
|
|
14
13
|
export declare const Soundings: React.FC<SoundingProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
title: string;
|
|
3
|
+
tags: string[];
|
|
4
|
+
};
|
|
5
|
+
export default _default;
|
|
6
|
+
export declare const SoundingsConnectLoading: {
|
|
7
|
+
(): React.ReactElement;
|
|
8
|
+
parameters: {
|
|
9
|
+
msw: {
|
|
10
|
+
handlers: {
|
|
11
|
+
edr: import("msw").HttpHandler[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const SoundingsConnectError: {
|
|
17
|
+
(): React.ReactElement;
|
|
18
|
+
parameters: {
|
|
19
|
+
msw: {
|
|
20
|
+
handlers: {
|
|
21
|
+
edr: import("msw").HttpHandler[];
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare const SoundingsDemoNoDataExample: {
|
|
27
|
+
(): React.ReactElement;
|
|
28
|
+
parameters: {
|
|
29
|
+
msw: {
|
|
30
|
+
handlers: {
|
|
31
|
+
edr: import("msw").HttpHandler[];
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -7,24 +7,23 @@ export interface Margin {
|
|
|
7
7
|
bottom: number;
|
|
8
8
|
left: number;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
interface InitializeSvg {
|
|
11
11
|
svgRef: React.MutableRefObject<SVGSVGElement | null>;
|
|
12
12
|
width: number;
|
|
13
13
|
height: number;
|
|
14
14
|
margin: Margin;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
interface AddLegends {
|
|
17
17
|
width: number;
|
|
18
18
|
svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
interface DrawAxis {
|
|
21
21
|
svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
|
|
22
22
|
xScale: d3.ScaleLinear<number, number>;
|
|
23
23
|
yScale: d3.ScaleLogarithmic<number, number>;
|
|
24
24
|
height: number;
|
|
25
|
-
width: number;
|
|
26
25
|
}
|
|
27
|
-
|
|
26
|
+
interface PlotSounding {
|
|
28
27
|
temperatureValues: number[];
|
|
29
28
|
pressureValues: number[];
|
|
30
29
|
color: string;
|
|
@@ -35,6 +34,8 @@ export interface PlotSounding {
|
|
|
35
34
|
svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
|
|
36
35
|
}
|
|
37
36
|
export declare const initializeSvg: ({ svgRef, width, height, margin, }: InitializeSvg) => d3.Selection<SVGGElement, unknown, null, undefined>;
|
|
38
|
-
export declare const drawAxes: ({ svg, xScale, yScale, height
|
|
37
|
+
export declare const drawAxes: ({ svg, xScale, yScale, height }: DrawAxis) => void;
|
|
39
38
|
export declare const addLegends: ({ svg, width }: AddLegends) => void;
|
|
40
39
|
export declare const plotSounding: ({ temperatureValues, pressureValues, color, lineStyle, xScale, yScale, height, svg, }: PlotSounding) => void;
|
|
40
|
+
export declare const filterDomainRangeForParameter: (pressureDomain: number[], parameterDomain: number[]) => [number[], number[]];
|
|
41
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SoundingsCollection } from '@opengeoweb/shared';
|
|
2
|
-
import { SoundingsInstance } from '
|
|
2
|
+
import { SoundingsInstance } from '../../api/edr-api/types';
|
|
3
3
|
export interface SoundingsCollectionsWithInstances extends SoundingsCollection {
|
|
4
4
|
instances: SoundingsInstance[];
|
|
5
5
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
title: string;
|
|
3
|
+
tags: string[];
|
|
4
|
+
};
|
|
5
|
+
export default _default;
|
|
6
|
+
export declare const SoundingsDemoRealApi: {
|
|
7
|
+
(): React.ReactElement;
|
|
8
|
+
parameters: {
|
|
9
|
+
msw: {
|
|
10
|
+
handlers: {
|
|
11
|
+
edr: import("msw").HttpHandler[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface SoundingsTimeSliderProps {
|
|
3
|
+
timesteps: string[];
|
|
4
|
+
selectedTime: string;
|
|
5
|
+
updateSelectedTime: (date: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const SoundingsTimeSlider: ({ timesteps, selectedTime, updateSelectedTime, }: SoundingsTimeSliderProps) => React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react/*';
|
|
2
|
+
import { SoundingsTimeSlider } from './SoundingsTimeSlider';
|
|
3
|
+
declare const meta: Meta<typeof SoundingsTimeSlider>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof SoundingsTimeSlider>;
|
|
6
|
+
export declare const ComponentLight: Story;
|
|
7
|
+
export declare const ComponentDark: Story;
|
|
8
|
+
export declare const NoTimesteps: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as d3 from 'd3';
|
|
2
|
+
import { Margin } from '../Soundings/drawUtils';
|
|
3
|
+
import { SoundingFeature } from '../../api/edr-api/types';
|
|
4
|
+
interface DrawSoundingsTooltipData {
|
|
5
|
+
pressureData: number[];
|
|
6
|
+
interpolatePressure: (value: number) => number;
|
|
7
|
+
interpolateTemperature: (value: number) => number;
|
|
8
|
+
interpolateDewpoint: (value: number) => number;
|
|
9
|
+
interpolateWindSpeed: (value: number) => number;
|
|
10
|
+
interpolateWindDirection: (value: number) => number;
|
|
11
|
+
}
|
|
12
|
+
export declare const constructTooltipData: (data: SoundingFeature[][]) => DrawSoundingsTooltipData[];
|
|
13
|
+
interface DrawSoundingsTooltipProps {
|
|
14
|
+
event: {
|
|
15
|
+
pageY: number;
|
|
16
|
+
clientY: number;
|
|
17
|
+
};
|
|
18
|
+
yScale: d3.ScaleLinear<number, number>;
|
|
19
|
+
svgRectangle: DOMRect;
|
|
20
|
+
margin: Margin;
|
|
21
|
+
width: number;
|
|
22
|
+
pressureRefd3: d3.Selection<HTMLDivElement | null, unknown, null, undefined>;
|
|
23
|
+
tempRefd3: d3.Selection<HTMLDivElement | null, unknown, null, undefined>;
|
|
24
|
+
dewpointRefd3: d3.Selection<HTMLDivElement | null, unknown, null, undefined>;
|
|
25
|
+
windRefd3: d3.Selection<HTMLDivElement | null, unknown, null, undefined>;
|
|
26
|
+
tooltipData: DrawSoundingsTooltipData[];
|
|
27
|
+
}
|
|
28
|
+
export declare const drawSoundingsTooltip: ({ event, yScale, svgRectangle, pressureRefd3, tempRefd3, dewpointRefd3, windRefd3, margin, width, tooltipData, }: DrawSoundingsTooltipProps) => void;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Margin } from '../Soundings/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 removeItemsExponential: (array: WindDataType[]) => WindDataType[];
|
|
20
|
+
export declare const getWindSymbol: (value: number) => Node | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './Soundings';
|
|
2
|
-
export * from './SoundingsSourceDialogConnect';
|
|
3
|
-
export * from './
|
|
1
|
+
export * from './Soundings/SoundingsConnect';
|
|
2
|
+
export * from './MenuBar/SoundingsSourceDialogConnect';
|
|
3
|
+
export * from './MenuBar/LocationsMenuConnect';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Draft, PayloadAction } from '@reduxjs/toolkit';
|
|
2
|
+
import { SoundingsStore, UpdateLocationPayload, UpdateSourcePayload, UpdateTimePayload } 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
|
+
updateSelectedTime: (draft: Draft<SoundingsStore>, payloadAction: PayloadAction<UpdateTimePayload>) => void;
|
|
8
|
+
}, "soundings">;
|
|
@@ -0,0 +1,126 @@
|
|
|
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 getSelectedTime: ((state: SoundingsModuleState) => string) & {
|
|
45
|
+
clearCache: () => void;
|
|
46
|
+
resultsCount: () => number;
|
|
47
|
+
resetResultsCount: () => void;
|
|
48
|
+
} & {
|
|
49
|
+
resultFunc: (resultFuncArgs_0: SoundingsStore) => string;
|
|
50
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => string) & {
|
|
51
|
+
clearCache: () => void;
|
|
52
|
+
resultsCount: () => number;
|
|
53
|
+
resetResultsCount: () => void;
|
|
54
|
+
};
|
|
55
|
+
lastResult: () => string;
|
|
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 getSelectedSources: ((state: SoundingsModuleState) => SourceType[]) & {
|
|
66
|
+
clearCache: () => void;
|
|
67
|
+
resultsCount: () => number;
|
|
68
|
+
resetResultsCount: () => void;
|
|
69
|
+
} & {
|
|
70
|
+
resultFunc: (resultFuncArgs_0: SoundingsStore) => SourceType[];
|
|
71
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => SourceType[]) & {
|
|
72
|
+
clearCache: () => void;
|
|
73
|
+
resultsCount: () => number;
|
|
74
|
+
resetResultsCount: () => void;
|
|
75
|
+
};
|
|
76
|
+
lastResult: () => SourceType[];
|
|
77
|
+
dependencies: [(store: SoundingsModuleState) => SoundingsStore];
|
|
78
|
+
recomputations: () => number;
|
|
79
|
+
resetRecomputations: () => void;
|
|
80
|
+
dependencyRecomputations: () => number;
|
|
81
|
+
resetDependencyRecomputations: () => void;
|
|
82
|
+
} & {
|
|
83
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
84
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
85
|
+
};
|
|
86
|
+
export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) => number) & {
|
|
87
|
+
clearCache: () => void;
|
|
88
|
+
resultsCount: () => number;
|
|
89
|
+
resetResultsCount: () => void;
|
|
90
|
+
} & {
|
|
91
|
+
resultFunc: (resultFuncArgs_0: SourceType[]) => number;
|
|
92
|
+
memoizedResultFunc: ((resultFuncArgs_0: SourceType[]) => number) & {
|
|
93
|
+
clearCache: () => void;
|
|
94
|
+
resultsCount: () => number;
|
|
95
|
+
resetResultsCount: () => void;
|
|
96
|
+
};
|
|
97
|
+
lastResult: () => number;
|
|
98
|
+
dependencies: [((state: SoundingsModuleState) => SourceType[]) & {
|
|
99
|
+
clearCache: () => void;
|
|
100
|
+
resultsCount: () => number;
|
|
101
|
+
resetResultsCount: () => void;
|
|
102
|
+
} & {
|
|
103
|
+
resultFunc: (resultFuncArgs_0: SoundingsStore) => SourceType[];
|
|
104
|
+
memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => SourceType[]) & {
|
|
105
|
+
clearCache: () => void;
|
|
106
|
+
resultsCount: () => number;
|
|
107
|
+
resetResultsCount: () => void;
|
|
108
|
+
};
|
|
109
|
+
lastResult: () => SourceType[];
|
|
110
|
+
dependencies: [(store: SoundingsModuleState) => SoundingsStore];
|
|
111
|
+
recomputations: () => number;
|
|
112
|
+
resetRecomputations: () => void;
|
|
113
|
+
dependencyRecomputations: () => number;
|
|
114
|
+
resetDependencyRecomputations: () => void;
|
|
115
|
+
} & {
|
|
116
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
117
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
118
|
+
}];
|
|
119
|
+
recomputations: () => number;
|
|
120
|
+
resetRecomputations: () => void;
|
|
121
|
+
dependencyRecomputations: () => number;
|
|
122
|
+
resetDependencyRecomputations: () => void;
|
|
123
|
+
} & {
|
|
124
|
+
memoize: typeof import("reselect").weakMapMemoize;
|
|
125
|
+
argsMemoize: typeof import("reselect").weakMapMemoize;
|
|
126
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|