@opengeoweb/warnings 10.1.0 → 10.2.1-spike-ol.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 +1557 -834
- package/package.json +3 -2
- package/src/index.d.ts +0 -2
- package/src/lib/api/api-utils.d.ts +10 -0
- package/src/lib/{aviation-api → api/aviation-api}/hooks.d.ts +1 -1
- package/src/lib/api/warning-api/api.d.ts +4 -0
- package/src/lib/api/warning-api/hooks.d.ts +15 -0
- package/src/lib/components/AreaObjectLoader/AreaObjectLoader.d.ts +1 -1
- package/src/lib/components/AreaObjectLoader/AreasObjects.d.ts +1 -1
- package/src/lib/components/FilterList/filter-hooks.d.ts +3 -3
- package/src/lib/components/FilterList/filter-utils.d.ts +6 -4
- package/src/lib/components/ObjectManager/ObjectManager.d.ts +1 -1
- package/src/lib/components/ObjectManager/Objects.d.ts +1 -1
- package/src/lib/components/Providers/Providers.d.ts +3 -0
- package/src/lib/components/PublicWarningList/PublicWarningList.d.ts +5 -4
- package/src/lib/components/PublicWarningList/PublicWarningListConnect.stories.d.ts +37 -4
- package/src/lib/components/PublicWarningList/WarningListItem.d.ts +3 -3
- package/src/lib/components/PublicWarningList/WarningListItemMenu.d.ts +9 -7
- package/src/lib/components/PublicWarningsForm/PublicWarningsForm.d.ts +1 -1
- package/src/lib/components/PublicWarningsForm/PublicWarningsFormConnect.d.ts +2 -0
- package/src/lib/components/WarningsMapView/WarningsMapView.d.ts +0 -1
- package/src/lib/store/index.d.ts +2 -1
- package/src/lib/store/publicWarningForm/index.d.ts +1 -1
- package/src/lib/store/publicWarningForm/reducer.d.ts +28 -33
- package/src/lib/store/publicWarningForm/selectors.d.ts +12 -17
- package/src/lib/store/publicWarningForm/types.d.ts +18 -6
- package/src/lib/store/publicWarnings/index.d.ts +1 -1
- package/src/lib/store/publicWarnings/reducer.d.ts +4 -16
- package/src/lib/store/publicWarnings/selectors.d.ts +1 -1
- package/src/lib/store/publicWarnings/types.d.ts +2 -2
- package/src/lib/store/store.d.ts +15 -0
- package/src/lib/store/types.d.ts +3 -3
- package/src/lib/store/warningsDrawings/index.d.ts +2 -0
- package/src/lib/store/warningsDrawings/listener.d.ts +2 -0
- package/src/lib/store/{drawings → warningsDrawings}/reducer.d.ts +1 -2
- package/src/lib/storybookUtils/testUtils.d.ts +2 -0
- package/src/lib/utils/api.d.ts +4 -8
- package/src/lib/utils/fakeApi/index.d.ts +9 -5
- package/src/lib/utils/fakeApi.d.ts +1 -1
- package/src/lib/utils/sig-airmet-util.d.ts +14 -7
- package/src/lib/utils/sig-airmet-util.spec.d.ts +1 -0
- package/src/lib/utils/warningUtils.d.ts +4 -4
- package/src/lib/store/config.d.ts +0 -9
- package/src/lib/store/drawings/index.d.ts +0 -2
- package/src/lib/store/drawings/listener.d.ts +0 -2
- package/src/lib/utils/testUtils.d.ts +0 -4
- /package/src/lib/{aviation-api → api/aviation-api}/api.d.ts +0 -0
- /package/src/lib/{aviation-api → api/aviation-api}/fakeApi.d.ts +0 -0
- /package/src/lib/{store/drawings/reducer.spec.d.ts → components/PublicWarningList/WarningListItemMenu.spec.d.ts} +0 -0
- /package/src/lib/store/{publicWarnings → warningsDrawings}/reducer.spec.d.ts +0 -0
- /package/src/lib/store/{drawings → warningsDrawings}/selectors.d.ts +0 -0
- /package/src/lib/store/{drawings → warningsDrawings}/selectors.spec.d.ts +0 -0
- /package/src/lib/store/{drawings → warningsDrawings}/types.d.ts +0 -0
- /package/src/lib/store/{drawings → warningsDrawings}/utils.d.ts +0 -0
package/index.esm.js
CHANGED
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useDispatch, useSelector } from 'react-redux';
|
|
3
|
-
import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add, CoastalEvent, TemperatureLow, TemperatureHigh, Rain, Snow, Lightning, Fog, Wind, Thunderstorm, VulcanicEruption, Haze, FreezingPrecipitation, ModerateAircraftIcing, SevereAircraftIcing, ModerateTurbulence, SevereTurbulence, SandStorm, RadioactiveMaterials, breakpoints, Options, Close, ChevronDown, ChevronUp, Copy, Success, Expire, Remove, ArrowUpCompact, ArrowDownCompact } from '@opengeoweb/theme';
|
|
4
|
-
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId,
|
|
5
|
-
import { defaultPolygon, emptyGeoJSON, MapControlButton, getIcon, rewindGeometry, getGeoJSONPropertyValue, currentlySupportedDrawModes, defaultLayers,
|
|
6
|
-
import { SHARED_NAMESPACE, useConfirmationDialog, ToggleMenu, dateUtils, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, usePrevious, CustomIconButton, CustomTooltip, Avatar, getInitials, SwitchButton, CustomToggleButton, Filter, FilterChip, FilterOption, StatusTag, LastUpdateTime, ErrorBoundary,
|
|
7
|
-
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, isAnyOf } from '@reduxjs/toolkit';
|
|
3
|
+
import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add, CoastalEvent, TemperatureLow, TemperatureHigh, Rain, Snow, Lightning, Fog, Wind, Thunderstorm, VulcanicEruption, Haze, FreezingPrecipitation, ModerateAircraftIcing, SevereAircraftIcing, ModerateTurbulence, SevereTurbulence, SandStorm, RadioactiveMaterials, breakpoints, Options, Close, ChevronDown, ChevronUp, Copy, Update, Success, Expire, Remove, ArrowUpCompact, ArrowDownCompact } from '@opengeoweb/theme';
|
|
4
|
+
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawingToolSelectors, layerSelectors, uiSelectors, drawingToolActions, layerActions, useSetupDialog, selectorMemoizationOptions, useUpdateSharedData, layersListener, drawingToolListener, layerReducer, uiReducer, drawingToolReducer } from '@opengeoweb/store';
|
|
5
|
+
import { defaultPolygon, emptyGeoJSON, MapControlButton, getIcon, rewindGeometry, getGeoJSONPropertyValue, currentlySupportedDrawModes, defaultLayers, getFeatureExtent, OpenLayersMapView, OpenLayersLayer, GeoJSONLayer, genericOpenlayersFeatureStyle } from '@opengeoweb/webmap-react';
|
|
6
|
+
import { SHARED_NAMESPACE, useConfirmationDialog, ToggleMenu, dateUtils, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, usePrevious, CustomIconButton, CustomTooltip, Avatar, getInitials, SwitchButton, CustomToggleButton, Filter, FilterChip, FilterOption, StatusTag, LastUpdateTime, ErrorBoundary, isAxiosError as isAxiosError$1 } from '@opengeoweb/shared';
|
|
7
|
+
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, isAnyOf, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
8
8
|
import 'i18next';
|
|
9
9
|
import { useTranslation } from 'react-i18next';
|
|
10
10
|
import '@opengeoweb/core';
|
|
11
11
|
import { FORM_FIELDS_NAMESPACE, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormSelect, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions, useDraftFormHelpers, errorMessages, ReactHookFormDateTime, isXHoursBefore, isXHoursAfter, isEmpty } from '@opengeoweb/form-fields';
|
|
12
|
-
import { LayerType, generateMapId
|
|
13
|
-
import { SigmetForm, isInstanceOfCancelSigmet, AirmetForm, isInstanceOfCancelAirmet, getProductFormMode } from '@opengeoweb/sigmet-airmet';
|
|
14
|
-
import { snackbarActions, snackbarTypes } from '@opengeoweb/snackbar';
|
|
12
|
+
import { LayerType, generateMapId } from '@opengeoweb/webmap';
|
|
13
|
+
import { airmetConfig, sigmetConfig, SigmetForm, isInstanceOfCancelSigmet, AirmetForm, isInstanceOfCancelAirmet, getDefaultValidUntilValue, getProductFormMode, ProductAction } from '@opengeoweb/sigmet-airmet';
|
|
14
|
+
import { snackbarActions, snackbarTypes, snackbarListener, snackbarReducer } from '@opengeoweb/snackbar';
|
|
15
15
|
import * as React from 'react';
|
|
16
16
|
import React__default, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
|
|
17
17
|
import { styled, Box, Typography, ListItem, Grid2, Paper, ListItemButton, Stack, LinearProgress, Button, FormHelperText, MenuItem, Tabs, Tab, Card, CardContent, CircularProgress, Menu, DialogTitle, DialogContent, Switch, ListItemText } from '@mui/material';
|
|
18
18
|
import { VariableSizeList } from 'react-window';
|
|
19
19
|
import AutoSizer from 'react-virtualized-auto-sizer';
|
|
20
|
-
import { getApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider, getHeaders, useAuthQuery, useAuthenticationContext, ProductStatus } from '@opengeoweb/api';
|
|
20
|
+
import { getApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider, AirmetPhenomena, SigmetPhenomena, getHeaders, handleResponse, useAuthQuery, useAuthenticationContext, ProductStatus, optimisticUpdate } from '@opengeoweb/api';
|
|
21
|
+
import { rest } from 'msw';
|
|
22
|
+
import { concat, isEqual, cloneDeep, clamp, groupBy, pick, assign } from 'lodash';
|
|
21
23
|
import { useFormContext } from 'react-hook-form';
|
|
22
|
-
import { isEqual, cloneDeep, clamp, groupBy, assign, pick } from 'lodash';
|
|
23
24
|
import { getConfig, useAuthenticationContext as useAuthenticationContext$1 } from '@opengeoweb/authentication';
|
|
24
|
-
import {
|
|
25
|
+
import { View } from 'ol';
|
|
26
|
+
import { fromLonLat } from 'ol/proj';
|
|
27
|
+
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
25
28
|
import { isAxiosError } from 'axios';
|
|
26
29
|
|
|
27
30
|
var en = {
|
|
@@ -199,7 +202,8 @@ var en = {
|
|
|
199
202
|
"warning-dialog-withdraw-title": "Withdraw warning",
|
|
200
203
|
"warning-dialog-withdraw-confirm": "Withdraw",
|
|
201
204
|
"warning-dialog-withdraw-description": "Are you sure you want to withdraw this warning?",
|
|
202
|
-
"tac-missing-data": "Missing data: no TAC can be generated"
|
|
205
|
+
"tac-missing-data": "Missing data: no TAC can be generated",
|
|
206
|
+
"warning-list-button-renew": "Renew"
|
|
203
207
|
};
|
|
204
208
|
var nl = {
|
|
205
209
|
"drawing-tool-form-tools": "Gereedschap",
|
|
@@ -337,7 +341,8 @@ var nl = {
|
|
|
337
341
|
"warning-domain-maritime": "Maritiem",
|
|
338
342
|
"warning-domain-public": "Publiek",
|
|
339
343
|
"error-title-retry": "Probeer opnieuw",
|
|
340
|
-
"tac-missing-data": "Ontbrekende gegevens: er kan geen TAC worden gegenereerd"
|
|
344
|
+
"tac-missing-data": "Ontbrekende gegevens: er kan geen TAC worden gegenereerd",
|
|
345
|
+
"warning-list-button-renew": "Hernieuwen"
|
|
341
346
|
};
|
|
342
347
|
var fi = {
|
|
343
348
|
"drawing-tool-form-tools": "Työkalut",
|
|
@@ -475,7 +480,8 @@ var fi = {
|
|
|
475
480
|
"warning-domain-maritime": "ei käännetty",
|
|
476
481
|
"warning-domain-public": "ei käännetty",
|
|
477
482
|
"error-title-retry": "Yritä uudelleen",
|
|
478
|
-
"tac-missing-data": "Tarvittavia tietoja puuttu, TAC:ia ei voida generoida"
|
|
483
|
+
"tac-missing-data": "Tarvittavia tietoja puuttu, TAC:ia ei voida generoida",
|
|
484
|
+
"warning-list-button-renew": "Renew"
|
|
479
485
|
};
|
|
480
486
|
var no = {
|
|
481
487
|
"drawing-tool-form-tools": "Verktøy",
|
|
@@ -613,7 +619,8 @@ var no = {
|
|
|
613
619
|
"warning-domain-maritime": "ikke oversatt",
|
|
614
620
|
"warning-domain-public": "ikke oversatt",
|
|
615
621
|
"error-title-retry": "Prøv igjen",
|
|
616
|
-
"tac-missing-data": "Mangler data: ingen TAC kan genereres"
|
|
622
|
+
"tac-missing-data": "Mangler data: ingen TAC kan genereres",
|
|
623
|
+
"warning-list-button-renew": "Renew"
|
|
617
624
|
};
|
|
618
625
|
var warningsTranslations = {
|
|
619
626
|
en: en,
|
|
@@ -1067,8 +1074,8 @@ var slice$2 = createSlice({
|
|
|
1067
1074
|
});
|
|
1068
1075
|
}
|
|
1069
1076
|
});
|
|
1070
|
-
var
|
|
1071
|
-
|
|
1077
|
+
var warningsDrawingsReducer = slice$2.reducer,
|
|
1078
|
+
warningsDrawingsActions = slice$2.actions;
|
|
1072
1079
|
|
|
1073
1080
|
/* *
|
|
1074
1081
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1139,7 +1146,7 @@ var useCloseDrawDialog = function useCloseDrawDialog(_ref) {
|
|
|
1139
1146
|
var dispatch = useDispatch();
|
|
1140
1147
|
var drawLayerId = getSingularDrawtoolDrawLayerId(mapId);
|
|
1141
1148
|
var drawDialogActiveDrawModeId = useSelector(function (store) {
|
|
1142
|
-
return
|
|
1149
|
+
return drawingToolSelectors.getActiveDrawModeId(store, drawingDialogType);
|
|
1143
1150
|
});
|
|
1144
1151
|
var featureLayerContainsGeoJSON = useSelector(function (store) {
|
|
1145
1152
|
return layerSelectors.getHasFeatureLayerGeoJSON(store, drawLayerId);
|
|
@@ -1199,7 +1206,7 @@ var useCloseDrawDialog = function useCloseDrawDialog(_ref) {
|
|
|
1199
1206
|
source: source
|
|
1200
1207
|
}));
|
|
1201
1208
|
// reset all drawings fields
|
|
1202
|
-
dispatch(
|
|
1209
|
+
dispatch(warningsDrawingsActions.setDrawValues({
|
|
1203
1210
|
drawingInstanceId: drawingDialogType,
|
|
1204
1211
|
objectName: '',
|
|
1205
1212
|
id: ''
|
|
@@ -1246,7 +1253,7 @@ var useCloseObjectDialog = function useCloseObjectDialog(_ref3) {
|
|
|
1246
1253
|
}
|
|
1247
1254
|
// reset active object
|
|
1248
1255
|
if (shouldReset) {
|
|
1249
|
-
dispatch(
|
|
1256
|
+
dispatch(warningsDrawingsActions.setDrawValues({
|
|
1250
1257
|
drawingInstanceId: drawingDialogType,
|
|
1251
1258
|
objectName: '',
|
|
1252
1259
|
id: ''
|
|
@@ -1305,7 +1312,7 @@ var useObjectDrawDialogAction = function useObjectDrawDialogAction(_ref5) {
|
|
|
1305
1312
|
drawDialogLayerHasGeoJSON = _useDialogOptions.hasGeoJSON,
|
|
1306
1313
|
drawDialogLayerId = _useDialogOptions.dialogLayerId;
|
|
1307
1314
|
var drawDialogActiveDrawModeId = useSelector(function (store) {
|
|
1308
|
-
return
|
|
1315
|
+
return drawingToolSelectors.getActiveDrawModeId(store, drawingDialogType);
|
|
1309
1316
|
});
|
|
1310
1317
|
var isFormDirty = useSelector(function (store) {
|
|
1311
1318
|
return getWarningFormDirty(store, drawingDialogType);
|
|
@@ -1952,10 +1959,6 @@ var getApiRoutes$1 = function getApiRoutes(axiosInstance) {
|
|
|
1952
1959
|
getAreaKeywords: function getAreaKeywords() {
|
|
1953
1960
|
return axiosInstance.get("/area-keywords");
|
|
1954
1961
|
},
|
|
1955
|
-
// warnings
|
|
1956
|
-
getWarnings: function getWarnings() {
|
|
1957
|
-
return axiosInstance.get('/warnings');
|
|
1958
|
-
},
|
|
1959
1962
|
saveWarningAs: function saveWarningAs(data) {
|
|
1960
1963
|
return axiosInstance.post("/warnings/", data).then(function (response) {
|
|
1961
1964
|
var headerLocation = response == null ? void 0 : response.request.getResponseHeader('Location');
|
|
@@ -1967,9 +1970,6 @@ var getApiRoutes$1 = function getApiRoutes(axiosInstance) {
|
|
|
1967
1970
|
},
|
|
1968
1971
|
deleteWarning: function deleteWarning(warningId) {
|
|
1969
1972
|
return axiosInstance.post("/warnings/" + warningId + "?delete=true");
|
|
1970
|
-
},
|
|
1971
|
-
toggleEditorWarning: function toggleEditorWarning(warningId, isEditor) {
|
|
1972
|
-
return axiosInstance.post("/warnings/" + warningId + "?editor=" + (isEditor ? 'true' : 'false'));
|
|
1973
1973
|
}
|
|
1974
1974
|
};
|
|
1975
1975
|
};
|
|
@@ -2100,84 +2100,22 @@ var publicWarningDialogType = uiTypes.DialogTypes.PublicWarnings;
|
|
|
2100
2100
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2101
2101
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2102
2102
|
* */
|
|
2103
|
-
var
|
|
2104
|
-
|
|
2105
|
-
return warning.id;
|
|
2106
|
-
}
|
|
2107
|
-
});
|
|
2108
|
-
var initialState$1 = {
|
|
2109
|
-
warnings: publicWarningsAdapter.getInitialState(),
|
|
2110
|
-
isLoading: true,
|
|
2111
|
-
lastUpdatedTime: '',
|
|
2112
|
-
filterState: {}
|
|
2113
|
-
};
|
|
2103
|
+
var TAKEOVER_MESSAGE = 'You are no longer the editor of this warning';
|
|
2104
|
+
var initialState$1 = {};
|
|
2114
2105
|
var slice$1 = createSlice({
|
|
2115
2106
|
initialState: initialState$1,
|
|
2116
|
-
name: 'publicWarnings',
|
|
2117
|
-
reducers: {
|
|
2118
|
-
fetchWarnings: function fetchWarnings(draft) {
|
|
2119
|
-
draft.isLoading = true;
|
|
2120
|
-
delete draft.error;
|
|
2121
|
-
},
|
|
2122
|
-
fetchWarningsSuccess: function fetchWarningsSuccess(draft, action) {
|
|
2123
|
-
var _action$payload = action.payload,
|
|
2124
|
-
warnings = _action$payload.warnings,
|
|
2125
|
-
lastUpdatedTime = _action$payload.lastUpdatedTime;
|
|
2126
|
-
draft.isLoading = false;
|
|
2127
|
-
draft.lastUpdatedTime = lastUpdatedTime;
|
|
2128
|
-
publicWarningsAdapter.setAll(draft.warnings, warnings);
|
|
2129
|
-
},
|
|
2130
|
-
fetchWarningsError: function fetchWarningsError(draft, action) {
|
|
2131
|
-
var error = action.payload.error;
|
|
2132
|
-
draft.isLoading = false;
|
|
2133
|
-
draft.error = error;
|
|
2134
|
-
},
|
|
2135
|
-
setWarningFilters: function setWarningFilters(draft, action) {
|
|
2136
|
-
var _action$payload2 = action.payload,
|
|
2137
|
-
filterState = _action$payload2.filterState,
|
|
2138
|
-
panelId = _action$payload2.panelId;
|
|
2139
|
-
if (panelId) {
|
|
2140
|
-
draft.filterState[panelId] = filterState;
|
|
2141
|
-
}
|
|
2142
|
-
}
|
|
2143
|
-
}
|
|
2144
|
-
});
|
|
2145
|
-
var reducer$1 = slice$1.reducer;
|
|
2146
|
-
var publicWarningActions = slice$1.actions;
|
|
2147
|
-
|
|
2148
|
-
/* *
|
|
2149
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2150
|
-
* you may not use this file except in compliance with the License.
|
|
2151
|
-
* You may obtain a copy of the License at
|
|
2152
|
-
*
|
|
2153
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2154
|
-
*
|
|
2155
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
2156
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2157
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2158
|
-
* See the License for the specific language governing permissions and
|
|
2159
|
-
* limitations under the License.
|
|
2160
|
-
*
|
|
2161
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
2162
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2163
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2164
|
-
* */
|
|
2165
|
-
var TAKEOVER_MESSAGE = 'You are no longer the editor of this warning';
|
|
2166
|
-
var initialState = {};
|
|
2167
|
-
var slice = createSlice({
|
|
2168
|
-
initialState: initialState,
|
|
2169
2107
|
name: 'publicWarningForm',
|
|
2170
2108
|
reducers: {
|
|
2171
2109
|
setFormValues: function setFormValues(draft, action) {
|
|
2172
2110
|
var _action$payload = action.payload,
|
|
2173
2111
|
object = _action$payload.object,
|
|
2174
|
-
|
|
2112
|
+
warning = _action$payload.warning,
|
|
2175
2113
|
formState = _action$payload.formState;
|
|
2176
2114
|
if (object) {
|
|
2177
2115
|
draft.object = object;
|
|
2178
2116
|
}
|
|
2179
|
-
if (
|
|
2180
|
-
draft.
|
|
2117
|
+
if (warning) {
|
|
2118
|
+
draft.warning = warning;
|
|
2181
2119
|
}
|
|
2182
2120
|
if (formState !== undefined) {
|
|
2183
2121
|
draft.formState = formState;
|
|
@@ -2186,62 +2124,50 @@ var slice = createSlice({
|
|
|
2186
2124
|
addArea: function addArea(draft, action) {
|
|
2187
2125
|
var area = action.payload.area;
|
|
2188
2126
|
// only support 1 area (for now)
|
|
2189
|
-
if (draft.
|
|
2190
|
-
var
|
|
2191
|
-
draft.
|
|
2127
|
+
if (draft.warning) {
|
|
2128
|
+
var _draft$warning$warnin;
|
|
2129
|
+
var areaWithPreservedUUID = Object.assign({}, (_draft$warning$warnin = draft.warning.warningDetail.areas) == null ? void 0 : _draft$warning$warnin.at(0), area);
|
|
2130
|
+
draft.warning.warningDetail.areas = [areaWithPreservedUUID];
|
|
2192
2131
|
} else {
|
|
2193
2132
|
var newWarning = {
|
|
2194
2133
|
warningDetail: {
|
|
2195
2134
|
areas: [area]
|
|
2196
2135
|
}
|
|
2197
2136
|
};
|
|
2198
|
-
draft.
|
|
2137
|
+
draft.warning = newWarning;
|
|
2199
2138
|
}
|
|
2200
2139
|
},
|
|
2201
2140
|
removeArea: function removeArea(draft, action) {
|
|
2202
2141
|
var area = action.payload.area;
|
|
2203
|
-
if (draft.
|
|
2204
|
-
var
|
|
2142
|
+
if (draft.warning) {
|
|
2143
|
+
var _draft$warning$warnin2;
|
|
2144
|
+
var removeAreas = (_draft$warning$warnin2 = draft.warning.warningDetail.areas) == null ? void 0 : _draft$warning$warnin2.filter(function (existingArea) {
|
|
2205
2145
|
return existingArea.objectName !== area.objectName;
|
|
2206
2146
|
});
|
|
2207
|
-
draft.
|
|
2147
|
+
draft.warning.warningDetail.areas = removeAreas;
|
|
2208
2148
|
}
|
|
2209
2149
|
},
|
|
2210
2150
|
removeAllAreas: function removeAllAreas(draft) {
|
|
2211
|
-
if (draft.
|
|
2212
|
-
draft.
|
|
2151
|
+
if (draft.warning) {
|
|
2152
|
+
draft.warning.warningDetail.areas = [];
|
|
2213
2153
|
}
|
|
2214
2154
|
},
|
|
2215
2155
|
openPublicWarningFormDialog: function openPublicWarningFormDialog(draft, action) {
|
|
2216
2156
|
var _action$payload2 = action.payload,
|
|
2217
2157
|
object = _action$payload2.object,
|
|
2218
|
-
|
|
2158
|
+
warning = _action$payload2.warning,
|
|
2219
2159
|
_action$payload2$form = _action$payload2.formState,
|
|
2220
2160
|
formState = _action$payload2$form === void 0 ? '' : _action$payload2$form,
|
|
2221
2161
|
_action$payload2$warn = _action$payload2.warningType,
|
|
2222
2162
|
warningType = _action$payload2$warn === void 0 ? 'public' : _action$payload2$warn,
|
|
2223
2163
|
panelId = _action$payload2.panelId;
|
|
2224
2164
|
draft.object = object;
|
|
2225
|
-
draft.
|
|
2226
|
-
draft.
|
|
2165
|
+
draft.warning = warning;
|
|
2166
|
+
draft.selectedWarningId = warning == null ? void 0 : warning.id;
|
|
2227
2167
|
draft.formState = formState;
|
|
2228
|
-
draft.warningType = warningType;
|
|
2168
|
+
draft.warningType = (warning == null ? void 0 : warning.type) || warningType;
|
|
2229
2169
|
draft.panelId = panelId;
|
|
2230
2170
|
},
|
|
2231
|
-
toggleEditorWarning: function toggleEditorWarning(draft,
|
|
2232
|
-
// eslint-disable-next-line no-unused-vars
|
|
2233
|
-
action) {
|
|
2234
|
-
delete draft.error;
|
|
2235
|
-
},
|
|
2236
|
-
toggleEditorWarningSuccess: function toggleEditorWarningSuccess(draft, action) {
|
|
2237
|
-
var _action$payload3 = action.payload,
|
|
2238
|
-
isEditor = _action$payload3.isEditor,
|
|
2239
|
-
username = _action$payload3.username;
|
|
2240
|
-
if (draft.publicWarning) {
|
|
2241
|
-
draft.publicWarning.editor = isEditor ? username : '';
|
|
2242
|
-
}
|
|
2243
|
-
draft.formState = isEditor ? '' : 'readonly';
|
|
2244
|
-
},
|
|
2245
2171
|
// publish warning
|
|
2246
2172
|
publishWarning: function publishWarning(draft,
|
|
2247
2173
|
// eslint-disable-next-line no-unused-vars
|
|
@@ -2251,7 +2177,7 @@ var slice = createSlice({
|
|
|
2251
2177
|
},
|
|
2252
2178
|
publishWarningSuccess: function publishWarningSuccess(draft, action) {
|
|
2253
2179
|
var publicWarning = action.payload.publicWarning;
|
|
2254
|
-
draft.
|
|
2180
|
+
draft.warning = publicWarning;
|
|
2255
2181
|
// If form has been published, set form to readonly
|
|
2256
2182
|
draft.formState = 'readonly';
|
|
2257
2183
|
},
|
|
@@ -2261,70 +2187,60 @@ var slice = createSlice({
|
|
|
2261
2187
|
action) {
|
|
2262
2188
|
draft.formState = 'saving';
|
|
2263
2189
|
delete draft.error;
|
|
2264
|
-
draft.
|
|
2190
|
+
draft.warning = action.payload.publicWarning;
|
|
2265
2191
|
},
|
|
2266
2192
|
saveWarningSuccess: function saveWarningSuccess(draft, action) {
|
|
2267
2193
|
var _publicWarning$warnin;
|
|
2268
2194
|
var publicWarning = action.payload.publicWarning;
|
|
2269
|
-
draft.
|
|
2195
|
+
draft.warning = publicWarning;
|
|
2270
2196
|
if (publicWarning != null && (_publicWarning$warnin = publicWarning.warningDetail) != null && _publicWarning$warnin.id) {
|
|
2271
|
-
draft.
|
|
2197
|
+
draft.selectedWarningId = publicWarning.warningDetail.id;
|
|
2272
2198
|
}
|
|
2273
2199
|
draft.formState = '';
|
|
2274
2200
|
},
|
|
2275
2201
|
setFormError: function setFormError(draft, action) {
|
|
2276
|
-
var _action$
|
|
2277
|
-
message = _action$
|
|
2278
|
-
_action$
|
|
2279
|
-
severity = _action$
|
|
2202
|
+
var _action$payload3 = action.payload,
|
|
2203
|
+
message = _action$payload3.message,
|
|
2204
|
+
_action$payload3$seve = _action$payload3.severity,
|
|
2205
|
+
severity = _action$payload3$seve === void 0 ? 'error' : _action$payload3$seve;
|
|
2280
2206
|
draft.formState = '';
|
|
2281
2207
|
draft.error = {
|
|
2282
2208
|
severity: severity,
|
|
2283
2209
|
message: message
|
|
2284
2210
|
};
|
|
2285
2211
|
},
|
|
2212
|
+
removeFormError: function removeFormError(draft) {
|
|
2213
|
+
delete draft.error;
|
|
2214
|
+
},
|
|
2286
2215
|
setFormDirty: function setFormDirty(draft, action) {
|
|
2287
2216
|
var isFormDirty = action.payload.isFormDirty;
|
|
2288
2217
|
draft.isFormDirty = isFormDirty;
|
|
2218
|
+
},
|
|
2219
|
+
setEditMode: function setEditMode(draft, action) {
|
|
2220
|
+
var warningId = action.payload.warningId;
|
|
2221
|
+
draft.selectedWarningId = warningId;
|
|
2222
|
+
draft.formState = 'edit';
|
|
2289
2223
|
}
|
|
2290
2224
|
},
|
|
2291
2225
|
extraReducers: function extraReducers(builder) {
|
|
2292
2226
|
builder.addCase(uiActions.setToggleOpenDialog, function (draft, action) {
|
|
2293
|
-
var _action$
|
|
2294
|
-
type = _action$
|
|
2295
|
-
setOpen = _action$
|
|
2227
|
+
var _action$payload4 = action.payload,
|
|
2228
|
+
type = _action$payload4.type,
|
|
2229
|
+
setOpen = _action$payload4.setOpen;
|
|
2296
2230
|
if (type === publicWarningDialogType && setOpen === false) {
|
|
2297
2231
|
delete draft.object;
|
|
2298
|
-
delete draft.
|
|
2232
|
+
delete draft.warning;
|
|
2299
2233
|
delete draft.formState;
|
|
2300
2234
|
delete draft.error;
|
|
2301
|
-
delete draft.
|
|
2235
|
+
delete draft.selectedWarningId;
|
|
2302
2236
|
delete draft.isFormDirty;
|
|
2303
2237
|
delete draft.warningType;
|
|
2304
2238
|
}
|
|
2305
|
-
}).addCase(publicWarningActions.fetchWarningsSuccess, function (draft, action) {
|
|
2306
|
-
var warnings = action.payload.warnings;
|
|
2307
|
-
if (draft.selectedPublicWarningId) {
|
|
2308
|
-
var _draft$publicWarning;
|
|
2309
|
-
var currentWarning = warnings.find(function (warning) {
|
|
2310
|
-
return warning.id === draft.selectedPublicWarningId;
|
|
2311
|
-
});
|
|
2312
|
-
if (currentWarning && ((_draft$publicWarning = draft.publicWarning) == null ? void 0 : _draft$publicWarning.editor) !== currentWarning.editor) {
|
|
2313
|
-
draft.publicWarning.editor = currentWarning.editor;
|
|
2314
|
-
// if form is in edit mode show warning
|
|
2315
|
-
if (draft.formState === '') {
|
|
2316
|
-
draft.error = {
|
|
2317
|
-
severity: 'warning',
|
|
2318
|
-
message: TAKEOVER_MESSAGE
|
|
2319
|
-
};
|
|
2320
|
-
}
|
|
2321
|
-
}
|
|
2322
|
-
}
|
|
2323
2239
|
});
|
|
2324
2240
|
}
|
|
2325
2241
|
});
|
|
2326
|
-
var
|
|
2327
|
-
|
|
2242
|
+
var publicWarningFormReducer = slice$1.reducer,
|
|
2243
|
+
publicWarningFormActions = slice$1.actions;
|
|
2328
2244
|
|
|
2329
2245
|
var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
2330
2246
|
var bounds = _ref.bounds,
|
|
@@ -2424,7 +2340,7 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
2424
2340
|
while (1) switch (_context.prev = _context.next) {
|
|
2425
2341
|
case 0:
|
|
2426
2342
|
isActive = drawing.id === (currrentDrawing == null ? void 0 : currrentDrawing.id);
|
|
2427
|
-
dispatch(
|
|
2343
|
+
dispatch(warningsDrawingsActions.setDrawValues({
|
|
2428
2344
|
objectName: drawing.objectName,
|
|
2429
2345
|
drawingInstanceId: drawingDialogType,
|
|
2430
2346
|
id: !isActive ? drawing.id : ''
|
|
@@ -2470,7 +2386,7 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
2470
2386
|
_yield$warningsApi$ge = _context2.sent;
|
|
2471
2387
|
data = _yield$warningsApi$ge.data;
|
|
2472
2388
|
// update draw tool values
|
|
2473
|
-
dispatch(
|
|
2389
|
+
dispatch(warningsDrawingsActions.setDrawValues({
|
|
2474
2390
|
objectName: data.objectName,
|
|
2475
2391
|
id: drawingId,
|
|
2476
2392
|
drawingInstanceId: drawingDialogType
|
|
@@ -2508,13 +2424,14 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
2508
2424
|
var onShareObject = function onShareObject(object) {
|
|
2509
2425
|
dispatch(publicWarningFormActions.openPublicWarningFormDialog({
|
|
2510
2426
|
object: object,
|
|
2511
|
-
|
|
2427
|
+
warning: {
|
|
2512
2428
|
warningDetail: {
|
|
2513
2429
|
areas: [{
|
|
2514
2430
|
geoJSON: object.geoJSON,
|
|
2515
2431
|
objectName: object.objectName
|
|
2516
2432
|
}]
|
|
2517
|
-
}
|
|
2433
|
+
},
|
|
2434
|
+
type: 'public'
|
|
2518
2435
|
}
|
|
2519
2436
|
}));
|
|
2520
2437
|
};
|
|
@@ -6950,132 +6867,733 @@ var warningListJSON = [
|
|
|
6950
6867
|
}
|
|
6951
6868
|
];
|
|
6952
6869
|
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
|
|
6958
|
-
|
|
6959
|
-
|
|
6960
|
-
|
|
6961
|
-
|
|
6962
|
-
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
6972
|
-
|
|
6973
|
-
|
|
6974
|
-
|
|
6975
|
-
|
|
6976
|
-
|
|
6870
|
+
var sigmetListJSON$1 = [
|
|
6871
|
+
{
|
|
6872
|
+
id: "57eaf6c8-a247-11ef-ac05-12e0cc025418",
|
|
6873
|
+
lastUpdatedTime: "2024-11-14T05:14:37",
|
|
6874
|
+
productStatus: "DRAFT",
|
|
6875
|
+
sigmetAirmetDetails: {
|
|
6876
|
+
},
|
|
6877
|
+
warningDetail: {
|
|
6878
|
+
areas: [
|
|
6879
|
+
{
|
|
6880
|
+
geoJSON: {
|
|
6881
|
+
features: [
|
|
6882
|
+
{
|
|
6883
|
+
geometry: {
|
|
6884
|
+
type: "Polygon",
|
|
6885
|
+
coordinates: [
|
|
6886
|
+
[
|
|
6887
|
+
[
|
|
6888
|
+
10,
|
|
6889
|
+
20
|
|
6890
|
+
],
|
|
6891
|
+
[
|
|
6892
|
+
15,
|
|
6893
|
+
25
|
|
6894
|
+
],
|
|
6895
|
+
[
|
|
6896
|
+
20,
|
|
6897
|
+
20
|
|
6898
|
+
],
|
|
6899
|
+
[
|
|
6900
|
+
10,
|
|
6901
|
+
20
|
|
6902
|
+
]
|
|
6903
|
+
]
|
|
6904
|
+
]
|
|
6905
|
+
},
|
|
6906
|
+
properties: {
|
|
6907
|
+
selectionType: "fir",
|
|
6908
|
+
stroke: "#0075a9",
|
|
6909
|
+
"stroke-width": 1.5,
|
|
6910
|
+
"stroke-opacity": 1,
|
|
6911
|
+
fill: "#0075a9",
|
|
6912
|
+
"fill-opacity": 0.4
|
|
6913
|
+
},
|
|
6914
|
+
type: "Feature"
|
|
6915
|
+
}
|
|
6916
|
+
],
|
|
6917
|
+
type: "FeatureCollection"
|
|
6918
|
+
},
|
|
6919
|
+
objectName: "ENOB"
|
|
6920
|
+
}
|
|
6921
|
+
],
|
|
6922
|
+
descriptionOriginal: "",
|
|
6923
|
+
descriptionTranslation: "",
|
|
6924
|
+
firName: "BODOE OCEANIC FIR",
|
|
6925
|
+
incident: "-1",
|
|
6926
|
+
level: "SIG",
|
|
6927
|
+
phenomenon: "EMBD_TSGR",
|
|
6928
|
+
probability: "0",
|
|
6929
|
+
validFrom: "2024-11-14T05:30:14Z",
|
|
6930
|
+
validUntil: "2024-11-14T07:30:14Z"
|
|
6931
|
+
}
|
|
6932
|
+
},
|
|
6933
|
+
{
|
|
6934
|
+
id: "fc4c0002-8d32-11ef-888b-ee87a1644661",
|
|
6935
|
+
lastUpdatedTime: "2024-11-14T05:14:06",
|
|
6936
|
+
productStatus: "EXPIRED",
|
|
6937
|
+
sigmetAirmetDetails: {
|
|
6938
|
+
},
|
|
6939
|
+
warningDetail: {
|
|
6940
|
+
areas: [
|
|
6941
|
+
{
|
|
6942
|
+
geoJSON: null,
|
|
6943
|
+
objectName: "EFIN"
|
|
6944
|
+
}
|
|
6945
|
+
],
|
|
6946
|
+
descriptionOriginal: "",
|
|
6947
|
+
descriptionTranslation: "",
|
|
6948
|
+
firName: "HELSINKI FIR",
|
|
6949
|
+
incident: "T01",
|
|
6950
|
+
level: "SIG",
|
|
6951
|
+
phenomenon: "OBSC_TS",
|
|
6952
|
+
probability: "0",
|
|
6953
|
+
validFrom: "2024-11-13T05:30:14Z",
|
|
6954
|
+
validUntil: "2024-11-13T07:30:14Z"
|
|
6955
|
+
}
|
|
6956
|
+
},
|
|
6957
|
+
{
|
|
6958
|
+
id: "fe4a14bc-8a90-11ef-9090-6c08d8abf452",
|
|
6959
|
+
lastUpdatedTime: "2024-10-08T08:10:30",
|
|
6960
|
+
productStatus: "PUBLISHED",
|
|
6961
|
+
sigmetAirmetDetails: {
|
|
6962
|
+
},
|
|
6963
|
+
warningDetail: {
|
|
6964
|
+
areas: [
|
|
6965
|
+
{
|
|
6966
|
+
geoJSON: null,
|
|
6967
|
+
objectName: "EHAA"
|
|
6968
|
+
}
|
|
6969
|
+
],
|
|
6970
|
+
descriptionOriginal: "",
|
|
6971
|
+
descriptionTranslation: "",
|
|
6972
|
+
firName: "AMSTERDAM FIR",
|
|
6973
|
+
incident: "Z01",
|
|
6974
|
+
level: "SIG",
|
|
6975
|
+
phenomenon: "SEV_ICE",
|
|
6976
|
+
probability: "0",
|
|
6977
|
+
validFrom: "2024-10-08T05:30:14Z",
|
|
6978
|
+
validUntil: "2024-10-08T09:30:14Z"
|
|
6979
|
+
}
|
|
6980
|
+
},
|
|
6981
|
+
{
|
|
6982
|
+
id: "fe4a14bc-8a90-11ef-9090-6c08d8abf453",
|
|
6983
|
+
lastUpdatedTime: "2024-10-08T08:10:30",
|
|
6984
|
+
productStatus: "CANCELLED",
|
|
6985
|
+
warningDetail: {
|
|
6986
|
+
areas: [
|
|
6987
|
+
{
|
|
6988
|
+
geoJSON: null,
|
|
6989
|
+
objectName: "ENOR"
|
|
6990
|
+
}
|
|
6991
|
+
],
|
|
6992
|
+
descriptionOriginal: "",
|
|
6993
|
+
descriptionTranslation: "",
|
|
6994
|
+
firName: "POLARIS FIR",
|
|
6995
|
+
incident: "U01",
|
|
6996
|
+
level: "SIG",
|
|
6997
|
+
phenomenon: "SEV_TURB",
|
|
6998
|
+
probability: "0",
|
|
6999
|
+
validFrom: "2024-10-08T05:30:14Z",
|
|
7000
|
+
validUntil: "2024-10-08T09:30:14Z"
|
|
7001
|
+
},
|
|
7002
|
+
sigmetAirmetDetails: {
|
|
7003
|
+
sequence: "U01",
|
|
7004
|
+
productStatus: "CANCELLED"
|
|
7005
|
+
}
|
|
7006
|
+
},
|
|
7007
|
+
{
|
|
7008
|
+
id: "fe4a14bc-8a90-11ef-9090-6c08d8abf454",
|
|
7009
|
+
lastUpdatedTime: "2024-10-08T08:10:30",
|
|
7010
|
+
productStatus: "PUBLISHED",
|
|
7011
|
+
warningDetail: {
|
|
7012
|
+
areas: [
|
|
7013
|
+
{
|
|
7014
|
+
geoJSON: null,
|
|
7015
|
+
objectName: "ENOR"
|
|
7016
|
+
}
|
|
7017
|
+
],
|
|
7018
|
+
descriptionOriginal: "",
|
|
7019
|
+
descriptionTranslation: "",
|
|
7020
|
+
firName: "POLARIS FIR",
|
|
7021
|
+
incident: "U02",
|
|
7022
|
+
level: "SIG",
|
|
7023
|
+
phenomenon: "SEV_TURB",
|
|
7024
|
+
probability: "0",
|
|
7025
|
+
validFrom: "2024-10-08T05:30:14Z",
|
|
7026
|
+
validUntil: "2024-10-08T09:30:14Z"
|
|
7027
|
+
},
|
|
7028
|
+
sigmetAirmetDetails: {
|
|
7029
|
+
cancelsSigmetSequenceId: "U01",
|
|
7030
|
+
sequence: "U02",
|
|
7031
|
+
productStatus: "PUBLISHED"
|
|
7032
|
+
}
|
|
7033
|
+
}
|
|
7034
|
+
];
|
|
6977
7035
|
|
|
6978
|
-
|
|
6979
|
-
|
|
6980
|
-
|
|
6981
|
-
|
|
6982
|
-
|
|
6983
|
-
|
|
6984
|
-
|
|
6985
|
-
|
|
6986
|
-
|
|
6987
|
-
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
|
|
6993
|
-
|
|
6994
|
-
|
|
6995
|
-
|
|
6996
|
-
|
|
6997
|
-
|
|
6998
|
-
|
|
6999
|
-
|
|
7000
|
-
|
|
7001
|
-
}
|
|
7002
|
-
|
|
7003
|
-
|
|
7004
|
-
|
|
7005
|
-
|
|
7006
|
-
|
|
7007
|
-
|
|
7008
|
-
|
|
7009
|
-
|
|
7010
|
-
|
|
7011
|
-
|
|
7012
|
-
|
|
7013
|
-
|
|
7014
|
-
|
|
7015
|
-
|
|
7016
|
-
|
|
7017
|
-
|
|
7018
|
-
|
|
7019
|
-
|
|
7020
|
-
|
|
7021
|
-
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
|
|
7036
|
-
|
|
7037
|
-
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7059
|
-
|
|
7060
|
-
|
|
7061
|
-
|
|
7062
|
-
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7067
|
-
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7036
|
+
var airmetListJSON$1 = [
|
|
7037
|
+
{
|
|
7038
|
+
id: "02d3727a-b190-11ef-ba31-067f7750936d",
|
|
7039
|
+
lastUpdatedTime: "2024-12-03T16:02:35",
|
|
7040
|
+
productStatus: "DRAFT",
|
|
7041
|
+
sigmetAirmetDetails: {
|
|
7042
|
+
},
|
|
7043
|
+
warningDetail: {
|
|
7044
|
+
areas: [
|
|
7045
|
+
{
|
|
7046
|
+
geoJSON: null,
|
|
7047
|
+
objectName: "EHAA"
|
|
7048
|
+
}
|
|
7049
|
+
],
|
|
7050
|
+
descriptionOriginal: "",
|
|
7051
|
+
descriptionTranslation: "",
|
|
7052
|
+
firName: "AMSTERDAM FIR",
|
|
7053
|
+
incident: "-1",
|
|
7054
|
+
level: "AIR",
|
|
7055
|
+
phenomenon: "SFC_WIND",
|
|
7056
|
+
probability: "0",
|
|
7057
|
+
validFrom: "2024-12-03T17:00:09Z",
|
|
7058
|
+
validUntil: "2024-12-03T21:00:09Z"
|
|
7059
|
+
}
|
|
7060
|
+
},
|
|
7061
|
+
{
|
|
7062
|
+
id: "1a868884-9076-11ef-8e82-5a063b90cdf6",
|
|
7063
|
+
lastUpdatedTime: "2024-10-22T13:03:56",
|
|
7064
|
+
productStatus: "DRAFT",
|
|
7065
|
+
sigmetAirmetDetails: {
|
|
7066
|
+
},
|
|
7067
|
+
warningDetail: {
|
|
7068
|
+
areas: [
|
|
7069
|
+
{
|
|
7070
|
+
geoJSON: null,
|
|
7071
|
+
objectName: "EHAA"
|
|
7072
|
+
}
|
|
7073
|
+
],
|
|
7074
|
+
descriptionOriginal: "",
|
|
7075
|
+
descriptionTranslation: "",
|
|
7076
|
+
firName: "AMSTERDAM FIR",
|
|
7077
|
+
incident: "-1",
|
|
7078
|
+
level: "AIR",
|
|
7079
|
+
phenomenon: "MOD_TURB",
|
|
7080
|
+
probability: "0",
|
|
7081
|
+
validFrom: "2024-10-22T15:00:09Z",
|
|
7082
|
+
validUntil: "2024-10-22T18:00:09Z"
|
|
7083
|
+
}
|
|
7084
|
+
},
|
|
7085
|
+
{
|
|
7086
|
+
id: "4ac7fc94-c670-11ee-8ace-92491e683685",
|
|
7087
|
+
lastUpdatedTime: "2024-02-08T12:26:31.803468",
|
|
7088
|
+
productStatus: "EXPIRED",
|
|
7089
|
+
sigmetAirmetDetails: {
|
|
7090
|
+
},
|
|
7091
|
+
warningDetail: {
|
|
7092
|
+
areas: [
|
|
7093
|
+
{
|
|
7094
|
+
geoJSON: null,
|
|
7095
|
+
objectName: "ENOR"
|
|
7096
|
+
}
|
|
7097
|
+
],
|
|
7098
|
+
descriptionOriginal: "",
|
|
7099
|
+
descriptionTranslation: "",
|
|
7100
|
+
firName: "POLARIS FIR",
|
|
7101
|
+
incident: "T01",
|
|
7102
|
+
level: "AIR",
|
|
7103
|
+
phenomenon: "OBSC_TS",
|
|
7104
|
+
probability: "0",
|
|
7105
|
+
validFrom: "2024-02-08T09:00:09Z",
|
|
7106
|
+
validUntil: "2024-02-08T11:00:09Z"
|
|
7107
|
+
}
|
|
7108
|
+
},
|
|
7109
|
+
{
|
|
7110
|
+
id: "9dbcd4c6-c4c0-11ee-a0e9-9e39e246af14",
|
|
7111
|
+
lastUpdatedTime: "2024-02-06T07:15:18.166785",
|
|
7112
|
+
productStatus: "PUBLISHED",
|
|
7113
|
+
sigmetAirmetDetails: {
|
|
7114
|
+
},
|
|
7115
|
+
warningDetail: {
|
|
7116
|
+
areas: [
|
|
7117
|
+
{
|
|
7118
|
+
geoJSON: null,
|
|
7119
|
+
objectName: "EHAA"
|
|
7120
|
+
}
|
|
7121
|
+
],
|
|
7122
|
+
descriptionOriginal: "",
|
|
7123
|
+
descriptionTranslation: "",
|
|
7124
|
+
firName: "AMSTERDAM FIR",
|
|
7125
|
+
incident: "Z01",
|
|
7126
|
+
level: "AIR",
|
|
7127
|
+
phenomenon: "SEV_ICE",
|
|
7128
|
+
probability: "0",
|
|
7129
|
+
validFrom: "2024-02-06T08:00:09Z",
|
|
7130
|
+
validUntil: "2024-02-06T12:00:09Z"
|
|
7131
|
+
}
|
|
7132
|
+
}
|
|
7133
|
+
];
|
|
7134
|
+
|
|
7135
|
+
var airmetListJSON = [
|
|
7136
|
+
{
|
|
7137
|
+
uuid: "02d3727a-b190-11ef-ba31-067f7750936d",
|
|
7138
|
+
lastUpdateDate: "2024-12-03T16:02:35",
|
|
7139
|
+
creationDate: "2024-12-03T16:02:35",
|
|
7140
|
+
canbe: [
|
|
7141
|
+
"DRAFTED",
|
|
7142
|
+
"DISCARDED",
|
|
7143
|
+
"PUBLISHED"
|
|
7144
|
+
],
|
|
7145
|
+
airmet: {
|
|
7146
|
+
uuid: "02d3727a-b190-11ef-ba31-067f7750936d",
|
|
7147
|
+
phenomenon: "SFC_WIND",
|
|
7148
|
+
sequence: "-1",
|
|
7149
|
+
validDateStart: "2024-12-03T13:26:19Z",
|
|
7150
|
+
validDateEnd: "2024-12-03T15:26:19Z",
|
|
7151
|
+
firName: "AMSTERDAM FIR",
|
|
7152
|
+
locationIndicatorATSU: "EHAA",
|
|
7153
|
+
locationIndicatorATSR: "EHAA",
|
|
7154
|
+
locationIndicatorMWO: "EHDB",
|
|
7155
|
+
isObservationOrForecast: "OBS",
|
|
7156
|
+
observationOrForecastTime: "2024-12-03T11:26:19Z",
|
|
7157
|
+
movementType: "STATIONARY",
|
|
7158
|
+
change: "WKN",
|
|
7159
|
+
type: "NORMAL",
|
|
7160
|
+
status: "DRAFT",
|
|
7161
|
+
windDirection: 70,
|
|
7162
|
+
windSpeed: 35,
|
|
7163
|
+
windUnit: "KT",
|
|
7164
|
+
firGeometry: {
|
|
7165
|
+
},
|
|
7166
|
+
startGeometry: {
|
|
7167
|
+
type: "FeatureCollection",
|
|
7168
|
+
features: [
|
|
7169
|
+
{
|
|
7170
|
+
type: "Feature",
|
|
7171
|
+
geometry: {
|
|
7172
|
+
type: "Polygon",
|
|
7173
|
+
coordinates: [
|
|
7174
|
+
[
|
|
7175
|
+
[
|
|
7176
|
+
5,
|
|
7177
|
+
55
|
|
7178
|
+
],
|
|
7179
|
+
[
|
|
7180
|
+
4.331914,
|
|
7181
|
+
55.332644
|
|
7182
|
+
],
|
|
7183
|
+
[
|
|
7184
|
+
3.368817,
|
|
7185
|
+
55.764314
|
|
7186
|
+
],
|
|
7187
|
+
[
|
|
7188
|
+
2.761908,
|
|
7189
|
+
54.379261
|
|
7190
|
+
],
|
|
7191
|
+
[
|
|
7192
|
+
3.15576,
|
|
7193
|
+
52.913554
|
|
7194
|
+
],
|
|
7195
|
+
[
|
|
7196
|
+
2.000002,
|
|
7197
|
+
51.500002
|
|
7198
|
+
],
|
|
7199
|
+
[
|
|
7200
|
+
3.370001,
|
|
7201
|
+
51.369722
|
|
7202
|
+
],
|
|
7203
|
+
[
|
|
7204
|
+
3.370527,
|
|
7205
|
+
51.36867
|
|
7206
|
+
],
|
|
7207
|
+
[
|
|
7208
|
+
3.362223,
|
|
7209
|
+
51.320002
|
|
7210
|
+
],
|
|
7211
|
+
[
|
|
7212
|
+
3.36389,
|
|
7213
|
+
51.313608
|
|
7214
|
+
],
|
|
7215
|
+
[
|
|
7216
|
+
3.373613,
|
|
7217
|
+
51.309999
|
|
7218
|
+
],
|
|
7219
|
+
[
|
|
7220
|
+
3.952501,
|
|
7221
|
+
51.214441
|
|
7222
|
+
],
|
|
7223
|
+
[
|
|
7224
|
+
4.397501,
|
|
7225
|
+
51.452776
|
|
7226
|
+
],
|
|
7227
|
+
[
|
|
7228
|
+
5.078611,
|
|
7229
|
+
51.391665
|
|
7230
|
+
],
|
|
7231
|
+
[
|
|
7232
|
+
5.848333,
|
|
7233
|
+
51.139444
|
|
7234
|
+
],
|
|
7235
|
+
[
|
|
7236
|
+
5.651667,
|
|
7237
|
+
50.824717
|
|
7238
|
+
],
|
|
7239
|
+
[
|
|
7240
|
+
6.011797,
|
|
7241
|
+
50.757273
|
|
7242
|
+
],
|
|
7243
|
+
[
|
|
7244
|
+
5.934168,
|
|
7245
|
+
51.036386
|
|
7246
|
+
],
|
|
7247
|
+
[
|
|
7248
|
+
6.222223,
|
|
7249
|
+
51.361666
|
|
7250
|
+
],
|
|
7251
|
+
[
|
|
7252
|
+
5.94639,
|
|
7253
|
+
51.811663
|
|
7254
|
+
],
|
|
7255
|
+
[
|
|
7256
|
+
6.405001,
|
|
7257
|
+
51.830828
|
|
7258
|
+
],
|
|
7259
|
+
[
|
|
7260
|
+
7.053095,
|
|
7261
|
+
52.237764
|
|
7262
|
+
],
|
|
7263
|
+
[
|
|
7264
|
+
7.031389,
|
|
7265
|
+
52.268885
|
|
7266
|
+
],
|
|
7267
|
+
[
|
|
7268
|
+
7.063612,
|
|
7269
|
+
52.346109
|
|
7270
|
+
],
|
|
7271
|
+
[
|
|
7272
|
+
7.065557,
|
|
7273
|
+
52.385828
|
|
7274
|
+
],
|
|
7275
|
+
[
|
|
7276
|
+
7.133055,
|
|
7277
|
+
52.888887
|
|
7278
|
+
],
|
|
7279
|
+
[
|
|
7280
|
+
7.14218,
|
|
7281
|
+
52.898244
|
|
7282
|
+
],
|
|
7283
|
+
[
|
|
7284
|
+
7.191667,
|
|
7285
|
+
53.3
|
|
7286
|
+
],
|
|
7287
|
+
[
|
|
7288
|
+
6.5,
|
|
7289
|
+
53.666667
|
|
7290
|
+
],
|
|
7291
|
+
[
|
|
7292
|
+
6.500002,
|
|
7293
|
+
55.000002
|
|
7294
|
+
],
|
|
7295
|
+
[
|
|
7296
|
+
5,
|
|
7297
|
+
55
|
|
7298
|
+
]
|
|
7299
|
+
]
|
|
7300
|
+
]
|
|
7301
|
+
},
|
|
7302
|
+
properties: {
|
|
7303
|
+
selectionType: "fir"
|
|
7304
|
+
}
|
|
7305
|
+
}
|
|
7306
|
+
]
|
|
7307
|
+
}
|
|
7308
|
+
}
|
|
7309
|
+
}
|
|
7310
|
+
];
|
|
7311
|
+
|
|
7312
|
+
var sigmetListJSON = [
|
|
7313
|
+
{
|
|
7314
|
+
uuid: "someuniqueidprescibedbyBE2",
|
|
7315
|
+
lastUpdateDate: "2020-09-17T12:00:00Z",
|
|
7316
|
+
creationDate: "2020-09-17T12:00:00Z",
|
|
7317
|
+
canbe: [
|
|
7318
|
+
"CANCELLED"
|
|
7319
|
+
],
|
|
7320
|
+
sigmet: {
|
|
7321
|
+
uuid: "someuniqueidprescibedbyBE2",
|
|
7322
|
+
phenomenon: "VA_CLD",
|
|
7323
|
+
sequence: "A01V",
|
|
7324
|
+
issueDate: "2020-09-17T12:00:00Z",
|
|
7325
|
+
firName: "AMSTERDAM FIR",
|
|
7326
|
+
locationIndicatorATSU: "EHAA",
|
|
7327
|
+
locationIndicatorATSR: "EHAA",
|
|
7328
|
+
locationIndicatorMWO: "EHDB",
|
|
7329
|
+
isObservationOrForecast: "OBS",
|
|
7330
|
+
observationOrForecastTime: "",
|
|
7331
|
+
movementType: "STATIONARY",
|
|
7332
|
+
change: "WKN",
|
|
7333
|
+
type: "NORMAL",
|
|
7334
|
+
status: "PUBLISHED",
|
|
7335
|
+
levelInfoMode: "BETW",
|
|
7336
|
+
vaSigmetVolcanoName: "EYJAFJALLAJOKULL",
|
|
7337
|
+
vaSigmetVolcanoCoordinates: {
|
|
7338
|
+
latitude: 63.62,
|
|
7339
|
+
longitude: -19.61
|
|
7340
|
+
},
|
|
7341
|
+
level: {
|
|
7342
|
+
value: 2000,
|
|
7343
|
+
unit: "FT"
|
|
7344
|
+
},
|
|
7345
|
+
lowerLevel: {
|
|
7346
|
+
value: 1000,
|
|
7347
|
+
unit: "FT"
|
|
7348
|
+
},
|
|
7349
|
+
firGeometry: "",
|
|
7350
|
+
startGeometry: {
|
|
7351
|
+
type: "FeatureCollection",
|
|
7352
|
+
features: [
|
|
7353
|
+
{
|
|
7354
|
+
type: "Feature",
|
|
7355
|
+
properties: {
|
|
7356
|
+
selectionType: "poly"
|
|
7357
|
+
},
|
|
7358
|
+
geometry: {
|
|
7359
|
+
type: "Polygon",
|
|
7360
|
+
coordinates: [
|
|
7361
|
+
[
|
|
7362
|
+
[
|
|
7363
|
+
4.799062887514267,
|
|
7364
|
+
54.04327723979929
|
|
7365
|
+
],
|
|
7366
|
+
[
|
|
7367
|
+
6.006227982070749,
|
|
7368
|
+
53.64012115183787
|
|
7369
|
+
],
|
|
7370
|
+
[
|
|
7371
|
+
4.6168492883359304,
|
|
7372
|
+
53.32840097044425
|
|
7373
|
+
],
|
|
7374
|
+
[
|
|
7375
|
+
4.799062887514267,
|
|
7376
|
+
54.04327723979929
|
|
7377
|
+
]
|
|
7378
|
+
]
|
|
7379
|
+
]
|
|
7380
|
+
}
|
|
7381
|
+
}
|
|
7382
|
+
]
|
|
7383
|
+
},
|
|
7384
|
+
startGeometryIntersect: {
|
|
7385
|
+
type: "FeatureCollection",
|
|
7386
|
+
features: [
|
|
7387
|
+
{
|
|
7388
|
+
type: "Feature",
|
|
7389
|
+
properties: {
|
|
7390
|
+
selectionType: "poly"
|
|
7391
|
+
},
|
|
7392
|
+
geometry: {
|
|
7393
|
+
type: "Polygon",
|
|
7394
|
+
coordinates: [
|
|
7395
|
+
[
|
|
7396
|
+
[
|
|
7397
|
+
4.799062887514267,
|
|
7398
|
+
54.04327723979929
|
|
7399
|
+
],
|
|
7400
|
+
[
|
|
7401
|
+
6.006227982070749,
|
|
7402
|
+
53.64012115183787
|
|
7403
|
+
],
|
|
7404
|
+
[
|
|
7405
|
+
4.6168492883359304,
|
|
7406
|
+
53.32840097044425
|
|
7407
|
+
],
|
|
7408
|
+
[
|
|
7409
|
+
4.799062887514267,
|
|
7410
|
+
54.04327723979929
|
|
7411
|
+
]
|
|
7412
|
+
]
|
|
7413
|
+
]
|
|
7414
|
+
}
|
|
7415
|
+
}
|
|
7416
|
+
]
|
|
7417
|
+
}
|
|
7418
|
+
}
|
|
7419
|
+
}
|
|
7420
|
+
];
|
|
7421
|
+
|
|
7422
|
+
/* *
|
|
7423
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7424
|
+
* you may not use this file except in compliance with the License.
|
|
7425
|
+
* You may obtain a copy of the License at
|
|
7426
|
+
*
|
|
7427
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7428
|
+
*
|
|
7429
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7430
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7431
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7432
|
+
* See the License for the specific language governing permissions and
|
|
7433
|
+
* limitations under the License.
|
|
7434
|
+
*
|
|
7435
|
+
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7436
|
+
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
7437
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7438
|
+
* */
|
|
7439
|
+
var airmetList$1 = airmetListJSON;
|
|
7440
|
+
var sigmetList$1 = sigmetListJSON;
|
|
7441
|
+
var fakeSigmetTAC = 'EHAA SIGMET 1 VALID 121249/121449 EHDB- EHAA AMSTERDAM FIR FRQ TS OBS ENTIRE FIR FL010 STNR WKN';
|
|
7442
|
+
var fakeAirmetTAC = 'EHAA AIRMET -1 VALID 310700/311100 EHDB- EHAA AMSTERDAM FIR ISOL CB OBS ENTIRE FIR FL020 STNR NC';
|
|
7443
|
+
[rest.get(/^.*\/airmetlist$/, function (_, res, ctx) {
|
|
7444
|
+
return res(ctx.status(200), ctx.json(airmetList$1));
|
|
7445
|
+
}), rest.get(/^.*\/sigmetlist$/, function (_, res, ctx) {
|
|
7446
|
+
return res(ctx.status(200), ctx.json(sigmetList$1));
|
|
7447
|
+
}), rest.get(/^.*\/airmet-config$/, function (_, res, ctx) {
|
|
7448
|
+
return res(ctx.status(200), ctx.json(airmetConfig));
|
|
7449
|
+
}), rest.get(/^.*\/sigmet-config$/, function (_, res, ctx) {
|
|
7450
|
+
return res(ctx.status(200), ctx.json(sigmetConfig));
|
|
7451
|
+
}), rest.post(/^.*\/airmet2tac$/, function (_, res, ctx) {
|
|
7452
|
+
return res(ctx.status(200), ctx.text(fakeAirmetTAC));
|
|
7453
|
+
}), rest.post(/^.*\/sigmet2tac$/, function (_, res, ctx) {
|
|
7454
|
+
return res(ctx.status(200), ctx.text(fakeSigmetTAC));
|
|
7455
|
+
}), rest.get(/^(?!.*(sigmet|airmet)).*$/, function (req) {
|
|
7456
|
+
return req.passthrough();
|
|
7457
|
+
})];
|
|
7458
|
+
|
|
7459
|
+
/* *
|
|
7460
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7461
|
+
* you may not use this file except in compliance with the License.
|
|
7462
|
+
* You may obtain a copy of the License at
|
|
7463
|
+
*
|
|
7464
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7465
|
+
*
|
|
7466
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7467
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7468
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7469
|
+
* See the License for the specific language governing permissions and
|
|
7470
|
+
* limitations under the License.
|
|
7471
|
+
*
|
|
7472
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7473
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
7474
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7475
|
+
* */
|
|
7476
|
+
var drawingList = drawingListJSON;
|
|
7477
|
+
var drawingsListFullContent = drawingsListFullContentJSON;
|
|
7478
|
+
var warningList = warningListJSON.map(function (pw) {
|
|
7479
|
+
return Object.assign({}, pw, {
|
|
7480
|
+
type: 'public'
|
|
7481
|
+
});
|
|
7482
|
+
});
|
|
7483
|
+
warningList.filter(function (warning) {
|
|
7484
|
+
return warning.status !== 'EXPIRED' && warning.status !== 'WITHDRAWN';
|
|
7485
|
+
}).length;
|
|
7486
|
+
var sigmetList = sigmetListJSON$1.map(function (s) {
|
|
7487
|
+
return Object.assign({}, s, {
|
|
7488
|
+
type: 'sigmet'
|
|
7489
|
+
});
|
|
7490
|
+
});
|
|
7491
|
+
var airmetList = airmetListJSON$1.map(function (a) {
|
|
7492
|
+
return Object.assign({}, a, {
|
|
7493
|
+
type: 'airmet'
|
|
7494
|
+
});
|
|
7495
|
+
});
|
|
7496
|
+
concat(warningList, sigmetList, airmetList);
|
|
7497
|
+
var areaKeywordList = ['North Sea districts', 'Coastal Districts', 'KNMI Specific', 'Objects', 'Baltic areas', 'NL', 'FI', 'METNorway Specific', 'Provinces', 'FIR', 'Countries'];
|
|
7498
|
+
[rest.get(/^.*\/warnings$/, function (req, res, ctx) {
|
|
7499
|
+
// respond using a mocked JSON body
|
|
7500
|
+
return res(ctx.json(warningList));
|
|
7501
|
+
}), rest.post(/^.*\/warnings\/(.*)$/, function (req, res, ctx) {
|
|
7502
|
+
return res(ctx.json({}));
|
|
7503
|
+
})];
|
|
7504
|
+
|
|
7505
|
+
/* *
|
|
7506
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7507
|
+
* you may not use this file except in compliance with the License.
|
|
7508
|
+
* You may obtain a copy of the License at
|
|
7509
|
+
*
|
|
7510
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7511
|
+
*
|
|
7512
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7513
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7514
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7515
|
+
* See the License for the specific language governing permissions and
|
|
7516
|
+
* limitations under the License.
|
|
7517
|
+
*
|
|
7518
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7519
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
7520
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7521
|
+
* */
|
|
7522
|
+
var ERROR_NOT_FOUND = 'Request failed with status code 400';
|
|
7523
|
+
var extractDrawingDetailsFromJSON = function extractDrawingDetailsFromJSON(drawingId) {
|
|
7524
|
+
return drawingsListFullContent.find(function (element) {
|
|
7525
|
+
return element.id === drawingId;
|
|
7526
|
+
});
|
|
7527
|
+
};
|
|
7528
|
+
// to copy
|
|
7529
|
+
var getCleanSearchQuery = function getCleanSearchQuery(searchQuery) {
|
|
7530
|
+
return searchQuery.trim().split(/\s+/).join();
|
|
7531
|
+
};
|
|
7532
|
+
var getApiRoutes = function getApiRoutes(axiosInstance) {
|
|
7533
|
+
return {
|
|
7534
|
+
// drawings
|
|
7535
|
+
getDrawings: function getDrawings(params) {
|
|
7536
|
+
return axiosInstance.get('/drawings', {
|
|
7537
|
+
params: params
|
|
7538
|
+
}).then(function () {
|
|
7539
|
+
var result = drawingList.filter(function (element) {
|
|
7540
|
+
if (params != null && params.search || params != null && params.keywords) {
|
|
7541
|
+
var _params$keywords;
|
|
7542
|
+
var searchQuery = getCleanSearchQuery(params.search || '').split(',');
|
|
7543
|
+
var keyWordsQuery = ((_params$keywords = params.keywords) == null ? void 0 : _params$keywords.split(',')) || [];
|
|
7544
|
+
var hasResult = [].concat(searchQuery, keyWordsQuery).every(function (query) {
|
|
7545
|
+
var _element$keywords;
|
|
7546
|
+
return element.objectName.toLowerCase().includes(query.toLowerCase()) || ((_element$keywords = element.keywords) == null ? void 0 : _element$keywords.toLowerCase().includes(query.toLowerCase()));
|
|
7547
|
+
});
|
|
7548
|
+
if (hasResult) {
|
|
7549
|
+
return element;
|
|
7550
|
+
}
|
|
7551
|
+
} else {
|
|
7552
|
+
return element;
|
|
7553
|
+
}
|
|
7554
|
+
return null;
|
|
7555
|
+
});
|
|
7556
|
+
return {
|
|
7557
|
+
data: result
|
|
7558
|
+
};
|
|
7559
|
+
});
|
|
7560
|
+
},
|
|
7561
|
+
getDrawingDetails: function getDrawingDetails(drawingId) {
|
|
7562
|
+
return axiosInstance.get("/drawings/" + drawingId).then(function () {
|
|
7563
|
+
if (!extractDrawingDetailsFromJSON(drawingId)) {
|
|
7564
|
+
throw new Error(ERROR_NOT_FOUND);
|
|
7565
|
+
}
|
|
7566
|
+
return {
|
|
7567
|
+
data: extractDrawingDetailsFromJSON(drawingId)
|
|
7568
|
+
};
|
|
7569
|
+
});
|
|
7570
|
+
},
|
|
7571
|
+
updateDrawing: function updateDrawing(drawingId, data) {
|
|
7572
|
+
// eslint-disable-next-line no-console
|
|
7573
|
+
console.log('api: save drawing', drawingId, data);
|
|
7574
|
+
return axiosInstance.post("/drawings/" + drawingId + "/", data);
|
|
7575
|
+
},
|
|
7576
|
+
saveDrawingAs: function saveDrawingAs(data) {
|
|
7577
|
+
// eslint-disable-next-line no-console
|
|
7578
|
+
console.log('api: save drawing as', data);
|
|
7579
|
+
return axiosInstance.post("/drawings/", data).then(function () {
|
|
7580
|
+
return 'new-drawing-id';
|
|
7581
|
+
});
|
|
7582
|
+
},
|
|
7583
|
+
deleteDrawing: function deleteDrawing(drawingId) {
|
|
7584
|
+
// eslint-disable-next-line no-console
|
|
7585
|
+
console.log('api: delete drawing', drawingId);
|
|
7586
|
+
drawingList.splice(drawingList.findIndex(function (drawing) {
|
|
7587
|
+
return drawing.id === drawingId;
|
|
7588
|
+
}), 1);
|
|
7589
|
+
return axiosInstance.post("/drawings/" + drawingId + "?delete=true");
|
|
7590
|
+
},
|
|
7591
|
+
getAreaKeywords: function getAreaKeywords() {
|
|
7592
|
+
return axiosInstance.get('/area-keywords').then(function () {
|
|
7593
|
+
return {
|
|
7594
|
+
data: areaKeywordList
|
|
7595
|
+
};
|
|
7596
|
+
});
|
|
7079
7597
|
},
|
|
7080
7598
|
saveWarningAs: function saveWarningAs(data) {
|
|
7081
7599
|
// eslint-disable-next-line no-console
|
|
@@ -7096,17 +7614,6 @@ var getApiRoutes = function getApiRoutes(axiosInstance) {
|
|
|
7096
7614
|
return warning.id === warningId;
|
|
7097
7615
|
}), 1);
|
|
7098
7616
|
return axiosInstance.post("/warnings/" + warningId + "?delete=true");
|
|
7099
|
-
},
|
|
7100
|
-
toggleEditorWarning: function toggleEditorWarning(warningId, isEditor) {
|
|
7101
|
-
// eslint-disable-next-line no-console
|
|
7102
|
-
console.log('api: toggle editor warning', warningId, isEditor);
|
|
7103
|
-
var index = warningList.findIndex(function (warning) {
|
|
7104
|
-
return warning.id === warningId;
|
|
7105
|
-
});
|
|
7106
|
-
warningList.splice(index, 1, Object.assign({}, warningList[index], {
|
|
7107
|
-
editor: isEditor ? MOCK_USERNAME : null
|
|
7108
|
-
}));
|
|
7109
|
-
return axiosInstance.post("/warnings/" + warningId + "?editor=" + (isEditor ? 'true' : 'false'));
|
|
7110
7617
|
}
|
|
7111
7618
|
};
|
|
7112
7619
|
};
|
|
@@ -7457,7 +7964,7 @@ var DrawingToolFormContentsNoMemo = function DrawingToolFormContentsNoMemo(_ref)
|
|
|
7457
7964
|
};
|
|
7458
7965
|
var DrawingToolFormContents = /*#__PURE__*/React__default.memo(DrawingToolFormContentsNoMemo, isEqual);
|
|
7459
7966
|
|
|
7460
|
-
var _excluded$
|
|
7967
|
+
var _excluded$9 = ["opacity", "geoJSON"];
|
|
7461
7968
|
var getObjectName$1 = function getObjectName(objectName) {
|
|
7462
7969
|
return objectName || dateUtils.dateToString(new Date(), dateUtils.DATE_FORMAT_DATEPICKER, true) + " UTC";
|
|
7463
7970
|
};
|
|
@@ -7527,7 +8034,7 @@ var DrawingToolForm = function DrawingToolForm(_ref) {
|
|
|
7527
8034
|
// remove unneeded properties
|
|
7528
8035
|
formValues.opacity;
|
|
7529
8036
|
var geoJSON = formValues.geoJSON,
|
|
7530
|
-
allFormValues = _objectWithoutPropertiesLoose(formValues, _excluded$
|
|
8037
|
+
allFormValues = _objectWithoutPropertiesLoose(formValues, _excluded$9);
|
|
7531
8038
|
// rewind geometry
|
|
7532
8039
|
var rewindedGeometry = rewindGeometry(geoJSON);
|
|
7533
8040
|
onSubmitForm(Object.assign({}, allFormValues, {
|
|
@@ -7596,7 +8103,7 @@ var DrawingToolFormConnect = function DrawingToolFormConnect() {
|
|
|
7596
8103
|
});
|
|
7597
8104
|
var drawToolId = drawingDialogType;
|
|
7598
8105
|
var drawTool = useSelector(function (store) {
|
|
7599
|
-
return
|
|
8106
|
+
return drawingToolSelectors.selectDrawToolById(store, drawToolId);
|
|
7600
8107
|
});
|
|
7601
8108
|
var layerFeatureGeoJSON = useSelector(function (store) {
|
|
7602
8109
|
return layerSelectors.getFeatureLayerGeoJSON(store, drawTool == null ? void 0 : drawTool.geoJSONLayerId);
|
|
@@ -7614,7 +8121,7 @@ var DrawingToolFormConnect = function DrawingToolFormConnect() {
|
|
|
7614
8121
|
return uiSelectors.getDialogError(store, drawToolId);
|
|
7615
8122
|
});
|
|
7616
8123
|
var onSubmitForm = React.useCallback(function (formValues) {
|
|
7617
|
-
dispatch(
|
|
8124
|
+
dispatch(warningsDrawingsActions.submitDrawValues({
|
|
7618
8125
|
geoJSON: formValues.geoJSON,
|
|
7619
8126
|
objectName: formValues.objectName,
|
|
7620
8127
|
scope: 'user',
|
|
@@ -7648,7 +8155,7 @@ var DrawingToolFormConnect = function DrawingToolFormConnect() {
|
|
|
7648
8155
|
}
|
|
7649
8156
|
}, [dispatch, drawTool == null ? void 0 : drawTool.activeDrawModeId, drawTool == null ? void 0 : drawTool.geoJSONLayerId, drawToolId]);
|
|
7650
8157
|
var onChangeName = React.useCallback(function (newName) {
|
|
7651
|
-
dispatch(
|
|
8158
|
+
dispatch(warningsDrawingsActions.setDrawValues({
|
|
7652
8159
|
objectName: newName,
|
|
7653
8160
|
id: (drawing == null ? void 0 : drawing.id) || '',
|
|
7654
8161
|
drawingInstanceId: drawingDialogType,
|
|
@@ -7656,7 +8163,7 @@ var DrawingToolFormConnect = function DrawingToolFormConnect() {
|
|
|
7656
8163
|
}));
|
|
7657
8164
|
}, [dispatch, drawing == null ? void 0 : drawing.id, drawing == null ? void 0 : drawing.isFormDirty]);
|
|
7658
8165
|
var onChangeFormDirty = React.useCallback(function (isFormDirty) {
|
|
7659
|
-
dispatch(
|
|
8166
|
+
dispatch(warningsDrawingsActions.setFormDirty({
|
|
7660
8167
|
drawingInstanceId: drawingDialogType,
|
|
7661
8168
|
isFormDirty: isFormDirty
|
|
7662
8169
|
}));
|
|
@@ -7936,7 +8443,7 @@ var PublicWarningsFormDialog = function PublicWarningsFormDialog(_ref) {
|
|
|
7936
8443
|
}));
|
|
7937
8444
|
};
|
|
7938
8445
|
|
|
7939
|
-
var _excluded$
|
|
8446
|
+
var _excluded$8 = ["children", "value", "index"];
|
|
7940
8447
|
function a11yProps(index) {
|
|
7941
8448
|
return {
|
|
7942
8449
|
id: "tab-" + index,
|
|
@@ -7957,7 +8464,7 @@ var CustomTabPanel = function CustomTabPanel(props) {
|
|
|
7957
8464
|
var children = props.children,
|
|
7958
8465
|
value = props.value,
|
|
7959
8466
|
index = props.index,
|
|
7960
|
-
other = _objectWithoutPropertiesLoose(props, _excluded$
|
|
8467
|
+
other = _objectWithoutPropertiesLoose(props, _excluded$8);
|
|
7961
8468
|
return jsx("div", Object.assign({
|
|
7962
8469
|
role: "tabpanel",
|
|
7963
8470
|
hidden: value !== index,
|
|
@@ -8205,23 +8712,6 @@ var AreaField = function AreaField(_ref) {
|
|
|
8205
8712
|
};
|
|
8206
8713
|
|
|
8207
8714
|
var _defaultLevelFilter, _defaultEmptyFilter;
|
|
8208
|
-
/* *
|
|
8209
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8210
|
-
* you may not use this file except in compliance with the License.
|
|
8211
|
-
* You may obtain a copy of the License at
|
|
8212
|
-
*
|
|
8213
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8214
|
-
*
|
|
8215
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
8216
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8217
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8218
|
-
* See the License for the specific language governing permissions and
|
|
8219
|
-
* limitations under the License.
|
|
8220
|
-
*
|
|
8221
|
-
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8222
|
-
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
8223
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
8224
|
-
* */
|
|
8225
8715
|
var Domain;
|
|
8226
8716
|
(function (Domain) {
|
|
8227
8717
|
Domain["aviation"] = "aviation";
|
|
@@ -8267,7 +8757,16 @@ var makeFilterFromList = function makeFilterFromList(options) {
|
|
|
8267
8757
|
return p ? Object.assign({}, acc, (_Object$assign = {}, _Object$assign[p] = true, _Object$assign)) : acc;
|
|
8268
8758
|
}, (_options$reduce = {}, _options$reduce[emptyFilterId] = true, _options$reduce));
|
|
8269
8759
|
};
|
|
8270
|
-
var
|
|
8760
|
+
var AllPhenomena = Object.assign({}, AirmetPhenomena, SigmetPhenomena, Phenomenon$1);
|
|
8761
|
+
var AllPhenomenaKeys = Object.fromEntries(Object.keys(AllPhenomena).map(function (key) {
|
|
8762
|
+
return [key, key];
|
|
8763
|
+
}));
|
|
8764
|
+
var domainPhenomena = {
|
|
8765
|
+
aviation: [].concat(Object.keys(SigmetPhenomena), Object.keys(AirmetPhenomena)),
|
|
8766
|
+
maritime: [],
|
|
8767
|
+
"public": [].concat(Object.keys(Phenomenon$1))
|
|
8768
|
+
};
|
|
8769
|
+
var defaultPhenomenonFilter = makeFilterFromList(Object.keys(AllPhenomenaKeys));
|
|
8271
8770
|
var initialFilters = {
|
|
8272
8771
|
incident: defaultEmptyFilter,
|
|
8273
8772
|
source: defaultEmptyFilter,
|
|
@@ -8474,6 +8973,10 @@ var warningPhenomena = [{
|
|
|
8474
8973
|
translationKey: 'aviation-phenomenon-obscured-thunderstorm-with-hail',
|
|
8475
8974
|
key: 'OBSC_TSGR',
|
|
8476
8975
|
isAviation: true
|
|
8976
|
+
}, {
|
|
8977
|
+
translationKey: 'aviation-phenomenon-obscured-thunderstorm',
|
|
8978
|
+
key: 'OBSC_TS',
|
|
8979
|
+
isAviation: true
|
|
8477
8980
|
}, {
|
|
8478
8981
|
translationKey: 'aviation-phenomenon-squall-thunderstorm-with-hail',
|
|
8479
8982
|
key: 'SQL_TSGR',
|
|
@@ -8828,39 +9331,13 @@ var ValidUntil = function ValidUntil(_ref) {
|
|
|
8828
9331
|
});
|
|
8829
9332
|
};
|
|
8830
9333
|
|
|
8831
|
-
var zoomToFeature = function zoomToFeature(mapId, geojsonFeature) {
|
|
8832
|
-
var webmapjs = getWMJSMapById(mapId);
|
|
8833
|
-
if (!webmapjs || !geojsonFeature) {
|
|
8834
|
-
return;
|
|
8835
|
-
}
|
|
8836
|
-
var bboxGeoJSON = getFeatureExtent(geojsonFeature);
|
|
8837
|
-
var projectedCoordinateBoxBottomLeft = getGeoCoordFromLatLong(webmapjs, {
|
|
8838
|
-
x: bboxGeoJSON.left,
|
|
8839
|
-
y: bboxGeoJSON.bottom
|
|
8840
|
-
});
|
|
8841
|
-
var projectedCoordinateBoxTopRight = getGeoCoordFromLatLong(webmapjs, {
|
|
8842
|
-
x: bboxGeoJSON.right,
|
|
8843
|
-
y: bboxGeoJSON.top
|
|
8844
|
-
});
|
|
8845
|
-
if (projectedCoordinateBoxBottomLeft && projectedCoordinateBoxTopRight) {
|
|
8846
|
-
var transformedExtent = new WMBBOX({
|
|
8847
|
-
left: projectedCoordinateBoxBottomLeft.x,
|
|
8848
|
-
bottom: projectedCoordinateBoxBottomLeft.y,
|
|
8849
|
-
right: projectedCoordinateBoxTopRight.x,
|
|
8850
|
-
top: projectedCoordinateBoxTopRight.y
|
|
8851
|
-
});
|
|
8852
|
-
webmapjs.zoomTo(transformedExtent);
|
|
8853
|
-
webmapjs.zoomOut(2);
|
|
8854
|
-
webmapjs.draw();
|
|
8855
|
-
}
|
|
8856
|
-
};
|
|
8857
9334
|
var WarningsMapView = function WarningsMapView(_ref) {
|
|
8858
9335
|
var _defaultMapPreset$lay, _defaultMapPreset$lay2;
|
|
8859
9336
|
var geojsonFeature = _ref.geojsonFeature,
|
|
8860
9337
|
defaultMapPreset = _ref.defaultMapPreset,
|
|
8861
9338
|
_ref$isSnapshot = _ref.isSnapshot,
|
|
8862
9339
|
isSnapshot = _ref$isSnapshot === void 0 ? false : _ref$isSnapshot;
|
|
8863
|
-
|
|
9340
|
+
// const defaultBbox = defaultMapPreset?.proj;
|
|
8864
9341
|
var defaultBaseLayer = (defaultMapPreset == null || (_defaultMapPreset$lay = defaultMapPreset.layers) == null ? void 0 : _defaultMapPreset$lay.find(function (layer) {
|
|
8865
9342
|
return layer.layerType === LayerType.baseLayer;
|
|
8866
9343
|
})) || defaultLayers.baseLayerGrey;
|
|
@@ -8873,35 +9350,46 @@ var WarningsMapView = function WarningsMapView(_ref) {
|
|
|
8873
9350
|
geojson: geojsonFeature,
|
|
8874
9351
|
layerType: LayerType.featureLayer
|
|
8875
9352
|
};
|
|
8876
|
-
|
|
8877
|
-
|
|
8878
|
-
|
|
8879
|
-
|
|
9353
|
+
var view = new View({
|
|
9354
|
+
center: [685500, 6800000],
|
|
9355
|
+
zoom: 5.5,
|
|
9356
|
+
projection: 'EPSG:3857'
|
|
9357
|
+
});
|
|
9358
|
+
var bboxGeoJSON = geojsonFeature && getFeatureExtent(geojsonFeature);
|
|
9359
|
+
var coordMin = fromLonLat([bboxGeoJSON == null ? void 0 : bboxGeoJSON.left, bboxGeoJSON == null ? void 0 : bboxGeoJSON.bottom], 'EPSG:3857');
|
|
9360
|
+
var coordMax = fromLonLat([bboxGeoJSON == null ? void 0 : bboxGeoJSON.right, bboxGeoJSON == null ? void 0 : bboxGeoJSON.top], 'EPSG:3857');
|
|
9361
|
+
var center = [(coordMin[0] + coordMax[0]) / 2, (coordMin[1] + coordMax[1]) / 2];
|
|
9362
|
+
view.setCenter(center);
|
|
8880
9363
|
return jsx("div", {
|
|
8881
9364
|
style: {
|
|
8882
9365
|
height: '200px',
|
|
8883
9366
|
width: '100%'
|
|
8884
9367
|
},
|
|
8885
|
-
children: jsxs(
|
|
8886
|
-
|
|
8887
|
-
|
|
8888
|
-
|
|
8889
|
-
|
|
8890
|
-
|
|
8891
|
-
|
|
8892
|
-
|
|
8893
|
-
|
|
8894
|
-
|
|
8895
|
-
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
8900
|
-
}
|
|
9368
|
+
children: jsxs(OpenLayersMapView, {
|
|
9369
|
+
view: view,
|
|
9370
|
+
// bbox={defaultBbox?.bbox}
|
|
9371
|
+
// srs={defaultBbox?.srs}
|
|
9372
|
+
// mapId={mapId}
|
|
9373
|
+
// showScaleBar={false}
|
|
9374
|
+
// onWMJSMount={(mapId) => {
|
|
9375
|
+
// const webmapjs = getWMJSMapById(mapId);
|
|
9376
|
+
// if (!webmapjs) {
|
|
9377
|
+
// return;
|
|
9378
|
+
// }
|
|
9379
|
+
// webmapjs.hideMouseCursorProperties();
|
|
9380
|
+
// if (!defaultBbox) {
|
|
9381
|
+
// // Zoom to the geojson when the map is ready
|
|
9382
|
+
// zoomToFeature(mapId, geojsonFeature);
|
|
9383
|
+
// }
|
|
9384
|
+
// }}
|
|
8901
9385
|
holdShiftToScroll: true,
|
|
8902
|
-
children: [!isSnapshot && jsx(
|
|
9386
|
+
children: [!isSnapshot && jsx(OpenLayersLayer, Object.assign({}, defaultBaseLayer, {
|
|
8903
9387
|
id: mapId + "_baseLayer"
|
|
8904
|
-
})), warningLayer.geojson && jsx(
|
|
9388
|
+
})), warningLayer.geojson && jsx(GeoJSONLayer, {
|
|
9389
|
+
featureCollection: warningLayer.geojson,
|
|
9390
|
+
style: genericOpenlayersFeatureStyle,
|
|
9391
|
+
zIndex: 1000
|
|
9392
|
+
}), !isSnapshot && jsx(OpenLayersLayer, Object.assign({}, defaultOverLayer, {
|
|
8905
9393
|
id: mapId + "_overlayer"
|
|
8906
9394
|
}))]
|
|
8907
9395
|
})
|
|
@@ -8955,23 +9443,19 @@ var ProbabilityField = function ProbabilityField(_ref) {
|
|
|
8955
9443
|
});
|
|
8956
9444
|
};
|
|
8957
9445
|
|
|
8958
|
-
var config = getConfig();
|
|
8959
|
-
var airmetBaseUrl = config.GW_AIRMET_BASE_URL;
|
|
8960
|
-
var sigmetBaseUrl = config.GW_SIGMET_BASE_URL;
|
|
9446
|
+
var config$1 = getConfig();
|
|
9447
|
+
var airmetBaseUrl = config$1.GW_AIRMET_BASE_URL || '';
|
|
9448
|
+
var sigmetBaseUrl = config$1.GW_SIGMET_BASE_URL || '';
|
|
8961
9449
|
// API
|
|
8962
9450
|
var getAirmetList = function getAirmetList(auth) {
|
|
8963
9451
|
return fetch(airmetBaseUrl + "/airmetlist", {
|
|
8964
9452
|
headers: getHeaders(auth)
|
|
8965
|
-
}).then(
|
|
8966
|
-
return r.json();
|
|
8967
|
-
});
|
|
9453
|
+
}).then(handleResponse);
|
|
8968
9454
|
};
|
|
8969
9455
|
var getSigmetList = function getSigmetList(auth) {
|
|
8970
9456
|
return fetch(sigmetBaseUrl + "/sigmetlist", {
|
|
8971
9457
|
headers: getHeaders(auth)
|
|
8972
|
-
}).then(
|
|
8973
|
-
return r.json();
|
|
8974
|
-
});
|
|
9458
|
+
}).then(handleResponse);
|
|
8975
9459
|
};
|
|
8976
9460
|
var getAirmetConfig = function getAirmetConfig(auth) {
|
|
8977
9461
|
return fetch(airmetBaseUrl + "/airmet-config", {
|
|
@@ -9121,7 +9605,7 @@ var useTACApi = function useTACApi() {
|
|
|
9121
9605
|
};
|
|
9122
9606
|
};
|
|
9123
9607
|
|
|
9124
|
-
var _excluded$
|
|
9608
|
+
var _excluded$7 = ["IS_DRAFT", "object", "translation-select"];
|
|
9125
9609
|
var useScrollTopOnError = function useScrollTopOnError(error) {
|
|
9126
9610
|
var ref = React.useRef(null);
|
|
9127
9611
|
React.useEffect(function () {
|
|
@@ -9218,7 +9702,7 @@ var prepareFormValues = function prepareFormValues(data) {
|
|
|
9218
9702
|
data.IS_DRAFT;
|
|
9219
9703
|
data.object;
|
|
9220
9704
|
data['translation-select'];
|
|
9221
|
-
var productToPost = _objectWithoutPropertiesLoose(data, _excluded$
|
|
9705
|
+
var productToPost = _objectWithoutPropertiesLoose(data, _excluded$7);
|
|
9222
9706
|
// remove empty fields
|
|
9223
9707
|
return Object.keys(productToPost).reduce(function (warningDetail, fieldName) {
|
|
9224
9708
|
var key = fieldName;
|
|
@@ -9312,7 +9796,7 @@ isAviationWarning) {
|
|
|
9312
9796
|
});
|
|
9313
9797
|
}
|
|
9314
9798
|
var Form = function Form(_ref5) {
|
|
9315
|
-
var _publicWarningDetails;
|
|
9799
|
+
var _publicWarningDetails, _publicWarningDetails2;
|
|
9316
9800
|
var defaultMapPreset = _ref5.defaultMapPreset,
|
|
9317
9801
|
_ref5$onSaveForm = _ref5.onSaveForm,
|
|
9318
9802
|
onSaveForm = _ref5$onSaveForm === void 0 ? function () {} : _ref5$onSaveForm,
|
|
@@ -9344,7 +9828,7 @@ var Form = function Form(_ref5) {
|
|
|
9344
9828
|
var _useTACApi = useTACApi(),
|
|
9345
9829
|
fetchSigmetTAC = _useTACApi.fetchSigmetTAC,
|
|
9346
9830
|
fetchAirmetTAC = _useTACApi.fetchAirmetTAC;
|
|
9347
|
-
var initialPublicWarningArea =
|
|
9831
|
+
var initialPublicWarningArea = (publicWarningDetails == null || (_publicWarningDetails = publicWarningDetails.areas) == null ? void 0 : _publicWarningDetails.length) && (publicWarningDetails == null || (_publicWarningDetails2 = publicWarningDetails.areas[0]) == null ? void 0 : _publicWarningDetails2.geoJSON);
|
|
9348
9832
|
var _React$useState = React.useState(initialPublicWarningArea),
|
|
9349
9833
|
warningGeoJSONFeature = _React$useState[0],
|
|
9350
9834
|
setWarningGeoJSONFeature = _React$useState[1];
|
|
@@ -9726,29 +10210,25 @@ var getPublicWarningStore = function getPublicWarningStore(store) {
|
|
|
9726
10210
|
if (store && store.publicWarningForm) {
|
|
9727
10211
|
return store.publicWarningForm;
|
|
9728
10212
|
}
|
|
9729
|
-
return
|
|
10213
|
+
return {};
|
|
9730
10214
|
};
|
|
9731
10215
|
var getPublicWarningObject = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9732
10216
|
return publicWarningStore.object;
|
|
9733
10217
|
});
|
|
9734
10218
|
var getPublicWarning = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9735
|
-
return publicWarningStore.
|
|
10219
|
+
return publicWarningStore == null ? void 0 : publicWarningStore.warning;
|
|
9736
10220
|
});
|
|
9737
10221
|
var getPublicWarningStatus = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9738
|
-
var _publicWarningStore$
|
|
9739
|
-
return publicWarningStore == null || (_publicWarningStore$
|
|
9740
|
-
});
|
|
9741
|
-
var getPublicWarningEditor = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9742
|
-
var _publicWarningStore$p2;
|
|
9743
|
-
return publicWarningStore == null || (_publicWarningStore$p2 = publicWarningStore.publicWarning) == null ? void 0 : _publicWarningStore$p2.editor;
|
|
10222
|
+
var _publicWarningStore$w;
|
|
10223
|
+
return publicWarningStore == null || (_publicWarningStore$w = publicWarningStore.warning) == null ? void 0 : _publicWarningStore$w.status;
|
|
9744
10224
|
});
|
|
9745
10225
|
var getPublicWarningId = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9746
|
-
var _publicWarningStore$
|
|
9747
|
-
return publicWarningStore == null || (_publicWarningStore$
|
|
10226
|
+
var _publicWarningStore$w2;
|
|
10227
|
+
return publicWarningStore == null || (_publicWarningStore$w2 = publicWarningStore.warning) == null ? void 0 : _publicWarningStore$w2.warningDetail.id;
|
|
9748
10228
|
});
|
|
9749
10229
|
var getPublicWarningAreas = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9750
|
-
var _publicWarningStore$
|
|
9751
|
-
return (publicWarningStore == null || (_publicWarningStore$
|
|
10230
|
+
var _publicWarningStore$w3;
|
|
10231
|
+
return (publicWarningStore == null || (_publicWarningStore$w3 = publicWarningStore.warning) == null ? void 0 : _publicWarningStore$w3.warningDetail.areas) || [];
|
|
9752
10232
|
});
|
|
9753
10233
|
var getPublicWarningFormState = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9754
10234
|
return (publicWarningStore == null ? void 0 : publicWarningStore.formState) || '';
|
|
@@ -9756,8 +10236,8 @@ var getPublicWarningFormState = createSelector(getPublicWarningStore, function (
|
|
|
9756
10236
|
var getPublicWarningFormError = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9757
10237
|
return publicWarningStore == null ? void 0 : publicWarningStore.error;
|
|
9758
10238
|
});
|
|
9759
|
-
var
|
|
9760
|
-
return (publicWarningStore == null ? void 0 : publicWarningStore.
|
|
10239
|
+
var getSelectedWarningId = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
10240
|
+
return (publicWarningStore == null ? void 0 : publicWarningStore.selectedWarningId) || '';
|
|
9761
10241
|
});
|
|
9762
10242
|
var getSelectedPublicIsFormDirty = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
9763
10243
|
return (publicWarningStore == null ? void 0 : publicWarningStore.isFormDirty) || false;
|
|
@@ -9795,50 +10275,49 @@ var PublicWarningStatus;
|
|
|
9795
10275
|
})(PublicWarningStatus || (PublicWarningStatus = {}));
|
|
9796
10276
|
|
|
9797
10277
|
var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
9798
|
-
var
|
|
10278
|
+
var editor = _ref.editor,
|
|
10279
|
+
defaultMapPreset = _ref.defaultMapPreset,
|
|
9799
10280
|
selectedAviationProduct = _ref.selectedAviationProduct,
|
|
9800
10281
|
_ref$warningType = _ref.warningType,
|
|
9801
10282
|
warningType = _ref$warningType === void 0 ? 'public' : _ref$warningType,
|
|
9802
|
-
mode = _ref.mode
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
var
|
|
9807
|
-
|
|
9808
|
-
});
|
|
9809
|
-
var publicWarningFormAction = useSelector(function (store) {
|
|
9810
|
-
return getPublicWarningFormState(store);
|
|
9811
|
-
});
|
|
9812
|
-
var publicWarningFormError = useSelector(function (store) {
|
|
9813
|
-
return getPublicWarningFormError(store);
|
|
9814
|
-
});
|
|
9815
|
-
var publicWarningEditor = useSelector(function (store) {
|
|
9816
|
-
return getPublicWarningEditor(store);
|
|
9817
|
-
});
|
|
10283
|
+
mode = _ref.mode,
|
|
10284
|
+
onFormSubmit = _ref.onFormSubmit;
|
|
10285
|
+
var publicWarning = useSelector(getPublicWarning);
|
|
10286
|
+
var publicWarningObject = useSelector(getPublicWarningObject);
|
|
10287
|
+
var publicWarningFormAction = useSelector(getPublicWarningFormState);
|
|
10288
|
+
var publicWarningFormError = useSelector(getPublicWarningFormError);
|
|
9818
10289
|
var _useAuthenticationCon = useAuthenticationContext$1(),
|
|
9819
10290
|
auth = _useAuthenticationCon.auth;
|
|
9820
|
-
var isEditor =
|
|
10291
|
+
var isEditor = editor === (auth == null ? void 0 : auth.username) || false;
|
|
9821
10292
|
var dispatch = useDispatch();
|
|
9822
10293
|
var publishForm = function publishForm(newFormValues) {
|
|
9823
|
-
|
|
9824
|
-
|
|
9825
|
-
|
|
9826
|
-
|
|
9827
|
-
|
|
9828
|
-
|
|
10294
|
+
if (warningType === 'public') {
|
|
10295
|
+
dispatch(publicWarningFormActions.publishWarning({
|
|
10296
|
+
publicWarning: {
|
|
10297
|
+
warningDetail: newFormValues,
|
|
10298
|
+
status: PublicWarningStatus.PUBLISHED,
|
|
10299
|
+
type: warningType
|
|
10300
|
+
},
|
|
10301
|
+
refetchWarnings: onFormSubmit
|
|
10302
|
+
}));
|
|
10303
|
+
}
|
|
9829
10304
|
};
|
|
9830
10305
|
var clearForm = function clearForm() {
|
|
9831
10306
|
dispatch(publicWarningFormActions.removeAllAreas());
|
|
9832
10307
|
};
|
|
9833
10308
|
var saveForm = function saveForm(newFormValues) {
|
|
9834
10309
|
var status = newFormValues.linked_to_id ? PublicWarningStatus.DRAFT_PUBLISHED : PublicWarningStatus.DRAFT;
|
|
9835
|
-
|
|
9836
|
-
|
|
9837
|
-
|
|
9838
|
-
|
|
9839
|
-
|
|
9840
|
-
|
|
9841
|
-
|
|
10310
|
+
if (warningType === 'public') {
|
|
10311
|
+
dispatch(publicWarningFormActions.saveWarning({
|
|
10312
|
+
publicWarning: {
|
|
10313
|
+
warningDetail: newFormValues,
|
|
10314
|
+
status: status,
|
|
10315
|
+
editor: auth == null ? void 0 : auth.username,
|
|
10316
|
+
type: warningType
|
|
10317
|
+
},
|
|
10318
|
+
refetchWarnings: onFormSubmit
|
|
10319
|
+
}));
|
|
10320
|
+
}
|
|
9842
10321
|
};
|
|
9843
10322
|
var onFormDirty = function onFormDirty(isFormDirty) {
|
|
9844
10323
|
dispatch(publicWarningFormActions.setFormDirty({
|
|
@@ -9861,12 +10340,16 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
9861
10340
|
if ((selectedAviationProduct == null ? void 0 : selectedAviationProduct.status) === 'DRAFT') {
|
|
9862
10341
|
return false;
|
|
9863
10342
|
}
|
|
10343
|
+
if (publicWarningFormAction === 'edit') {
|
|
10344
|
+
return false;
|
|
10345
|
+
}
|
|
9864
10346
|
if (mode === 'new') {
|
|
9865
10347
|
return false;
|
|
9866
10348
|
}
|
|
9867
10349
|
return true;
|
|
9868
10350
|
};
|
|
9869
10351
|
var isReadOnly = getIsReadOnly();
|
|
10352
|
+
var formMode = publicWarningFormAction === 'edit' ? 'edit' : mode;
|
|
9870
10353
|
var onAddObject = function onAddObject() {
|
|
9871
10354
|
dispatch(uiActions.setToggleOpenDialog({
|
|
9872
10355
|
type: uiTypes.DialogTypes.AreaObjectLoader,
|
|
@@ -9887,7 +10370,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
9887
10370
|
onAddObject: onAddObject,
|
|
9888
10371
|
selectedAviationProduct: selectedAviationProduct,
|
|
9889
10372
|
warningType: warningType,
|
|
9890
|
-
mode:
|
|
10373
|
+
mode: formMode
|
|
9891
10374
|
});
|
|
9892
10375
|
};
|
|
9893
10376
|
|
|
@@ -10511,26 +10994,23 @@ var AreaObjectLoaderConnect = function AreaObjectLoaderConnect(_ref) {
|
|
|
10511
10994
|
});
|
|
10512
10995
|
};
|
|
10513
10996
|
|
|
10514
|
-
|
|
10515
|
-
|
|
10516
|
-
|
|
10517
|
-
|
|
10518
|
-
|
|
10519
|
-
|
|
10520
|
-
|
|
10521
|
-
|
|
10522
|
-
|
|
10523
|
-
|
|
10524
|
-
|
|
10525
|
-
|
|
10526
|
-
|
|
10527
|
-
|
|
10528
|
-
|
|
10529
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
10530
|
-
* */
|
|
10997
|
+
var _excluded$6 = ["sigmetAirmetDetails"];
|
|
10998
|
+
function isCancelAirmet(warningDetail) {
|
|
10999
|
+
return warningDetail.cancelsAirmetSequenceId !== undefined;
|
|
11000
|
+
}
|
|
11001
|
+
function isCancelSigmet(warningDetail) {
|
|
11002
|
+
return warningDetail.cancelsSigmetSequenceId !== undefined;
|
|
11003
|
+
}
|
|
11004
|
+
var flattenPublicWarning = function flattenPublicWarning(publicWarning) {
|
|
11005
|
+
if (publicWarning.type === 'public') {
|
|
11006
|
+
return {};
|
|
11007
|
+
}
|
|
11008
|
+
var sigmetAirmetDetails = publicWarning.sigmetAirmetDetails,
|
|
11009
|
+
rest = _objectWithoutPropertiesLoose(publicWarning, _excluded$6);
|
|
11010
|
+
return Object.assign({}, rest, sigmetAirmetDetails);
|
|
11011
|
+
};
|
|
10531
11012
|
var transformAirmetToWarningFormat = function transformAirmetToWarningFormat(apiAirmet) {
|
|
10532
11013
|
var airmet = apiAirmet.airmet;
|
|
10533
|
-
var cancelAirmet = apiAirmet == null ? void 0 : apiAirmet.airmet;
|
|
10534
11014
|
var areas = [];
|
|
10535
11015
|
if (airmet.startGeometry) {
|
|
10536
11016
|
areas.push({
|
|
@@ -10551,23 +11031,23 @@ var transformAirmetToWarningFormat = function transformAirmetToWarningFormat(api
|
|
|
10551
11031
|
lastUpdatedTime: apiAirmet.lastUpdateDate,
|
|
10552
11032
|
productStatus: airmet.status,
|
|
10553
11033
|
warningDetail: {
|
|
10554
|
-
|
|
10555
|
-
descriptionTranslation: '',
|
|
10556
|
-
areas: areas,
|
|
11034
|
+
id: airmet.uuid,
|
|
10557
11035
|
phenomenon: airmet.phenomenon,
|
|
11036
|
+
areas: areas,
|
|
10558
11037
|
validFrom: airmet.validDateStart,
|
|
10559
11038
|
validUntil: airmet.validDateEnd,
|
|
11039
|
+
incident: airmet.sequence,
|
|
10560
11040
|
level: 'AIR',
|
|
10561
11041
|
probability: 0,
|
|
10562
|
-
|
|
10563
|
-
|
|
10564
|
-
|
|
10565
|
-
}
|
|
11042
|
+
descriptionOriginal: '',
|
|
11043
|
+
descriptionTranslation: ''
|
|
11044
|
+
},
|
|
11045
|
+
sigmetAirmetDetails: Object.assign({}, airmet),
|
|
11046
|
+
type: 'airmet'
|
|
10566
11047
|
};
|
|
10567
11048
|
};
|
|
10568
11049
|
var transformSigmetToWarningFormat = function transformSigmetToWarningFormat(apiSigmet) {
|
|
10569
11050
|
var sigmet = apiSigmet.sigmet;
|
|
10570
|
-
var cancelSigmet = apiSigmet == null ? void 0 : apiSigmet.sigmet;
|
|
10571
11051
|
var areas = [];
|
|
10572
11052
|
if (sigmet.startGeometry) {
|
|
10573
11053
|
areas.push({
|
|
@@ -10604,18 +11084,19 @@ var transformSigmetToWarningFormat = function transformSigmetToWarningFormat(api
|
|
|
10604
11084
|
lastUpdatedTime: apiSigmet.lastUpdateDate,
|
|
10605
11085
|
productStatus: sigmet.status,
|
|
10606
11086
|
warningDetail: {
|
|
10607
|
-
|
|
10608
|
-
descriptionTranslation: '',
|
|
10609
|
-
areas: areas,
|
|
11087
|
+
id: sigmet.uuid,
|
|
10610
11088
|
phenomenon: sigmet.phenomenon,
|
|
11089
|
+
areas: areas,
|
|
10611
11090
|
validFrom: sigmet.validDateStart,
|
|
10612
11091
|
validUntil: sigmet.validDateEnd,
|
|
11092
|
+
incident: sigmet.sequence,
|
|
10613
11093
|
level: 'SIG',
|
|
10614
11094
|
probability: 0,
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
}
|
|
11095
|
+
descriptionOriginal: '',
|
|
11096
|
+
descriptionTranslation: ''
|
|
11097
|
+
},
|
|
11098
|
+
sigmetAirmetDetails: Object.assign({}, sigmet),
|
|
11099
|
+
type: 'sigmet'
|
|
10619
11100
|
};
|
|
10620
11101
|
};
|
|
10621
11102
|
var mapProductStatusToWarningStatus = function mapProductStatusToWarningStatus(productStatus) {
|
|
@@ -10631,15 +11112,9 @@ var mapProductStatusToWarningStatus = function mapProductStatusToWarningStatus(p
|
|
|
10631
11112
|
return PublicWarningStatus.EXPIRED;
|
|
10632
11113
|
}
|
|
10633
11114
|
};
|
|
10634
|
-
var transformSigmetToProductFormat = function transformSigmetToProductFormat(warning
|
|
10635
|
-
var _warning$sigmet;
|
|
10636
|
-
var fir = (warning == null || (_warning$sigmet = warning.sigmet) == null ? void 0 : _warning$sigmet.locationIndicatorATSR) || config.active_firs[0];
|
|
10637
|
-
var firConfig = config.fir_areas[fir];
|
|
11115
|
+
var transformSigmetToProductFormat = function transformSigmetToProductFormat(warning) {
|
|
10638
11116
|
var sigmet = warning == null ? void 0 : warning.sigmet;
|
|
10639
11117
|
var cancelSigmet = warning == null ? void 0 : warning.sigmet;
|
|
10640
|
-
if (!firConfig) {
|
|
10641
|
-
throw new Error("FIR " + fir + " not found in configuration");
|
|
10642
|
-
}
|
|
10643
11118
|
return Object.assign({
|
|
10644
11119
|
uuid: (sigmet == null ? void 0 : sigmet.uuid) || 'default',
|
|
10645
11120
|
// Use a fallback UUID or handle undefined
|
|
@@ -10680,15 +11155,9 @@ var transformSigmetToProductFormat = function transformSigmetToProductFormat(war
|
|
|
10680
11155
|
validDateEndOfSigmetToCancel: cancelSigmet.validDateEndOfSigmetToCancel
|
|
10681
11156
|
});
|
|
10682
11157
|
};
|
|
10683
|
-
var transformAirmetToProductFormat = function transformAirmetToProductFormat(warning
|
|
10684
|
-
var _warning$airmet;
|
|
10685
|
-
var fir = (warning == null || (_warning$airmet = warning.airmet) == null ? void 0 : _warning$airmet.locationIndicatorATSR) || config.active_firs[0];
|
|
10686
|
-
var firConfig = config.fir_areas[fir];
|
|
11158
|
+
var transformAirmetToProductFormat = function transformAirmetToProductFormat(warning) {
|
|
10687
11159
|
var airmet = warning == null ? void 0 : warning.airmet;
|
|
10688
11160
|
var cancelAirmet = warning == null ? void 0 : warning.airmet;
|
|
10689
|
-
if (!firConfig) {
|
|
10690
|
-
throw new Error("FIR " + fir + " not found in configuration");
|
|
10691
|
-
}
|
|
10692
11161
|
return Object.assign({
|
|
10693
11162
|
uuid: (airmet == null ? void 0 : airmet.uuid) || 'default',
|
|
10694
11163
|
// Use a fallback UUID or handle undefined
|
|
@@ -10801,6 +11270,179 @@ var getEmptyAirmetWarning = function getEmptyAirmetWarning() {
|
|
|
10801
11270
|
}
|
|
10802
11271
|
};
|
|
10803
11272
|
};
|
|
11273
|
+
var renewAviationProduct = function renewAviationProduct(aviationWarning, productConfig) {
|
|
11274
|
+
var warningDetail = aviationWarning.sigmetAirmetDetails;
|
|
11275
|
+
var newValidUntil = 'phenomenon' in warningDetail ? getDefaultValidUntilValue(productConfig, warningDetail.phenomenon, warningDetail.locationIndicatorATSR, warningDetail.validDateEnd) : warningDetail.validDateEnd;
|
|
11276
|
+
var renewedWarningDetail = Object.assign({}, warningDetail, {
|
|
11277
|
+
validDateStart: warningDetail.validDateEnd,
|
|
11278
|
+
validDateEnd: newValidUntil,
|
|
11279
|
+
status: ProductStatus.DRAFT,
|
|
11280
|
+
uuid: undefined,
|
|
11281
|
+
sequence: '-1'
|
|
11282
|
+
});
|
|
11283
|
+
return Object.assign({}, aviationWarning, {
|
|
11284
|
+
sigmetAirmetDetails: renewedWarningDetail
|
|
11285
|
+
});
|
|
11286
|
+
};
|
|
11287
|
+
var duplicateAviationProduct = function duplicateAviationProduct(aviationWarning) {
|
|
11288
|
+
var duplicatedWarningDetail = Object.assign({}, aviationWarning.sigmetAirmetDetails, {
|
|
11289
|
+
status: ProductStatus.DRAFT,
|
|
11290
|
+
uuid: undefined,
|
|
11291
|
+
sequence: '-1'
|
|
11292
|
+
});
|
|
11293
|
+
return Object.assign({}, aviationWarning, {
|
|
11294
|
+
sigmetAirmetDetails: duplicatedWarningDetail
|
|
11295
|
+
});
|
|
11296
|
+
};
|
|
11297
|
+
|
|
11298
|
+
/* *
|
|
11299
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11300
|
+
* you may not use this file except in compliance with the License.
|
|
11301
|
+
* You may obtain a copy of the License at
|
|
11302
|
+
*
|
|
11303
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11304
|
+
*
|
|
11305
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11306
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11307
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11308
|
+
* See the License for the specific language governing permissions and
|
|
11309
|
+
* limitations under the License.
|
|
11310
|
+
*
|
|
11311
|
+
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11312
|
+
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
11313
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
11314
|
+
* */
|
|
11315
|
+
var config = getConfig();
|
|
11316
|
+
var publicWarningBaseUrl = config.GW_DRAWINGS_BASE_URL || '';
|
|
11317
|
+
// API
|
|
11318
|
+
var getPublicWarningList = function getPublicWarningList(auth) {
|
|
11319
|
+
return fetch(publicWarningBaseUrl + "/warnings", {
|
|
11320
|
+
headers: getHeaders(auth)
|
|
11321
|
+
}).then(handleResponse).then(function (warnings) {
|
|
11322
|
+
return warnings.map(function (warning) {
|
|
11323
|
+
return Object.assign({}, warning, {
|
|
11324
|
+
type: 'public'
|
|
11325
|
+
});
|
|
11326
|
+
});
|
|
11327
|
+
});
|
|
11328
|
+
};
|
|
11329
|
+
var updatePublicWarningEditor = function updatePublicWarningEditor(warningId, isEditor, auth) {
|
|
11330
|
+
return fetch(publicWarningBaseUrl + "/warnings/" + warningId + "?editor=" + (isEditor ? 'true' : 'false') + "&force=true", {
|
|
11331
|
+
headers: getHeaders(auth),
|
|
11332
|
+
method: 'POST'
|
|
11333
|
+
}).then(handleResponse);
|
|
11334
|
+
};
|
|
11335
|
+
|
|
11336
|
+
/**
|
|
11337
|
+
* @param disabled - Disables fetching, but still returns cached values.
|
|
11338
|
+
* https://tanstack.com/query/v4/docs/framework/react/guides/disabling-queries
|
|
11339
|
+
*/
|
|
11340
|
+
var usePublicWarnings = function usePublicWarnings(disabled) {
|
|
11341
|
+
if (disabled === void 0) {
|
|
11342
|
+
disabled = false;
|
|
11343
|
+
}
|
|
11344
|
+
return useAuthQuery(['public-warning-list'], getPublicWarningList, disabled, 1000 * 60 * 5);
|
|
11345
|
+
};
|
|
11346
|
+
var useMutatePublicWarningEditor = function useMutatePublicWarningEditor() {
|
|
11347
|
+
var queryClient = useQueryClient();
|
|
11348
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
11349
|
+
auth = _useAuthenticationCon.auth;
|
|
11350
|
+
var dispatch = useDispatch();
|
|
11351
|
+
return useMutation(Object.assign({
|
|
11352
|
+
mutationFn: function mutationFn(_ref) {
|
|
11353
|
+
var id = _ref.id,
|
|
11354
|
+
isEditor = _ref.isEditor;
|
|
11355
|
+
if (!auth) {
|
|
11356
|
+
throw new Error('Authentication context not found');
|
|
11357
|
+
}
|
|
11358
|
+
return updatePublicWarningEditor(id, isEditor, auth);
|
|
11359
|
+
}
|
|
11360
|
+
}, optimisticUpdate(['public-warning-list'], queryClient, function (w, _ref2) {
|
|
11361
|
+
var isEditor = _ref2.isEditor;
|
|
11362
|
+
return Object.assign({}, w, {
|
|
11363
|
+
editor: isEditor ? auth.username : undefined
|
|
11364
|
+
});
|
|
11365
|
+
}, function (error) {
|
|
11366
|
+
dispatch(publicWarningFormActions.setFormError({
|
|
11367
|
+
message: error.message
|
|
11368
|
+
}));
|
|
11369
|
+
}), {
|
|
11370
|
+
onSettled: function () {
|
|
11371
|
+
var _onSettled = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data, e, _ref3) {
|
|
11372
|
+
var isEditor;
|
|
11373
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
11374
|
+
while (1) switch (_context.prev = _context.next) {
|
|
11375
|
+
case 0:
|
|
11376
|
+
isEditor = _ref3.isEditor;
|
|
11377
|
+
dispatch(snackbarActions.openSnackbar({
|
|
11378
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
11379
|
+
key: isEditor ? 'warning-editor-add-editor' : 'warning-editor-remove-editor'
|
|
11380
|
+
}));
|
|
11381
|
+
case 2:
|
|
11382
|
+
case "end":
|
|
11383
|
+
return _context.stop();
|
|
11384
|
+
}
|
|
11385
|
+
}, _callee);
|
|
11386
|
+
}));
|
|
11387
|
+
function onSettled(_x, _x2, _x3) {
|
|
11388
|
+
return _onSettled.apply(this, arguments);
|
|
11389
|
+
}
|
|
11390
|
+
return onSettled;
|
|
11391
|
+
}()
|
|
11392
|
+
}));
|
|
11393
|
+
};
|
|
11394
|
+
|
|
11395
|
+
/* *
|
|
11396
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11397
|
+
* you may not use this file except in compliance with the License.
|
|
11398
|
+
* You may obtain a copy of the License at
|
|
11399
|
+
*
|
|
11400
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11401
|
+
*
|
|
11402
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11403
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11404
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11405
|
+
* See the License for the specific language governing permissions and
|
|
11406
|
+
* limitations under the License.
|
|
11407
|
+
*
|
|
11408
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11409
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
11410
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
11411
|
+
* */
|
|
11412
|
+
var useWarnings = function useWarnings(disabled) {
|
|
11413
|
+
var _usePublicWarnings = usePublicWarnings(disabled),
|
|
11414
|
+
publicWarnings = _usePublicWarnings.data,
|
|
11415
|
+
refetchPublicWarnings = _usePublicWarnings.refetch,
|
|
11416
|
+
isFetchingPublicWarnings = _usePublicWarnings.isFetching,
|
|
11417
|
+
publicWarningsError = _usePublicWarnings.error,
|
|
11418
|
+
dataUpdatedAt = _usePublicWarnings.dataUpdatedAt;
|
|
11419
|
+
var _useAirmetList = useAirmetList(disabled),
|
|
11420
|
+
airmetWarnings = _useAirmetList.data,
|
|
11421
|
+
refetchAirmet = _useAirmetList.refetch,
|
|
11422
|
+
isFetchingAirmet = _useAirmetList.isFetching;
|
|
11423
|
+
var _useSigmetList = useSigmetList(disabled),
|
|
11424
|
+
sigmetWarnings = _useSigmetList.data,
|
|
11425
|
+
refetchSigmet = _useSigmetList.refetch,
|
|
11426
|
+
isFetchingSigmet = _useSigmetList.isFetching;
|
|
11427
|
+
var combinedWarnings = useMemo(function () {
|
|
11428
|
+
var transformedSigmets = (sigmetWarnings == null ? void 0 : sigmetWarnings.map(transformSigmetToWarningFormat)) || [];
|
|
11429
|
+
var transformedAirmets = (airmetWarnings == null ? void 0 : airmetWarnings.map(transformAirmetToWarningFormat)) || [];
|
|
11430
|
+
return concat(publicWarnings || [], transformedSigmets, transformedAirmets);
|
|
11431
|
+
}, [publicWarnings, sigmetWarnings, airmetWarnings]);
|
|
11432
|
+
var refetchWarnings = function refetchWarnings() {
|
|
11433
|
+
void refetchPublicWarnings();
|
|
11434
|
+
void refetchAirmet();
|
|
11435
|
+
void refetchSigmet();
|
|
11436
|
+
};
|
|
11437
|
+
var isFetching = isFetchingPublicWarnings || isFetchingAirmet || isFetchingSigmet;
|
|
11438
|
+
return {
|
|
11439
|
+
combinedWarnings: combinedWarnings,
|
|
11440
|
+
refetchWarnings: refetchWarnings,
|
|
11441
|
+
isFetching: isFetching,
|
|
11442
|
+
error: publicWarningsError || undefined,
|
|
11443
|
+
dataUpdatedAt: dataUpdatedAt
|
|
11444
|
+
};
|
|
11445
|
+
};
|
|
10804
11446
|
|
|
10805
11447
|
var warningFormConfirmationOptions = function warningFormConfirmationOptions(t) {
|
|
10806
11448
|
return {
|
|
@@ -10820,7 +11462,6 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
10820
11462
|
source = _ref$source === void 0 ? 'app' : _ref$source,
|
|
10821
11463
|
startPosition = _ref.startPosition,
|
|
10822
11464
|
defaultMapPreset = _ref.defaultMapPreset;
|
|
10823
|
-
var warningsApi = getWarningsApi();
|
|
10824
11465
|
var _useSetupDialog = useSetupDialog(publicWarningDialogType, source),
|
|
10825
11466
|
dialogOrder = _useSetupDialog.dialogOrder,
|
|
10826
11467
|
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
@@ -10838,66 +11479,98 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
10838
11479
|
var isFormDirty = useSelector(function (store) {
|
|
10839
11480
|
return getSelectedPublicIsFormDirty(store);
|
|
10840
11481
|
});
|
|
10841
|
-
var
|
|
10842
|
-
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10846
|
-
|
|
10847
|
-
|
|
10848
|
-
|
|
10849
|
-
|
|
11482
|
+
var publicWarningState = useSelector(getPublicWarning);
|
|
11483
|
+
var _ref2 = publicWarningState || {},
|
|
11484
|
+
status = _ref2.status,
|
|
11485
|
+
editor = _ref2.editor;
|
|
11486
|
+
var _useWarnings = useWarnings(true),
|
|
11487
|
+
combinedWarnings = _useWarnings.combinedWarnings,
|
|
11488
|
+
refetchWarnings = _useWarnings.refetchWarnings,
|
|
11489
|
+
isFetching = _useWarnings.isFetching;
|
|
11490
|
+
var _React$useState = React__default.useState(isFetching),
|
|
11491
|
+
hasFetched = _React$useState[0],
|
|
11492
|
+
setHasFetched = _React$useState[1];
|
|
11493
|
+
React__default.useEffect(function () {
|
|
11494
|
+
if (isFetching) {
|
|
11495
|
+
setHasFetched(true);
|
|
11496
|
+
}
|
|
11497
|
+
}, [isFetching]);
|
|
11498
|
+
var selectedWarningId = useSelector(getSelectedWarningId);
|
|
11499
|
+
var selectedWarningObject = useSelector(getPublicWarning);
|
|
10850
11500
|
var warningType = useSelector(getWarningType);
|
|
11501
|
+
var selectedWarning = combinedWarnings == null ? void 0 : combinedWarnings.find(function (w) {
|
|
11502
|
+
return w.id === selectedWarningId;
|
|
11503
|
+
});
|
|
10851
11504
|
var _useAuthenticationCon = useAuthenticationContext$1(),
|
|
10852
11505
|
auth = _useAuthenticationCon.auth;
|
|
10853
|
-
var isEditor =
|
|
10854
|
-
var
|
|
10855
|
-
var
|
|
10856
|
-
|
|
11506
|
+
var isEditor = (selectedWarning == null ? void 0 : selectedWarning.editor) === (auth == null ? void 0 : auth.username) || false;
|
|
11507
|
+
var shouldGiveEditorWarning = React__default.useCallback(function (newEditor, oldEditor) {
|
|
11508
|
+
var oldEditorIsYou = oldEditor && oldEditor === (auth == null ? void 0 : auth.username);
|
|
11509
|
+
if (oldEditorIsYou && newEditor !== oldEditor) {
|
|
11510
|
+
dispatch(publicWarningFormActions.setFormError({
|
|
11511
|
+
severity: 'warning',
|
|
11512
|
+
message: TAKEOVER_MESSAGE
|
|
11513
|
+
}));
|
|
11514
|
+
}
|
|
11515
|
+
}, [dispatch, auth == null ? void 0 : auth.username]);
|
|
11516
|
+
var previousSelectedWarning = usePrevious(selectedWarning);
|
|
11517
|
+
var refetchCurrentEditor = /*#__PURE__*/function () {
|
|
11518
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
11519
|
+
var newWarnings, newSelectedWarning;
|
|
10857
11520
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
10858
11521
|
while (1) switch (_context.prev = _context.next) {
|
|
10859
11522
|
case 0:
|
|
10860
11523
|
_context.next = 2;
|
|
10861
|
-
return
|
|
11524
|
+
return getPublicWarningList(auth);
|
|
10862
11525
|
case 2:
|
|
10863
|
-
|
|
10864
|
-
|
|
10865
|
-
return
|
|
11526
|
+
newWarnings = _context.sent;
|
|
11527
|
+
newSelectedWarning = newWarnings == null ? void 0 : newWarnings.find(function (w) {
|
|
11528
|
+
return w.id === selectedWarningId;
|
|
10866
11529
|
});
|
|
10867
|
-
return _context.abrupt("return", (
|
|
11530
|
+
return _context.abrupt("return", (newSelectedWarning == null ? void 0 : newSelectedWarning.editor) || '');
|
|
10868
11531
|
case 5:
|
|
10869
11532
|
case "end":
|
|
10870
11533
|
return _context.stop();
|
|
10871
11534
|
}
|
|
10872
11535
|
}, _callee);
|
|
10873
11536
|
}));
|
|
10874
|
-
return function
|
|
10875
|
-
return
|
|
11537
|
+
return function refetchCurrentEditor() {
|
|
11538
|
+
return _ref3.apply(this, arguments);
|
|
10876
11539
|
};
|
|
10877
11540
|
}();
|
|
11541
|
+
React__default.useEffect(function () {
|
|
11542
|
+
if (editor !== (selectedWarning == null ? void 0 : selectedWarning.editor) && status !== 'TODO') {
|
|
11543
|
+
void setIsEditor(editor !== (auth == null ? void 0 : auth.username));
|
|
11544
|
+
}
|
|
11545
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11546
|
+
}, [editor]);
|
|
11547
|
+
React__default.useEffect(function () {
|
|
11548
|
+
if ((selectedWarning == null ? void 0 : selectedWarning.id) !== (previousSelectedWarning == null ? void 0 : previousSelectedWarning.id)) {
|
|
11549
|
+
dispatch(publicWarningFormActions.removeFormError());
|
|
11550
|
+
}
|
|
11551
|
+
}, [selectedWarning == null ? void 0 : selectedWarning.id, previousSelectedWarning == null ? void 0 : previousSelectedWarning.id, dispatch]);
|
|
11552
|
+
React__default.useEffect(function () {
|
|
11553
|
+
// Only give editor warning when the change in selectedWarning is from a refetch
|
|
11554
|
+
if (hasFetched) {
|
|
11555
|
+
setHasFetched(false);
|
|
11556
|
+
shouldGiveEditorWarning(selectedWarning == null ? void 0 : selectedWarning.editor, previousSelectedWarning == null ? void 0 : previousSelectedWarning.editor);
|
|
11557
|
+
}
|
|
11558
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11559
|
+
}, [selectedWarning == null ? void 0 : selectedWarning.editor]);
|
|
11560
|
+
var updatePublicWarningEditor = useMutatePublicWarningEditor();
|
|
10878
11561
|
var setIsEditor = /*#__PURE__*/function () {
|
|
10879
|
-
var
|
|
11562
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(isReadOnly) {
|
|
10880
11563
|
var username, latestEditor;
|
|
10881
11564
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
10882
11565
|
while (1) switch (_context2.prev = _context2.next) {
|
|
10883
11566
|
case 0:
|
|
10884
11567
|
username = (auth == null ? void 0 : auth.username) || ''; // make sure to get the latest changes if you are editing an existing warning
|
|
10885
|
-
|
|
10886
|
-
|
|
10887
|
-
|
|
10888
|
-
|
|
10889
|
-
_context2.next = 4;
|
|
10890
|
-
return getLatestEditor();
|
|
10891
|
-
case 4:
|
|
10892
|
-
_context2.t0 = _context2.sent;
|
|
10893
|
-
_context2.next = 8;
|
|
10894
|
-
break;
|
|
10895
|
-
case 7:
|
|
10896
|
-
_context2.t0 = '';
|
|
10897
|
-
case 8:
|
|
10898
|
-
latestEditor = _context2.t0;
|
|
11568
|
+
_context2.next = 3;
|
|
11569
|
+
return refetchCurrentEditor();
|
|
11570
|
+
case 3:
|
|
11571
|
+
latestEditor = _context2.sent;
|
|
10899
11572
|
if (!(!selectedWarningId || !isReadOnly && username === latestEditor || isReadOnly && latestEditor !== username)) {
|
|
10900
|
-
_context2.next =
|
|
11573
|
+
_context2.next = 8;
|
|
10901
11574
|
break;
|
|
10902
11575
|
}
|
|
10903
11576
|
// currently editing a new warning or
|
|
@@ -10907,34 +11580,40 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
10907
11580
|
dispatch(publicWarningFormActions.setFormValues({
|
|
10908
11581
|
formState: isReadOnly ? 'readonly' : ''
|
|
10909
11582
|
}));
|
|
11583
|
+
// If the editor was changed in a different window, refetch the warnings
|
|
11584
|
+
if (latestEditor !== (selectedWarning == null ? void 0 : selectedWarning.editor)) {
|
|
11585
|
+
void refetchWarnings();
|
|
11586
|
+
}
|
|
10910
11587
|
return _context2.abrupt("return", true);
|
|
10911
|
-
case
|
|
11588
|
+
case 8:
|
|
10912
11589
|
if (!(!isReadOnly && isAlreadyEdited(latestEditor, username))) {
|
|
10913
|
-
_context2.next =
|
|
11590
|
+
_context2.next = 11;
|
|
10914
11591
|
break;
|
|
10915
11592
|
}
|
|
10916
|
-
_context2.next =
|
|
11593
|
+
_context2.next = 11;
|
|
10917
11594
|
return confirmDialog({
|
|
10918
11595
|
title: t('warning-edit-mode-title'),
|
|
10919
11596
|
description: t('warning-edit-mode-description'),
|
|
10920
11597
|
confirmLabel: t('warning-edit-mode-confirm'),
|
|
10921
11598
|
cancelLabel: t('warning-dialog-cancel')
|
|
10922
11599
|
});
|
|
10923
|
-
case
|
|
10924
|
-
dispatch(publicWarningFormActions.
|
|
10925
|
-
|
|
10926
|
-
isEditor: !isReadOnly,
|
|
10927
|
-
username: username
|
|
11600
|
+
case 11:
|
|
11601
|
+
dispatch(publicWarningFormActions.setFormValues({
|
|
11602
|
+
formState: isReadOnly ? 'readonly' : ''
|
|
10928
11603
|
}));
|
|
11604
|
+
updatePublicWarningEditor.mutate({
|
|
11605
|
+
id: selectedWarningId,
|
|
11606
|
+
isEditor: !isReadOnly
|
|
11607
|
+
});
|
|
10929
11608
|
return _context2.abrupt("return", true);
|
|
10930
|
-
case
|
|
11609
|
+
case 14:
|
|
10931
11610
|
case "end":
|
|
10932
11611
|
return _context2.stop();
|
|
10933
11612
|
}
|
|
10934
11613
|
}, _callee2);
|
|
10935
11614
|
}));
|
|
10936
11615
|
return function setIsEditor(_x) {
|
|
10937
|
-
return
|
|
11616
|
+
return _ref4.apply(this, arguments);
|
|
10938
11617
|
};
|
|
10939
11618
|
}();
|
|
10940
11619
|
var onChangeFormMode = function onChangeFormMode(isReadOnly) {
|
|
@@ -10961,7 +11640,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
10961
11640
|
}
|
|
10962
11641
|
};
|
|
10963
11642
|
var closeDialog = /*#__PURE__*/function () {
|
|
10964
|
-
var
|
|
11643
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
10965
11644
|
var mayProceed;
|
|
10966
11645
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
10967
11646
|
while (1) switch (_context4.prev = _context4.next) {
|
|
@@ -10992,7 +11671,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
10992
11671
|
}, _callee4);
|
|
10993
11672
|
}));
|
|
10994
11673
|
return function closeDialog() {
|
|
10995
|
-
return
|
|
11674
|
+
return _ref6.apply(this, arguments);
|
|
10996
11675
|
};
|
|
10997
11676
|
}();
|
|
10998
11677
|
var _useAirmetList = useAirmetList(true),
|
|
@@ -11008,15 +11687,26 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11008
11687
|
var updatedWarningType = selectedSigmet ? 'sigmet' : selectedAirmet && 'airmet' || warningType;
|
|
11009
11688
|
var _useProductConfig = useProductConfig(updatedWarningType, !isDialogOpen),
|
|
11010
11689
|
aviationConfig = _useProductConfig.data;
|
|
11011
|
-
var selectedSigmetProduct = selectedSigmet && aviationConfig ? transformSigmetToProductFormat(selectedSigmet
|
|
11012
|
-
var selectedAirmetProduct = selectedAirmet && aviationConfig ? transformAirmetToProductFormat(selectedAirmet
|
|
11013
|
-
var selectedAviationProduct =
|
|
11690
|
+
var selectedSigmetProduct = selectedSigmet && aviationConfig ? transformSigmetToProductFormat(selectedSigmet) : getEmptySigmetWarning();
|
|
11691
|
+
var selectedAirmetProduct = selectedAirmet && aviationConfig ? transformAirmetToProductFormat(selectedAirmet) : getEmptyAirmetWarning();
|
|
11692
|
+
var selectedAviationProduct = React__default.useMemo(function () {
|
|
11693
|
+
if (['sigmet', 'airmet'].includes((selectedWarningObject == null ? void 0 : selectedWarningObject.type) || '') && aviationConfig) {
|
|
11694
|
+
return flattenPublicWarning(selectedWarningObject);
|
|
11695
|
+
}
|
|
11696
|
+
if (updatedWarningType === 'sigmet') {
|
|
11697
|
+
return selectedSigmetProduct;
|
|
11698
|
+
}
|
|
11699
|
+
if (updatedWarningType === 'airmet') {
|
|
11700
|
+
return selectedAirmetProduct;
|
|
11701
|
+
}
|
|
11702
|
+
return undefined;
|
|
11703
|
+
}, [selectedWarningObject, updatedWarningType, selectedSigmetProduct, selectedAirmetProduct, aviationConfig]);
|
|
11014
11704
|
var productCanBe = updatedWarningType === 'public' ? ['DRAFTED', 'DISCARDED', 'PUBLISHED'] : (selectedSigmet == null ? void 0 : selectedSigmet.canbe) || (selectedAirmet == null ? void 0 : selectedAirmet.canbe);
|
|
11015
11705
|
var mode = getProductFormMode(productCanBe, !selectedWarningId ? null : selectedAviationProduct);
|
|
11016
11706
|
// Readonly also in case you are not creating a new warning and you are not set as the editor
|
|
11017
|
-
var isReadOnly = formAction === 'readonly' || !isEditor &&
|
|
11707
|
+
var isReadOnly = formAction === 'readonly' || !isEditor && status !== undefined;
|
|
11018
11708
|
// Only show toggle if in draft status
|
|
11019
|
-
var shouldHideFormToggleMode =
|
|
11709
|
+
var shouldHideFormToggleMode = status !== 'DRAFT' && status !== 'DRAFT_PUBLISHED';
|
|
11020
11710
|
return jsxs(Fragment, {
|
|
11021
11711
|
children: [jsx(PublicWarningsFormDialog, {
|
|
11022
11712
|
isOpen: isDialogOpen,
|
|
@@ -11030,14 +11720,18 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11030
11720
|
isReadOnly: isReadOnly,
|
|
11031
11721
|
onChangeFormMode: onChangeFormMode,
|
|
11032
11722
|
shouldHideFormMode: shouldHideFormToggleMode,
|
|
11033
|
-
publicWarningEditor:
|
|
11723
|
+
publicWarningEditor: (selectedWarning == null ? void 0 : selectedWarning.editor) || undefined,
|
|
11034
11724
|
selectedAviationProduct: selectedAviationProduct,
|
|
11035
11725
|
warningType: updatedWarningType,
|
|
11036
11726
|
children: jsx(PublicWarningsFormConnect, {
|
|
11727
|
+
editor: (selectedWarning == null ? void 0 : selectedWarning.editor) || undefined,
|
|
11037
11728
|
defaultMapPreset: defaultMapPreset,
|
|
11038
11729
|
selectedAviationProduct: selectedAviationProduct,
|
|
11039
11730
|
warningType: updatedWarningType,
|
|
11040
|
-
mode: mode
|
|
11731
|
+
mode: mode,
|
|
11732
|
+
onFormSubmit: function onFormSubmit() {
|
|
11733
|
+
return refetchWarnings();
|
|
11734
|
+
}
|
|
11041
11735
|
})
|
|
11042
11736
|
}), jsx(AreaObjectLoaderConnect, {})]
|
|
11043
11737
|
});
|
|
@@ -11081,6 +11775,7 @@ var getSortedStatus = function getSortedStatus(status) {
|
|
|
11081
11775
|
}
|
|
11082
11776
|
};
|
|
11083
11777
|
var getWarningWithoutIdStatusEditor = function getWarningWithoutIdStatusEditor(warning) {
|
|
11778
|
+
var _warningDetail$areas;
|
|
11084
11779
|
warning.id;
|
|
11085
11780
|
var warningDetail = warning.warningDetail;
|
|
11086
11781
|
warning.status;
|
|
@@ -11091,7 +11786,7 @@ var getWarningWithoutIdStatusEditor = function getWarningWithoutIdStatusEditor(w
|
|
|
11091
11786
|
warningDetail.proposal_id;
|
|
11092
11787
|
warningDetail.warning_handle_uuid;
|
|
11093
11788
|
var cleanWarningDetail = _objectWithoutPropertiesLoose(warningDetail, _excluded2);
|
|
11094
|
-
var areas = warningDetail.areas.map(function (_ref) {
|
|
11789
|
+
var areas = (_warningDetail$areas = warningDetail.areas) == null ? void 0 : _warningDetail$areas.map(function (_ref) {
|
|
11095
11790
|
_ref.published_warning_uuid;
|
|
11096
11791
|
var area = _objectWithoutPropertiesLoose(_ref, _excluded3);
|
|
11097
11792
|
return area;
|
|
@@ -11205,7 +11900,6 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
11205
11900
|
})
|
|
11206
11901
|
})
|
|
11207
11902
|
}), jsxs(Menu, {
|
|
11208
|
-
title: t("filter-" + id),
|
|
11209
11903
|
open: Boolean(anchorEl),
|
|
11210
11904
|
onClose: function onClose() {
|
|
11211
11905
|
return setAnchorEl(null);
|
|
@@ -11279,17 +11973,12 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
11279
11973
|
return updateFilter(id, emptyFilterId, checked, only);
|
|
11280
11974
|
},
|
|
11281
11975
|
labelStyle: {
|
|
11282
|
-
|
|
11283
|
-
fontSize: '16px',
|
|
11284
|
-
display: 'flex',
|
|
11285
|
-
alignItems: 'center',
|
|
11286
|
-
gap: 1
|
|
11976
|
+
fontSize: '16px'
|
|
11287
11977
|
},
|
|
11288
11978
|
label: jsx(Fragment, {
|
|
11289
11979
|
children: t(getTranslationKey(emptyFilterId, id))
|
|
11290
11980
|
})
|
|
11291
|
-
}, id + "-" + emptyFilterId), Object.keys(options).map(function (
|
|
11292
|
-
var optionId = _optionId;
|
|
11981
|
+
}, id + "-" + emptyFilterId), Object.keys(options).map(function (optionId) {
|
|
11293
11982
|
if (optionId === emptyFilterId) {
|
|
11294
11983
|
return null;
|
|
11295
11984
|
}
|
|
@@ -11301,14 +11990,29 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
11301
11990
|
return updateFilter(id, optionId, checked, only);
|
|
11302
11991
|
},
|
|
11303
11992
|
labelStyle: Object.assign({}, getLevelStyle(warningColor), {
|
|
11304
|
-
width: 'fit-content',
|
|
11305
|
-
fontSize: '16px'
|
|
11306
|
-
display: 'flex',
|
|
11307
|
-
alignItems: 'center',
|
|
11308
|
-
gap: 1
|
|
11993
|
+
width: LevelColors[optionId] ? 'fit-content' : '100%',
|
|
11994
|
+
fontSize: '16px'
|
|
11309
11995
|
}),
|
|
11310
|
-
label:
|
|
11311
|
-
|
|
11996
|
+
label: jsx(CustomTooltip, {
|
|
11997
|
+
title: t(getTranslationKey(optionId, id)),
|
|
11998
|
+
placement: "bottom",
|
|
11999
|
+
children: jsxs(Box, {
|
|
12000
|
+
"data-testid": "wrapper-" + optionId,
|
|
12001
|
+
sx: {
|
|
12002
|
+
display: 'flex',
|
|
12003
|
+
alignItems: 'center',
|
|
12004
|
+
gap: 1,
|
|
12005
|
+
maxWidth: 200
|
|
12006
|
+
},
|
|
12007
|
+
children: [getPhenomenaIcon(optionId), jsx(Typography, {
|
|
12008
|
+
noWrap: true,
|
|
12009
|
+
variant: "body2",
|
|
12010
|
+
sx: {
|
|
12011
|
+
fontSize: '16px'
|
|
12012
|
+
},
|
|
12013
|
+
children: t(getTranslationKey(optionId, id))
|
|
12014
|
+
})]
|
|
12015
|
+
})
|
|
11312
12016
|
})
|
|
11313
12017
|
}, id + "-" + optionId);
|
|
11314
12018
|
})]
|
|
@@ -11465,6 +12169,8 @@ var WarningListItemMenu = function WarningListItemMenu(_ref) {
|
|
|
11465
12169
|
onExpireWarning = _ref$onExpireWarning === void 0 ? function () {} : _ref$onExpireWarning,
|
|
11466
12170
|
_ref$onWithdrawWarnin = _ref.onWithdrawWarning,
|
|
11467
12171
|
onWithdrawWarning = _ref$onWithdrawWarnin === void 0 ? function () {} : _ref$onWithdrawWarnin,
|
|
12172
|
+
_ref$onActionAviation = _ref.onActionAviationWarning,
|
|
12173
|
+
onActionAviationWarning = _ref$onActionAviation === void 0 ? function () {} : _ref$onActionAviation,
|
|
11468
12174
|
t = _ref.t;
|
|
11469
12175
|
var duplicate = {
|
|
11470
12176
|
text: t('warning-list-button-duplicate'),
|
|
@@ -11473,6 +12179,13 @@ var WarningListItemMenu = function WarningListItemMenu(_ref) {
|
|
|
11473
12179
|
},
|
|
11474
12180
|
icon: jsx(Copy, {})
|
|
11475
12181
|
};
|
|
12182
|
+
var aviationDuplicate = {
|
|
12183
|
+
text: t('warning-list-button-duplicate'),
|
|
12184
|
+
action: function action() {
|
|
12185
|
+
return onActionAviationWarning(warning, ProductAction.DUPLICATE);
|
|
12186
|
+
},
|
|
12187
|
+
icon: jsx(Copy, {})
|
|
12188
|
+
};
|
|
11476
12189
|
// disable Expire option if warning is not active
|
|
11477
12190
|
var shouldDisableExpire = !dateUtils.isBetween(dateUtils.getNowUtc(), dateUtils.createDate(warning.warningDetail.validFrom), dateUtils.createDate(warning.warningDetail.validUntil), '[]');
|
|
11478
12191
|
switch (warning.status) {
|
|
@@ -11531,11 +12244,44 @@ var WarningListItemMenu = function WarningListItemMenu(_ref) {
|
|
|
11531
12244
|
icon: jsx(Delete, {})
|
|
11532
12245
|
}];
|
|
11533
12246
|
default:
|
|
11534
|
-
|
|
12247
|
+
switch (warning.productStatus) {
|
|
12248
|
+
case ProductStatus.DRAFT:
|
|
12249
|
+
return [aviationDuplicate];
|
|
12250
|
+
case ProductStatus.PUBLISHED:
|
|
12251
|
+
if (warning.type !== 'public' && (isInstanceOfCancelSigmet(warning.sigmetAirmetDetails) || isInstanceOfCancelAirmet(warning.sigmetAirmetDetails))) {
|
|
12252
|
+
return [];
|
|
12253
|
+
}
|
|
12254
|
+
return [{
|
|
12255
|
+
text: t('warning-list-button-renew'),
|
|
12256
|
+
action: function action() {
|
|
12257
|
+
if (warning) {
|
|
12258
|
+
onActionAviationWarning(warning);
|
|
12259
|
+
}
|
|
12260
|
+
},
|
|
12261
|
+
icon: jsx(Update, {})
|
|
12262
|
+
}, aviationDuplicate];
|
|
12263
|
+
case ProductStatus.CANCELLED:
|
|
12264
|
+
return [];
|
|
12265
|
+
case ProductStatus.EXPIRED:
|
|
12266
|
+
if (warning.type !== 'public' && (isInstanceOfCancelSigmet(warning.sigmetAirmetDetails) || isInstanceOfCancelAirmet(warning.sigmetAirmetDetails))) {
|
|
12267
|
+
return [];
|
|
12268
|
+
}
|
|
12269
|
+
return [{
|
|
12270
|
+
text: t('warning-list-button-renew'),
|
|
12271
|
+
action: function action() {
|
|
12272
|
+
if (warning) {
|
|
12273
|
+
onActionAviationWarning(warning, ProductAction.RENEW);
|
|
12274
|
+
}
|
|
12275
|
+
},
|
|
12276
|
+
icon: jsx(Update, {})
|
|
12277
|
+
}, aviationDuplicate];
|
|
12278
|
+
default:
|
|
12279
|
+
return [];
|
|
12280
|
+
}
|
|
11535
12281
|
}
|
|
11536
12282
|
};
|
|
11537
12283
|
|
|
11538
|
-
var _excluded$2 = ["warning", "activeWarningId", "highlightedItem", "onSelectWarning", "onEditWarning", "onDeleteWarning", "onDeleteReviewWarning", "onExpireWarning", "onWithdrawWarning"];
|
|
12284
|
+
var _excluded$2 = ["warning", "activeWarningId", "highlightedItem", "onSelectWarning", "onEditWarning", "onDeleteWarning", "onDeleteReviewWarning", "onExpireWarning", "onWithdrawWarning", "onActionAviationWarning"];
|
|
11539
12285
|
var renderLevelText = function renderLevelText(levelString) {
|
|
11540
12286
|
if (!levelString) {
|
|
11541
12287
|
return null;
|
|
@@ -11572,10 +12318,10 @@ var renderStatusIcon = function renderStatusIcon(warning, status) {
|
|
|
11572
12318
|
icon: icon
|
|
11573
12319
|
});
|
|
11574
12320
|
};
|
|
11575
|
-
if (warning.productStatus === ProductStatus.PUBLISHED && warning.
|
|
11576
|
-
return getStatusTag("Cnls " + warning.
|
|
12321
|
+
if (warning.productStatus === ProductStatus.PUBLISHED && warning.type !== 'public' && (isCancelAirmet(warning.sigmetAirmetDetails) || isCancelSigmet(warning.sigmetAirmetDetails))) {
|
|
12322
|
+
return getStatusTag("Cnls " + (isCancelAirmet(warning.sigmetAirmetDetails) ? warning.sigmetAirmetDetails.cancelsAirmetSequenceId : warning.sigmetAirmetDetails.cancelsSigmetSequenceId), 'red');
|
|
11577
12323
|
}
|
|
11578
|
-
if (warning.productStatus === ProductStatus.CANCELLED && warning.
|
|
12324
|
+
if (warning.productStatus === ProductStatus.CANCELLED && warning.type !== 'public') {
|
|
11579
12325
|
return getStatusTag('Cnld', 'red');
|
|
11580
12326
|
}
|
|
11581
12327
|
switch (status) {
|
|
@@ -11630,12 +12376,14 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
11630
12376
|
onExpireWarning = _ref$onExpireWarning === void 0 ? function () {} : _ref$onExpireWarning,
|
|
11631
12377
|
_ref$onWithdrawWarnin = _ref.onWithdrawWarning,
|
|
11632
12378
|
onWithdrawWarning = _ref$onWithdrawWarnin === void 0 ? function () {} : _ref$onWithdrawWarnin,
|
|
12379
|
+
_ref$onActionAviation = _ref.onActionAviationWarning,
|
|
12380
|
+
onActionAviationWarning = _ref$onActionAviation === void 0 ? function () {} : _ref$onActionAviation,
|
|
11633
12381
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
11634
12382
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
11635
12383
|
t = _useWarningsTranslati.t;
|
|
11636
12384
|
var phenomenonDetails = allPhenomenaDict[warning.warningDetail.phenomenon];
|
|
11637
12385
|
var objectNameText = ((_warning$warningDetai = warning.warningDetail.areas) == null || (_warning$warningDetai = _warning$warningDetai[0]) == null ? void 0 : _warning$warningDetai.objectName) || '-';
|
|
11638
|
-
var objectHoverText = warning.
|
|
12386
|
+
var objectHoverText = warning.type !== 'public' ? warning.sigmetAirmetDetails.firName : objectNameText;
|
|
11639
12387
|
var _useOverflowCheck = useOverflowCheck(objectNameText),
|
|
11640
12388
|
objectNameRef = _useOverflowCheck.ref;
|
|
11641
12389
|
var phenomenonText = phenomenonDetails != null && phenomenonDetails.translationKey ? t(phenomenonDetails.translationKey) : '-';
|
|
@@ -11683,7 +12431,8 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
11683
12431
|
onDeleteReviewWarning: onDeleteReviewWarning,
|
|
11684
12432
|
onDeleteWarning: onDeleteWarning,
|
|
11685
12433
|
onExpireWarning: onExpireWarning,
|
|
11686
|
-
onWithdrawWarning: onWithdrawWarning
|
|
12434
|
+
onWithdrawWarning: onWithdrawWarning,
|
|
12435
|
+
onActionAviationWarning: onActionAviationWarning
|
|
11687
12436
|
}),
|
|
11688
12437
|
buttonIcon: jsx(Options, {})
|
|
11689
12438
|
}),
|
|
@@ -12065,8 +12814,8 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12065
12814
|
_ref$isLoading = _ref.isLoading,
|
|
12066
12815
|
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
12067
12816
|
error = _ref.error,
|
|
12068
|
-
_ref$
|
|
12069
|
-
|
|
12817
|
+
_ref$selectedWarningI = _ref.selectedWarningId,
|
|
12818
|
+
selectedWarningId = _ref$selectedWarningI === void 0 ? '' : _ref$selectedWarningI,
|
|
12070
12819
|
lastUpdatedTime = _ref.lastUpdatedTime,
|
|
12071
12820
|
_ref$onSelectWarning = _ref.onSelectWarning,
|
|
12072
12821
|
onSelectWarning = _ref$onSelectWarning === void 0 ? function () {} : _ref$onSelectWarning,
|
|
@@ -12084,11 +12833,14 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12084
12833
|
onExpireWarning = _ref$onExpireWarning === void 0 ? function () {} : _ref$onExpireWarning,
|
|
12085
12834
|
_ref$onWithdrawWarnin = _ref.onWithdrawWarning,
|
|
12086
12835
|
onWithdrawWarning = _ref$onWithdrawWarnin === void 0 ? function () {} : _ref$onWithdrawWarnin,
|
|
12836
|
+
_ref$onActionAviation = _ref.onActionAviationWarning,
|
|
12837
|
+
onActionAviationWarning = _ref$onActionAviation === void 0 ? function () {} : _ref$onActionAviation,
|
|
12087
12838
|
hoveredFeatureId = _ref.hoveredFeatureId,
|
|
12088
12839
|
expandedSections = _ref.expandedSections,
|
|
12089
12840
|
setExpandedSections = _ref.setExpandedSections;
|
|
12090
12841
|
var updateFilter = filterHookState.updateFilter,
|
|
12091
|
-
allSelected = filterHookState.allSelected
|
|
12842
|
+
allSelected = filterHookState.allSelected,
|
|
12843
|
+
filterState = filterHookState.filterState;
|
|
12092
12844
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
12093
12845
|
t = _useWarningsTranslati.t;
|
|
12094
12846
|
var _React$useState = React__default.useState({
|
|
@@ -12220,7 +12972,7 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12220
12972
|
children: jsx(FilterList, {
|
|
12221
12973
|
isAllSelected: allSelected,
|
|
12222
12974
|
onClickAll: onClickAll,
|
|
12223
|
-
filterState:
|
|
12975
|
+
filterState: filterState,
|
|
12224
12976
|
updateFilter: updateFilter
|
|
12225
12977
|
})
|
|
12226
12978
|
}), jsxs(Grid2, {
|
|
@@ -12370,9 +13122,10 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12370
13122
|
onEditWarning: onEditWarning,
|
|
12371
13123
|
onDeleteWarning: onDeleteWarning,
|
|
12372
13124
|
onDeleteReviewWarning: onDeleteReviewWarning,
|
|
12373
|
-
activeWarningId:
|
|
13125
|
+
activeWarningId: selectedWarningId,
|
|
12374
13126
|
onExpireWarning: onExpireWarning,
|
|
12375
|
-
onWithdrawWarning: onWithdrawWarning
|
|
13127
|
+
onWithdrawWarning: onWithdrawWarning,
|
|
13128
|
+
onActionAviationWarning: onActionAviationWarning
|
|
12376
13129
|
}, key);
|
|
12377
13130
|
}
|
|
12378
13131
|
});
|
|
@@ -12383,6 +13136,51 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12383
13136
|
});
|
|
12384
13137
|
};
|
|
12385
13138
|
|
|
13139
|
+
/* *
|
|
13140
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13141
|
+
* you may not use this file except in compliance with the License.
|
|
13142
|
+
* You may obtain a copy of the License at
|
|
13143
|
+
*
|
|
13144
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13145
|
+
*
|
|
13146
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13147
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13148
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13149
|
+
* See the License for the specific language governing permissions and
|
|
13150
|
+
* limitations under the License.
|
|
13151
|
+
*
|
|
13152
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13153
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
13154
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
13155
|
+
* */
|
|
13156
|
+
var publicWarningsAdapter = createEntityAdapter({
|
|
13157
|
+
selectId: function selectId(warning) {
|
|
13158
|
+
return warning.id;
|
|
13159
|
+
}
|
|
13160
|
+
});
|
|
13161
|
+
var initialState = {
|
|
13162
|
+
warnings: publicWarningsAdapter.getInitialState(),
|
|
13163
|
+
isLoading: true,
|
|
13164
|
+
lastUpdatedTime: '',
|
|
13165
|
+
filterState: {}
|
|
13166
|
+
};
|
|
13167
|
+
var slice = createSlice({
|
|
13168
|
+
initialState: initialState,
|
|
13169
|
+
name: 'publicWarnings',
|
|
13170
|
+
reducers: {
|
|
13171
|
+
setWarningFilters: function setWarningFilters(draft, action) {
|
|
13172
|
+
var _action$payload = action.payload,
|
|
13173
|
+
filterState = _action$payload.filterState,
|
|
13174
|
+
panelId = _action$payload.panelId;
|
|
13175
|
+
if (panelId) {
|
|
13176
|
+
draft.filterState[panelId] = filterState;
|
|
13177
|
+
}
|
|
13178
|
+
}
|
|
13179
|
+
}
|
|
13180
|
+
});
|
|
13181
|
+
var publicWarningsReducer = slice.reducer,
|
|
13182
|
+
publicWarningActions = slice.actions;
|
|
13183
|
+
|
|
12386
13184
|
/* *
|
|
12387
13185
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12388
13186
|
* you may not use this file except in compliance with the License.
|
|
@@ -12555,6 +13353,11 @@ var getLevelsForDomainFilter = function getLevelsForDomainFilter(domainFilter) {
|
|
|
12555
13353
|
return domainFilter[domain] ? domainLevels[domain] : [];
|
|
12556
13354
|
});
|
|
12557
13355
|
};
|
|
13356
|
+
var getPhenomenaForDomainFilter = function getPhenomenaForDomainFilter(domainFilter) {
|
|
13357
|
+
return Object.keys(domainFilter).flatMap(function (domain) {
|
|
13358
|
+
return domainFilter[domain] ? domainPhenomena[domain] : [];
|
|
13359
|
+
});
|
|
13360
|
+
};
|
|
12558
13361
|
var getFilterOptions = function getFilterOptions(defaultFilter, allOptions, savedFilter) {
|
|
12559
13362
|
var pickedFilterOptions = pick(defaultFilter, [emptyFilterId].concat(allOptions));
|
|
12560
13363
|
// keep options state from savedFilter if it still exists
|
|
@@ -12577,20 +13380,18 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
12577
13380
|
updatedPickedLevels = _getFilterOptions[0],
|
|
12578
13381
|
allLevelsSelected = _getFilterOptions[1];
|
|
12579
13382
|
// phenomenon
|
|
13383
|
+
var domainPhenomena = useMemo(function () {
|
|
13384
|
+
return getPhenomenaForDomainFilter(pickedDomainFilter);
|
|
13385
|
+
}, [pickedDomainFilter]);
|
|
12580
13386
|
var warningsPhenomena = useMemo(function () {
|
|
12581
13387
|
return getFiltersFromWarnings(warnings, 'phenomenon');
|
|
12582
13388
|
}, [warnings]);
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12587
|
-
});
|
|
13389
|
+
var relevantPhenomena = useMemo(function () {
|
|
13390
|
+
return domainPhenomena.filter(function (phenomenon) {
|
|
13391
|
+
return warningsPhenomena.includes(phenomenon);
|
|
13392
|
+
});
|
|
13393
|
+
}, [warningsPhenomena, domainPhenomena]);
|
|
12588
13394
|
relevantPhenomena.push(emptyFilterId);
|
|
12589
|
-
var defaultPhenomenonFilter = useMemo(function () {
|
|
12590
|
-
return Object.fromEntries(relevantPhenomena.map(function (key) {
|
|
12591
|
-
return [key, true];
|
|
12592
|
-
}));
|
|
12593
|
-
}, [relevantPhenomena]);
|
|
12594
13395
|
var _getFilterOptions2 = getFilterOptions(defaultPhenomenonFilter, relevantPhenomena, pickedPhenomenonFilter),
|
|
12595
13396
|
updatedPickedPhenomena = _getFilterOptions2[0],
|
|
12596
13397
|
allPhenomenaSelected = _getFilterOptions2[1];
|
|
@@ -12621,7 +13422,14 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
12621
13422
|
useEffect(function () {
|
|
12622
13423
|
// when the preset changes, update the filters
|
|
12623
13424
|
if (presetFilterState) {
|
|
12624
|
-
|
|
13425
|
+
var initialFiltersWithPresets = {
|
|
13426
|
+
incident: Object.assign({}, makeFilterFromList(relevantIncidents), presetFilterState.incident),
|
|
13427
|
+
source: Object.assign({}, makeFilterFromList(relevantSources), presetFilterState.source),
|
|
13428
|
+
domain: Object.assign({}, initialFilters.domain, presetFilterState.domain),
|
|
13429
|
+
phenomenon: Object.assign({}, initialFilters.phenomenon, presetFilterState.phenomenon),
|
|
13430
|
+
level: Object.assign({}, initialFilters.level, presetFilterState.level)
|
|
13431
|
+
};
|
|
13432
|
+
onUpdateFilters(initialFiltersWithPresets, 'system');
|
|
12625
13433
|
} else {
|
|
12626
13434
|
// for a preset without filters saved use the initial filters
|
|
12627
13435
|
onUpdateFilters(Object.assign({}, initialFilters, {
|
|
@@ -12688,7 +13496,7 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
12688
13496
|
if (!pickedLevelFilter[level]) {
|
|
12689
13497
|
return false;
|
|
12690
13498
|
}
|
|
12691
|
-
var phenomenon = getValue(
|
|
13499
|
+
var phenomenon = getValue(AllPhenomenaKeys, warning.warningDetail.phenomenon);
|
|
12692
13500
|
if (!pickedPhenomenonFilter[phenomenon]) {
|
|
12693
13501
|
return false;
|
|
12694
13502
|
}
|
|
@@ -12723,35 +13531,31 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
12723
13531
|
var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
12724
13532
|
var panelId = _ref.panelId,
|
|
12725
13533
|
presetFilterState = _ref.presetFilterState;
|
|
13534
|
+
var updatePublicWarningEditor = useMutatePublicWarningEditor();
|
|
12726
13535
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
12727
13536
|
t = _useWarningsTranslati.t;
|
|
12728
13537
|
var dispatch = useDispatch();
|
|
12729
13538
|
var confirmDialog = useConfirmationDialog();
|
|
12730
13539
|
var _useAuthenticationCon = useAuthenticationContext$1(),
|
|
12731
13540
|
auth = _useAuthenticationCon.auth;
|
|
12732
|
-
var
|
|
12733
|
-
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
|
|
12737
|
-
|
|
12738
|
-
|
|
12739
|
-
isFetchingSigmet = _useSigmetList.isFetching;
|
|
13541
|
+
var _useWarnings = useWarnings(),
|
|
13542
|
+
combinedWarnings = _useWarnings.combinedWarnings,
|
|
13543
|
+
refetchWarnings = _useWarnings.refetchWarnings,
|
|
13544
|
+
isFetching = _useWarnings.isFetching,
|
|
13545
|
+
error = _useWarnings.error,
|
|
13546
|
+
dataUpdatedAt = _useWarnings.dataUpdatedAt;
|
|
13547
|
+
var lastUpdateTime = dateUtils.dateToString(new Date(dataUpdatedAt), dateUtils.DATE_FORMAT_HOURS);
|
|
12740
13548
|
var _React$useState = React__default.useState(undefined),
|
|
12741
13549
|
confirmDialogOptions = _React$useState[0],
|
|
12742
13550
|
setConfirmDialogOptions = _React$useState[1];
|
|
12743
|
-
var
|
|
12744
|
-
var selectedPublicWarningId = useSelector(getSelectedPublicWarningId);
|
|
12745
|
-
var isLoading = useSelector(isPublicWarningsLoading) || isFetchingAirmet || isFetchingSigmet;
|
|
12746
|
-
var error = useSelector(getPublicWarningsError);
|
|
12747
|
-
var isFormDirty = useSelector(getSelectedPublicIsFormDirty);
|
|
12748
|
-
var lastUpdatedTime = useSelector(getPublicWarningsLastUpdatedTime);
|
|
13551
|
+
var selectedWarningId = useSelector(getSelectedWarningId);
|
|
12749
13552
|
var savedFilterState = useSelector(function (store) {
|
|
12750
13553
|
return getWarningsFilterById(store, panelId);
|
|
12751
13554
|
});
|
|
13555
|
+
var isFormDirty = useSelector(getSelectedPublicIsFormDirty);
|
|
12752
13556
|
var warningsApi = getWarningsApi();
|
|
12753
13557
|
var openPublicWarningDialog = /*#__PURE__*/function () {
|
|
12754
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formAction,
|
|
13558
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(formAction, warning, warningType) {
|
|
12755
13559
|
var mayProceed;
|
|
12756
13560
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
12757
13561
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -12774,8 +13578,8 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12774
13578
|
}
|
|
12775
13579
|
return _context.abrupt("return");
|
|
12776
13580
|
case 6:
|
|
12777
|
-
dispatch(publicWarningFormActions.openPublicWarningFormDialog(Object.assign({},
|
|
12778
|
-
|
|
13581
|
+
dispatch(publicWarningFormActions.openPublicWarningFormDialog(Object.assign({}, warning && {
|
|
13582
|
+
warning: warning
|
|
12779
13583
|
}, {
|
|
12780
13584
|
formState: formAction,
|
|
12781
13585
|
warningType: warningType,
|
|
@@ -12803,24 +13607,24 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12803
13607
|
while (1) switch (_context2.prev = _context2.next) {
|
|
12804
13608
|
case 0:
|
|
12805
13609
|
if (!(publicWarning.id && auth != null && auth.username && !publicWarning.editor)) {
|
|
12806
|
-
_context2.next =
|
|
13610
|
+
_context2.next = 7;
|
|
12807
13611
|
break;
|
|
12808
13612
|
}
|
|
12809
|
-
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
12813
|
-
})
|
|
12814
|
-
_context2.next =
|
|
13613
|
+
refetchWarnings();
|
|
13614
|
+
updatePublicWarningEditor.mutate({
|
|
13615
|
+
id: publicWarning.id,
|
|
13616
|
+
isEditor: true
|
|
13617
|
+
});
|
|
13618
|
+
_context2.next = 5;
|
|
12815
13619
|
return openPublicWarningDialog('', Object.assign({}, publicWarning, {
|
|
12816
13620
|
editor: auth == null ? void 0 : auth.username
|
|
12817
13621
|
}));
|
|
12818
|
-
case
|
|
12819
|
-
_context2.next =
|
|
13622
|
+
case 5:
|
|
13623
|
+
_context2.next = 8;
|
|
12820
13624
|
break;
|
|
12821
|
-
case 6:
|
|
12822
|
-
void openPublicWarningDialog('', publicWarning);
|
|
12823
13625
|
case 7:
|
|
13626
|
+
void openPublicWarningDialog('', publicWarning);
|
|
13627
|
+
case 8:
|
|
12824
13628
|
case "end":
|
|
12825
13629
|
return _context2.stop();
|
|
12826
13630
|
}
|
|
@@ -12890,6 +13694,25 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12890
13694
|
return _ref5.apply(this, arguments);
|
|
12891
13695
|
};
|
|
12892
13696
|
}();
|
|
13697
|
+
var warningType = useSelector(getWarningType);
|
|
13698
|
+
var _useProductConfig = useProductConfig(warningType, false),
|
|
13699
|
+
aviationConfig = _useProductConfig.data;
|
|
13700
|
+
var handleAviationProductClick = function handleAviationProductClick(warning, actionType) {
|
|
13701
|
+
if (!warning) {
|
|
13702
|
+
return;
|
|
13703
|
+
}
|
|
13704
|
+
var type = warning.warningDetail.level === 'SIG' ? 'sigmet' : 'airmet';
|
|
13705
|
+
var updatedWarning;
|
|
13706
|
+
switch (actionType) {
|
|
13707
|
+
case 'RENEW':
|
|
13708
|
+
updatedWarning = renewAviationProduct(warning, aviationConfig);
|
|
13709
|
+
break;
|
|
13710
|
+
case 'DUPLICATE':
|
|
13711
|
+
updatedWarning = duplicateAviationProduct(warning);
|
|
13712
|
+
break;
|
|
13713
|
+
}
|
|
13714
|
+
void openPublicWarningDialog('edit', updatedWarning, type);
|
|
13715
|
+
};
|
|
12893
13716
|
var openSnackbar = function openSnackbar(message) {
|
|
12894
13717
|
dispatch(snackbarActions.openSnackbar({
|
|
12895
13718
|
type: snackbarTypes.SnackbarMessageType.VERBATIM_MESSAGE,
|
|
@@ -12931,29 +13754,15 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12931
13754
|
// close confirm dialog
|
|
12932
13755
|
setConfirmDialogOptions(undefined);
|
|
12933
13756
|
// Close warning dialog if needed
|
|
12934
|
-
if (
|
|
13757
|
+
if (selectedWarningId === warningId) {
|
|
12935
13758
|
dispatch(uiActions.setToggleOpenDialog({
|
|
12936
13759
|
setOpen: false,
|
|
12937
13760
|
type: publicWarningDialogType
|
|
12938
13761
|
}));
|
|
12939
13762
|
}
|
|
12940
13763
|
openSnackbar(snackbarMessage);
|
|
12941
|
-
|
|
13764
|
+
refetchWarnings();
|
|
12942
13765
|
};
|
|
12943
|
-
var fetchWarnings = React__default.useCallback(function () {
|
|
12944
|
-
void refetchAirmetList();
|
|
12945
|
-
void refetchSigmetList();
|
|
12946
|
-
dispatch(publicWarningActions.fetchWarnings());
|
|
12947
|
-
}, [dispatch, refetchAirmetList, refetchSigmetList]);
|
|
12948
|
-
React__default.useEffect(function () {
|
|
12949
|
-
// fetch warnings on mount
|
|
12950
|
-
fetchWarnings();
|
|
12951
|
-
}, [fetchWarnings]);
|
|
12952
|
-
var combinedWarnings = React__default.useMemo(function () {
|
|
12953
|
-
var transformedSigmets = (sigmetList == null ? void 0 : sigmetList.map(transformSigmetToWarningFormat)) || [];
|
|
12954
|
-
var transformedAirmets = (airmetList == null ? void 0 : airmetList.map(transformAirmetToWarningFormat)) || [];
|
|
12955
|
-
return publicWarnings.concat(transformedSigmets).concat(transformedAirmets);
|
|
12956
|
-
}, [publicWarnings, sigmetList, airmetList]);
|
|
12957
13766
|
var onUpdateFilters = React__default.useCallback(function (filterState, origin) {
|
|
12958
13767
|
dispatch(publicWarningActions.setWarningFilters({
|
|
12959
13768
|
filterState: filterState,
|
|
@@ -12980,8 +13789,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12980
13789
|
}, [filteredWarnings, expandedSections]);
|
|
12981
13790
|
var allFeatures = React__default.useMemo(function () {
|
|
12982
13791
|
return filteredWarningsByExpandedSections.flatMap(function (warning) {
|
|
12983
|
-
|
|
12984
|
-
return (warning == null ? void 0 : warning.id) && (warning == null || (_warning$warningDetai = warning.warningDetail) == null || (_warning$warningDetai = _warning$warningDetai.areas) == null ? void 0 : _warning$warningDetai.filter(function (area) {
|
|
13792
|
+
return (warning == null ? void 0 : warning.id) && (warning != null && warning.warningDetail && warning.warningDetail.areas ? warning.warningDetail.areas.filter(function (area) {
|
|
12985
13793
|
return area.geoJSON;
|
|
12986
13794
|
}).map(function (area) {
|
|
12987
13795
|
var isAviationWarning = warning.warningDetail.level === 'SIG' || warning.warningDetail.level === 'AIR';
|
|
@@ -12991,7 +13799,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
12991
13799
|
originalId: warning.id,
|
|
12992
13800
|
geoJSON: styledGeoJSON
|
|
12993
13801
|
};
|
|
12994
|
-
})) || [];
|
|
13802
|
+
}) : []) || [];
|
|
12995
13803
|
}).filter(function (feature) {
|
|
12996
13804
|
return feature.id;
|
|
12997
13805
|
});
|
|
@@ -13005,8 +13813,8 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
13005
13813
|
warnings: filteredWarnings,
|
|
13006
13814
|
expandedSections: expandedSections,
|
|
13007
13815
|
setExpandedSections: setExpandedSections,
|
|
13008
|
-
isLoading:
|
|
13009
|
-
error: error,
|
|
13816
|
+
isLoading: isFetching,
|
|
13817
|
+
error: error || undefined,
|
|
13010
13818
|
onSelectWarning: selectWarning,
|
|
13011
13819
|
onCreateWarning: createWarning,
|
|
13012
13820
|
onEditWarning: editWarning,
|
|
@@ -13014,11 +13822,12 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
13014
13822
|
onDeleteReviewWarning: deleteReviewWarning,
|
|
13015
13823
|
onExpireWarning: expireWarning,
|
|
13016
13824
|
onWithdrawWarning: withdrawWarning,
|
|
13017
|
-
|
|
13018
|
-
lastUpdatedTime:
|
|
13019
|
-
onRefetchWarnings:
|
|
13825
|
+
selectedWarningId: selectedWarningId,
|
|
13826
|
+
lastUpdatedTime: lastUpdateTime,
|
|
13827
|
+
onRefetchWarnings: refetchWarnings,
|
|
13020
13828
|
filterHookState: filterHookState,
|
|
13021
|
-
hoveredFeatureId: hoveredFeatureId
|
|
13829
|
+
hoveredFeatureId: hoveredFeatureId,
|
|
13830
|
+
onActionAviationWarning: handleAviationProductClick
|
|
13022
13831
|
}), confirmDialogOptions && jsx(ConfirmDeleteWarningDialog, {
|
|
13023
13832
|
onClose: function onClose() {
|
|
13024
13833
|
return setConfirmDialogOptions(undefined);
|
|
@@ -13089,48 +13898,49 @@ var componentsLookUp = function componentsLookUp(payload, apiProps) {
|
|
|
13089
13898
|
var getErrorMessage = function getErrorMessage(error) {
|
|
13090
13899
|
return isAxiosError(error) ? getAxiosErrorMessage(error) : error.message;
|
|
13091
13900
|
};
|
|
13092
|
-
var getToggleEditorSuccessMessage = function getToggleEditorSuccessMessage(isEditor) {
|
|
13093
|
-
return isEditor ? 'warning-editor-add-editor' : 'warning-editor-remove-editor';
|
|
13094
|
-
};
|
|
13095
13901
|
var publicWarningFormListener = createListenerMiddleware();
|
|
13096
13902
|
publicWarningFormListener.startListening({
|
|
13097
|
-
actionCreator: publicWarningFormActions.
|
|
13903
|
+
actionCreator: publicWarningFormActions.publishWarning,
|
|
13098
13904
|
effect: function () {
|
|
13099
13905
|
var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
|
|
13100
|
-
var payload,
|
|
13906
|
+
var payload, publicWarning, refetchWarnings, publishedWarning, isDialogOpen;
|
|
13101
13907
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
13102
13908
|
while (1) switch (_context.prev = _context.next) {
|
|
13103
13909
|
case 0:
|
|
13104
13910
|
payload = _ref.payload;
|
|
13105
13911
|
listenerApi.cancelActiveListeners();
|
|
13106
13912
|
_context.prev = 2;
|
|
13107
|
-
|
|
13108
|
-
|
|
13109
|
-
|
|
13110
|
-
|
|
13111
|
-
|
|
13112
|
-
|
|
13113
|
-
|
|
13114
|
-
|
|
13115
|
-
|
|
13116
|
-
|
|
13913
|
+
publicWarning = payload.publicWarning, refetchWarnings = payload.refetchWarnings;
|
|
13914
|
+
_context.next = 6;
|
|
13915
|
+
return saveOrUpdateWarning(publicWarning);
|
|
13916
|
+
case 6:
|
|
13917
|
+
publishedWarning = _context.sent;
|
|
13918
|
+
if (refetchWarnings) {
|
|
13919
|
+
refetchWarnings();
|
|
13920
|
+
}
|
|
13921
|
+
listenerApi.dispatch(publicWarningFormActions.publishWarningSuccess({
|
|
13922
|
+
publicWarning: publishedWarning,
|
|
13117
13923
|
message: {
|
|
13118
13924
|
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
13119
|
-
key:
|
|
13925
|
+
key: 'warning-publish-succes'
|
|
13120
13926
|
}
|
|
13121
13927
|
}));
|
|
13122
|
-
|
|
13928
|
+
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
13929
|
+
type: publicWarningDialogType,
|
|
13930
|
+
setOpen: false
|
|
13931
|
+
}));
|
|
13932
|
+
_context.next = 16;
|
|
13123
13933
|
break;
|
|
13124
|
-
case
|
|
13125
|
-
_context.prev =
|
|
13934
|
+
case 12:
|
|
13935
|
+
_context.prev = 12;
|
|
13126
13936
|
_context.t0 = _context["catch"](2);
|
|
13127
13937
|
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13128
13938
|
errorEffect(listenerApi.dispatch, getErrorMessage(_context.t0), isDialogOpen);
|
|
13129
|
-
case
|
|
13939
|
+
case 16:
|
|
13130
13940
|
case "end":
|
|
13131
13941
|
return _context.stop();
|
|
13132
13942
|
}
|
|
13133
|
-
}, _callee, null, [[2,
|
|
13943
|
+
}, _callee, null, [[2, 12]]);
|
|
13134
13944
|
}));
|
|
13135
13945
|
function effect(_x, _x2) {
|
|
13136
13946
|
return _effect.apply(this, arguments);
|
|
@@ -13139,32 +13949,31 @@ publicWarningFormListener.startListening({
|
|
|
13139
13949
|
}()
|
|
13140
13950
|
});
|
|
13141
13951
|
publicWarningFormListener.startListening({
|
|
13142
|
-
actionCreator: publicWarningFormActions.
|
|
13952
|
+
actionCreator: publicWarningFormActions.saveWarning,
|
|
13143
13953
|
effect: function () {
|
|
13144
13954
|
var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
|
|
13145
|
-
var payload, publicWarning,
|
|
13955
|
+
var payload, publicWarning, refetchWarnings, savedWarning, isDialogOpen;
|
|
13146
13956
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
13147
13957
|
while (1) switch (_context2.prev = _context2.next) {
|
|
13148
13958
|
case 0:
|
|
13149
13959
|
payload = _ref2.payload;
|
|
13150
13960
|
listenerApi.cancelActiveListeners();
|
|
13151
13961
|
_context2.prev = 2;
|
|
13152
|
-
publicWarning = payload.publicWarning;
|
|
13962
|
+
publicWarning = payload.publicWarning, refetchWarnings = payload.refetchWarnings;
|
|
13153
13963
|
_context2.next = 6;
|
|
13154
13964
|
return saveOrUpdateWarning(publicWarning);
|
|
13155
13965
|
case 6:
|
|
13156
|
-
|
|
13157
|
-
|
|
13158
|
-
|
|
13966
|
+
savedWarning = _context2.sent;
|
|
13967
|
+
if (refetchWarnings) {
|
|
13968
|
+
refetchWarnings();
|
|
13969
|
+
}
|
|
13970
|
+
listenerApi.dispatch(publicWarningFormActions.saveWarningSuccess({
|
|
13971
|
+
publicWarning: savedWarning,
|
|
13159
13972
|
message: {
|
|
13160
13973
|
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
13161
|
-
key: 'warning-
|
|
13974
|
+
key: 'warning-save-succes'
|
|
13162
13975
|
}
|
|
13163
13976
|
}));
|
|
13164
|
-
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
13165
|
-
type: publicWarningDialogType,
|
|
13166
|
-
setOpen: false
|
|
13167
|
-
}));
|
|
13168
13977
|
_context2.next = 15;
|
|
13169
13978
|
break;
|
|
13170
13979
|
case 11:
|
|
@@ -13184,41 +13993,26 @@ publicWarningFormListener.startListening({
|
|
|
13184
13993
|
return effect;
|
|
13185
13994
|
}()
|
|
13186
13995
|
});
|
|
13996
|
+
// Side effects/snackbar listeners
|
|
13187
13997
|
publicWarningFormListener.startListening({
|
|
13188
|
-
|
|
13998
|
+
matcher: isAnyOf(publicWarningFormActions.publishWarningSuccess, publicWarningFormActions.saveWarningSuccess),
|
|
13189
13999
|
effect: function () {
|
|
13190
14000
|
var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref3, listenerApi) {
|
|
13191
|
-
var payload,
|
|
14001
|
+
var payload, message, isDialogOpen;
|
|
13192
14002
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
13193
14003
|
while (1) switch (_context3.prev = _context3.next) {
|
|
13194
14004
|
case 0:
|
|
13195
14005
|
payload = _ref3.payload;
|
|
13196
14006
|
listenerApi.cancelActiveListeners();
|
|
13197
|
-
|
|
13198
|
-
|
|
13199
|
-
_context3.next = 6;
|
|
13200
|
-
return saveOrUpdateWarning(publicWarning);
|
|
13201
|
-
case 6:
|
|
13202
|
-
savedWarning = _context3.sent;
|
|
13203
|
-
listenerApi.dispatch(publicWarningFormActions.saveWarningSuccess({
|
|
13204
|
-
publicWarning: savedWarning,
|
|
13205
|
-
message: {
|
|
13206
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
13207
|
-
key: 'warning-save-succes'
|
|
13208
|
-
}
|
|
13209
|
-
}));
|
|
13210
|
-
_context3.next = 14;
|
|
13211
|
-
break;
|
|
13212
|
-
case 10:
|
|
13213
|
-
_context3.prev = 10;
|
|
13214
|
-
_context3.t0 = _context3["catch"](2);
|
|
14007
|
+
message = payload.message;
|
|
14008
|
+
listenerApi.dispatch(snackbarActions.openSnackbar(message));
|
|
13215
14009
|
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13216
|
-
|
|
13217
|
-
case
|
|
14010
|
+
toggleDialogLoadingEffect(listenerApi.dispatch, isDialogOpen, false);
|
|
14011
|
+
case 6:
|
|
13218
14012
|
case "end":
|
|
13219
14013
|
return _context3.stop();
|
|
13220
14014
|
}
|
|
13221
|
-
}, _callee3
|
|
14015
|
+
}, _callee3);
|
|
13222
14016
|
}));
|
|
13223
14017
|
function effect(_x5, _x6) {
|
|
13224
14018
|
return _effect3.apply(this, arguments);
|
|
@@ -13226,22 +14020,18 @@ publicWarningFormListener.startListening({
|
|
|
13226
14020
|
return effect;
|
|
13227
14021
|
}()
|
|
13228
14022
|
});
|
|
13229
|
-
// Side effects/snackbar listeners
|
|
13230
14023
|
publicWarningFormListener.startListening({
|
|
13231
|
-
matcher: isAnyOf(publicWarningFormActions.
|
|
14024
|
+
matcher: isAnyOf(publicWarningFormActions.publishWarning, publicWarningFormActions.saveWarning),
|
|
13232
14025
|
effect: function () {
|
|
13233
|
-
var _effect4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(
|
|
13234
|
-
var
|
|
14026
|
+
var _effect4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_, listenerApi) {
|
|
14027
|
+
var isDialogOpen;
|
|
13235
14028
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
13236
14029
|
while (1) switch (_context4.prev = _context4.next) {
|
|
13237
14030
|
case 0:
|
|
13238
|
-
payload = _ref4.payload;
|
|
13239
14031
|
listenerApi.cancelActiveListeners();
|
|
13240
|
-
message = payload.message;
|
|
13241
|
-
listenerApi.dispatch(snackbarActions.openSnackbar(message));
|
|
13242
14032
|
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13243
|
-
toggleDialogLoadingEffect(listenerApi.dispatch, isDialogOpen,
|
|
13244
|
-
case
|
|
14033
|
+
toggleDialogLoadingEffect(listenerApi.dispatch, isDialogOpen, true);
|
|
14034
|
+
case 3:
|
|
13245
14035
|
case "end":
|
|
13246
14036
|
return _context4.stop();
|
|
13247
14037
|
}
|
|
@@ -13253,38 +14043,15 @@ publicWarningFormListener.startListening({
|
|
|
13253
14043
|
return effect;
|
|
13254
14044
|
}()
|
|
13255
14045
|
});
|
|
13256
|
-
publicWarningFormListener.startListening({
|
|
13257
|
-
matcher: isAnyOf(publicWarningFormActions.publishWarning, publicWarningFormActions.saveWarning),
|
|
13258
|
-
effect: function () {
|
|
13259
|
-
var _effect5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_, listenerApi) {
|
|
13260
|
-
var isDialogOpen;
|
|
13261
|
-
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
13262
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
13263
|
-
case 0:
|
|
13264
|
-
listenerApi.cancelActiveListeners();
|
|
13265
|
-
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13266
|
-
toggleDialogLoadingEffect(listenerApi.dispatch, isDialogOpen, true);
|
|
13267
|
-
case 3:
|
|
13268
|
-
case "end":
|
|
13269
|
-
return _context5.stop();
|
|
13270
|
-
}
|
|
13271
|
-
}, _callee5);
|
|
13272
|
-
}));
|
|
13273
|
-
function effect(_x9, _x10) {
|
|
13274
|
-
return _effect5.apply(this, arguments);
|
|
13275
|
-
}
|
|
13276
|
-
return effect;
|
|
13277
|
-
}()
|
|
13278
|
-
});
|
|
13279
14046
|
publicWarningFormListener.startListening({
|
|
13280
14047
|
actionCreator: publicWarningFormActions.openPublicWarningFormDialog,
|
|
13281
14048
|
effect: function () {
|
|
13282
|
-
var
|
|
14049
|
+
var _effect5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref4, listenerApi) {
|
|
13283
14050
|
var payload, panelId;
|
|
13284
|
-
return _regeneratorRuntime().wrap(function
|
|
13285
|
-
while (1) switch (
|
|
14051
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
14052
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
13286
14053
|
case 0:
|
|
13287
|
-
payload =
|
|
14054
|
+
payload = _ref4.payload;
|
|
13288
14055
|
listenerApi.cancelActiveListeners();
|
|
13289
14056
|
panelId = payload.panelId;
|
|
13290
14057
|
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
@@ -13294,35 +14061,35 @@ publicWarningFormListener.startListening({
|
|
|
13294
14061
|
}));
|
|
13295
14062
|
case 4:
|
|
13296
14063
|
case "end":
|
|
13297
|
-
return
|
|
14064
|
+
return _context5.stop();
|
|
13298
14065
|
}
|
|
13299
|
-
},
|
|
14066
|
+
}, _callee5);
|
|
13300
14067
|
}));
|
|
13301
|
-
function effect(
|
|
13302
|
-
return
|
|
14068
|
+
function effect(_x9, _x10) {
|
|
14069
|
+
return _effect5.apply(this, arguments);
|
|
13303
14070
|
}
|
|
13304
14071
|
return effect;
|
|
13305
14072
|
}()
|
|
13306
14073
|
});
|
|
13307
14074
|
var saveOrUpdateWarning = /*#__PURE__*/function () {
|
|
13308
|
-
var
|
|
14075
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(publicWarning) {
|
|
13309
14076
|
var warningsApi, warningDetail, status, warning, newWarningId;
|
|
13310
|
-
return _regeneratorRuntime().wrap(function
|
|
13311
|
-
while (1) switch (
|
|
14077
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
14078
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
13312
14079
|
case 0:
|
|
13313
14080
|
warningsApi = getWarningsApi();
|
|
13314
14081
|
warningDetail = publicWarning.warningDetail, status = publicWarning.status;
|
|
13315
14082
|
if (!warningDetail.id) {
|
|
13316
|
-
|
|
14083
|
+
_context6.next = 6;
|
|
13317
14084
|
break;
|
|
13318
14085
|
}
|
|
13319
|
-
|
|
14086
|
+
_context6.next = 5;
|
|
13320
14087
|
return warningsApi.updateWarning(warningDetail.id, publicWarning);
|
|
13321
14088
|
case 5:
|
|
13322
|
-
return
|
|
14089
|
+
return _context6.abrupt("return", publicWarning);
|
|
13323
14090
|
case 6:
|
|
13324
14091
|
if (!(status === 'PUBLISHED' && warningDetail.linked_to_id)) {
|
|
13325
|
-
|
|
14092
|
+
_context6.next = 11;
|
|
13326
14093
|
break;
|
|
13327
14094
|
}
|
|
13328
14095
|
warning = Object.assign({}, publicWarning, {
|
|
@@ -13330,28 +14097,28 @@ var saveOrUpdateWarning = /*#__PURE__*/function () {
|
|
|
13330
14097
|
id: warningDetail.linked_to_id
|
|
13331
14098
|
})
|
|
13332
14099
|
});
|
|
13333
|
-
|
|
14100
|
+
_context6.next = 10;
|
|
13334
14101
|
return warningsApi.updateWarning(warningDetail.linked_to_id, warning);
|
|
13335
14102
|
case 10:
|
|
13336
|
-
return
|
|
14103
|
+
return _context6.abrupt("return", warning);
|
|
13337
14104
|
case 11:
|
|
13338
|
-
|
|
14105
|
+
_context6.next = 13;
|
|
13339
14106
|
return warningsApi.saveWarningAs(publicWarning);
|
|
13340
14107
|
case 13:
|
|
13341
|
-
newWarningId =
|
|
13342
|
-
return
|
|
14108
|
+
newWarningId = _context6.sent;
|
|
14109
|
+
return _context6.abrupt("return", Object.assign({}, publicWarning, {
|
|
13343
14110
|
warningDetail: Object.assign({}, warningDetail, {
|
|
13344
14111
|
id: newWarningId
|
|
13345
14112
|
})
|
|
13346
14113
|
}));
|
|
13347
14114
|
case 15:
|
|
13348
14115
|
case "end":
|
|
13349
|
-
return
|
|
14116
|
+
return _context6.stop();
|
|
13350
14117
|
}
|
|
13351
|
-
},
|
|
14118
|
+
}, _callee6);
|
|
13352
14119
|
}));
|
|
13353
|
-
return function saveOrUpdateWarning(
|
|
13354
|
-
return
|
|
14120
|
+
return function saveOrUpdateWarning(_x11) {
|
|
14121
|
+
return _ref5.apply(this, arguments);
|
|
13355
14122
|
};
|
|
13356
14123
|
}();
|
|
13357
14124
|
var toggleDialogLoadingEffect = function toggleDialogLoadingEffect(dispatch, isDialogOpen, isLoading) {
|
|
@@ -13371,12 +14138,12 @@ var errorEffect = function errorEffect(dispatch, message, isDialogOpen) {
|
|
|
13371
14138
|
publicWarningFormListener.startListening({
|
|
13372
14139
|
actionCreator: uiActions.setToggleOpenDialog,
|
|
13373
14140
|
effect: function () {
|
|
13374
|
-
var
|
|
14141
|
+
var _effect6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(_ref6, listenerApi) {
|
|
13375
14142
|
var payload;
|
|
13376
|
-
return _regeneratorRuntime().wrap(function
|
|
13377
|
-
while (1) switch (
|
|
14143
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
14144
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
13378
14145
|
case 0:
|
|
13379
|
-
payload =
|
|
14146
|
+
payload = _ref6.payload;
|
|
13380
14147
|
if (!payload.setOpen && payload.type === publicWarningDialogType) {
|
|
13381
14148
|
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
13382
14149
|
setOpen: false,
|
|
@@ -13385,89 +14152,12 @@ publicWarningFormListener.startListening({
|
|
|
13385
14152
|
}
|
|
13386
14153
|
case 2:
|
|
13387
14154
|
case "end":
|
|
13388
|
-
return
|
|
13389
|
-
}
|
|
13390
|
-
}, _callee8);
|
|
13391
|
-
}));
|
|
13392
|
-
function effect(_x14, _x15) {
|
|
13393
|
-
return _effect7.apply(this, arguments);
|
|
13394
|
-
}
|
|
13395
|
-
return effect;
|
|
13396
|
-
}()
|
|
13397
|
-
});
|
|
13398
|
-
|
|
13399
|
-
var getLastUpdatedTimeFormatted = function getLastUpdatedTimeFormatted() {
|
|
13400
|
-
return dateUtils.dateToString(dateUtils.utc(), dateUtils.DATE_FORMAT_HOURS);
|
|
13401
|
-
};
|
|
13402
|
-
var publicWarningsListener = createListenerMiddleware();
|
|
13403
|
-
publicWarningsListener.startListening({
|
|
13404
|
-
actionCreator: publicWarningActions.fetchWarnings,
|
|
13405
|
-
effect: function () {
|
|
13406
|
-
var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_, listenerApi) {
|
|
13407
|
-
var warningsApi, _yield$warningsApi$ge, warnings, lastUpdatedTime, taskError;
|
|
13408
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
13409
|
-
while (1) switch (_context.prev = _context.next) {
|
|
13410
|
-
case 0:
|
|
13411
|
-
listenerApi.cancelActiveListeners();
|
|
13412
|
-
_context.prev = 1;
|
|
13413
|
-
warningsApi = getWarningsApi();
|
|
13414
|
-
_context.next = 5;
|
|
13415
|
-
return warningsApi.getWarnings();
|
|
13416
|
-
case 5:
|
|
13417
|
-
_yield$warningsApi$ge = _context.sent;
|
|
13418
|
-
warnings = _yield$warningsApi$ge.data;
|
|
13419
|
-
lastUpdatedTime = getLastUpdatedTimeFormatted();
|
|
13420
|
-
listenerApi.dispatch(publicWarningActions.fetchWarningsSuccess({
|
|
13421
|
-
warnings: warnings,
|
|
13422
|
-
lastUpdatedTime: lastUpdatedTime
|
|
13423
|
-
}));
|
|
13424
|
-
_context.next = 11;
|
|
13425
|
-
return listenerApi.delay(pollingIntervalTimeout);
|
|
13426
|
-
case 11:
|
|
13427
|
-
listenerApi.dispatch(publicWarningActions.fetchWarnings());
|
|
13428
|
-
_context.next = 18;
|
|
13429
|
-
break;
|
|
13430
|
-
case 14:
|
|
13431
|
-
_context.prev = 14;
|
|
13432
|
-
_context.t0 = _context["catch"](1);
|
|
13433
|
-
taskError = _context.t0; // Don't set an error if the cancelActiveListeners was invoked (which throws a TaskAbortError)
|
|
13434
|
-
if ((taskError == null ? void 0 : taskError.code) !== 'listener-cancelled') {
|
|
13435
|
-
listenerApi.dispatch(publicWarningActions.fetchWarningsError({
|
|
13436
|
-
error: {
|
|
13437
|
-
name: taskError.name,
|
|
13438
|
-
message: taskError.message
|
|
13439
|
-
}
|
|
13440
|
-
}));
|
|
13441
|
-
}
|
|
13442
|
-
case 18:
|
|
13443
|
-
case "end":
|
|
13444
|
-
return _context.stop();
|
|
13445
|
-
}
|
|
13446
|
-
}, _callee, null, [[1, 14]]);
|
|
13447
|
-
}));
|
|
13448
|
-
function effect(_x, _x2) {
|
|
13449
|
-
return _effect.apply(this, arguments);
|
|
13450
|
-
}
|
|
13451
|
-
return effect;
|
|
13452
|
-
}()
|
|
13453
|
-
});
|
|
13454
|
-
publicWarningsListener.startListening({
|
|
13455
|
-
matcher: isAnyOf(publicWarningFormActions.publishWarningSuccess, publicWarningFormActions.saveWarningSuccess),
|
|
13456
|
-
effect: function () {
|
|
13457
|
-
var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_, listenerApi) {
|
|
13458
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
13459
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
13460
|
-
case 0:
|
|
13461
|
-
listenerApi.cancelActiveListeners();
|
|
13462
|
-
listenerApi.dispatch(publicWarningActions.fetchWarnings());
|
|
13463
|
-
case 2:
|
|
13464
|
-
case "end":
|
|
13465
|
-
return _context2.stop();
|
|
14155
|
+
return _context7.stop();
|
|
13466
14156
|
}
|
|
13467
|
-
},
|
|
14157
|
+
}, _callee7);
|
|
13468
14158
|
}));
|
|
13469
|
-
function effect(
|
|
13470
|
-
return
|
|
14159
|
+
function effect(_x12, _x13) {
|
|
14160
|
+
return _effect6.apply(this, arguments);
|
|
13471
14161
|
}
|
|
13472
14162
|
return effect;
|
|
13473
14163
|
}()
|
|
@@ -13483,9 +14173,9 @@ var getSnackbarMessage = function getSnackbarMessage(objectName, id) {
|
|
|
13483
14173
|
}
|
|
13484
14174
|
};
|
|
13485
14175
|
};
|
|
13486
|
-
var
|
|
13487
|
-
|
|
13488
|
-
actionCreator:
|
|
14176
|
+
var warningsDrawingsListener = createListenerMiddleware();
|
|
14177
|
+
warningsDrawingsListener.startListening({
|
|
14178
|
+
actionCreator: warningsDrawingsActions.submitDrawValues,
|
|
13489
14179
|
effect: function () {
|
|
13490
14180
|
var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
|
|
13491
14181
|
var payload, id, formValues, warningsApi, newID, taskError, errorMessage;
|
|
@@ -13509,7 +14199,7 @@ drawingsListener.startListening({
|
|
|
13509
14199
|
return warningsApi.saveDrawingAs(formValues);
|
|
13510
14200
|
case 9:
|
|
13511
14201
|
newID = _context.sent;
|
|
13512
|
-
listenerApi.dispatch(
|
|
14202
|
+
listenerApi.dispatch(warningsDrawingsActions.setDrawValues({
|
|
13513
14203
|
drawingInstanceId: drawingDialogType,
|
|
13514
14204
|
id: newID,
|
|
13515
14205
|
objectName: formValues.objectName
|
|
@@ -13577,13 +14267,46 @@ drawingsListener.startListening({
|
|
|
13577
14267
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
13578
14268
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
13579
14269
|
* */
|
|
13580
|
-
var
|
|
13581
|
-
|
|
13582
|
-
|
|
13583
|
-
|
|
13584
|
-
|
|
13585
|
-
|
|
13586
|
-
|
|
14270
|
+
var publicWarningsListener = createListenerMiddleware();
|
|
14271
|
+
|
|
14272
|
+
/* *
|
|
14273
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14274
|
+
* you may not use this file except in compliance with the License.
|
|
14275
|
+
* You may obtain a copy of the License at
|
|
14276
|
+
*
|
|
14277
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14278
|
+
*
|
|
14279
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14280
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14281
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14282
|
+
* See the License for the specific language governing permissions and
|
|
14283
|
+
* limitations under the License.
|
|
14284
|
+
*
|
|
14285
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
14286
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
14287
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
14288
|
+
* */
|
|
14289
|
+
var warningsReducersMap = {
|
|
14290
|
+
layers: layerReducer,
|
|
14291
|
+
ui: uiReducer,
|
|
14292
|
+
drawingtools: drawingToolReducer,
|
|
14293
|
+
drawings: warningsDrawingsReducer,
|
|
14294
|
+
publicWarningForm: publicWarningFormReducer,
|
|
14295
|
+
publicWarnings: publicWarningsReducer,
|
|
14296
|
+
snackbar: snackbarReducer
|
|
14297
|
+
};
|
|
14298
|
+
var warningsMiddlewares = [layersListener.middleware, drawingToolListener.middleware, warningsDrawingsListener.middleware, publicWarningsListener.middleware, publicWarningFormListener.middleware, snackbarListener.middleware];
|
|
14299
|
+
var warningsRootReducer = combineReducers(warningsReducersMap);
|
|
14300
|
+
var createMockStore = function createMockStore(mockState) {
|
|
14301
|
+
return configureStore({
|
|
14302
|
+
reducer: warningsRootReducer,
|
|
14303
|
+
preloadedState: mockState,
|
|
14304
|
+
middleware: warningsMiddlewares
|
|
14305
|
+
});
|
|
13587
14306
|
};
|
|
14307
|
+
/* _____ NOTE --> We should use the middlwares like this down below, but as it will be more strict, it exposes errors from the code itself, which won´t be fixed in this MR ______
|
|
14308
|
+
middleware: (getDefaultMiddleware) =>
|
|
14309
|
+
getDefaultMiddleware().concat(warningsMiddlewares),
|
|
14310
|
+
*/
|
|
13588
14311
|
|
|
13589
|
-
export { DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningApiWrapper, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WARN_NAMESPACE, WarningsModuleProvider, componentsLookUp,
|
|
14312
|
+
export { DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningApiWrapper, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WARN_NAMESPACE, WarningsModuleProvider, componentsLookUp, createMockStore, isAlreadyEdited, publicWarningActions, publicWarningFormActions, publicWarningFormListener, publicWarningFormReducer, publicWarningsListener, publicWarningsReducer, selectors as publicWarningsSelectors, useObjectDrawDialogAction, warningFormConfirmationOptions, warningsDrawingsActions, warningsDrawingsListener, warningsDrawingsReducer, warningsMiddlewares, warningsReducersMap, warningsTranslations };
|