@opengeoweb/sigmet-airmet 8.4.0 → 8.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.
Files changed (2) hide show
  1. package/index.esm.js +43 -19
  2. package/package.json +10 -10
package/index.esm.js CHANGED
@@ -945,7 +945,7 @@ var getMaxCloudLowerLevelValue = function getMaxCloudLowerLevelValue(unit, selec
945
945
  // Return max value for selected unit - if not present in list, return null
946
946
  return cloud_lower_level_max !== undefined && cloud_lower_level_max[unit] ? cloud_lower_level_max[unit] : null;
947
947
  };
948
- // Retrieve min value from config - if not set, there is no max value for this unit so we return null
948
+ // Retrieve max value from config - if not set, there is no max value for this unit so we return null
949
949
  var getMaxLevelValue = function getMaxLevelValue(unit, selectedFIR, productConfig) {
950
950
  // Use first FIR in list if no FIR selected
951
951
  var _getActiveFIRArea5 = getActiveFIRArea(selectedFIR, productConfig),
@@ -1496,17 +1496,25 @@ var Levels = function Levels(_ref) {
1496
1496
  unregister = _useFormContext.unregister;
1497
1497
  var _useDraftFormHelpers = useDraftFormHelpers(),
1498
1498
  isRequired = _useDraftFormHelpers.isRequired;
1499
+ var level = watch('level.value');
1499
1500
  var levelInfoMode = watch('levelInfoMode');
1501
+ var isRadioactiveCloud = watch('phenomenon') === 'RDOACT_CLD';
1500
1502
  var getFIRValue = function getFIRValue() {
1501
1503
  return getValues('locationIndicatorATSR');
1502
1504
  };
1503
1505
  // Get allowed level units based on selected FIR - if no FIR selected, allow all default units
1504
1506
  var allowedLevelUnitsForFir = getAllowedUnits(getFIRValue(), productConfig, 'level_unit', LevelUnits);
1507
+ var radioactiveCloudLevel = getMaxLevelValue(LevelUnits.FL, getFIRValue(), productConfig);
1505
1508
  React__default.useEffect(function () {
1506
1509
  if (levelInfoMode !== 'BETW') {
1507
1510
  unregister('lowerLevel');
1508
1511
  }
1509
- }, [levelInfoMode, unregister]);
1512
+ if (isRadioactiveCloud) {
1513
+ setValue('level.unit', 'FL');
1514
+ setValue('level.value', radioactiveCloudLevel);
1515
+ triggerValidations(['level.value'], getValues, trigger);
1516
+ }
1517
+ }, [getValues, isRadioactiveCloud, levelInfoMode, radioactiveCloudLevel, setValue, trigger, unregister]);
1510
1518
  return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
1511
1519
  title: "Levels",
1512
1520
  sx: styles$2.containerItem
@@ -1520,7 +1528,7 @@ var Levels = function Levels(_ref) {
1520
1528
  isRequired: isRequired
1521
1529
  }
1522
1530
  },
1523
- disabled: isDisabled,
1531
+ disabled: isDisabled || isRadioactiveCloud,
1524
1532
  isReadOnly: isReadOnly,
1525
1533
  onChange: function onChange() {
1526
1534
  // Reset default value for the level value to '' so when it rerenders it uses this empty default value
@@ -1534,8 +1542,8 @@ var Levels = function Levels(_ref) {
1534
1542
  label: "At",
1535
1543
  checked: levelInfoMode === 'AT' || levelInfoMode === 'TOPS',
1536
1544
  "data-testid": "levels-AT",
1537
- disabled: isDisabled
1538
- }), levelInfoMode === 'AT' || levelInfoMode === 'TOPS' ? /*#__PURE__*/React__default.createElement(Grid, {
1545
+ disabled: isDisabled || isRadioactiveCloud
1546
+ }), (levelInfoMode === 'AT' || levelInfoMode === 'TOPS') && !isRadioactiveCloud ? /*#__PURE__*/React__default.createElement(Grid, {
1539
1547
  item: true,
1540
1548
  xs: 12,
1541
1549
  container: true,
@@ -1626,7 +1634,7 @@ var Levels = function Levels(_ref) {
1626
1634
  label: "Between",
1627
1635
  checked: levelInfoMode === 'BETW' || levelInfoMode === 'BETW_SFC',
1628
1636
  "data-testid": "levels-BETW",
1629
- disabled: isDisabled
1637
+ disabled: isDisabled || isRadioactiveCloud
1630
1638
  }), levelInfoMode === 'BETW' || levelInfoMode === 'BETW_SFC' ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Grid, {
1631
1639
  item: true,
1632
1640
  xs: 12,
@@ -1656,7 +1664,7 @@ var Levels = function Levels(_ref) {
1656
1664
  },
1657
1665
  size: "small",
1658
1666
  sx: styles$2.unit,
1659
- disabled: isDisabled,
1667
+ disabled: isDisabled || isRadioactiveCloud,
1660
1668
  isReadOnly: isReadOnly,
1661
1669
  defaultValue: 'FL',
1662
1670
  onChange: function onChange() {
@@ -1673,6 +1681,7 @@ var Levels = function Levels(_ref) {
1673
1681
  xs: 8,
1674
1682
  md: 6
1675
1683
  }, /*#__PURE__*/React__default.createElement(ReactHookFormNumberField, {
1684
+ value: level || '',
1676
1685
  name: "level.value",
1677
1686
  label: "Upper level",
1678
1687
  sx: styles$2.levelField,
@@ -1701,7 +1710,7 @@ var Levels = function Levels(_ref) {
1701
1710
  }
1702
1711
  }
1703
1712
  },
1704
- disabled: isDisabled,
1713
+ disabled: isDisabled || isRadioactiveCloud,
1705
1714
  isReadOnly: isReadOnly,
1706
1715
  onChange: function onChange() {
1707
1716
  triggerValidations(['lowerLevel.value'], getValues, trigger);
@@ -1729,7 +1738,7 @@ var Levels = function Levels(_ref) {
1729
1738
  },
1730
1739
  name: "checkedF",
1731
1740
  color: "secondary",
1732
- disabled: isDisabled
1741
+ disabled: isDisabled || isRadioactiveCloud
1733
1742
  }),
1734
1743
  "data-testid": "levels-SFC",
1735
1744
  label: "SFC"
@@ -1808,7 +1817,7 @@ var Levels = function Levels(_ref) {
1808
1817
  }))))) : null, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
1809
1818
  value: "ABV",
1810
1819
  label: "Above",
1811
- disabled: isDisabled,
1820
+ disabled: isDisabled || isRadioactiveCloud,
1812
1821
  checked: levelInfoMode === 'ABV' || levelInfoMode === 'TOPS_ABV',
1813
1822
  "data-testid": "levels-ABV"
1814
1823
  }), levelInfoMode === 'ABV' || levelInfoMode === 'TOPS_ABV' ? /*#__PURE__*/React__default.createElement(Grid, {
@@ -2006,7 +2015,8 @@ var ObservationForecastTime = function ObservationForecastTime(_ref) {
2006
2015
  onChange: function onChange() {
2007
2016
  return _onChange();
2008
2017
  },
2009
- sx: styles$2.helperText
2018
+ sx: styles$2.helperText,
2019
+ "data-testid": "obs-fcst-time"
2010
2020
  })) : null;
2011
2021
  };
2012
2022
 
@@ -2054,6 +2064,12 @@ var Phenomenon = function Phenomenon(_ref) {
2054
2064
  onChange: function onChange() {
2055
2065
  if (getValues('movementType') === 'NO_VA_EXP') {
2056
2066
  setValue('movementType', null);
2067
+ } else if (getValues('phenomenon') === 'RDOACT_CLD') {
2068
+ // By definition, phenomenon 'RDOACT_CLD'shall not ever move but stay stationary
2069
+ setValue('movementType', 'STATIONARY');
2070
+ // Also by definition, phenomenon 'RDOACT_CLD' is strictly defined to always span from surface to upper level
2071
+ // with no lower explicit level values defined, hence level mode shall be set to 'BETW_SFC' instead of 'BETW'.
2072
+ setValue('levelInfoMode', 'BETW_SFC');
2057
2073
  }
2058
2074
  triggerValidations(['validDateStart', 'validDateEnd'], getValues, trigger);
2059
2075
  _onChange();
@@ -2233,6 +2249,9 @@ var Progress = function Progress(_ref) {
2233
2249
  unregister('endGeometryIntersect');
2234
2250
  }
2235
2251
  }, [movementType, unregister]);
2252
+ var isSigmet = productType === 'sigmet';
2253
+ var isRadioactiveCloud = watch('phenomenon') === 'RDOACT_CLD';
2254
+ var isVolcanicCloud = watch('phenomenon') === 'VA_CLD';
2236
2255
  return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
2237
2256
  title: "Progress",
2238
2257
  sx: styles$2.containerItem
@@ -2256,22 +2275,27 @@ var Progress = function Progress(_ref) {
2256
2275
  onChangeTool(deleteTool);
2257
2276
  }
2258
2277
  }
2259
- }, watch('phenomenon') === 'VA_CLD' && /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2278
+ }, isVolcanicCloud && /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2260
2279
  value: "NO_VA_EXP",
2261
2280
  label: "No volcanic ash expected",
2262
2281
  disabled: isDisabled,
2263
2282
  "data-testid": "movementType-NO_VA_EXP"
2264
- }), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2283
+ }), /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2265
2284
  value: "STATIONARY",
2266
2285
  label: "Stationary",
2267
- disabled: isDisabled,
2286
+ disabled: isDisabled || isRadioactiveCloud,
2268
2287
  "data-testid": "movementType-STATIONARY"
2269
2288
  }), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2270
2289
  value: "MOVEMENT",
2271
2290
  label: "Movement",
2272
- disabled: isDisabled,
2291
+ disabled: isDisabled || isRadioactiveCloud,
2273
2292
  "data-testid": "movementType-MOVEMENT"
2274
- }), movementType === 'MOVEMENT' && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Grid, {
2293
+ }), isSigmet && isRadioactiveCloud && /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2294
+ value: "FORECAST_POSITION",
2295
+ label: "End position",
2296
+ disabled: isDisabled || isRadioactiveCloud,
2297
+ "data-testid": "movementType-FORECAST_POSITION"
2298
+ })), movementType === 'MOVEMENT' && !isRadioactiveCloud && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Grid, {
2275
2299
  item: true,
2276
2300
  xs: 12
2277
2301
  }, /*#__PURE__*/React__default.createElement(ReactHookFormSelect, {
@@ -2361,12 +2385,12 @@ var Progress = function Progress(_ref) {
2361
2385
  onChange: function onChange(event) {
2362
2386
  return event && event.stopPropagation();
2363
2387
  }
2364
- })))), productType === 'sigmet' && /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2388
+ })))), isSigmet && !isRadioactiveCloud && /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
2365
2389
  value: "FORECAST_POSITION",
2366
2390
  label: "End position",
2367
2391
  disabled: isDisabled,
2368
2392
  "data-testid": "movementType-FORECAST_POSITION"
2369
- })), productType === 'sigmet' && movementType === 'FORECAST_POSITION' && /*#__PURE__*/React__default.createElement(Grid, {
2393
+ })), isSigmet && !isRadioactiveCloud && movementType === 'FORECAST_POSITION' && /*#__PURE__*/React__default.createElement(Grid, {
2370
2394
  item: true,
2371
2395
  xs: 12,
2372
2396
  "data-testid": "endGeometry",
@@ -15543,7 +15567,7 @@ var fakeSigmetList = [{
15543
15567
  locationIndicatorATSR: 'EHAA',
15544
15568
  locationIndicatorMWO: 'EHDB',
15545
15569
  isObservationOrForecast: 'OBS',
15546
- observationOrForecastTime: dateUtils.dateToString(dateUtils.add(dateUtils.utc(), {
15570
+ observationOrForecastTime: dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
15547
15571
  hours: 1
15548
15572
  })),
15549
15573
  movementType: 'STATIONARY',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/sigmet-airmet",
3
- "version": "8.4.0",
3
+ "version": "8.4.1",
4
4
  "description": "GeoWeb Sigmet/Airmet library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -13,15 +13,15 @@
13
13
  "dependencies": {
14
14
  "@mui/material": "5.12.0",
15
15
  "@mui/system": "5.14.14",
16
- "@opengeoweb/api": "8.4.0",
17
- "@opengeoweb/authentication": "8.4.0",
18
- "@opengeoweb/core": "8.4.0",
19
- "@opengeoweb/form-fields": "8.4.0",
20
- "@opengeoweb/shared": "8.4.0",
21
- "@opengeoweb/store": "8.4.0",
22
- "@opengeoweb/theme": "8.4.0",
23
- "@opengeoweb/webmap": "8.4.0",
24
- "@opengeoweb/webmap-react": "8.4.0",
16
+ "@opengeoweb/api": "8.4.1",
17
+ "@opengeoweb/authentication": "8.4.1",
18
+ "@opengeoweb/core": "8.4.1",
19
+ "@opengeoweb/form-fields": "8.4.1",
20
+ "@opengeoweb/shared": "8.4.1",
21
+ "@opengeoweb/store": "8.4.1",
22
+ "@opengeoweb/theme": "8.4.1",
23
+ "@opengeoweb/webmap": "8.4.1",
24
+ "@opengeoweb/webmap-react": "8.4.1",
25
25
  "@redux-eggs/redux-toolkit": "2.2.0",
26
26
  "@redux-eggs/saga-extension": "2.2.0",
27
27
  "@reduxjs/toolkit": "1.9.7",