@opengeoweb/soundings 12.4.1 → 12.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/soundings",
3
- "version": "12.4.1",
3
+ "version": "12.5.0",
4
4
  "description": "GeoWeb soundings library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,19 +8,19 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/api": "12.4.1",
11
+ "@opengeoweb/api": "12.5.0",
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
16
  "i18next": "^25.0.1",
17
- "@opengeoweb/shared": "12.4.1",
17
+ "@opengeoweb/shared": "12.5.0",
18
18
  "@mui/material": "^7.0.1",
19
- "@opengeoweb/store": "12.4.1",
19
+ "@opengeoweb/store": "12.5.0",
20
20
  "react-redux": "^9.2.0",
21
- "@opengeoweb/theme": "12.4.1",
21
+ "@opengeoweb/theme": "12.5.0",
22
22
  "@reduxjs/toolkit": "^2.6.1",
23
- "@opengeoweb/timeslider": "12.4.1",
23
+ "@opengeoweb/timeslider": "12.5.0",
24
24
  "react-window": "^1.8.10"
25
25
  },
26
26
  "module": "./index.esm.js",
@@ -1,5 +1,5 @@
1
1
  import { LocationsResponseFromBE, SoundingsInstances, CoverageCollection } from './types';
2
- export declare const getCollectionLocations: (collectionId: string) => Promise<LocationsResponseFromBE>;
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>;
2
+ export declare const getCollectionLocations: (collectionId: string, baseUrl: string) => Promise<LocationsResponseFromBE>;
3
+ export declare const getCollectionInstance: (collectionId: string, baseUrl: string) => Promise<SoundingsInstances>;
4
+ export declare const getEdrCollectionForLocation: (collectionId: string, baseUrl: string, instanceId: string | undefined, locationId: string, parameters: string[], datetime: string) => Promise<CoverageCollection>;
5
+ export declare const getEdrCollectionForPosition: (collectionId: string, baseUrl: string, instanceId: string | undefined, coordinates: [number, number], parameters: string[], datetime: string) => Promise<CoverageCollection>;
@@ -2,8 +2,21 @@ import { SoundingsCollection } from '@opengeoweb/shared';
2
2
  import { SoundingFeature } from './types';
3
3
  import { SourceType } from '../../store/types';
4
4
  import { SoundingsCollectionsWithInstances } from '../../components/Soundings/types';
5
+ import { ServiceWithLocations } from '../../components/MenuBar/LocationsMenu';
5
6
  type Coordinates = [number, number];
6
- export declare const parameters: string[];
7
+ export declare const defaultParameterMappings: {
8
+ temperature: string;
9
+ windDirection: string;
10
+ windSpeed: string;
11
+ windU: string;
12
+ windV: string;
13
+ pressure: string;
14
+ dewpoint: string;
15
+ humidity: string;
16
+ specificHumidity: string;
17
+ relativeHumidity: string;
18
+ };
19
+ export declare const getParameterMappings: (parameterMappings: Record<string, string>) => string[];
7
20
  export declare const useMultipleSources: (sources: SourceType[], locations: Record<string, string | undefined | Coordinates>, datetime?: string) => {
8
21
  data: SoundingFeature[][];
9
22
  isPending: boolean;
@@ -14,4 +27,9 @@ export declare const useGetCollectionsInstances: (collections?: SoundingsCollect
14
27
  isPending: boolean;
15
28
  error: Error | null | undefined;
16
29
  };
30
+ export declare const useGetCollectionLocations: (collections: SoundingsCollection[], isDialogOpen?: boolean) => {
31
+ data: ServiceWithLocations[] | undefined;
32
+ isPending: boolean;
33
+ error: Error | null | undefined;
34
+ };
17
35
  export {};
@@ -92,4 +92,5 @@ export interface SoundingsInstance {
92
92
  export interface SoundingsInstances {
93
93
  instances: SoundingsInstance[];
94
94
  }
95
+ export type SoundingDiagramType = 'SKEWT' | 'BIJVOET';
95
96
  export {};
@@ -1,2 +1,2 @@
1
1
  import { CoverageCollection, SoundingFeature } from './types';
2
- export declare function parseCoverageCollection(response: CoverageCollection): SoundingFeature[];
2
+ export declare function parseCoverageCollection(response: CoverageCollection, parameterMappings: Record<string, string>): SoundingFeature[];
@@ -0,0 +1 @@
1
+ export {};
@@ -5,12 +5,15 @@ export type ServiceWithLocations = LocationsResponseFromBE & {
5
5
  };
6
6
  interface Props {
7
7
  services: ServiceWithLocations[];
8
+ selectedSourcesAmount: number;
8
9
  selectedLocations: Record<string, string | undefined>;
9
10
  isOpen: boolean;
10
11
  onClose: () => void;
11
12
  updateSelectedLocation: (sourceId: string, locationId: string | undefined) => void;
12
13
  onMouseDown?: () => void;
13
14
  order?: number;
15
+ isLoading?: boolean;
16
+ error?: Error | null;
14
17
  }
15
- export declare const LocationsMenu: ({ services, selectedLocations, isOpen, onClose, updateSelectedLocation, onMouseDown, order, }: Props) => React.ReactElement;
18
+ export declare const LocationsMenu: ({ services, selectedSourcesAmount, selectedLocations, isOpen, onClose, updateSelectedLocation, onMouseDown, order, isLoading, error, }: Props) => React.ReactElement;
16
19
  export {};
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Margin } from './drawUtils';
3
- import { SoundingFeature } from '../../api/edr-api/types';
3
+ import { SoundingDiagramType, SoundingFeature } from '../../api/edr-api/types';
4
4
  export interface SoundingProps {
5
5
  data: SoundingFeature[][];
6
6
  svgDimensions: {
@@ -9,5 +9,6 @@ export interface SoundingProps {
9
9
  margin: Margin;
10
10
  };
11
11
  showTooltip?: boolean;
12
+ diagramType?: SoundingDiagramType;
12
13
  }
13
14
  export declare const Soundings: React.FC<SoundingProps>;
@@ -5,3 +5,5 @@ export default meta;
5
5
  type Story = StoryObj<typeof Soundings>;
6
6
  export declare const SoundingsExample: Story;
7
7
  export declare const SoundingsExampleDark: Story;
8
+ export declare const SoundingsBijvoetExample: Story;
9
+ export declare const SoundingsBijvoetExampleDark: Story;
@@ -0,0 +1,16 @@
1
+ export declare const maxPressure = 1050;
2
+ export declare const minPressure = 150;
3
+ export declare const staticPressureArray: number[];
4
+ export declare const dp = -5;
5
+ export declare const minTemperature = -40;
6
+ export declare const maxTemperature = 40.6;
7
+ export declare const T_KAPPA = 0.2857;
8
+ export declare const T_KTHETA = 332;
9
+ export declare const KELVIN = 273.156;
10
+ export declare const WV_CA = 17.56881;
11
+ export declare const WV_CB = 241.8945;
12
+ export declare const WV_CE = 610.7;
13
+ export declare const EPSILON = 0.622;
14
+ export declare const R_AIR = 287.04;
15
+ export declare const HEATCP = 1005;
16
+ export declare const REFERENCE_PRESSURE: number;
@@ -1,5 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import * as d3 from 'd3';
3
+ import { SoundingDiagramType } from '../../api/edr-api/types';
4
+ import { ScalesType } from './types';
3
5
  export declare const SOUNDING_COLORS: string[];
4
6
  export interface Margin {
5
7
  top: number;
@@ -12,6 +14,7 @@ interface InitializeSvg {
12
14
  width: number;
13
15
  height: number;
14
16
  margin: Margin;
17
+ diagramType: SoundingDiagramType;
15
18
  }
16
19
  interface AddLegends {
17
20
  width: number;
@@ -19,23 +22,27 @@ interface AddLegends {
19
22
  }
20
23
  interface DrawAxis {
21
24
  svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
22
- xScale: d3.ScaleLinear<number, number>;
23
- yScale: d3.ScaleLogarithmic<number, number>;
25
+ xScale: ScalesType;
26
+ yScale: ScalesType;
24
27
  height: number;
28
+ diagramType: SoundingDiagramType;
25
29
  }
26
30
  interface PlotSounding {
27
31
  temperatureValues: number[];
28
32
  pressureValues: number[];
29
33
  color: string;
30
34
  lineStyle: string;
31
- xScale: d3.ScaleLinear<number, number>;
32
- yScale: d3.ScaleLogarithmic<number, number>;
35
+ xScale: ScalesType;
36
+ yScale: ScalesType;
33
37
  height: number;
34
38
  svg: d3.Selection<SVGElement, unknown, HTMLElement, undefined>;
39
+ diagramType: SoundingDiagramType;
35
40
  }
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;
41
+ export declare const initializeSvg: ({ svgRef, width, height, margin, diagramType, }: InitializeSvg) => d3.Selection<SVGGElement, unknown, null, undefined>;
42
+ export declare const createScales: (diagramType: SoundingDiagramType, width: number, height: number, minPressure: number, maxPressure: number, minTemperature: number, maxTemperature: number) => [ScalesType, ScalesType];
43
+ export declare const drawAxes: ({ svg, xScale, yScale, height, diagramType, }: DrawAxis) => void;
38
44
  export declare const addLegends: ({ svg, width }: AddLegends) => void;
39
- export declare const plotSounding: ({ temperatureValues, pressureValues, color, lineStyle, xScale, yScale, height, svg, }: PlotSounding) => void;
45
+ export declare const mapToPlot: (diagramType: SoundingDiagramType, filteredPressureValues: number[], filteredTemperatureValues: number[], xScale: ScalesType, yScale: ScalesType, height: number) => [number, number][];
46
+ export declare const plotSounding: ({ temperatureValues, pressureValues, color, lineStyle, xScale, yScale, height, svg, diagramType, }: PlotSounding) => void;
40
47
  export declare const filterDomainRangeForParameter: (pressureDomain: number[], parameterDomain: number[]) => [number[], number[]];
41
48
  export {};
@@ -3,3 +3,4 @@ import { SoundingsInstance } from '../../api/edr-api/types';
3
3
  export interface SoundingsCollectionsWithInstances extends SoundingsCollection {
4
4
  instances: SoundingsInstance[];
5
5
  }
6
+ export type ScalesType = d3.ScaleLinear<number, number, never> | d3.ScaleLogarithmic<number, number, never>;
@@ -1,6 +1,6 @@
1
1
  import * as d3 from 'd3';
2
2
  import { Margin } from '../Soundings/drawUtils';
3
- import { SoundingFeature } from '../../api/edr-api/types';
3
+ import { SoundingDiagramType, SoundingFeature } from '../../api/edr-api/types';
4
4
  interface DrawSoundingsTooltipData {
5
5
  pressureData: number[];
6
6
  interpolatePressure: (value: number) => number;
@@ -24,6 +24,7 @@ interface DrawSoundingsTooltipProps {
24
24
  dewpointRefd3: d3.Selection<HTMLDivElement | null, unknown, null, undefined>;
25
25
  windRefd3: d3.Selection<HTMLDivElement | null, unknown, null, undefined>;
26
26
  tooltipData: DrawSoundingsTooltipData[];
27
+ diagramType: SoundingDiagramType;
27
28
  }
28
- export declare const drawSoundingsTooltip: ({ event, yScale, svgRectangle, pressureRefd3, tempRefd3, dewpointRefd3, windRefd3, margin, width, tooltipData, }: DrawSoundingsTooltipProps) => void;
29
+ export declare const drawSoundingsTooltip: ({ event, yScale, svgRectangle, pressureRefd3, tempRefd3, dewpointRefd3, windRefd3, margin, width, tooltipData, diagramType, }: DrawSoundingsTooltipProps) => void;
29
30
  export {};
@@ -0,0 +1,6 @@
1
+ export declare const tempToKelvin: (value: number) => number;
2
+ export declare const pressToPascal: (value: number) => number;
3
+ export declare const bijvoetInterpolationTheta: (minRange: number, maxRange: number) => (t: number) => number;
4
+ export declare const bijvoetInterpolationPres: (minRange: number, maxRange: number) => (t: number) => number;
5
+ export declare const pressureFromPosition: (y: number) => number;
6
+ export declare const calculateThetaFromPressTemp: (pressure: number, temperature: number, basePressure?: number) => number;
@@ -1,11 +1,19 @@
1
1
  import * as d3 from 'd3';
2
+ import { ScalesType } from '../Soundings/types';
2
3
  interface DrawDryAdiabatsProps {
3
4
  staticPressureArray: number[];
4
5
  height: number;
5
- xScale: d3.ScaleLinear<number, number>;
6
- yScale: d3.ScaleLogarithmic<number, number>;
6
+ xScale: ScalesType;
7
+ yScale: ScalesType;
7
8
  dp: number;
8
9
  svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
9
10
  }
10
11
  export declare const drawDryAdiabats: ({ staticPressureArray, height, xScale, yScale, svg, dp, }: DrawDryAdiabatsProps) => void;
12
+ interface DrawDryAdiabatsBijvoetProps {
13
+ staticPressureArray: number[];
14
+ xScale: ScalesType;
15
+ yScale: ScalesType;
16
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
17
+ }
18
+ export declare const drawDryAdiabatsBijvoet: ({ staticPressureArray, xScale, yScale, svg, }: DrawDryAdiabatsBijvoetProps) => void;
11
19
  export {};
@@ -1,11 +1,14 @@
1
1
  import * as d3 from 'd3';
2
+ import { SoundingDiagramType } from '../../api/edr-api/types';
3
+ import { ScalesType } from '../Soundings/types';
2
4
  export declare const isobarValues: number[];
3
5
  interface DrawIsobarsProps {
6
+ diagramType: SoundingDiagramType;
4
7
  minTemperature: number;
5
8
  maxTemperature: number;
6
- xScale: d3.ScaleLinear<number, number>;
7
- yScale: d3.ScaleLogarithmic<number, number>;
9
+ xScale: ScalesType;
10
+ yScale: ScalesType;
8
11
  svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
9
12
  }
10
- export declare const drawIsobars: ({ minTemperature, maxTemperature, xScale, yScale, svg, }: DrawIsobarsProps) => void;
13
+ export declare const drawIsobars: ({ diagramType, minTemperature, maxTemperature, xScale, yScale, svg, }: DrawIsobarsProps) => void;
11
14
  export {};
@@ -1,10 +1,19 @@
1
1
  import * as d3 from 'd3';
2
+ import { ScalesType } from '../Soundings/types';
2
3
  interface DrawIsohumesProps {
3
4
  staticPressureArray: number[];
4
5
  height: number;
5
- xScale: d3.ScaleLinear<number, number>;
6
- yScale: d3.ScaleLogarithmic<number, number>;
6
+ xScale: ScalesType;
7
+ yScale: ScalesType;
7
8
  svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
8
9
  }
9
10
  export declare const drawIsohumes: ({ staticPressureArray, height, xScale, yScale, svg, }: DrawIsohumesProps) => void;
11
+ interface DrawIsohumesBijvoetProps {
12
+ staticPressureArray: number[];
13
+ height: number;
14
+ xScale: ScalesType;
15
+ yScale: ScalesType;
16
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
17
+ }
18
+ export declare const drawIsohumesBijvoet: ({ staticPressureArray, height, xScale, yScale, svg, }: DrawIsohumesBijvoetProps) => void;
10
19
  export {};
@@ -1,10 +1,19 @@
1
1
  import * as d3 from 'd3';
2
+ import { ScalesType } from '../Soundings/types';
2
3
  interface DrawIsothermsProps {
3
4
  staticPressureArray: number[];
4
5
  height: number;
5
- xScale: d3.ScaleLinear<number, number>;
6
- yScale: d3.ScaleLogarithmic<number, number>;
6
+ xScale: ScalesType;
7
+ yScale: ScalesType;
7
8
  svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
8
9
  }
9
10
  export declare const drawIsotherms: ({ staticPressureArray, height, xScale, yScale, svg, }: DrawIsothermsProps) => void;
11
+ interface DrawIsothermsBijvoetProps {
12
+ staticPressureArray: number[];
13
+ xScale: ScalesType;
14
+ yScale: ScalesType;
15
+ height: number;
16
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
17
+ }
18
+ export declare const drawIsothermsBijvoet: ({ staticPressureArray, xScale, yScale, svg, height, }: DrawIsothermsBijvoetProps) => void;
10
19
  export {};
@@ -1,4 +1,5 @@
1
1
  import * as d3 from 'd3';
2
+ import { ScalesType } from '../Soundings/types';
2
3
  interface DrawMoistAdiabatsProps {
3
4
  staticPressureArray: number[];
4
5
  minTemperature: number;
@@ -8,9 +9,17 @@ interface DrawMoistAdiabatsProps {
8
9
  width: number;
9
10
  height: number;
10
11
  dp: number;
11
- xScale: d3.ScaleLinear<number, number>;
12
- yScale: d3.ScaleLogarithmic<number, number>;
12
+ xScale: ScalesType;
13
+ yScale: ScalesType;
13
14
  svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
14
15
  }
15
16
  export declare const drawMoistAdiabats: ({ staticPressureArray, minTemperature, maxTemperature, minPressure, maxPressure, width, height, xScale, yScale, svg, dp, }: DrawMoistAdiabatsProps) => void;
17
+ interface DrawMoistAdiabatsBijvoetProps {
18
+ minPressure: number;
19
+ maxPressure: number;
20
+ xScale: ScalesType;
21
+ yScale: ScalesType;
22
+ svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
23
+ }
24
+ export declare const drawMoistAdiabatsBijvoet: ({ minPressure, maxPressure, xScale, yScale, svg, }: DrawMoistAdiabatsBijvoetProps) => void;
16
25
  export {};
@@ -1,4 +1,7 @@
1
+ import { SoundingDiagramType } from '../../api/edr-api/types';
2
+ import { ScalesType } from '../Soundings/types';
1
3
  interface DrawStaticLinesProps {
4
+ diagramType: SoundingDiagramType;
2
5
  dp: number;
3
6
  staticPressureArray: number[];
4
7
  minTemperature: number;
@@ -7,9 +10,9 @@ interface DrawStaticLinesProps {
7
10
  maxPressure: number;
8
11
  width: number;
9
12
  height: number;
10
- xScale: d3.ScaleLinear<number, number>;
11
- yScale: d3.ScaleLogarithmic<number, number>;
13
+ xScale: ScalesType;
14
+ yScale: ScalesType;
12
15
  svg: d3.Selection<SVGElement, unknown, HTMLElement, unknown>;
13
16
  }
14
- export declare const drawStaticLines: ({ dp, staticPressureArray, minTemperature, maxTemperature, height, width, xScale, yScale, minPressure, maxPressure, svg, }: DrawStaticLinesProps) => void;
17
+ export declare const drawStaticLines: ({ diagramType, dp, staticPressureArray, minTemperature, maxTemperature, height, width, xScale, yScale, minPressure, maxPressure, svg, }: DrawStaticLinesProps) => void;
15
18
  export {};
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Margin } from '../Soundings/drawUtils';
3
+ import { ScalesType } from '../Soundings/types';
3
4
  export interface WindDataType {
4
5
  pressure: number;
5
6
  windSpeed: number;
@@ -7,14 +8,12 @@ export interface WindDataType {
7
8
  }
8
9
  export interface DrawWindBarbsProps {
9
10
  svgRef: React.MutableRefObject<SVGSVGElement | null>;
11
+ yScale: ScalesType;
10
12
  data: WindDataType[];
11
13
  width: number;
12
- height: number;
13
14
  margin: Margin;
14
- minPressure: number;
15
- maxPressure: number;
16
15
  barbColor?: string;
17
16
  }
18
- export declare const drawWindBarbs: ({ svgRef, data, width, height, margin, minPressure, maxPressure, barbColor, }: DrawWindBarbsProps) => void;
17
+ export declare const drawWindBarbs: ({ svgRef, yScale, data, width, margin, barbColor, }: DrawWindBarbsProps) => void;
19
18
  export declare const removeItemsExponential: (array: WindDataType[]) => WindDataType[];
20
19
  export declare const getWindSymbol: (value: number) => Node | null;
@@ -124,3 +124,44 @@ export declare const getSelectedSourcesAmount: ((state: SoundingsModuleState) =>
124
124
  memoize: typeof import("reselect").weakMapMemoize;
125
125
  argsMemoize: typeof import("reselect").weakMapMemoize;
126
126
  };
127
+ export declare const getSelectedSourcesIds: ((state: SoundingsModuleState) => string[]) & {
128
+ clearCache: () => void;
129
+ resultsCount: () => number;
130
+ resetResultsCount: () => void;
131
+ } & {
132
+ resultFunc: (resultFuncArgs_0: SourceType[]) => string[];
133
+ memoizedResultFunc: ((resultFuncArgs_0: SourceType[]) => string[]) & {
134
+ clearCache: () => void;
135
+ resultsCount: () => number;
136
+ resetResultsCount: () => void;
137
+ };
138
+ lastResult: () => string[];
139
+ dependencies: [((state: SoundingsModuleState) => SourceType[]) & {
140
+ clearCache: () => void;
141
+ resultsCount: () => number;
142
+ resetResultsCount: () => void;
143
+ } & {
144
+ resultFunc: (resultFuncArgs_0: SoundingsStore) => SourceType[];
145
+ memoizedResultFunc: ((resultFuncArgs_0: SoundingsStore) => SourceType[]) & {
146
+ clearCache: () => void;
147
+ resultsCount: () => number;
148
+ resetResultsCount: () => void;
149
+ };
150
+ lastResult: () => SourceType[];
151
+ dependencies: [(store: SoundingsModuleState) => SoundingsStore];
152
+ recomputations: () => number;
153
+ resetRecomputations: () => void;
154
+ dependencyRecomputations: () => number;
155
+ resetDependencyRecomputations: () => void;
156
+ } & {
157
+ memoize: typeof import("reselect").weakMapMemoize;
158
+ argsMemoize: typeof import("reselect").weakMapMemoize;
159
+ }];
160
+ recomputations: () => number;
161
+ resetRecomputations: () => void;
162
+ dependencyRecomputations: () => number;
163
+ resetDependencyRecomputations: () => void;
164
+ } & {
165
+ memoize: typeof import("reselect").weakMapMemoize;
166
+ argsMemoize: typeof import("reselect").weakMapMemoize;
167
+ };
@@ -1,14 +1,18 @@
1
1
  export interface SourceType {
2
2
  collectionId: string;
3
+ url: string;
3
4
  instanceId?: string;
5
+ parameterMappings?: Record<string, string>;
4
6
  }
5
7
  export interface UpdateSourcePayload {
6
8
  sourceId: string;
7
9
  value: SourceSelection;
8
10
  }
9
11
  export interface SourceSelection {
12
+ url?: string;
10
13
  instanceId?: string;
11
14
  isChecked?: boolean;
15
+ parameterMappings?: Record<string, string>;
12
16
  }
13
17
  export interface UpdateLocationPayload {
14
18
  sourceId: string;