@opengeoweb/sigmet-airmet 9.37.0 → 10.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -172,6 +172,6 @@ const StartGeometry: React.FC<StartGeometryProps> = ({
172
172
 
173
173
  3. After all is working add the unit tests and make sure typescript linting will pass again, as `ConfigurableFormFieldProps` makes sure you're not forgetting to pass the config.
174
174
 
175
- ## Documentation
175
+ ### TypeScript Documentation
176
176
 
177
- https://opengeoweb.gitlab.io/opengeoweb/docs/sigmet-airmet/
177
+ - [TypeScript Docs](https://opengeoweb.gitlab.io/opengeoweb/typescript-docs/sigmet-airmet/)
package/index.esm.js CHANGED
@@ -5,16 +5,16 @@ import { FormControlLabel, Radio, Grid2, Typography, Box, Button, Checkbox, Menu
5
5
  import { useFormContext } from 'react-hook-form';
6
6
  import { FORM_FIELDS_NAMESPACE, formFieldsTranslations, useDraftFormHelpers, ReactHookFormRadioGroup, hasValidGeometry, ReactHookFormSelect, ReactHookFormNumberField, isInteger, isValidMax, isValidMin, isEmpty, ReactHookFormDateTime, countIntersectionPoints, hasMulitpleIntersections, ReactHookFormHiddenInput, isMaximumOneDrawing, isValidGeoJsonCoordinates, hasIntersectionWithFIR, isXHoursBefore, isXHoursAfter, ReactHookFormTextField, isLatitude, isNonOrBothCoordinates, isLongitude, ReactHookFormFormControl, isGeometryDirty, ReactHookFormProvider, defaultFormOptions } from '@opengeoweb/form-fields';
7
7
  import { useApiContext, useApi, createApiInstance, createFakeApiInstance, ApiProvider } from '@opengeoweb/api';
8
- import { defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, addSelectionTypeToGeoJSON, defaultPoint, addGeoJSONProperties, defaultBox, defaultPolygon, DRAWMODE, defaultDelete, getIcon, MapControls, MapViewLayer, useMapDrawTool, addFeatureProperties, rewindGeometry } from '@opengeoweb/webmap-react';
8
+ import { defaultGeoJSONStyleProperties, defaultIntersectionStyleProperties, addSelectionTypeToGeoJSON, defaultPoint, addGeoJSONProperties, defaultBox, defaultPolygon, DRAWMODE, defaultDelete, getIcon, MapViewLayer, useMapDrawTool, addFeatureProperties, rewindGeometry } from '@opengeoweb/webmap-react';
9
9
  import i18n from 'i18next';
10
10
  import { initReactI18next, useTranslation } from 'react-i18next';
11
11
  import { SHARED_NAMESPACE, sharedTranslations, PROJECTION, ToggleMenu, useIsMounted, dateUtils, CustomTooltip, ConfirmationServiceProvider, usePreventBrowserClose, useConfirmationDialog, AlertBanner, isAxiosError, getAxiosErrorMessage, StatusTag, usePoller, ErrorBoundary } from '@opengeoweb/shared';
12
- import { CORE_NAMESPACE, coreTranslations, LayerManagerMapButtonConnect, LegendMapButtonConnect, MultiDimensionSelectMapButtonsConnect, MapViewConnect, TimeSliderConnect, LegendConnect, LayerManagerConnect } from '@opengeoweb/core';
12
+ import { CORE_NAMESPACE, coreTranslations, LegendConnect, MapViewConnect, TimeSliderConnect } from '@opengeoweb/core';
13
+ import { useSelector, useDispatch, shallowEqual } from 'react-redux';
14
+ import { uiSelectors, useUpdateSharedData, mapSelectors, syncGroupsActions, layerActions, mapActions, defaultLayers, syncConstants } from '@opengeoweb/store';
13
15
  import { DrawFIRLand, ChevronLeft, Edit, Success, Clock } from '@opengeoweb/theme';
14
16
  import { LayerType, webmapUtils } from '@opengeoweb/webmap';
15
17
  import { debounce } from 'lodash';
16
- import { useDispatch, useSelector, shallowEqual } from 'react-redux';
17
- import { mapSelectors, syncGroupsActions, mapStoreActions, defaultLayers, syncConstants } from '@opengeoweb/store';
18
18
  import { Box as Box$1 } from '@mui/system';
19
19
  import { useAuthenticationContext } from '@opengeoweb/authentication';
20
20
 
@@ -1738,7 +1738,8 @@ var prepareFormValues = function prepareFormValues(product) {
1738
1738
  if (typeof value === 'object' && value !== null && value !== undefined) {
1739
1739
  var _ref2;
1740
1740
  var hasNaNValue = Object.keys(value).reduce(function (total, valKey) {
1741
- return !hasValue(String(value[valKey])) || total;
1741
+ var keyValue = value[valKey];
1742
+ return !hasValue(String(keyValue)) || total;
1742
1743
  }, false);
1743
1744
  return Object.assign({}, list, !hasNaNValue && (_ref2 = {}, _ref2[key] = value, _ref2));
1744
1745
  }
@@ -1997,6 +1998,22 @@ var getToolIcon = function getToolIcon(selectionType) {
1997
1998
  }
1998
1999
  return jsx(DrawFIRLand, {});
1999
2000
  };
2001
+ var useFormLayers = function useFormLayers(layers) {
2002
+ var formLayers = layers.map(function (layer) {
2003
+ return {
2004
+ id: layer.id,
2005
+ geoJSON: layer.geojson
2006
+ };
2007
+ }).filter(function (layer) {
2008
+ return layer.geoJSON !== undefined;
2009
+ });
2010
+ var sourcePanelId = useSelector(function (store) {
2011
+ return uiSelectors.getSourcePanelId(store, 'publicWarnings');
2012
+ });
2013
+ useUpdateSharedData({
2014
+ formFeatures: formLayers
2015
+ }, sourcePanelId);
2016
+ };
2000
2017
 
2001
2018
  var styles$1 = {
2002
2019
  radioInput: {
@@ -3127,9 +3144,9 @@ var SelectFIR = function SelectFIR(_ref) {
3127
3144
  locationIndicatorMWO = _getFirLocationDefaul.locationIndicatorMWO,
3128
3145
  firName = _getFirLocationDefaul.firName,
3129
3146
  firGeometry = _getFirLocationDefaul.firGeometry;
3130
- var onChangeLocationATSR = function onChangeLocationATSR(changeEvent) {
3131
- var value = changeEvent.target.value;
3132
- var valuesFromConfig = getFirLocationDefaultValues(productConfig, value);
3147
+ var onChangeLocationATSR = function onChangeLocationATSR(event) {
3148
+ var value = event.target.value; // MUI Select component's target has a `value` property
3149
+ var valuesFromConfig = getFirLocationDefaultValues(productConfig, value); // Ensure value is treated as a string
3133
3150
  // Updates values from config
3134
3151
  setValue('locationIndicatorATSU', valuesFromConfig.locationIndicatorATSU);
3135
3152
  setValue('firName', valuesFromConfig.firName);
@@ -3150,7 +3167,7 @@ var SelectFIR = function SelectFIR(_ref) {
3150
3167
  // Trigger validation for fields dependent on FIR config
3151
3168
  var fieldnames = ['phenomenon', 'validDateStart', 'validDateEnd', 'movementSpeed', 'level.value', 'lowerLevel.value'];
3152
3169
  triggerValidations(fieldnames, getValues, trigger);
3153
- onChange(changeEvent, valuesFromConfig.phenomena);
3170
+ onChange(event, valuesFromConfig.phenomena); // Pass the event and updated phenomena as arguments
3154
3171
  };
3155
3172
  return jsxs(ProductFormFieldLayout, {
3156
3173
  title: t('select-fir-title'),
@@ -3404,7 +3421,7 @@ var ValidFrom = function ValidFrom(_ref) {
3404
3421
  var getDefaultValidUntilValue = function getDefaultValidUntilValue(productConfig, phenomenon, fir, validFrom) {
3405
3422
  var maxHoursOfValidity = getMaxHoursOfValidity(phenomenon, fir || '', productConfig);
3406
3423
  // Set default validity to 2 hours for thunderstorms, otherwise use maxHoursOfValidity
3407
- var defaultHoursOfValidity = ['EMBD_TS', 'EMBD_TSGR', 'FRQ_TS', 'FRQ_TSGR', 'OBSC_TS', 'OBSC_TSGR', 'SQL_TSGR', 'ISOL_TS', 'ISOL_TSGR', 'OCNL_TS', 'OCNL_TSGR'].includes(phenomenon) ? 2 : maxHoursOfValidity;
3424
+ var defaultHoursOfValidity = ['EMBD_TS', 'EMBD_TSGR', 'FRQ_TS', 'FRQ_TSGR', 'OBSC_TS', 'OBSC_TSGR', 'SQL_TS', 'SQL_TSGR', 'ISOL_TS', 'ISOL_TSGR', 'OCNL_TS', 'OCNL_TSGR'].includes(phenomenon) ? 2 : maxHoursOfValidity;
3408
3425
  // Use validFrom if provided, otherwise use current UTC time
3409
3426
  var baseDate = validFrom ? new Date(validFrom) : dateUtils.utc();
3410
3427
  var dateWithValidity = dateUtils.add(baseDate, {
@@ -4443,7 +4460,6 @@ var Tac = function Tac(_ref) {
4443
4460
  });
4444
4461
  };
4445
4462
 
4446
- var source = 'app';
4447
4463
  var MapViewGeoJson = function MapViewGeoJson(_ref) {
4448
4464
  var initialBaseLayers = _ref.baseLayers,
4449
4465
  initialProjection = _ref.projection,
@@ -4454,7 +4470,7 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4454
4470
  var firstMap = useSelector(function (store) {
4455
4471
  return mapSelectors.getFirstMap(store);
4456
4472
  }, shallowEqual);
4457
- var firstMapId = firstMap && firstMap.id ? firstMap.id : null;
4473
+ var firstMapId = firstMap && firstMap.id ? firstMap.id : '';
4458
4474
  var mapLayers = useSelector(function (store) {
4459
4475
  return mapSelectors.getMapLayers(store, firstMapId);
4460
4476
  }, shallowEqual);
@@ -4478,13 +4494,13 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4478
4494
  mapId: mapId
4479
4495
  });
4480
4496
  });
4481
- dispatch(mapStoreActions.setLayers({
4497
+ dispatch(layerActions.setLayers({
4482
4498
  mapId: mapId,
4483
4499
  layers: layers
4484
4500
  }));
4485
4501
  }
4486
4502
  if (mapDimensions && mapDimensions.length) {
4487
- dispatch(mapStoreActions.mapChangeDimension({
4503
+ dispatch(mapActions.mapChangeDimension({
4488
4504
  mapId: mapId,
4489
4505
  dimension: mapDimensions[0],
4490
4506
  origin: 'MapViewGeoJson'
@@ -4493,12 +4509,12 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4493
4509
  var baseLayers = initialBaseLayers || [Object.assign({}, defaultLayers.overLayer, {
4494
4510
  id: "countryborders-" + mapId
4495
4511
  })];
4496
- dispatch(mapStoreActions.setBaseLayers({
4512
+ dispatch(layerActions.setBaseLayers({
4497
4513
  mapId: mapId,
4498
4514
  layers: baseLayers
4499
4515
  }));
4500
4516
  var projection = initialProjection || srsAndBboxDefault;
4501
- dispatch(mapStoreActions.setBbox({
4517
+ dispatch(mapActions.setBbox({
4502
4518
  mapId: mapId,
4503
4519
  bbox: projection.bbox,
4504
4520
  srs: projection.srs
@@ -4525,19 +4541,17 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4525
4541
  },
4526
4542
  "data-testid": "MapView",
4527
4543
  ref: mapWindowRef,
4528
- children: [jsxs(MapControls, {
4529
- children: [jsx(LayerManagerMapButtonConnect, {
4530
- source: source,
4531
- mapId: mapId
4532
- }), jsx(LegendMapButtonConnect, {
4533
- source: source,
4534
- mapId: mapId
4535
- }), jsx(MultiDimensionSelectMapButtonsConnect, {
4536
- source: source,
4537
- mapId: mapId
4538
- })]
4544
+ children: [jsx(LegendConnect, {
4545
+ showMapId: true,
4546
+ mapId: mapId
4539
4547
  }), jsx(MapViewConnect, {
4540
4548
  mapId: mapId,
4549
+ controls: {
4550
+ mapControlsPositionTop: 0,
4551
+ layerManagerAndLegend: true,
4552
+ zoomControls: true,
4553
+ dimensionSelect: true
4554
+ },
4541
4555
  children: geoJSONLayers.map(function (layer) {
4542
4556
  return jsx(MapViewLayer, Object.assign({}, layer), layer.id);
4543
4557
  })
@@ -4554,15 +4568,6 @@ var MapViewGeoJson = function MapViewGeoJson(_ref) {
4554
4568
  mapId: mapId,
4555
4569
  mapWindowRef: mapWindowRef
4556
4570
  })
4557
- }), jsx(LegendConnect, {
4558
- showMapId: true,
4559
- mapId: mapId,
4560
- source: source
4561
- }), jsx(LayerManagerConnect, {
4562
- mapId: mapId,
4563
- bounds: "parent",
4564
- source: source,
4565
- isDocked: true
4566
4571
  })]
4567
4572
  });
4568
4573
  };
@@ -4860,7 +4865,7 @@ var fir_areas$1 = {
4860
4865
  },
4861
4866
  {
4862
4867
  code: "SQL_TS",
4863
- description: "Squall line"
4868
+ description: "Squall line thunderstorm(s)"
4864
4869
  },
4865
4870
  {
4866
4871
  code: "SQL_TSGR",
@@ -6181,7 +6186,7 @@ var fir_areas$1 = {
6181
6186
  },
6182
6187
  {
6183
6188
  code: "SQL_TS",
6184
- description: "Squall line"
6189
+ description: "Squall line thunderstorm(s)"
6185
6190
  },
6186
6191
  {
6187
6192
  code: "SQL_TSGR",
@@ -8115,6 +8120,7 @@ var SigmetForm = function SigmetForm(_ref) {
8115
8120
  }), Object.assign({}, getStartLayer('geoJSON', 'geojsonlayer-start'), {
8116
8121
  exitDrawModeCallback: onExitDrawMode
8117
8122
  }), getEndLayer('geoJSONIntersection', 'geojsonlayer-intersection-end'), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
8123
+ useFormLayers(layers);
8118
8124
  var _useFormContext2 = useFormContext(),
8119
8125
  watch = _useFormContext2.watch,
8120
8126
  setValue = _useFormContext2.setValue,
@@ -8149,7 +8155,7 @@ var SigmetForm = function SigmetForm(_ref) {
8149
8155
  omitChange = _useConditionalFields.omitChange;
8150
8156
  var _useShortTestHelpers = useShortTestHelpers(),
8151
8157
  isShortTest = _useShortTestHelpers.isShortTest;
8152
- var onChangeFir = function onChangeFir(event, newPhenomenaList) {
8158
+ var onChangeFir = function onChangeFir(newPhenomenaList, event) {
8153
8159
  var newFIRValue = event == null ? void 0 : event.target.value;
8154
8160
  var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
8155
8161
  // delete shape
@@ -8212,7 +8218,9 @@ var SigmetForm = function SigmetForm(_ref) {
8212
8218
  productConfig: productConfig,
8213
8219
  isDisabled: isDisabled,
8214
8220
  isReadOnly: isReadOnly,
8215
- onChange: onChangeFir
8221
+ onChange: function onChange(event, newPhenomenaList) {
8222
+ onChangeFir(newPhenomenaList || [], event);
8223
+ }
8216
8224
  }), jsx(StartGeometry, {
8217
8225
  isReadOnly: isReadOnly,
8218
8226
  geoJSON: startGeoJSON,
@@ -8399,6 +8407,7 @@ var AirmetForm = function AirmetForm(_ref) {
8399
8407
  var layers = [getStartLayer('geoJSONIntersectionBounds', 'geojsonlayer-fir'), Object.assign({}, getStartLayer('geoJSON', 'geojsonlayer-start'), {
8400
8408
  exitDrawModeCallback: onExitDrawMode
8401
8409
  }), getStartLayer('geoJSONIntersection', 'geojsonlayer-intersection-start')];
8410
+ useFormLayers(layers);
8402
8411
  var _useFormContext2 = useFormContext(),
8403
8412
  watch = _useFormContext2.watch,
8404
8413
  setValue = _useFormContext2.setValue,
@@ -8434,7 +8443,7 @@ var AirmetForm = function AirmetForm(_ref) {
8434
8443
  hasSurfaceWind = _useConditionalFields.hasSurfaceWind,
8435
8444
  hasLevels = _useConditionalFields.hasLevels,
8436
8445
  hasCloudLevels = _useConditionalFields.hasCloudLevels;
8437
- var onChangeFir = function onChangeFir(event, newPhenomenaList) {
8446
+ var onChangeFir = function onChangeFir(newPhenomenaList, event) {
8438
8447
  var newFIRValue = event == null ? void 0 : event.target.value;
8439
8448
  var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
8440
8449
  // delete shape
@@ -8501,7 +8510,9 @@ var AirmetForm = function AirmetForm(_ref) {
8501
8510
  isReadOnly: isReadOnly,
8502
8511
  isDisabled: isDisabled,
8503
8512
  productConfig: productConfig,
8504
- onChange: onChangeFir
8513
+ onChange: function onChange(event, newPhenomenaList) {
8514
+ onChangeFir(newPhenomenaList || [], event);
8515
+ }
8505
8516
  }), jsx(StartGeometry, {
8506
8517
  isReadOnly: isReadOnly,
8507
8518
  geoJSON: startGeoJSON,
@@ -12215,4 +12226,4 @@ ConnectedModuleWrapper) {
12215
12226
  }
12216
12227
  };
12217
12228
 
12218
- export { AirmetComponentsLookUp, AirmetForm, AirmetType, CloudLevelUnits, ContentDialog, DEFAULT_MINIMUM_SURFACE_LEVEL, DEFAULT_MIN_MOVEMENT_SPEED, DEFAULT_MIN_VISIBILITY, DEFAULT_MIN_WIND_SPEED, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductAction, ProductFormDialog, ProductList, ProductListRow, ProductStatusDescription, SA_NAMESPACE, SigmetComponentsLookUp, SigmetForm, SigmetType, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createAirmetPostParameter, createApi$1 as createApi, createApi as createFakeApi, createSigmetPostParameter, extractUnitsToShow, firSelectionType, getActiveFIRArea, getAllFirAreas, getAllowedUnits, getBaseLayers, getConfirmationDialogButtonLabel, getConfirmationDialogCancelLabel, getConfirmationDialogContent, getConfirmationDialogTitle, getDefaultPhenomena, getDefaultValidityMinutesFromConfig, getDialogtitle, getDrawTools, getFieldLabel, getFir, getFirArea, getFirOptions, getHoursBeforeValidity, getLevelInFeet, getMaxCloudLevelValue, getMaxCloudLowerLevelValue, getMaxHoursOfValidity, getMaxLevelValue, getMaxMovementSpeedValue, getMaxPolygonPoints, getMaxVisibilityValue, getMaxWindSpeedValue, getMinCloudLevelValue, getMinCloudLowerLevelValue, getMinLevelValue, getMinMovementSpeedValue, getMinVisibilityValue, getMinWindSpeedValue, getOmitChangeFromConfig, getPhenomenon, getProductFormLifecycleButtons, getProductFormMode, getProductIssueDate, getProjection, getToolIcon, getValidFromDelayTimeMinutesFromConfig, hasMaxFeaturePoints, hasValue, isFir, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, isLevelLower, prepareFormValues, prepareProductValues, sigmetAirmetTranslations as saTranslations, sigmetConfig, triggerValidations, updateDrawToolsWithFir, useDelayedFormValues };
12229
+ export { AirmetComponentsLookUp, AirmetForm, AirmetType, CloudLevelUnits, ContentDialog, DEFAULT_MINIMUM_SURFACE_LEVEL, DEFAULT_MIN_MOVEMENT_SPEED, DEFAULT_MIN_VISIBILITY, DEFAULT_MIN_WIND_SPEED, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductAction, ProductFormDialog, ProductList, ProductListRow, ProductStatusDescription, SA_NAMESPACE, SigmetComponentsLookUp, SigmetForm, SigmetType, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createAirmetPostParameter, createApi$1 as createApi, createApi as createFakeApi, createSigmetPostParameter, extractUnitsToShow, firSelectionType, getActiveFIRArea, getAllFirAreas, getAllowedUnits, getBaseLayers, getConfirmationDialogButtonLabel, getConfirmationDialogCancelLabel, getConfirmationDialogContent, getConfirmationDialogTitle, getDefaultPhenomena, getDefaultValidityMinutesFromConfig, getDialogtitle, getDrawTools, getFieldLabel, getFir, getFirArea, getFirOptions, getHoursBeforeValidity, getLevelInFeet, getMaxCloudLevelValue, getMaxCloudLowerLevelValue, getMaxHoursOfValidity, getMaxLevelValue, getMaxMovementSpeedValue, getMaxPolygonPoints, getMaxVisibilityValue, getMaxWindSpeedValue, getMinCloudLevelValue, getMinCloudLowerLevelValue, getMinLevelValue, getMinMovementSpeedValue, getMinVisibilityValue, getMinWindSpeedValue, getOmitChangeFromConfig, getPhenomenon, getProductFormLifecycleButtons, getProductFormMode, getProductIssueDate, getProjection, getToolIcon, getValidFromDelayTimeMinutesFromConfig, hasMaxFeaturePoints, hasValue, isFir, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, isLevelLower, prepareFormValues, prepareProductValues, sigmetAirmetTranslations as saTranslations, sigmetConfig, triggerValidations, updateDrawToolsWithFir, useDelayedFormValues, useFormLayers };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/sigmet-airmet",
3
- "version": "9.37.0",
3
+ "version": "10.1.0",
4
4
  "description": "GeoWeb Sigmet/Airmet library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -4,6 +4,5 @@ export interface RadioButtonAndLabelProps {
4
4
  label: string;
5
5
  disabled?: boolean;
6
6
  checked?: boolean;
7
- onChange?: (event: React.ChangeEvent, checked: boolean) => void;
8
7
  }
9
8
  export declare const RadioButtonAndLabel: React.FC<RadioButtonAndLabelProps>;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { FieldValues, UseFormGetValues, UseFormTrigger } from 'react-hook-form';
3
3
  import { layerTypes, mapTypes } from '@opengeoweb/store';
4
- import { DrawMode } from '@opengeoweb/webmap-react';
4
+ import { DrawMode, MapViewLayerProps } from '@opengeoweb/webmap-react';
5
5
  import { LevelUnits, ATSRLocation, ICAOLocation, ProductStatus, CancelSigmet, Sigmet, ProductCanbe, SigmetFromBackend, SigmetFromFrontend, ProductAction, Airmet, CancelAirmet, ProductConfig, Firareas, FIRConfigSigmet, AirmetFromBackend, AirmetFromFrontend, ProductType, AviationProduct, FIRLocationGeoJson, AirmetConfig, FIRConfigAirmet, StartOrEndDrawing, AviationPhenomenon } from '../../types';
6
6
  export declare const getDefaultPhenomena: (productConfig: ProductConfig, currentFir?: string) => {
7
7
  phenomena: AviationPhenomenon[];
@@ -77,4 +77,5 @@ export declare const firSelectionType = "fir";
77
77
  export declare const getDrawTools: (type: StartOrEndDrawing, firShape: GeoJSON.FeatureCollection) => DrawMode[];
78
78
  export declare const updateDrawToolsWithFir: (drawTools: DrawMode[], newFirShape: GeoJSON.FeatureCollection) => DrawMode[];
79
79
  export declare const getToolIcon: (selectionType: string) => React.ReactElement;
80
+ export declare const useFormLayers: (layers: MapViewLayerProps[]) => void;
80
81
  export {};