@opengeoweb/sigmet-airmet 9.3.1 → 9.4.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/index.esm.js +196 -40
- package/package.json +1 -1
- package/src/lib/components/ProductForms/ProductFormFields/DrawTools.d.ts +1 -0
- package/src/lib/hooks/useShortTestHelpers.d.ts +4 -0
- package/src/lib/hooks/useShortTestHelpers.spec.d.ts +1 -0
- package/src/lib/types.d.ts +18 -8
- package/src/lib/utils/mockdata/fakeSigmetList.d.ts +2 -0
package/index.esm.js
CHANGED
|
@@ -417,6 +417,15 @@ function _nonIterableRest() {
|
|
|
417
417
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
418
418
|
}
|
|
419
419
|
|
|
420
|
+
/**
|
|
421
|
+
* The possible type for the airmet
|
|
422
|
+
*/
|
|
423
|
+
var AirmetType;
|
|
424
|
+
(function (AirmetType) {
|
|
425
|
+
AirmetType["NORMAL"] = "Normal";
|
|
426
|
+
AirmetType["TEST"] = "Test";
|
|
427
|
+
AirmetType["EXERCISE"] = "Exercise";
|
|
428
|
+
})(AirmetType || (AirmetType = {}));
|
|
420
429
|
/**
|
|
421
430
|
* The possible type for the sigmet
|
|
422
431
|
*/
|
|
@@ -425,6 +434,8 @@ var SigmetType;
|
|
|
425
434
|
SigmetType["NORMAL"] = "Normal";
|
|
426
435
|
SigmetType["TEST"] = "Test";
|
|
427
436
|
SigmetType["EXERCISE"] = "Exercise";
|
|
437
|
+
SigmetType["SHORT_TEST"] = "Short test";
|
|
438
|
+
SigmetType["SHORT_VA_TEST"] = "Short VA test";
|
|
428
439
|
})(SigmetType || (SigmetType = {}));
|
|
429
440
|
/**
|
|
430
441
|
* The possible phenomena for the sigmet
|
|
@@ -761,6 +772,51 @@ var ProductFormFieldLayout = function ProductFormFieldLayout(_a) {
|
|
|
761
772
|
}, children));
|
|
762
773
|
};
|
|
763
774
|
|
|
775
|
+
/* *
|
|
776
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
777
|
+
* you may not use this file except in compliance with the License.
|
|
778
|
+
* You may obtain a copy of the License at
|
|
779
|
+
*
|
|
780
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
781
|
+
*
|
|
782
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
783
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
784
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
785
|
+
* See the License for the specific language governing permissions and
|
|
786
|
+
* limitations under the License.
|
|
787
|
+
*
|
|
788
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
789
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
790
|
+
* */
|
|
791
|
+
var useShortTestHelpers = function useShortTestHelpers() {
|
|
792
|
+
var _useFormContext = useFormContext(),
|
|
793
|
+
getValues = _useFormContext.getValues,
|
|
794
|
+
setValue = _useFormContext.setValue,
|
|
795
|
+
clearErrors = _useFormContext.clearErrors;
|
|
796
|
+
var unusedFields = ['isObservationOrForecast', 'change', 'startGeometry', 'startGeometryIntersect', 'endGeometry', 'endGeometryIntersect', 'levelInfoMode', 'level', 'lowerLevel', 'movementType', 'movementDirection', 'movementUnit', 'movementSpeed', 'change', 'vaSigmetVolcanoName', 'vaSigmetVolcanoCoordinates.latitude', 'vaSigmetVolcanoCoordinates.longitude'];
|
|
797
|
+
var isShortTest = function isShortTest() {
|
|
798
|
+
var type = getValues('type');
|
|
799
|
+
return type === 'SHORT_TEST' || type === 'SHORT_VA_TEST';
|
|
800
|
+
};
|
|
801
|
+
var onTypeChange = function onTypeChange() {
|
|
802
|
+
if (getValues('type') === 'SHORT_TEST') {
|
|
803
|
+
setValue('phenomenon', 'EMBD_TS');
|
|
804
|
+
} else if (getValues('type') === 'SHORT_VA_TEST') {
|
|
805
|
+
setValue('phenomenon', 'VA_CLD');
|
|
806
|
+
}
|
|
807
|
+
if (isShortTest()) {
|
|
808
|
+
unusedFields.forEach(function (field) {
|
|
809
|
+
setValue(field, null);
|
|
810
|
+
});
|
|
811
|
+
clearErrors(unusedFields);
|
|
812
|
+
}
|
|
813
|
+
};
|
|
814
|
+
return {
|
|
815
|
+
isShortTest: isShortTest,
|
|
816
|
+
onTypeChange: onTypeChange
|
|
817
|
+
};
|
|
818
|
+
};
|
|
819
|
+
|
|
764
820
|
/* *
|
|
765
821
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
766
822
|
* you may not use this file except in compliance with the License.
|
|
@@ -781,7 +837,13 @@ var Change = function Change(_ref) {
|
|
|
781
837
|
var isDisabled = _ref.isDisabled,
|
|
782
838
|
isReadOnly = _ref.isReadOnly;
|
|
783
839
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
784
|
-
|
|
840
|
+
isRequiredField = _useDraftFormHelpers.isRequired;
|
|
841
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
842
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
843
|
+
var isRequired = function isRequired(value) {
|
|
844
|
+
return isShortTest() || isRequiredField(value);
|
|
845
|
+
};
|
|
846
|
+
var fieldsDisabled = isDisabled || isShortTest();
|
|
785
847
|
return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
786
848
|
title: "Change",
|
|
787
849
|
sx: styles$2.containerItem
|
|
@@ -795,22 +857,22 @@ var Change = function Change(_ref) {
|
|
|
795
857
|
isRequired: isRequired
|
|
796
858
|
}
|
|
797
859
|
},
|
|
798
|
-
disabled:
|
|
860
|
+
disabled: fieldsDisabled,
|
|
799
861
|
isReadOnly: isReadOnly
|
|
800
862
|
}, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
801
863
|
value: "WKN",
|
|
802
864
|
label: "Weakening",
|
|
803
|
-
disabled:
|
|
865
|
+
disabled: fieldsDisabled,
|
|
804
866
|
"data-testid": "change-WKN"
|
|
805
867
|
}), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
806
868
|
value: "NC",
|
|
807
869
|
label: "No change",
|
|
808
|
-
disabled:
|
|
870
|
+
disabled: fieldsDisabled,
|
|
809
871
|
"data-testid": "change-NC"
|
|
810
872
|
}), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
811
873
|
value: "INTSF",
|
|
812
874
|
label: "Intensifying",
|
|
813
|
-
disabled:
|
|
875
|
+
disabled: fieldsDisabled,
|
|
814
876
|
"data-testid": "change-INTSF"
|
|
815
877
|
}))));
|
|
816
878
|
};
|
|
@@ -1127,7 +1189,7 @@ var getProductFormLifecycleButtons = function getProductFormLifecycleButtons(_re
|
|
|
1127
1189
|
}))));
|
|
1128
1190
|
};
|
|
1129
1191
|
var hasValue = function hasValue(value) {
|
|
1130
|
-
return value !== null && value.toString() !== 'NaN' && value !== '';
|
|
1192
|
+
return value !== undefined && value !== null && value !== 'null' && value.toString() !== 'NaN' && value !== '';
|
|
1131
1193
|
};
|
|
1132
1194
|
var prepareFormValues = function prepareFormValues(product) {
|
|
1133
1195
|
return Object.keys(product).reduce(function (list, key) {
|
|
@@ -1384,7 +1446,9 @@ var styles$1 = {
|
|
|
1384
1446
|
var DrawTools = function DrawTools(_ref) {
|
|
1385
1447
|
var activeTool = _ref.activeTool,
|
|
1386
1448
|
tools = _ref.tools,
|
|
1387
|
-
onChangeTool = _ref.onChangeTool
|
|
1449
|
+
onChangeTool = _ref.onChangeTool,
|
|
1450
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
1451
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
|
|
1388
1452
|
return /*#__PURE__*/React__default.createElement(Grid, {
|
|
1389
1453
|
item: true,
|
|
1390
1454
|
xs: 12,
|
|
@@ -1403,6 +1467,7 @@ var DrawTools = function DrawTools(_ref) {
|
|
|
1403
1467
|
value: true,
|
|
1404
1468
|
checkedIcon: getToolIcon(tool.drawModeId),
|
|
1405
1469
|
checked: activeTool === tool.drawModeId,
|
|
1470
|
+
disabled: isDisabled,
|
|
1406
1471
|
onChange: function onChange() {
|
|
1407
1472
|
onChangeTool(tool);
|
|
1408
1473
|
},
|
|
@@ -1490,10 +1555,16 @@ var Levels = function Levels(_ref) {
|
|
|
1490
1555
|
clearErrors = _useFormContext.clearErrors,
|
|
1491
1556
|
unregister = _useFormContext.unregister;
|
|
1492
1557
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
1493
|
-
|
|
1558
|
+
isRequiredField = _useDraftFormHelpers.isRequired;
|
|
1559
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
1560
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
1561
|
+
var isRequired = function isRequired(value) {
|
|
1562
|
+
return isShortTest() || isRequiredField(value);
|
|
1563
|
+
};
|
|
1494
1564
|
var level = watch('level.value');
|
|
1495
1565
|
var levelInfoMode = watch('levelInfoMode');
|
|
1496
1566
|
var isRadioactiveCloud = watch('phenomenon') === 'RDOACT_CLD';
|
|
1567
|
+
var fieldsDisabled = isDisabled || isShortTest() || isRadioactiveCloud;
|
|
1497
1568
|
var getFIRValue = function getFIRValue() {
|
|
1498
1569
|
return getValues('locationIndicatorATSR');
|
|
1499
1570
|
};
|
|
@@ -1523,7 +1594,7 @@ var Levels = function Levels(_ref) {
|
|
|
1523
1594
|
isRequired: isRequired
|
|
1524
1595
|
}
|
|
1525
1596
|
},
|
|
1526
|
-
disabled:
|
|
1597
|
+
disabled: fieldsDisabled,
|
|
1527
1598
|
isReadOnly: isReadOnly,
|
|
1528
1599
|
onChange: function onChange() {
|
|
1529
1600
|
// Reset default value for the level value to '' so when it rerenders it uses this empty default value
|
|
@@ -1537,7 +1608,7 @@ var Levels = function Levels(_ref) {
|
|
|
1537
1608
|
label: "At",
|
|
1538
1609
|
checked: levelInfoMode === 'AT' || levelInfoMode === 'TOPS',
|
|
1539
1610
|
"data-testid": "levels-AT",
|
|
1540
|
-
disabled:
|
|
1611
|
+
disabled: fieldsDisabled
|
|
1541
1612
|
}), (levelInfoMode === 'AT' || levelInfoMode === 'TOPS') && !isRadioactiveCloud ? ( /*#__PURE__*/React__default.createElement(Grid, {
|
|
1542
1613
|
item: true,
|
|
1543
1614
|
xs: 12,
|
|
@@ -1629,7 +1700,7 @@ var Levels = function Levels(_ref) {
|
|
|
1629
1700
|
label: "Between",
|
|
1630
1701
|
checked: levelInfoMode === 'BETW' || levelInfoMode === 'BETW_SFC',
|
|
1631
1702
|
"data-testid": "levels-BETW",
|
|
1632
|
-
disabled:
|
|
1703
|
+
disabled: fieldsDisabled
|
|
1633
1704
|
}), levelInfoMode === 'BETW' || levelInfoMode === 'BETW_SFC' ? ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Grid, {
|
|
1634
1705
|
item: true,
|
|
1635
1706
|
xs: 12,
|
|
@@ -1659,7 +1730,7 @@ var Levels = function Levels(_ref) {
|
|
|
1659
1730
|
},
|
|
1660
1731
|
size: "small",
|
|
1661
1732
|
sx: styles$2.unit,
|
|
1662
|
-
disabled:
|
|
1733
|
+
disabled: fieldsDisabled,
|
|
1663
1734
|
isReadOnly: isReadOnly,
|
|
1664
1735
|
defaultValue: 'FL',
|
|
1665
1736
|
onChange: function onChange() {
|
|
@@ -1705,7 +1776,7 @@ var Levels = function Levels(_ref) {
|
|
|
1705
1776
|
}
|
|
1706
1777
|
}
|
|
1707
1778
|
},
|
|
1708
|
-
disabled:
|
|
1779
|
+
disabled: fieldsDisabled,
|
|
1709
1780
|
isReadOnly: isReadOnly,
|
|
1710
1781
|
onChange: function onChange() {
|
|
1711
1782
|
triggerValidations(['lowerLevel.value'], getValues, trigger);
|
|
@@ -1733,7 +1804,7 @@ var Levels = function Levels(_ref) {
|
|
|
1733
1804
|
},
|
|
1734
1805
|
name: "checkedF",
|
|
1735
1806
|
color: "secondary",
|
|
1736
|
-
disabled:
|
|
1807
|
+
disabled: fieldsDisabled
|
|
1737
1808
|
}),
|
|
1738
1809
|
"data-testid": "levels-SFC",
|
|
1739
1810
|
label: "SFC"
|
|
@@ -1812,7 +1883,7 @@ var Levels = function Levels(_ref) {
|
|
|
1812
1883
|
}))))))) : null, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
1813
1884
|
value: "ABV",
|
|
1814
1885
|
label: "Above",
|
|
1815
|
-
disabled:
|
|
1886
|
+
disabled: fieldsDisabled,
|
|
1816
1887
|
checked: levelInfoMode === 'ABV' || levelInfoMode === 'TOPS_ABV',
|
|
1817
1888
|
"data-testid": "levels-ABV"
|
|
1818
1889
|
}), levelInfoMode === 'ABV' || levelInfoMode === 'TOPS_ABV' ? ( /*#__PURE__*/React__default.createElement(Grid, {
|
|
@@ -1926,7 +1997,13 @@ var ObservationForecast = function ObservationForecast(_ref) {
|
|
|
1926
1997
|
trigger = _useFormContext.trigger,
|
|
1927
1998
|
getValues = _useFormContext.getValues;
|
|
1928
1999
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
1929
|
-
|
|
2000
|
+
isRequiredField = _useDraftFormHelpers.isRequired;
|
|
2001
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
2002
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
2003
|
+
var isRequired = function isRequired(value) {
|
|
2004
|
+
return isShortTest() || isRequiredField(value);
|
|
2005
|
+
};
|
|
2006
|
+
var fieldsDisabled = isDisabled || isShortTest();
|
|
1930
2007
|
return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
1931
2008
|
sx: {
|
|
1932
2009
|
paddingTop: '8px!important',
|
|
@@ -1937,7 +2014,7 @@ var ObservationForecast = function ObservationForecast(_ref) {
|
|
|
1937
2014
|
}
|
|
1938
2015
|
}, /*#__PURE__*/React__default.createElement(ReactHookFormRadioGroup, {
|
|
1939
2016
|
name: "isObservationOrForecast",
|
|
1940
|
-
disabled:
|
|
2017
|
+
disabled: fieldsDisabled,
|
|
1941
2018
|
rules: {
|
|
1942
2019
|
validate: {
|
|
1943
2020
|
isRequired: isRequired
|
|
@@ -1950,12 +2027,12 @@ var ObservationForecast = function ObservationForecast(_ref) {
|
|
|
1950
2027
|
}, (!isReadOnly || watch('isObservationOrForecast') === 'OBS') && ( /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
1951
2028
|
value: "OBS",
|
|
1952
2029
|
label: "Observed",
|
|
1953
|
-
disabled:
|
|
2030
|
+
disabled: fieldsDisabled,
|
|
1954
2031
|
"data-testid": "isObservationOrForecast-OBS"
|
|
1955
2032
|
})), (!isReadOnly || watch('isObservationOrForecast') === 'FCST') && ( /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
1956
2033
|
value: "FCST",
|
|
1957
2034
|
label: "Forecast",
|
|
1958
|
-
disabled:
|
|
2035
|
+
disabled: fieldsDisabled,
|
|
1959
2036
|
"data-testid": "isObservationOrForecast-FCST"
|
|
1960
2037
|
}))));
|
|
1961
2038
|
};
|
|
@@ -1986,6 +2063,9 @@ var ObservationForecastTime = function ObservationForecastTime(_ref) {
|
|
|
1986
2063
|
var _useFormContext = useFormContext(),
|
|
1987
2064
|
watch = _useFormContext.watch;
|
|
1988
2065
|
var label = getFieldLabel('Date and time', isReadOnly);
|
|
2066
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
2067
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
2068
|
+
var fieldsDisabled = isDisabled || isShortTest();
|
|
1989
2069
|
return !isReadOnly || watch('observationOrForecastTime') !== null ? ( /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
1990
2070
|
title: "At"
|
|
1991
2071
|
}, /*#__PURE__*/React__default.createElement(ReactHookFormDateTime, {
|
|
@@ -2004,7 +2084,7 @@ var ObservationForecastTime = function ObservationForecastTime(_ref) {
|
|
|
2004
2084
|
}
|
|
2005
2085
|
}
|
|
2006
2086
|
},
|
|
2007
|
-
disabled:
|
|
2087
|
+
disabled: fieldsDisabled,
|
|
2008
2088
|
isReadOnly: isReadOnly,
|
|
2009
2089
|
helperText: helperText,
|
|
2010
2090
|
onChange: function onChange() {
|
|
@@ -2041,9 +2121,12 @@ var Phenomenon = function Phenomenon(_ref) {
|
|
|
2041
2121
|
getValues = _useFormContext.getValues,
|
|
2042
2122
|
setValue = _useFormContext.setValue,
|
|
2043
2123
|
trigger = _useFormContext.trigger;
|
|
2124
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
2125
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
2044
2126
|
var isSigmet = productType === 'sigmet';
|
|
2045
2127
|
var phenomenaList = isSigmet ? SigmetPhenomena : AirmetPhenomena;
|
|
2046
2128
|
var label = getFieldLabel('Phenomenon', isReadOnly);
|
|
2129
|
+
var fieldsDisabled = isDisabled || isShortTest();
|
|
2047
2130
|
return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
2048
2131
|
title: "What"
|
|
2049
2132
|
}, /*#__PURE__*/React__default.createElement(ReactHookFormSelect, {
|
|
@@ -2052,7 +2135,7 @@ var Phenomenon = function Phenomenon(_ref) {
|
|
|
2052
2135
|
rules: {
|
|
2053
2136
|
required: true
|
|
2054
2137
|
},
|
|
2055
|
-
disabled:
|
|
2138
|
+
disabled: fieldsDisabled,
|
|
2056
2139
|
isReadOnly: isReadOnly,
|
|
2057
2140
|
size: "small",
|
|
2058
2141
|
"data-testid": "phenomenon",
|
|
@@ -2112,6 +2195,8 @@ var StartGeometry = function StartGeometry(_ref) {
|
|
|
2112
2195
|
watch = _useFormContext.watch;
|
|
2113
2196
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
2114
2197
|
isDraft = _useDraftFormHelpers.isDraft;
|
|
2198
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
2199
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
2115
2200
|
return !isReadOnly ? ( /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
2116
2201
|
title: "Start position",
|
|
2117
2202
|
sx: styles$2.drawSection,
|
|
@@ -2119,7 +2204,8 @@ var StartGeometry = function StartGeometry(_ref) {
|
|
|
2119
2204
|
}, /*#__PURE__*/React__default.createElement(DrawTools, {
|
|
2120
2205
|
activeTool: activeTool,
|
|
2121
2206
|
tools: tools,
|
|
2122
|
-
onChangeTool: onChangeTool
|
|
2207
|
+
onChangeTool: onChangeTool,
|
|
2208
|
+
isDisabled: isShortTest()
|
|
2123
2209
|
}), activeTool && ( /*#__PURE__*/React__default.createElement(FormHelperText, {
|
|
2124
2210
|
variant: "filled",
|
|
2125
2211
|
sx: styles$2.quitDrawModeMessage
|
|
@@ -2142,7 +2228,7 @@ var StartGeometry = function StartGeometry(_ref) {
|
|
|
2142
2228
|
return hasIntersectionWithFIR(value, watch('startGeometryIntersect')) || noIntersectionMessage$1;
|
|
2143
2229
|
},
|
|
2144
2230
|
coordinatesNotEmpty: function coordinatesNotEmpty(value) {
|
|
2145
|
-
return isDraft() ? true : isValidGeoJsonCoordinates(value) || coordinatesEmptyMessage$1;
|
|
2231
|
+
return isDraft() || isShortTest() ? true : isValidGeoJsonCoordinates(value) || coordinatesEmptyMessage$1;
|
|
2146
2232
|
},
|
|
2147
2233
|
hasMaxFeaturePoints: function hasMaxFeaturePoints$1(value) {
|
|
2148
2234
|
return isFir(value) ? true : !hasMaxFeaturePoints(value) || maximum6PointsMessage$1;
|
|
@@ -2225,8 +2311,13 @@ var Progress = function Progress(_ref) {
|
|
|
2225
2311
|
errors = _useFormContext.formState.errors,
|
|
2226
2312
|
unregister = _useFormContext.unregister;
|
|
2227
2313
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
2228
|
-
|
|
2314
|
+
isRequiredField = _useDraftFormHelpers.isRequired,
|
|
2229
2315
|
isDraft = _useDraftFormHelpers.isDraft;
|
|
2316
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
2317
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
2318
|
+
var isRequired = function isRequired(value) {
|
|
2319
|
+
return isShortTest() || isRequiredField(value);
|
|
2320
|
+
};
|
|
2230
2321
|
var movementType = watch('movementType');
|
|
2231
2322
|
var getFIRValue = function getFIRValue() {
|
|
2232
2323
|
return getValues('locationIndicatorATSR');
|
|
@@ -2247,6 +2338,8 @@ var Progress = function Progress(_ref) {
|
|
|
2247
2338
|
var isSigmet = productType === 'sigmet';
|
|
2248
2339
|
var isRadioactiveCloud = watch('phenomenon') === 'RDOACT_CLD';
|
|
2249
2340
|
var isVolcanicCloud = watch('phenomenon') === 'VA_CLD';
|
|
2341
|
+
var isShortTestOrRdoact = isShortTest() || isRadioactiveCloud;
|
|
2342
|
+
var fieldsDisabled = isDisabled || isShortTestOrRdoact;
|
|
2250
2343
|
return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
2251
2344
|
title: "Progress",
|
|
2252
2345
|
sx: styles$2.containerItem
|
|
@@ -2273,31 +2366,33 @@ var Progress = function Progress(_ref) {
|
|
|
2273
2366
|
}, isVolcanicCloud && ( /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
2274
2367
|
value: "NO_VA_EXP",
|
|
2275
2368
|
label: "No volcanic ash expected",
|
|
2276
|
-
disabled:
|
|
2369
|
+
disabled: fieldsDisabled,
|
|
2277
2370
|
"data-testid": "movementType-NO_VA_EXP"
|
|
2278
2371
|
})), /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
2279
2372
|
value: "STATIONARY",
|
|
2280
2373
|
label: "Stationary",
|
|
2281
|
-
disabled:
|
|
2374
|
+
disabled: fieldsDisabled,
|
|
2282
2375
|
"data-testid": "movementType-STATIONARY"
|
|
2283
2376
|
}), /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
2284
2377
|
value: "MOVEMENT",
|
|
2285
2378
|
label: "Movement",
|
|
2286
|
-
disabled:
|
|
2379
|
+
disabled: fieldsDisabled,
|
|
2287
2380
|
"data-testid": "movementType-MOVEMENT"
|
|
2288
|
-
}), isSigmet &&
|
|
2381
|
+
}), isSigmet && isShortTestOrRdoact && ( /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
2289
2382
|
value: "FORECAST_POSITION",
|
|
2290
2383
|
label: "End position",
|
|
2291
|
-
disabled:
|
|
2384
|
+
disabled: fieldsDisabled,
|
|
2292
2385
|
"data-testid": "movementType-FORECAST_POSITION"
|
|
2293
|
-
}))), movementType === 'MOVEMENT' && !
|
|
2386
|
+
}))), movementType === 'MOVEMENT' && !isShortTestOrRdoact && ( /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Grid, {
|
|
2294
2387
|
item: true,
|
|
2295
2388
|
xs: 12
|
|
2296
2389
|
}, /*#__PURE__*/React__default.createElement(ReactHookFormSelect, {
|
|
2297
2390
|
name: "movementDirection",
|
|
2298
2391
|
label: "Set direction",
|
|
2299
2392
|
rules: {
|
|
2300
|
-
validate:
|
|
2393
|
+
validate: {
|
|
2394
|
+
isRequired: isRequired
|
|
2395
|
+
}
|
|
2301
2396
|
},
|
|
2302
2397
|
size: "small",
|
|
2303
2398
|
sx: styles$2.movement,
|
|
@@ -2325,7 +2420,9 @@ var Progress = function Progress(_ref) {
|
|
|
2325
2420
|
name: "movementUnit",
|
|
2326
2421
|
label: "Unit",
|
|
2327
2422
|
rules: {
|
|
2328
|
-
validate:
|
|
2423
|
+
validate: {
|
|
2424
|
+
isRequired: isRequired
|
|
2425
|
+
}
|
|
2329
2426
|
},
|
|
2330
2427
|
size: "small",
|
|
2331
2428
|
sx: styles$2.unit,
|
|
@@ -2380,12 +2477,12 @@ var Progress = function Progress(_ref) {
|
|
|
2380
2477
|
onChange: function onChange(event) {
|
|
2381
2478
|
return event && event.stopPropagation();
|
|
2382
2479
|
}
|
|
2383
|
-
}))))), isSigmet && !
|
|
2480
|
+
}))))), isSigmet && !isShortTestOrRdoact && ( /*#__PURE__*/React__default.createElement(RadioButtonAndLabel, {
|
|
2384
2481
|
value: "FORECAST_POSITION",
|
|
2385
2482
|
label: "End position",
|
|
2386
2483
|
disabled: isDisabled,
|
|
2387
2484
|
"data-testid": "movementType-FORECAST_POSITION"
|
|
2388
|
-
}))), isSigmet && !
|
|
2485
|
+
}))), isSigmet && !isShortTestOrRdoact && movementType === 'FORECAST_POSITION' && ( /*#__PURE__*/React__default.createElement(Grid, {
|
|
2389
2486
|
item: true,
|
|
2390
2487
|
xs: 12,
|
|
2391
2488
|
"data-testid": "endGeometry",
|
|
@@ -2549,7 +2646,8 @@ var SelectFIR = function SelectFIR(_ref) {
|
|
|
2549
2646
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
2550
2647
|
* */
|
|
2551
2648
|
var Type = function Type(_ref) {
|
|
2552
|
-
var
|
|
2649
|
+
var productType = _ref.productType,
|
|
2650
|
+
isReadOnly = _ref.isReadOnly,
|
|
2553
2651
|
isDisabled = _ref.isDisabled,
|
|
2554
2652
|
_ref$onChange = _ref.onChange,
|
|
2555
2653
|
_onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
|
|
@@ -2557,6 +2655,9 @@ var Type = function Type(_ref) {
|
|
|
2557
2655
|
getValues = _useFormContext.getValues,
|
|
2558
2656
|
trigger = _useFormContext.trigger;
|
|
2559
2657
|
var label = getFieldLabel('Type', isReadOnly);
|
|
2658
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
2659
|
+
onTypeChange = _useShortTestHelpers.onTypeChange;
|
|
2660
|
+
var messageType = productType === 'airmet' ? AirmetType : SigmetType;
|
|
2560
2661
|
return /*#__PURE__*/React__default.createElement(ProductFormFieldLayout, {
|
|
2561
2662
|
title: "Type"
|
|
2562
2663
|
}, /*#__PURE__*/React__default.createElement(ReactHookFormSelect, {
|
|
@@ -2568,15 +2669,16 @@ var Type = function Type(_ref) {
|
|
|
2568
2669
|
"data-testid": "type",
|
|
2569
2670
|
defaultValue: "NORMAL",
|
|
2570
2671
|
onChange: function onChange() {
|
|
2672
|
+
onTypeChange();
|
|
2571
2673
|
triggerValidations(['validDateStart', 'validDateEnd'], getValues, trigger);
|
|
2572
2674
|
_onChange();
|
|
2573
2675
|
},
|
|
2574
2676
|
autoFocus: true
|
|
2575
|
-
}, Object.keys(
|
|
2677
|
+
}, Object.keys(messageType).map(function (key) {
|
|
2576
2678
|
return /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
2577
2679
|
value: key,
|
|
2578
2680
|
key: key
|
|
2579
|
-
},
|
|
2681
|
+
}, messageType[key]);
|
|
2580
2682
|
})));
|
|
2581
2683
|
};
|
|
2582
2684
|
|
|
@@ -3489,6 +3591,10 @@ var shouldRetrieveTAC = function shouldRetrieveTAC(product, omitChange) {
|
|
|
3489
3591
|
if (product && isInstanceOfCancelSigmetOrAirmet(product)) {
|
|
3490
3592
|
return true;
|
|
3491
3593
|
}
|
|
3594
|
+
// retrieve for short (va) test sigmets with less mandatory fields
|
|
3595
|
+
if (product && isInstanceOfSigmetOrAirmet(product) && (product.type === 'SHORT_TEST' || product.type === 'SHORT_VA_TEST') && product.phenomenon && product.phenomenon !== '') {
|
|
3596
|
+
return true;
|
|
3597
|
+
}
|
|
3492
3598
|
if (product && isInstanceOfSigmetOrAirmet(product) && product.phenomenon && product.phenomenon !== '' && product.isObservationOrForecast && product.isObservationOrForecast !== '' && product.validDateStart && product.validDateStart !== null && product.validDateEnd && product.validDateEnd !== null && isLevelFieldsComplete(product) && product.startGeometry && product.startGeometry !== null && product.startGeometryIntersect && product.startGeometryIntersect !== null && product.movementType && product.movementType !== '' && isChangeComplete(product, omitChange) && isSurfaceVisComplete(product)) {
|
|
3493
3599
|
return true;
|
|
3494
3600
|
}
|
|
@@ -7117,6 +7223,8 @@ var SigmetForm = function SigmetForm(_ref) {
|
|
|
7117
7223
|
var _useConditionalFields = useConditionalFields$1(productConfig),
|
|
7118
7224
|
hasVolcanicAshes = _useConditionalFields.hasVolcanicAshes,
|
|
7119
7225
|
omitChange = _useConditionalFields.omitChange;
|
|
7226
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
7227
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
7120
7228
|
var onChangeFir = function onChangeFir(event) {
|
|
7121
7229
|
var newFIRValue = event === null || event === void 0 ? void 0 : event.target.value;
|
|
7122
7230
|
var newFirGeoJSON = addFeatureProperties(getFir(productConfig, newFIRValue), featurePropsFIR);
|
|
@@ -7156,6 +7264,7 @@ var SigmetForm = function SigmetForm(_ref) {
|
|
|
7156
7264
|
}
|
|
7157
7265
|
}
|
|
7158
7266
|
}, /*#__PURE__*/React__default.createElement(Type, {
|
|
7267
|
+
productType: "sigmet",
|
|
7159
7268
|
isDisabled: isDisabled,
|
|
7160
7269
|
isReadOnly: isReadOnly,
|
|
7161
7270
|
onChange: onChangeForm
|
|
@@ -7172,7 +7281,7 @@ var SigmetForm = function SigmetForm(_ref) {
|
|
|
7172
7281
|
isReadOnly: isReadOnly,
|
|
7173
7282
|
helperText: helperText,
|
|
7174
7283
|
onChange: onChangeForm
|
|
7175
|
-
})), !isCancelSigmet && hasVolcanicAshes && ( /*#__PURE__*/React__default.createElement(VolcanicFields, {
|
|
7284
|
+
})), !isCancelSigmet && hasVolcanicAshes && !isShortTest() && ( /*#__PURE__*/React__default.createElement(VolcanicFields, {
|
|
7176
7285
|
isDisabled: isDisabled,
|
|
7177
7286
|
isReadOnly: isReadOnly,
|
|
7178
7287
|
helperText: helperText
|
|
@@ -7426,6 +7535,7 @@ var AirmetForm = function AirmetForm(_ref) {
|
|
|
7426
7535
|
}
|
|
7427
7536
|
}
|
|
7428
7537
|
}, /*#__PURE__*/React__default.createElement(Type, {
|
|
7538
|
+
productType: "airmet",
|
|
7429
7539
|
isDisabled: isDisabled,
|
|
7430
7540
|
isReadOnly: isReadOnly,
|
|
7431
7541
|
onChange: onChangeForm
|
|
@@ -8170,6 +8280,8 @@ var ProductFormDialogContent = function ProductFormDialogContent(_ref) {
|
|
|
8170
8280
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
8171
8281
|
toggleIsDraft = _useDraftFormHelpers.toggleIsDraft,
|
|
8172
8282
|
DraftFieldHelper = _useDraftFormHelpers.DraftFieldHelper;
|
|
8283
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
8284
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
8173
8285
|
usePreventBrowserClose(isDirty);
|
|
8174
8286
|
var confirmationDialog = useConfirmationDialog();
|
|
8175
8287
|
var _React$useState = React.useState(false),
|
|
@@ -8216,7 +8328,7 @@ var ProductFormDialogContent = function ProductFormDialogContent(_ref) {
|
|
|
8216
8328
|
confirmLabel: getConfirmationDialogButtonLabel(action, productType),
|
|
8217
8329
|
cancelLabel: getConfirmationDialogCancelLabel(action),
|
|
8218
8330
|
catchOnCancel: action === 'CLOSED',
|
|
8219
|
-
content: isVAPhenomenon(product, action) ? ( /*#__PURE__*/React.createElement(CancelSigmetVolcanicMovements, {
|
|
8331
|
+
content: isVAPhenomenon(product, action) && !isShortTest() ? ( /*#__PURE__*/React.createElement(CancelSigmetVolcanicMovements, {
|
|
8220
8332
|
sigmet: product,
|
|
8221
8333
|
productConfig: productConfig
|
|
8222
8334
|
})) : null
|
|
@@ -10494,6 +10606,50 @@ var fakeSigmetList = [{
|
|
|
10494
10606
|
}]
|
|
10495
10607
|
}
|
|
10496
10608
|
});
|
|
10609
|
+
({
|
|
10610
|
+
creationDate: '2020-09-17T12:00:00Z',
|
|
10611
|
+
canbe: ['DRAFTED', 'DISCARDED', 'PUBLISHED'],
|
|
10612
|
+
sigmet: {
|
|
10613
|
+
uuid: 'someuniqueidprescibedbyBE',
|
|
10614
|
+
phenomenon: 'EMBD_TS',
|
|
10615
|
+
sequence: 'Z01',
|
|
10616
|
+
validDateStart: dateUtils.dateToString(dateUtils.add(dateUtils.utc(), {
|
|
10617
|
+
hours: 1
|
|
10618
|
+
})),
|
|
10619
|
+
validDateEnd: dateUtils.dateToString(dateUtils.add(dateUtils.utc(), {
|
|
10620
|
+
hours: 3
|
|
10621
|
+
})),
|
|
10622
|
+
firName: 'AMSTERDAM FIR',
|
|
10623
|
+
locationIndicatorATSU: 'EHAA',
|
|
10624
|
+
locationIndicatorATSR: 'EHAA',
|
|
10625
|
+
locationIndicatorMWO: 'EHDB',
|
|
10626
|
+
type: 'SHORT_TEST',
|
|
10627
|
+
status: 'DRAFT',
|
|
10628
|
+
firGeometry: getFir(sigmetConfig)
|
|
10629
|
+
}
|
|
10630
|
+
});
|
|
10631
|
+
({
|
|
10632
|
+
creationDate: '2020-09-17T12:00:00Z',
|
|
10633
|
+
canbe: ['DRAFTED', 'DISCARDED', 'PUBLISHED'],
|
|
10634
|
+
sigmet: {
|
|
10635
|
+
uuid: 'someuniqueidprescibedbyBE',
|
|
10636
|
+
phenomenon: 'VA_CLD',
|
|
10637
|
+
sequence: 'Y01',
|
|
10638
|
+
validDateStart: dateUtils.dateToString(dateUtils.add(dateUtils.utc(), {
|
|
10639
|
+
hours: 1
|
|
10640
|
+
})),
|
|
10641
|
+
validDateEnd: dateUtils.dateToString(dateUtils.add(dateUtils.utc(), {
|
|
10642
|
+
hours: 3
|
|
10643
|
+
})),
|
|
10644
|
+
firName: 'AMSTERDAM FIR',
|
|
10645
|
+
locationIndicatorATSU: 'EHAA',
|
|
10646
|
+
locationIndicatorATSR: 'EHAA',
|
|
10647
|
+
locationIndicatorMWO: 'EHDB',
|
|
10648
|
+
type: 'SHORT_VA_TEST',
|
|
10649
|
+
status: 'DRAFT',
|
|
10650
|
+
firGeometry: getFir(sigmetConfig)
|
|
10651
|
+
}
|
|
10652
|
+
});
|
|
10497
10653
|
[{
|
|
10498
10654
|
creationDate: '2020-09-17T12:00:00Z',
|
|
10499
10655
|
canbe: ['DRAFTED', 'DISCARDED', 'PUBLISHED'],
|
|
@@ -11105,4 +11261,4 @@ var AirmetComponentsLookUp = function AirmetComponentsLookUp(payload, _ref) {
|
|
|
11105
11261
|
}
|
|
11106
11262
|
};
|
|
11107
11263
|
|
|
11108
|
-
export { AirmetComponentsLookUp, AirmetForm, AirmetPhenomena, CloudLevelUnits, ContentDialog, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductList, ProductListRow, ProductStatusDescription, SigmetComponentsLookUp, SigmetForm, SigmetPhenomena, SigmetType, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createApi$1 as createApi, createApi as createFakeApi, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, sigmetConfig };
|
|
11264
|
+
export { AirmetComponentsLookUp, AirmetForm, AirmetPhenomena, AirmetType, CloudLevelUnits, ContentDialog, Direction, DownloadSigmetAirmetConfigWrapper, LevelUnits, MapViewGeoJson, MetInfoWrapper, MovementUnit, ProductList, ProductListRow, ProductStatusDescription, SigmetComponentsLookUp, SigmetForm, SigmetPhenomena, SigmetType, StartOrEndDrawing, VisibilityCause, WindUnit, airmetConfig, createApi$1 as createApi, createApi as createFakeApi, isInstanceOfAirmet, isInstanceOfCancelAirmet, isInstanceOfCancelSigmet, isInstanceOfCancelSigmetOrAirmet, isInstanceOfSigmet, isInstanceOfSigmetOrAirmet, sigmetConfig };
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/src/lib/types.d.ts
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { mapTypes } from '@opengeoweb/store';
|
|
3
3
|
export type ProductType = 'sigmet' | 'airmet';
|
|
4
|
+
/**
|
|
5
|
+
* The possible type for the airmet
|
|
6
|
+
*/
|
|
7
|
+
export declare enum AirmetType {
|
|
8
|
+
'NORMAL' = "Normal",
|
|
9
|
+
'TEST' = "Test",
|
|
10
|
+
'EXERCISE' = "Exercise"
|
|
11
|
+
}
|
|
4
12
|
/**
|
|
5
13
|
* The possible type for the sigmet
|
|
6
14
|
*/
|
|
7
15
|
export declare enum SigmetType {
|
|
8
16
|
'NORMAL' = "Normal",
|
|
9
17
|
'TEST' = "Test",
|
|
10
|
-
'EXERCISE' = "Exercise"
|
|
18
|
+
'EXERCISE' = "Exercise",
|
|
19
|
+
'SHORT_TEST' = "Short test",
|
|
20
|
+
'SHORT_VA_TEST' = "Short VA test"
|
|
11
21
|
}
|
|
12
22
|
/**
|
|
13
23
|
* The possible phenomena for the sigmet
|
|
@@ -214,24 +224,24 @@ export type AirmetMovementType = 'STATIONARY' | 'MOVEMENT';
|
|
|
214
224
|
export interface Sigmet extends BaseProduct {
|
|
215
225
|
phenomenon: SigmetPhenomena;
|
|
216
226
|
status: ProductStatus;
|
|
217
|
-
isObservationOrForecast
|
|
227
|
+
isObservationOrForecast?: ObservationOrForcast;
|
|
218
228
|
observationOrForecastTime?: DateType;
|
|
219
|
-
type: 'NORMAL' | 'TEST' | 'EXERCISE';
|
|
229
|
+
type: 'NORMAL' | 'TEST' | 'EXERCISE' | 'SHORT_TEST' | 'SHORT_VA_TEST';
|
|
220
230
|
/** Change type of the Sigmet, can be:
|
|
221
231
|
* INTSF:Intensifying
|
|
222
232
|
* WKN: Weakening
|
|
223
233
|
* NC: No change
|
|
224
234
|
*/
|
|
225
235
|
change?: Change;
|
|
226
|
-
levelInfoMode
|
|
227
|
-
level
|
|
236
|
+
levelInfoMode?: LevelInfoMode;
|
|
237
|
+
level?: LevelType;
|
|
228
238
|
lowerLevel?: LevelType;
|
|
229
239
|
firGeometry?: GeoJSON.FeatureCollection;
|
|
230
|
-
startGeometry
|
|
231
|
-
startGeometryIntersect
|
|
240
|
+
startGeometry?: GeoJSON.FeatureCollection;
|
|
241
|
+
startGeometryIntersect?: GeoJSON.FeatureCollection;
|
|
232
242
|
endGeometry?: GeoJSON.FeatureCollection;
|
|
233
243
|
endGeometryIntersect?: GeoJSON.FeatureCollection;
|
|
234
|
-
movementType
|
|
244
|
+
movementType?: SigmetMovementType;
|
|
235
245
|
movementSpeed?: number;
|
|
236
246
|
movementUnit?: MovementUnit;
|
|
237
247
|
movementDirection?: Direction;
|
|
@@ -7,4 +7,6 @@ export declare const fakeNewSigmet: Sigmet;
|
|
|
7
7
|
export declare const fakeSigmetMultiPolygon: SigmetFromBackend;
|
|
8
8
|
export declare const fakeVolcanicCancelSigmetNoMoveTo: SigmetFromBackend;
|
|
9
9
|
export declare const fakeVolcanicCancelSigmetWithMoveTo: SigmetFromBackend;
|
|
10
|
+
export declare const fakeShortTestSigmet: SigmetFromBackend;
|
|
11
|
+
export declare const fakeShortVaTestSigmet: SigmetFromBackend;
|
|
10
12
|
export declare const fakeStaticSigmetList: SigmetFromBackend[];
|