@opengeoweb/warnings 11.0.0 → 12.0.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 +598 -620
- package/package.json +37 -26
- package/src/lib/api/aviation-api/fakeApi.d.ts +1 -1
- package/src/lib/api/hooks.spec.d.ts +1 -0
- package/src/lib/api/warning-api/api.d.ts +3 -1
- package/src/lib/api/warning-api/hooks.d.ts +13 -4
- package/src/lib/components/FilterList/filter-hooks.d.ts +4 -5
- package/src/lib/components/FilterList/filter-utils.d.ts +3 -3
- package/src/lib/components/PublicWarningList/PublicWarningListConnect.stories.d.ts +3 -3
- package/src/lib/components/PublicWarningsForm/PublicWarningsForm.d.ts +5 -5
- package/src/lib/components/PublicWarningsForm/PublicWarningsForm.stories.d.ts +20 -28
- package/src/lib/components/PublicWarningsForm/PublicWarningsFormConnect.d.ts +0 -1
- package/src/lib/components/WarningsMapView/WarningsMapView.d.ts +0 -1
- package/src/lib/store/publicWarningForm/reducer.d.ts +1 -18
- package/src/lib/store/publicWarningForm/selectors.d.ts +5 -0
- package/src/lib/store/publicWarnings/reducer.d.ts +3 -4
- package/src/lib/store/publicWarnings/selectors.d.ts +5 -4
- package/src/lib/store/publicWarnings/types.d.ts +2 -2
- package/src/lib/storybookUtils/testUtils.d.ts +2 -2
- package/src/lib/utils/fakeApi/index.d.ts +4 -4
package/index.esm.js
CHANGED
|
@@ -2,14 +2,14 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { useDispatch, useSelector } from 'react-redux';
|
|
3
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
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,
|
|
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
|
|
7
|
-
import { createEntityAdapter, createSlice, createSelector,
|
|
5
|
+
import { defaultPolygon, emptyGeoJSON, MapControlButton, getIcon, rewindGeometry, getGeoJSONPropertyValue, currentlySupportedDrawModes, defaultLayers, viewUtils, OpenLayersMapView, MapControls, OpenLayersZoomControl, OpenLayersLayer, OpenLayersFeatureLayer, 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 } from '@opengeoweb/shared';
|
|
7
|
+
import { createEntityAdapter, createSlice, createSelector, current, createListenerMiddleware, 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
|
|
12
|
+
import { LayerType, generateMapId } from '@opengeoweb/webmap';
|
|
13
13
|
import { airmetConfig, sigmetConfig, SigmetForm, isInstanceOfCancelSigmet, AirmetForm, isInstanceOfCancelAirmet, getDefaultValidUntilValue, getProductFormMode, ProductAction } from '@opengeoweb/sigmet-airmet';
|
|
14
14
|
import { snackbarActions, snackbarTypes, snackbarListener, snackbarReducer } from '@opengeoweb/snackbar';
|
|
15
15
|
import * as React from 'react';
|
|
@@ -17,13 +17,12 @@ import React__default, { useState, useEffect, useRef, useMemo, useCallback } fro
|
|
|
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, AirmetPhenomena, SigmetPhenomena, getHeaders, handleResponse, useAuthQuery, useAuthenticationContext,
|
|
21
|
-
import {
|
|
22
|
-
import { concat, isEqual, cloneDeep, clamp, groupBy, pick
|
|
20
|
+
import { getApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider, AirmetPhenomena, SigmetPhenomena, getHeaders, handleResponse, useAuthQuery, useAuthenticationContext, optimisticUpdate, ProductStatus } from '@opengeoweb/api';
|
|
21
|
+
import { http, HttpResponse, passthrough, delay } from 'msw';
|
|
22
|
+
import { concat, isEqual, cloneDeep, clamp, groupBy, pick } from 'lodash';
|
|
23
23
|
import { useFormContext } from 'react-hook-form';
|
|
24
24
|
import { getConfig, useAuthenticationContext as useAuthenticationContext$1 } from '@opengeoweb/authentication';
|
|
25
25
|
import { useQueryClient, useMutation } from '@tanstack/react-query';
|
|
26
|
-
import { isAxiosError } from 'axios';
|
|
27
26
|
|
|
28
27
|
var en = {
|
|
29
28
|
"drawing-tool-form-tools": "Tools",
|
|
@@ -2166,36 +2165,6 @@ var slice$1 = createSlice({
|
|
|
2166
2165
|
draft.warningType = (warning == null ? void 0 : warning.type) || warningType;
|
|
2167
2166
|
draft.panelId = panelId;
|
|
2168
2167
|
},
|
|
2169
|
-
// publish warning
|
|
2170
|
-
publishWarning: function publishWarning(draft,
|
|
2171
|
-
// eslint-disable-next-line no-unused-vars
|
|
2172
|
-
action) {
|
|
2173
|
-
draft.formState = 'publishing';
|
|
2174
|
-
delete draft.error;
|
|
2175
|
-
},
|
|
2176
|
-
publishWarningSuccess: function publishWarningSuccess(draft, action) {
|
|
2177
|
-
var publicWarning = action.payload.publicWarning;
|
|
2178
|
-
draft.warning = publicWarning;
|
|
2179
|
-
// If form has been published, set form to readonly
|
|
2180
|
-
draft.formState = 'readonly';
|
|
2181
|
-
},
|
|
2182
|
-
// save warning
|
|
2183
|
-
saveWarning: function saveWarning(draft,
|
|
2184
|
-
// eslint-disable-next-line no-unused-vars
|
|
2185
|
-
action) {
|
|
2186
|
-
draft.formState = 'saving';
|
|
2187
|
-
delete draft.error;
|
|
2188
|
-
draft.warning = action.payload.publicWarning;
|
|
2189
|
-
},
|
|
2190
|
-
saveWarningSuccess: function saveWarningSuccess(draft, action) {
|
|
2191
|
-
var _publicWarning$warnin;
|
|
2192
|
-
var publicWarning = action.payload.publicWarning;
|
|
2193
|
-
draft.warning = publicWarning;
|
|
2194
|
-
if (publicWarning != null && (_publicWarning$warnin = publicWarning.warningDetail) != null && _publicWarning$warnin.id) {
|
|
2195
|
-
draft.selectedWarningId = publicWarning.warningDetail.id;
|
|
2196
|
-
}
|
|
2197
|
-
draft.formState = '';
|
|
2198
|
-
},
|
|
2199
2168
|
setFormError: function setFormError(draft, action) {
|
|
2200
2169
|
var _action$payload3 = action.payload,
|
|
2201
2170
|
message = _action$payload3.message,
|
|
@@ -7438,39 +7407,22 @@ var airmetList$1 = airmetListJSON;
|
|
|
7438
7407
|
var sigmetList$1 = sigmetListJSON;
|
|
7439
7408
|
var fakeSigmetTAC = 'EHAA SIGMET 1 VALID 121249/121449 EHDB- EHAA AMSTERDAM FIR FRQ TS OBS ENTIRE FIR FL010 STNR WKN';
|
|
7440
7409
|
var fakeAirmetTAC = 'EHAA AIRMET -1 VALID 310700/311100 EHDB- EHAA AMSTERDAM FIR ISOL CB OBS ENTIRE FIR FL020 STNR NC';
|
|
7441
|
-
[
|
|
7442
|
-
return
|
|
7443
|
-
}),
|
|
7444
|
-
return
|
|
7445
|
-
}),
|
|
7446
|
-
return
|
|
7447
|
-
}),
|
|
7448
|
-
return
|
|
7449
|
-
}),
|
|
7450
|
-
return
|
|
7451
|
-
}),
|
|
7452
|
-
return
|
|
7453
|
-
}),
|
|
7454
|
-
return
|
|
7410
|
+
[http.get(/^.*\/airmetlist$/, function () {
|
|
7411
|
+
return HttpResponse.json(airmetList$1);
|
|
7412
|
+
}), http.get(/^.*\/sigmetlist$/, function () {
|
|
7413
|
+
return HttpResponse.json(sigmetList$1);
|
|
7414
|
+
}), http.get(/^.*\/airmet-config$/, function () {
|
|
7415
|
+
return HttpResponse.json(airmetConfig);
|
|
7416
|
+
}), http.get(/^.*\/sigmet-config$/, function () {
|
|
7417
|
+
return HttpResponse.json(sigmetConfig);
|
|
7418
|
+
}), http.post(/^.*\/airmet2tac$/, function () {
|
|
7419
|
+
return HttpResponse.text(fakeAirmetTAC);
|
|
7420
|
+
}), http.post(/^.*\/sigmet2tac$/, function () {
|
|
7421
|
+
return HttpResponse.text(fakeSigmetTAC);
|
|
7422
|
+
}), http.get(/^(?!.*(sigmet|airmet)).*$/, function () {
|
|
7423
|
+
return passthrough();
|
|
7455
7424
|
})];
|
|
7456
7425
|
|
|
7457
|
-
/* *
|
|
7458
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7459
|
-
* you may not use this file except in compliance with the License.
|
|
7460
|
-
* You may obtain a copy of the License at
|
|
7461
|
-
*
|
|
7462
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7463
|
-
*
|
|
7464
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
7465
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7466
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7467
|
-
* See the License for the specific language governing permissions and
|
|
7468
|
-
* limitations under the License.
|
|
7469
|
-
*
|
|
7470
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7471
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
7472
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7473
|
-
* */
|
|
7474
7426
|
var drawingList = drawingListJSON;
|
|
7475
7427
|
var drawingsListFullContent = drawingsListFullContentJSON;
|
|
7476
7428
|
var warningList = warningListJSON.map(function (pw) {
|
|
@@ -7481,24 +7433,35 @@ var warningList = warningListJSON.map(function (pw) {
|
|
|
7481
7433
|
warningList.filter(function (warning) {
|
|
7482
7434
|
return warning.status !== 'EXPIRED' && warning.status !== 'WITHDRAWN';
|
|
7483
7435
|
}).length;
|
|
7484
|
-
var sigmetList = sigmetListJSON$1.map(function (
|
|
7485
|
-
return Object.assign({},
|
|
7436
|
+
var sigmetList = sigmetListJSON$1.map(function (sig) {
|
|
7437
|
+
return Object.assign({}, sig, {
|
|
7486
7438
|
type: 'sigmet'
|
|
7487
7439
|
});
|
|
7488
7440
|
});
|
|
7489
|
-
var airmetList = airmetListJSON$1.map(function (
|
|
7490
|
-
return Object.assign({},
|
|
7441
|
+
var airmetList = airmetListJSON$1.map(function (air) {
|
|
7442
|
+
return Object.assign({}, air, {
|
|
7491
7443
|
type: 'airmet'
|
|
7492
7444
|
});
|
|
7493
7445
|
});
|
|
7494
7446
|
concat(warningList, sigmetList, airmetList);
|
|
7495
7447
|
var areaKeywordList = ['North Sea districts', 'Coastal Districts', 'KNMI Specific', 'Objects', 'Baltic areas', 'NL', 'FI', 'METNorway Specific', 'Provinces', 'FIR', 'Countries'];
|
|
7496
|
-
[
|
|
7448
|
+
[http.get(/^.*\/warnings$/, function () {
|
|
7497
7449
|
// respond using a mocked JSON body
|
|
7498
|
-
return
|
|
7499
|
-
}),
|
|
7500
|
-
return
|
|
7501
|
-
|
|
7450
|
+
return HttpResponse.json(warningList);
|
|
7451
|
+
}), http.post(/^.*\/warnings\/(.*)$/, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
7452
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
7453
|
+
while (1) switch (_context.prev = _context.next) {
|
|
7454
|
+
case 0:
|
|
7455
|
+
_context.next = 2;
|
|
7456
|
+
return delay();
|
|
7457
|
+
case 2:
|
|
7458
|
+
return _context.abrupt("return", HttpResponse.json(null));
|
|
7459
|
+
case 3:
|
|
7460
|
+
case "end":
|
|
7461
|
+
return _context.stop();
|
|
7462
|
+
}
|
|
7463
|
+
}, _callee);
|
|
7464
|
+
})))];
|
|
7502
7465
|
|
|
7503
7466
|
/* *
|
|
7504
7467
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -8736,12 +8699,15 @@ var domainLevels = {
|
|
|
8736
8699
|
};
|
|
8737
8700
|
var defaultLevelFilter = (_defaultLevelFilter = {}, _defaultLevelFilter[emptyFilterId] = true, _defaultLevelFilter.extreme = true, _defaultLevelFilter.moderate = true, _defaultLevelFilter.severe = true, _defaultLevelFilter.AIR = true, _defaultLevelFilter.SIG = true, _defaultLevelFilter);
|
|
8738
8701
|
var defaultEmptyFilter = (_defaultEmptyFilter = {}, _defaultEmptyFilter[emptyFilterId] = true, _defaultEmptyFilter);
|
|
8739
|
-
var makeFilterFromList = function makeFilterFromList(options) {
|
|
8702
|
+
var makeFilterFromList = function makeFilterFromList(options, value) {
|
|
8740
8703
|
var _options$reduce;
|
|
8704
|
+
if (value === void 0) {
|
|
8705
|
+
value = true;
|
|
8706
|
+
}
|
|
8741
8707
|
return options.reduce(function (acc, p) {
|
|
8742
8708
|
var _Object$assign;
|
|
8743
|
-
return p ? Object.assign({}, acc, (_Object$assign = {}, _Object$assign[p] =
|
|
8744
|
-
}, (_options$reduce = {}, _options$reduce[emptyFilterId] =
|
|
8709
|
+
return p ? Object.assign({}, acc, (_Object$assign = {}, _Object$assign[p] = value, _Object$assign)) : acc;
|
|
8710
|
+
}, (_options$reduce = {}, _options$reduce[emptyFilterId] = value, _options$reduce));
|
|
8745
8711
|
};
|
|
8746
8712
|
var AllPhenomena = Object.assign({}, AirmetPhenomena, SigmetPhenomena, Phenomenon$1);
|
|
8747
8713
|
var AllPhenomenaKeys = Object.fromEntries(Object.keys(AllPhenomena).map(function (key) {
|
|
@@ -8761,6 +8727,9 @@ var initialFilters = {
|
|
|
8761
8727
|
level: defaultLevelFilter
|
|
8762
8728
|
};
|
|
8763
8729
|
var getSelectedOptions = function getSelectedOptions(options) {
|
|
8730
|
+
if (options === void 0) {
|
|
8731
|
+
options = {};
|
|
8732
|
+
}
|
|
8764
8733
|
var selectedOptions = Object.keys(options).filter(function (k) {
|
|
8765
8734
|
return options[k];
|
|
8766
8735
|
});
|
|
@@ -9317,34 +9286,8 @@ var ValidUntil = function ValidUntil(_ref) {
|
|
|
9317
9286
|
});
|
|
9318
9287
|
};
|
|
9319
9288
|
|
|
9320
|
-
var zoomToFeature = function zoomToFeature(mapId, geojsonFeature) {
|
|
9321
|
-
var webmapjs = getWMJSMapById(mapId);
|
|
9322
|
-
if (!webmapjs || !geojsonFeature) {
|
|
9323
|
-
return;
|
|
9324
|
-
}
|
|
9325
|
-
var bboxGeoJSON = getFeatureExtent(geojsonFeature);
|
|
9326
|
-
var projectedCoordinateBoxBottomLeft = getGeoCoordFromLatLong(webmapjs, {
|
|
9327
|
-
x: bboxGeoJSON.left,
|
|
9328
|
-
y: bboxGeoJSON.bottom
|
|
9329
|
-
});
|
|
9330
|
-
var projectedCoordinateBoxTopRight = getGeoCoordFromLatLong(webmapjs, {
|
|
9331
|
-
x: bboxGeoJSON.right,
|
|
9332
|
-
y: bboxGeoJSON.top
|
|
9333
|
-
});
|
|
9334
|
-
if (projectedCoordinateBoxBottomLeft && projectedCoordinateBoxTopRight) {
|
|
9335
|
-
var transformedExtent = new WMBBOX({
|
|
9336
|
-
left: projectedCoordinateBoxBottomLeft.x,
|
|
9337
|
-
bottom: projectedCoordinateBoxBottomLeft.y,
|
|
9338
|
-
right: projectedCoordinateBoxTopRight.x,
|
|
9339
|
-
top: projectedCoordinateBoxTopRight.y
|
|
9340
|
-
});
|
|
9341
|
-
webmapjs.zoomTo(transformedExtent);
|
|
9342
|
-
webmapjs.zoomOut(2);
|
|
9343
|
-
webmapjs.draw();
|
|
9344
|
-
}
|
|
9345
|
-
};
|
|
9346
9289
|
var WarningsMapView = function WarningsMapView(_ref) {
|
|
9347
|
-
var _defaultMapPreset$lay, _defaultMapPreset$lay2;
|
|
9290
|
+
var _defaultMapPreset$lay, _defaultMapPreset$lay2, _viewRef$current;
|
|
9348
9291
|
var geojsonFeature = _ref.geojsonFeature,
|
|
9349
9292
|
defaultMapPreset = _ref.defaultMapPreset,
|
|
9350
9293
|
_ref$isSnapshot = _ref.isSnapshot,
|
|
@@ -9362,35 +9305,35 @@ var WarningsMapView = function WarningsMapView(_ref) {
|
|
|
9362
9305
|
geojson: geojsonFeature,
|
|
9363
9306
|
layerType: LayerType.featureLayer
|
|
9364
9307
|
};
|
|
9365
|
-
|
|
9366
|
-
|
|
9367
|
-
|
|
9368
|
-
|
|
9308
|
+
var viewRef = useRef(viewUtils.makeView());
|
|
9309
|
+
React.useEffect(function () {
|
|
9310
|
+
if (viewRef.current.getProjection().getCode() !== (defaultBbox == null ? void 0 : defaultBbox.srs)) {
|
|
9311
|
+
viewRef.current = viewUtils.makeView(defaultBbox == null ? void 0 : defaultBbox.srs);
|
|
9312
|
+
}
|
|
9313
|
+
defaultBbox && defaultBbox.bbox ? viewUtils.setViewFromExtent(viewRef.current, defaultBbox == null ? void 0 : defaultBbox.bbox) : viewUtils.setViewFromFeature(viewRef.current, geojsonFeature);
|
|
9314
|
+
}, [defaultBbox, geojsonFeature]);
|
|
9369
9315
|
return jsx("div", {
|
|
9370
9316
|
style: {
|
|
9371
9317
|
height: '200px',
|
|
9372
9318
|
width: '100%'
|
|
9373
9319
|
},
|
|
9374
|
-
children: jsxs(
|
|
9375
|
-
|
|
9376
|
-
srs: defaultBbox == null ? void 0 : defaultBbox.srs,
|
|
9377
|
-
mapId: mapId,
|
|
9378
|
-
showScaleBar: false,
|
|
9379
|
-
onWMJSMount: function onWMJSMount(mapId) {
|
|
9380
|
-
var webmapjs = getWMJSMapById(mapId);
|
|
9381
|
-
if (!webmapjs) {
|
|
9382
|
-
return;
|
|
9383
|
-
}
|
|
9384
|
-
webmapjs.hideMouseCursorProperties();
|
|
9385
|
-
if (!defaultBbox) {
|
|
9386
|
-
// Zoom to the geojson when the map is ready
|
|
9387
|
-
zoomToFeature(mapId, geojsonFeature);
|
|
9388
|
-
}
|
|
9389
|
-
},
|
|
9320
|
+
children: jsxs(OpenLayersMapView, {
|
|
9321
|
+
view: viewRef.current,
|
|
9390
9322
|
holdShiftToScroll: true,
|
|
9391
|
-
children: [
|
|
9323
|
+
children: [jsx(MapControls, {
|
|
9324
|
+
style: {
|
|
9325
|
+
top: 0
|
|
9326
|
+
},
|
|
9327
|
+
children: jsx(OpenLayersZoomControl, {
|
|
9328
|
+
homeExtent: (_viewRef$current = viewRef.current) == null ? void 0 : _viewRef$current.calculateExtent()
|
|
9329
|
+
})
|
|
9330
|
+
}), !isSnapshot && jsx(OpenLayersLayer, Object.assign({}, defaultBaseLayer, {
|
|
9392
9331
|
id: mapId + "_baseLayer"
|
|
9393
|
-
})), warningLayer.geojson && jsx(
|
|
9332
|
+
})), warningLayer.geojson && jsx(OpenLayersFeatureLayer, {
|
|
9333
|
+
featureCollection: warningLayer.geojson,
|
|
9334
|
+
style: genericOpenLayersFeatureStyle,
|
|
9335
|
+
zIndex: 1000
|
|
9336
|
+
}), !isSnapshot && jsx(OpenLayersLayer, Object.assign({}, defaultOverLayer, {
|
|
9394
9337
|
id: mapId + "_overlayer"
|
|
9395
9338
|
}))]
|
|
9396
9339
|
})
|
|
@@ -9800,14 +9743,32 @@ var Form = function Form(_ref5) {
|
|
|
9800
9743
|
var _publicWarningDetails, _publicWarningDetails2;
|
|
9801
9744
|
var defaultMapPreset = _ref5.defaultMapPreset,
|
|
9802
9745
|
_ref5$onSaveForm = _ref5.onSaveForm,
|
|
9803
|
-
onSaveForm = _ref5$onSaveForm === void 0 ? function () {
|
|
9746
|
+
onSaveForm = _ref5$onSaveForm === void 0 ? /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
9747
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
9748
|
+
while (1) switch (_context.prev = _context.next) {
|
|
9749
|
+
case 0:
|
|
9750
|
+
return _context.abrupt("return", null);
|
|
9751
|
+
case 1:
|
|
9752
|
+
case "end":
|
|
9753
|
+
return _context.stop();
|
|
9754
|
+
}
|
|
9755
|
+
}, _callee);
|
|
9756
|
+
})) : _ref5$onSaveForm,
|
|
9804
9757
|
_ref5$onPublishForm = _ref5.onPublishForm,
|
|
9805
|
-
onPublishForm = _ref5$onPublishForm === void 0 ? function () {
|
|
9758
|
+
onPublishForm = _ref5$onPublishForm === void 0 ? /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
9759
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
9760
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
9761
|
+
case 0:
|
|
9762
|
+
return _context2.abrupt("return", null);
|
|
9763
|
+
case 1:
|
|
9764
|
+
case "end":
|
|
9765
|
+
return _context2.stop();
|
|
9766
|
+
}
|
|
9767
|
+
}, _callee2);
|
|
9768
|
+
})) : _ref5$onPublishForm,
|
|
9806
9769
|
_ref5$onClearForm = _ref5.onClearForm,
|
|
9807
9770
|
onClearForm = _ref5$onClearForm === void 0 ? function () {} : _ref5$onClearForm,
|
|
9808
9771
|
object = _ref5.object,
|
|
9809
|
-
_ref5$formAction = _ref5.formAction,
|
|
9810
|
-
formAction = _ref5$formAction === void 0 ? '' : _ref5$formAction,
|
|
9811
9772
|
publicWarningDetails = _ref5.publicWarningDetails,
|
|
9812
9773
|
_ref5$error = _ref5.error,
|
|
9813
9774
|
error = _ref5$error === void 0 ? {
|
|
@@ -9825,14 +9786,25 @@ var Form = function Form(_ref5) {
|
|
|
9825
9786
|
selectedAviationProduct = _ref5.selectedAviationProduct,
|
|
9826
9787
|
_ref5$warningType = _ref5.warningType,
|
|
9827
9788
|
warningType = _ref5$warningType === void 0 ? 'public' : _ref5$warningType,
|
|
9828
|
-
mode = _ref5.mode
|
|
9789
|
+
mode = _ref5.mode,
|
|
9790
|
+
_ref5$onSetViewModeRe = _ref5.onSetViewModeResetArea,
|
|
9791
|
+
onSetViewModeResetArea = _ref5$onSetViewModeRe === void 0 ? function () {} : _ref5$onSetViewModeRe;
|
|
9792
|
+
var _React$useState = React.useState(false),
|
|
9793
|
+
isPublishing = _React$useState[0],
|
|
9794
|
+
setIsPublishing = _React$useState[1];
|
|
9795
|
+
var _React$useState2 = React.useState(false),
|
|
9796
|
+
isSaving = _React$useState2[0],
|
|
9797
|
+
setIsSaving = _React$useState2[1];
|
|
9829
9798
|
var _useTACApi = useTACApi(),
|
|
9830
9799
|
fetchSigmetTAC = _useTACApi.fetchSigmetTAC,
|
|
9831
9800
|
fetchAirmetTAC = _useTACApi.fetchAirmetTAC;
|
|
9832
9801
|
var initialPublicWarningArea = (publicWarningDetails == null || (_publicWarningDetails = publicWarningDetails.areas) == null ? void 0 : _publicWarningDetails.length) && (publicWarningDetails == null || (_publicWarningDetails2 = publicWarningDetails.areas[0]) == null ? void 0 : _publicWarningDetails2.geoJSON);
|
|
9833
|
-
var _React$
|
|
9834
|
-
warningGeoJSONFeature = _React$
|
|
9835
|
-
setWarningGeoJSONFeature = _React$
|
|
9802
|
+
var _React$useState3 = React.useState(initialPublicWarningArea),
|
|
9803
|
+
warningGeoJSONFeature = _React$useState3[0],
|
|
9804
|
+
setWarningGeoJSONFeature = _React$useState3[1];
|
|
9805
|
+
var _React$useState4 = React.useState(publicWarningDetails == null ? void 0 : publicWarningDetails.areas),
|
|
9806
|
+
originalWarningAreas = _React$useState4[0],
|
|
9807
|
+
setOriginalWarningAreas = _React$useState4[1];
|
|
9836
9808
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
9837
9809
|
t = _useWarningsTranslati.t;
|
|
9838
9810
|
var _useFormContext = useFormContext(),
|
|
@@ -9844,8 +9816,6 @@ var Form = function Form(_ref5) {
|
|
|
9844
9816
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
9845
9817
|
toggleIsDraft = _useDraftFormHelpers.toggleIsDraft,
|
|
9846
9818
|
DraftFieldHelper = _useDraftFormHelpers.DraftFieldHelper;
|
|
9847
|
-
var isPublishing = formAction === 'publishing';
|
|
9848
|
-
var isSaving = formAction === 'saving';
|
|
9849
9819
|
var areFieldsDisabled = isPublishing || isSaving;
|
|
9850
9820
|
useFormDirty({
|
|
9851
9821
|
isDirty: Object.keys(dirtyFields).length > 0,
|
|
@@ -9861,19 +9831,23 @@ var Form = function Form(_ref5) {
|
|
|
9861
9831
|
if (!isPublishing) {
|
|
9862
9832
|
toggleIsDraft(false);
|
|
9863
9833
|
void handleSubmit( /*#__PURE__*/function () {
|
|
9864
|
-
var
|
|
9865
|
-
return _regeneratorRuntime().wrap(function
|
|
9866
|
-
while (1) switch (
|
|
9834
|
+
var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(data) {
|
|
9835
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
9836
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
9867
9837
|
case 0:
|
|
9868
|
-
|
|
9869
|
-
|
|
9838
|
+
setIsPublishing(true);
|
|
9839
|
+
_context3.next = 3;
|
|
9840
|
+
return onPublishForm(prepareFormValues(data))["catch"](function () {});
|
|
9841
|
+
case 3:
|
|
9842
|
+
setIsPublishing(false);
|
|
9843
|
+
case 4:
|
|
9870
9844
|
case "end":
|
|
9871
|
-
return
|
|
9845
|
+
return _context3.stop();
|
|
9872
9846
|
}
|
|
9873
|
-
},
|
|
9847
|
+
}, _callee3);
|
|
9874
9848
|
}));
|
|
9875
9849
|
return function (_x) {
|
|
9876
|
-
return
|
|
9850
|
+
return _ref8.apply(this, arguments);
|
|
9877
9851
|
};
|
|
9878
9852
|
}())();
|
|
9879
9853
|
}
|
|
@@ -9882,19 +9856,23 @@ var Form = function Form(_ref5) {
|
|
|
9882
9856
|
if (!isSaving) {
|
|
9883
9857
|
toggleIsDraft(true);
|
|
9884
9858
|
void handleSubmit( /*#__PURE__*/function () {
|
|
9885
|
-
var
|
|
9886
|
-
return _regeneratorRuntime().wrap(function
|
|
9887
|
-
while (1) switch (
|
|
9859
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(data) {
|
|
9860
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
9861
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
9888
9862
|
case 0:
|
|
9889
|
-
|
|
9890
|
-
|
|
9863
|
+
setIsSaving(true);
|
|
9864
|
+
_context4.next = 3;
|
|
9865
|
+
return onSaveForm(prepareFormValues(data))["catch"](function () {});
|
|
9866
|
+
case 3:
|
|
9867
|
+
setIsSaving(false);
|
|
9868
|
+
case 4:
|
|
9891
9869
|
case "end":
|
|
9892
|
-
return
|
|
9870
|
+
return _context4.stop();
|
|
9893
9871
|
}
|
|
9894
|
-
},
|
|
9872
|
+
}, _callee4);
|
|
9895
9873
|
}));
|
|
9896
9874
|
return function (_x2) {
|
|
9897
|
-
return
|
|
9875
|
+
return _ref9.apply(this, arguments);
|
|
9898
9876
|
};
|
|
9899
9877
|
}())();
|
|
9900
9878
|
}
|
|
@@ -9904,6 +9882,7 @@ var Form = function Form(_ref5) {
|
|
|
9904
9882
|
setWarningGeoJSONFeature(undefined);
|
|
9905
9883
|
onClearForm();
|
|
9906
9884
|
};
|
|
9885
|
+
// When switching warning, reset the form to the new values
|
|
9907
9886
|
var publicWarningId = publicWarningDetails == null ? void 0 : publicWarningDetails.id;
|
|
9908
9887
|
React.useEffect(function () {
|
|
9909
9888
|
if (selectedAviationProduct) {
|
|
@@ -9911,8 +9890,27 @@ var Form = function Form(_ref5) {
|
|
|
9911
9890
|
}
|
|
9912
9891
|
// sync redux with react-hook-form
|
|
9913
9892
|
reset(getFormData(publicWarningDetails, object));
|
|
9893
|
+
setOriginalWarningAreas(publicWarningDetails == null ? void 0 : publicWarningDetails.areas);
|
|
9914
9894
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9915
9895
|
}, [publicWarningId]);
|
|
9896
|
+
// When the editor gets set back to viewer and the form is dirty, reset any changes made
|
|
9897
|
+
React.useEffect(function () {
|
|
9898
|
+
if (selectedAviationProduct) {
|
|
9899
|
+
return;
|
|
9900
|
+
}
|
|
9901
|
+
if (isReadOnly && (Object.keys(dirtyFields).length > 0 || (publicWarningDetails == null ? void 0 : publicWarningDetails.areas) !== originalWarningAreas)) {
|
|
9902
|
+
// // sync redux with react-hook-form
|
|
9903
|
+
var oldPublicWarning = Object.assign({}, publicWarningDetails, {
|
|
9904
|
+
areas: originalWarningAreas
|
|
9905
|
+
});
|
|
9906
|
+
reset(getFormData(oldPublicWarning, object));
|
|
9907
|
+
if ((publicWarningDetails == null ? void 0 : publicWarningDetails.areas) !== originalWarningAreas) {
|
|
9908
|
+
// update the store to contain the original area again
|
|
9909
|
+
onSetViewModeResetArea(originalWarningAreas || []);
|
|
9910
|
+
}
|
|
9911
|
+
}
|
|
9912
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9913
|
+
}, [isReadOnly]);
|
|
9916
9914
|
var areas = publicWarningDetails == null ? void 0 : publicWarningDetails.areas;
|
|
9917
9915
|
React.useEffect(function () {
|
|
9918
9916
|
if (selectedAviationProduct) {
|
|
@@ -9920,7 +9918,9 @@ var Form = function Form(_ref5) {
|
|
|
9920
9918
|
}
|
|
9921
9919
|
if (areas) {
|
|
9922
9920
|
// sync redux with react-hook-form
|
|
9923
|
-
setValue('areas', areas
|
|
9921
|
+
setValue('areas', areas, {
|
|
9922
|
+
shouldDirty: true
|
|
9923
|
+
});
|
|
9924
9924
|
}
|
|
9925
9925
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9926
9926
|
}, [areas, setValue]);
|
|
@@ -10213,7 +10213,10 @@ var getPublicWarningStore = function getPublicWarningStore(store) {
|
|
|
10213
10213
|
}
|
|
10214
10214
|
return {};
|
|
10215
10215
|
};
|
|
10216
|
-
var
|
|
10216
|
+
var selectPublicWarningState = createSelector(getPublicWarningStore, function (state) {
|
|
10217
|
+
return state;
|
|
10218
|
+
});
|
|
10219
|
+
createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
10217
10220
|
return publicWarningStore.object;
|
|
10218
10221
|
});
|
|
10219
10222
|
var getPublicWarning = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
@@ -10234,7 +10237,7 @@ var getPublicWarningAreas = createSelector(getPublicWarningStore, function (publ
|
|
|
10234
10237
|
var getPublicWarningFormState = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
10235
10238
|
return (publicWarningStore == null ? void 0 : publicWarningStore.formState) || '';
|
|
10236
10239
|
});
|
|
10237
|
-
|
|
10240
|
+
createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
10238
10241
|
return publicWarningStore == null ? void 0 : publicWarningStore.error;
|
|
10239
10242
|
});
|
|
10240
10243
|
var getSelectedWarningId = createSelector(getPublicWarningStore, function (publicWarningStore) {
|
|
@@ -10275,51 +10278,298 @@ var PublicWarningStatus;
|
|
|
10275
10278
|
PublicWarningStatus["WITHDRAWN"] = "WITHDRAWN";
|
|
10276
10279
|
})(PublicWarningStatus || (PublicWarningStatus = {}));
|
|
10277
10280
|
|
|
10281
|
+
/* *
|
|
10282
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10283
|
+
* you may not use this file except in compliance with the License.
|
|
10284
|
+
* You may obtain a copy of the License at
|
|
10285
|
+
*
|
|
10286
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10287
|
+
*
|
|
10288
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10289
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
10290
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10291
|
+
* See the License for the specific language governing permissions and
|
|
10292
|
+
* limitations under the License.
|
|
10293
|
+
*
|
|
10294
|
+
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
10295
|
+
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
10296
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
10297
|
+
* */
|
|
10298
|
+
var config = getConfig();
|
|
10299
|
+
var publicWarningBaseUrl = config.GW_DRAWINGS_BASE_URL || '';
|
|
10300
|
+
// API
|
|
10301
|
+
var getPublicWarningList = function getPublicWarningList(auth) {
|
|
10302
|
+
return fetch(publicWarningBaseUrl + "/warnings", {
|
|
10303
|
+
headers: getHeaders(auth)
|
|
10304
|
+
}).then(handleResponse).then(function (warnings) {
|
|
10305
|
+
return warnings.map(function (warning) {
|
|
10306
|
+
return Object.assign({}, warning, {
|
|
10307
|
+
type: 'public'
|
|
10308
|
+
});
|
|
10309
|
+
});
|
|
10310
|
+
});
|
|
10311
|
+
};
|
|
10312
|
+
var updatePublicWarningEditor = function updatePublicWarningEditor(warningId, isEditor, auth) {
|
|
10313
|
+
return fetch(publicWarningBaseUrl + "/warnings/" + warningId + "?editor=" + (isEditor ? 'true' : 'false') + "&force=true", {
|
|
10314
|
+
headers: getHeaders(auth),
|
|
10315
|
+
method: 'POST'
|
|
10316
|
+
}).then(handleResponse);
|
|
10317
|
+
};
|
|
10318
|
+
var updatePublicWarning = function updatePublicWarning(warningId, auth, data) {
|
|
10319
|
+
return fetch(publicWarningBaseUrl + "/warnings/" + warningId, {
|
|
10320
|
+
headers: getHeaders(auth),
|
|
10321
|
+
method: 'POST',
|
|
10322
|
+
body: JSON.stringify(data)
|
|
10323
|
+
}).then(handleResponse);
|
|
10324
|
+
};
|
|
10325
|
+
var postPublicWarning = function postPublicWarning(auth, data) {
|
|
10326
|
+
return fetch(publicWarningBaseUrl + "/warnings/", {
|
|
10327
|
+
headers: getHeaders(auth),
|
|
10328
|
+
method: 'POST',
|
|
10329
|
+
body: JSON.stringify(data)
|
|
10330
|
+
}).then(handleResponse);
|
|
10331
|
+
};
|
|
10332
|
+
|
|
10333
|
+
/**
|
|
10334
|
+
* @param disabled - Disables fetching, but still returns cached values.
|
|
10335
|
+
* https://tanstack.com/query/v4/docs/framework/react/guides/disabling-queries
|
|
10336
|
+
*/
|
|
10337
|
+
var usePublicWarnings = function usePublicWarnings(disabled) {
|
|
10338
|
+
if (disabled === void 0) {
|
|
10339
|
+
disabled = false;
|
|
10340
|
+
}
|
|
10341
|
+
return useAuthQuery(['public-warning-list'], getPublicWarningList, disabled, 1000 * 60 * 5);
|
|
10342
|
+
};
|
|
10343
|
+
var useMutatePublicWarningEditor = function useMutatePublicWarningEditor() {
|
|
10344
|
+
var queryClient = useQueryClient();
|
|
10345
|
+
var _useAuthenticationCon = useAuthenticationContext(),
|
|
10346
|
+
auth = _useAuthenticationCon.auth;
|
|
10347
|
+
var dispatch = useDispatch();
|
|
10348
|
+
return useMutation(Object.assign({
|
|
10349
|
+
mutationFn: function mutationFn(_ref) {
|
|
10350
|
+
var id = _ref.id,
|
|
10351
|
+
isEditor = _ref.isEditor;
|
|
10352
|
+
if (!auth) {
|
|
10353
|
+
throw new Error('Authentication context not found');
|
|
10354
|
+
}
|
|
10355
|
+
return updatePublicWarningEditor(id, isEditor, auth);
|
|
10356
|
+
}
|
|
10357
|
+
}, optimisticUpdate(['public-warning-list'], queryClient, function (warning, _ref2) {
|
|
10358
|
+
var isEditor = _ref2.isEditor;
|
|
10359
|
+
return Object.assign({}, warning, {
|
|
10360
|
+
editor: isEditor ? auth.username : undefined
|
|
10361
|
+
});
|
|
10362
|
+
}, function (error) {
|
|
10363
|
+
dispatch(publicWarningFormActions.setFormError({
|
|
10364
|
+
message: error.message
|
|
10365
|
+
}));
|
|
10366
|
+
}), {
|
|
10367
|
+
onSuccess: function () {
|
|
10368
|
+
var _onSuccess = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data, _ref3) {
|
|
10369
|
+
var isEditor;
|
|
10370
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
10371
|
+
while (1) switch (_context.prev = _context.next) {
|
|
10372
|
+
case 0:
|
|
10373
|
+
isEditor = _ref3.isEditor;
|
|
10374
|
+
dispatch(snackbarActions.openSnackbar({
|
|
10375
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
10376
|
+
key: isEditor ? 'warning-editor-add-editor' : 'warning-editor-remove-editor'
|
|
10377
|
+
}));
|
|
10378
|
+
case 2:
|
|
10379
|
+
case "end":
|
|
10380
|
+
return _context.stop();
|
|
10381
|
+
}
|
|
10382
|
+
}, _callee);
|
|
10383
|
+
}));
|
|
10384
|
+
function onSuccess(_x, _x2) {
|
|
10385
|
+
return _onSuccess.apply(this, arguments);
|
|
10386
|
+
}
|
|
10387
|
+
return onSuccess;
|
|
10388
|
+
}()
|
|
10389
|
+
}));
|
|
10390
|
+
};
|
|
10391
|
+
var useMutateWarning = function useMutateWarning(snackBarMessage) {
|
|
10392
|
+
var queryClient = useQueryClient();
|
|
10393
|
+
var _useAuthenticationCon2 = useAuthenticationContext(),
|
|
10394
|
+
auth = _useAuthenticationCon2.auth;
|
|
10395
|
+
var dispatch = useDispatch();
|
|
10396
|
+
return useMutation(Object.assign({
|
|
10397
|
+
mutationFn: function mutationFn(_ref4) {
|
|
10398
|
+
var id = _ref4.id,
|
|
10399
|
+
data = _ref4.data;
|
|
10400
|
+
if (!auth) {
|
|
10401
|
+
throw new Error('Authentication context not found');
|
|
10402
|
+
}
|
|
10403
|
+
if (id) {
|
|
10404
|
+
return updatePublicWarning(id, auth, data);
|
|
10405
|
+
}
|
|
10406
|
+
return postPublicWarning(auth, data);
|
|
10407
|
+
}
|
|
10408
|
+
}, optimisticUpdate(['public-warning-list'], queryClient, function (_, _ref5) {
|
|
10409
|
+
var data = _ref5.data,
|
|
10410
|
+
id = _ref5.id;
|
|
10411
|
+
return Object.assign({}, data, {
|
|
10412
|
+
id: id,
|
|
10413
|
+
lastUpdatedTime: new Date().toISOString()
|
|
10414
|
+
});
|
|
10415
|
+
}, function (error) {
|
|
10416
|
+
dispatch(publicWarningFormActions.setFormError({
|
|
10417
|
+
message: error.message
|
|
10418
|
+
}));
|
|
10419
|
+
}), {
|
|
10420
|
+
onSuccess: function () {
|
|
10421
|
+
var _onSuccess2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data, variables) {
|
|
10422
|
+
var location, _variables$data, warningDetail, status, newId, newWarning;
|
|
10423
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
10424
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
10425
|
+
case 0:
|
|
10426
|
+
location = data == null ? void 0 : data.get('location');
|
|
10427
|
+
_variables$data = variables.data, warningDetail = _variables$data.warningDetail, status = _variables$data.status;
|
|
10428
|
+
if (
|
|
10429
|
+
// DRAFT_PUBLISHED warnings have linked_to_id to the published warning it is based on
|
|
10430
|
+
// When publishing a DRAFT_PUBLISHED warning we need to update the published warning and delete the draft
|
|
10431
|
+
warningDetail.linked_to_id && status === PublicWarningStatus.PUBLISHED) {
|
|
10432
|
+
queryClient.setQueryData(['public-warning-list'], function (old) {
|
|
10433
|
+
return old == null ? void 0 : old.reduce(function (acc, warning) {
|
|
10434
|
+
if (warning.id === warningDetail.linked_to_id) {
|
|
10435
|
+
return acc;
|
|
10436
|
+
}
|
|
10437
|
+
var id = warning.id === warningDetail.id ? warningDetail.linked_to_id : warningDetail.id;
|
|
10438
|
+
return [].concat(acc, [Object.assign({}, warning, {
|
|
10439
|
+
id: id,
|
|
10440
|
+
warningDetail: Object.assign({}, warningDetail, {
|
|
10441
|
+
id: id
|
|
10442
|
+
})
|
|
10443
|
+
})]);
|
|
10444
|
+
}, []);
|
|
10445
|
+
});
|
|
10446
|
+
}
|
|
10447
|
+
if (location) {
|
|
10448
|
+
// When making a new warning we get it's ID from the location header
|
|
10449
|
+
newId = getIdFromUrl(location);
|
|
10450
|
+
newWarning = Object.assign({}, variables.data, {
|
|
10451
|
+
id: newId,
|
|
10452
|
+
lastUpdatedTime: new Date().toISOString(),
|
|
10453
|
+
warningDetail: Object.assign({}, warningDetail, {
|
|
10454
|
+
id: newId,
|
|
10455
|
+
domain: 'public'
|
|
10456
|
+
})
|
|
10457
|
+
});
|
|
10458
|
+
queryClient.setQueryData(['public-warning-list'], function (old) {
|
|
10459
|
+
return [].concat(old || [], [newWarning]);
|
|
10460
|
+
});
|
|
10461
|
+
dispatch(publicWarningFormActions.openPublicWarningFormDialog({
|
|
10462
|
+
warning: newWarning,
|
|
10463
|
+
formState: '',
|
|
10464
|
+
panelId: variables.panelId
|
|
10465
|
+
}));
|
|
10466
|
+
}
|
|
10467
|
+
dispatch(snackbarActions.openSnackbar({
|
|
10468
|
+
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
10469
|
+
key: snackBarMessage
|
|
10470
|
+
}));
|
|
10471
|
+
if (variables.data.status === PublicWarningStatus.PUBLISHED) {
|
|
10472
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
10473
|
+
type: publicWarningDialogType,
|
|
10474
|
+
setOpen: false
|
|
10475
|
+
}));
|
|
10476
|
+
}
|
|
10477
|
+
case 6:
|
|
10478
|
+
case "end":
|
|
10479
|
+
return _context2.stop();
|
|
10480
|
+
}
|
|
10481
|
+
}, _callee2);
|
|
10482
|
+
}));
|
|
10483
|
+
function onSuccess(_x3, _x4) {
|
|
10484
|
+
return _onSuccess2.apply(this, arguments);
|
|
10485
|
+
}
|
|
10486
|
+
return onSuccess;
|
|
10487
|
+
}()
|
|
10488
|
+
}));
|
|
10489
|
+
};
|
|
10490
|
+
var usePublishWarning = function usePublishWarning() {
|
|
10491
|
+
return useMutateWarning('warning-publish-succes');
|
|
10492
|
+
};
|
|
10493
|
+
var useSaveWarning = function useSaveWarning() {
|
|
10494
|
+
return useMutateWarning('warning-save-succes');
|
|
10495
|
+
};
|
|
10496
|
+
|
|
10278
10497
|
var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
10279
10498
|
var editor = _ref.editor,
|
|
10280
10499
|
defaultMapPreset = _ref.defaultMapPreset,
|
|
10281
10500
|
selectedAviationProduct = _ref.selectedAviationProduct,
|
|
10282
10501
|
_ref$warningType = _ref.warningType,
|
|
10283
10502
|
warningType = _ref$warningType === void 0 ? 'public' : _ref$warningType,
|
|
10284
|
-
mode = _ref.mode
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
-
|
|
10503
|
+
mode = _ref.mode;
|
|
10504
|
+
var _useSelector = useSelector(selectPublicWarningState),
|
|
10505
|
+
warning = _useSelector.warning,
|
|
10506
|
+
object = _useSelector.object,
|
|
10507
|
+
formState = _useSelector.formState,
|
|
10508
|
+
error = _useSelector.error,
|
|
10509
|
+
panelId = _useSelector.panelId;
|
|
10510
|
+
var _usePublishWarning = usePublishWarning(),
|
|
10511
|
+
publishWarning = _usePublishWarning.mutateAsync;
|
|
10512
|
+
var _useSaveWarning = useSaveWarning(),
|
|
10513
|
+
saveWarning = _useSaveWarning.mutateAsync;
|
|
10290
10514
|
var _useAuthenticationCon = useAuthenticationContext$1(),
|
|
10291
10515
|
auth = _useAuthenticationCon.auth;
|
|
10292
10516
|
var isEditor = editor === (auth == null ? void 0 : auth.username) || false;
|
|
10293
10517
|
var dispatch = useDispatch();
|
|
10294
|
-
var publishForm = function
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
|
|
10518
|
+
var publishForm = /*#__PURE__*/function () {
|
|
10519
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(newFormValues) {
|
|
10520
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
10521
|
+
while (1) switch (_context.prev = _context.next) {
|
|
10522
|
+
case 0:
|
|
10523
|
+
return _context.abrupt("return", publishWarning({
|
|
10524
|
+
id: newFormValues.id || newFormValues.linked_to_id || '',
|
|
10525
|
+
data: {
|
|
10526
|
+
warningDetail: newFormValues.id ? newFormValues : Object.assign({}, newFormValues, {
|
|
10527
|
+
id: newFormValues.linked_to_id
|
|
10528
|
+
}),
|
|
10529
|
+
status: PublicWarningStatus.PUBLISHED,
|
|
10530
|
+
type: 'public'
|
|
10531
|
+
}
|
|
10532
|
+
}));
|
|
10533
|
+
case 1:
|
|
10534
|
+
case "end":
|
|
10535
|
+
return _context.stop();
|
|
10536
|
+
}
|
|
10537
|
+
}, _callee);
|
|
10538
|
+
}));
|
|
10539
|
+
return function publishForm(_x) {
|
|
10540
|
+
return _ref2.apply(this, arguments);
|
|
10541
|
+
};
|
|
10542
|
+
}();
|
|
10306
10543
|
var clearForm = function clearForm() {
|
|
10307
10544
|
dispatch(publicWarningFormActions.removeAllAreas());
|
|
10308
10545
|
};
|
|
10309
|
-
var saveForm = function
|
|
10310
|
-
var
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10546
|
+
var saveForm = /*#__PURE__*/function () {
|
|
10547
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(newFormValues) {
|
|
10548
|
+
var status;
|
|
10549
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
10550
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
10551
|
+
case 0:
|
|
10552
|
+
status = newFormValues.linked_to_id ? PublicWarningStatus.DRAFT_PUBLISHED : PublicWarningStatus.DRAFT;
|
|
10553
|
+
return _context2.abrupt("return", saveWarning({
|
|
10554
|
+
id: newFormValues.id,
|
|
10555
|
+
data: {
|
|
10556
|
+
warningDetail: newFormValues,
|
|
10557
|
+
status: status,
|
|
10558
|
+
editor: auth == null ? void 0 : auth.username,
|
|
10559
|
+
type: 'public'
|
|
10560
|
+
},
|
|
10561
|
+
panelId: panelId
|
|
10562
|
+
}));
|
|
10563
|
+
case 2:
|
|
10564
|
+
case "end":
|
|
10565
|
+
return _context2.stop();
|
|
10566
|
+
}
|
|
10567
|
+
}, _callee2);
|
|
10568
|
+
}));
|
|
10569
|
+
return function saveForm(_x2) {
|
|
10570
|
+
return _ref3.apply(this, arguments);
|
|
10571
|
+
};
|
|
10572
|
+
}();
|
|
10323
10573
|
var onFormDirty = function onFormDirty(isFormDirty) {
|
|
10324
10574
|
dispatch(publicWarningFormActions.setFormDirty({
|
|
10325
10575
|
isFormDirty: isFormDirty
|
|
@@ -10328,20 +10578,20 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10328
10578
|
var getIsReadOnly = function getIsReadOnly() {
|
|
10329
10579
|
// public warning related
|
|
10330
10580
|
if (warningType === 'public') {
|
|
10331
|
-
if (
|
|
10581
|
+
if (formState === 'readonly') {
|
|
10332
10582
|
return true;
|
|
10333
10583
|
}
|
|
10334
|
-
if ((
|
|
10584
|
+
if ((warning == null ? void 0 : warning.status) === 'TODO') {
|
|
10335
10585
|
return false;
|
|
10336
10586
|
}
|
|
10337
10587
|
// Readonly in case you are not creating a new warning and you are not set as the editor
|
|
10338
|
-
return !isEditor && (
|
|
10588
|
+
return !isEditor && (warning == null ? void 0 : warning.status) !== undefined;
|
|
10339
10589
|
}
|
|
10340
10590
|
// aviation related
|
|
10341
10591
|
if ((selectedAviationProduct == null ? void 0 : selectedAviationProduct.status) === 'DRAFT') {
|
|
10342
10592
|
return false;
|
|
10343
10593
|
}
|
|
10344
|
-
if (
|
|
10594
|
+
if (formState === 'edit') {
|
|
10345
10595
|
return false;
|
|
10346
10596
|
}
|
|
10347
10597
|
if (mode === 'new') {
|
|
@@ -10350,28 +10600,33 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10350
10600
|
return true;
|
|
10351
10601
|
};
|
|
10352
10602
|
var isReadOnly = getIsReadOnly();
|
|
10353
|
-
var formMode =
|
|
10603
|
+
var formMode = formState === 'edit' ? 'edit' : mode;
|
|
10354
10604
|
var onAddObject = function onAddObject() {
|
|
10355
10605
|
dispatch(uiActions.setToggleOpenDialog({
|
|
10356
10606
|
type: uiTypes.DialogTypes.AreaObjectLoader,
|
|
10357
10607
|
setOpen: true
|
|
10358
10608
|
}));
|
|
10359
10609
|
};
|
|
10610
|
+
var onSetViewModeResetArea = function onSetViewModeResetArea(area) {
|
|
10611
|
+
dispatch(publicWarningFormActions.addArea({
|
|
10612
|
+
area: area[0]
|
|
10613
|
+
}));
|
|
10614
|
+
};
|
|
10360
10615
|
return jsx(PublicWarningsForm, {
|
|
10361
|
-
object:
|
|
10362
|
-
publicWarningDetails:
|
|
10616
|
+
object: object,
|
|
10617
|
+
publicWarningDetails: warning == null ? void 0 : warning.warningDetail,
|
|
10363
10618
|
onPublishForm: publishForm,
|
|
10364
10619
|
onSaveForm: saveForm,
|
|
10365
10620
|
onClearForm: clearForm,
|
|
10366
|
-
formAction: publicWarningFormAction,
|
|
10367
10621
|
isReadOnly: isReadOnly,
|
|
10368
|
-
error:
|
|
10622
|
+
error: error,
|
|
10369
10623
|
onFormDirty: onFormDirty,
|
|
10370
10624
|
defaultMapPreset: defaultMapPreset,
|
|
10371
10625
|
onAddObject: onAddObject,
|
|
10372
10626
|
selectedAviationProduct: selectedAviationProduct,
|
|
10373
10627
|
warningType: warningType,
|
|
10374
|
-
mode: formMode
|
|
10628
|
+
mode: formMode,
|
|
10629
|
+
onSetViewModeResetArea: onSetViewModeResetArea
|
|
10375
10630
|
});
|
|
10376
10631
|
};
|
|
10377
10632
|
|
|
@@ -11296,103 +11551,6 @@ var duplicateAviationProduct = function duplicateAviationProduct(aviationWarning
|
|
|
11296
11551
|
});
|
|
11297
11552
|
};
|
|
11298
11553
|
|
|
11299
|
-
/* *
|
|
11300
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11301
|
-
* you may not use this file except in compliance with the License.
|
|
11302
|
-
* You may obtain a copy of the License at
|
|
11303
|
-
*
|
|
11304
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11305
|
-
*
|
|
11306
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11307
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11308
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11309
|
-
* See the License for the specific language governing permissions and
|
|
11310
|
-
* limitations under the License.
|
|
11311
|
-
*
|
|
11312
|
-
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11313
|
-
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
11314
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
11315
|
-
* */
|
|
11316
|
-
var config = getConfig();
|
|
11317
|
-
var publicWarningBaseUrl = config.GW_DRAWINGS_BASE_URL || '';
|
|
11318
|
-
// API
|
|
11319
|
-
var getPublicWarningList = function getPublicWarningList(auth) {
|
|
11320
|
-
return fetch(publicWarningBaseUrl + "/warnings", {
|
|
11321
|
-
headers: getHeaders(auth)
|
|
11322
|
-
}).then(handleResponse).then(function (warnings) {
|
|
11323
|
-
return warnings.map(function (warning) {
|
|
11324
|
-
return Object.assign({}, warning, {
|
|
11325
|
-
type: 'public'
|
|
11326
|
-
});
|
|
11327
|
-
});
|
|
11328
|
-
});
|
|
11329
|
-
};
|
|
11330
|
-
var updatePublicWarningEditor = function updatePublicWarningEditor(warningId, isEditor, auth) {
|
|
11331
|
-
return fetch(publicWarningBaseUrl + "/warnings/" + warningId + "?editor=" + (isEditor ? 'true' : 'false') + "&force=true", {
|
|
11332
|
-
headers: getHeaders(auth),
|
|
11333
|
-
method: 'POST'
|
|
11334
|
-
}).then(handleResponse);
|
|
11335
|
-
};
|
|
11336
|
-
|
|
11337
|
-
/**
|
|
11338
|
-
* @param disabled - Disables fetching, but still returns cached values.
|
|
11339
|
-
* https://tanstack.com/query/v4/docs/framework/react/guides/disabling-queries
|
|
11340
|
-
*/
|
|
11341
|
-
var usePublicWarnings = function usePublicWarnings(disabled) {
|
|
11342
|
-
if (disabled === void 0) {
|
|
11343
|
-
disabled = false;
|
|
11344
|
-
}
|
|
11345
|
-
return useAuthQuery(['public-warning-list'], getPublicWarningList, disabled, 1000 * 60 * 5);
|
|
11346
|
-
};
|
|
11347
|
-
var useMutatePublicWarningEditor = function useMutatePublicWarningEditor() {
|
|
11348
|
-
var queryClient = useQueryClient();
|
|
11349
|
-
var _useAuthenticationCon = useAuthenticationContext(),
|
|
11350
|
-
auth = _useAuthenticationCon.auth;
|
|
11351
|
-
var dispatch = useDispatch();
|
|
11352
|
-
return useMutation(Object.assign({
|
|
11353
|
-
mutationFn: function mutationFn(_ref) {
|
|
11354
|
-
var id = _ref.id,
|
|
11355
|
-
isEditor = _ref.isEditor;
|
|
11356
|
-
if (!auth) {
|
|
11357
|
-
throw new Error('Authentication context not found');
|
|
11358
|
-
}
|
|
11359
|
-
return updatePublicWarningEditor(id, isEditor, auth);
|
|
11360
|
-
}
|
|
11361
|
-
}, optimisticUpdate(['public-warning-list'], queryClient, function (w, _ref2) {
|
|
11362
|
-
var isEditor = _ref2.isEditor;
|
|
11363
|
-
return Object.assign({}, w, {
|
|
11364
|
-
editor: isEditor ? auth.username : undefined
|
|
11365
|
-
});
|
|
11366
|
-
}, function (error) {
|
|
11367
|
-
dispatch(publicWarningFormActions.setFormError({
|
|
11368
|
-
message: error.message
|
|
11369
|
-
}));
|
|
11370
|
-
}), {
|
|
11371
|
-
onSettled: function () {
|
|
11372
|
-
var _onSettled = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data, e, _ref3) {
|
|
11373
|
-
var isEditor;
|
|
11374
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
11375
|
-
while (1) switch (_context.prev = _context.next) {
|
|
11376
|
-
case 0:
|
|
11377
|
-
isEditor = _ref3.isEditor;
|
|
11378
|
-
dispatch(snackbarActions.openSnackbar({
|
|
11379
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
11380
|
-
key: isEditor ? 'warning-editor-add-editor' : 'warning-editor-remove-editor'
|
|
11381
|
-
}));
|
|
11382
|
-
case 2:
|
|
11383
|
-
case "end":
|
|
11384
|
-
return _context.stop();
|
|
11385
|
-
}
|
|
11386
|
-
}, _callee);
|
|
11387
|
-
}));
|
|
11388
|
-
function onSettled(_x, _x2, _x3) {
|
|
11389
|
-
return _onSettled.apply(this, arguments);
|
|
11390
|
-
}
|
|
11391
|
-
return onSettled;
|
|
11392
|
-
}()
|
|
11393
|
-
}));
|
|
11394
|
-
};
|
|
11395
|
-
|
|
11396
11554
|
/* *
|
|
11397
11555
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11398
11556
|
* you may not use this file except in compliance with the License.
|
|
@@ -11602,12 +11760,16 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11602
11760
|
dispatch(publicWarningFormActions.setFormValues({
|
|
11603
11761
|
formState: isReadOnly ? 'readonly' : ''
|
|
11604
11762
|
}));
|
|
11763
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
11764
|
+
type: uiTypes.DialogTypes.AreaObjectLoader,
|
|
11765
|
+
setOpen: false
|
|
11766
|
+
}));
|
|
11605
11767
|
updatePublicWarningEditor.mutate({
|
|
11606
11768
|
id: selectedWarningId,
|
|
11607
11769
|
isEditor: !isReadOnly
|
|
11608
11770
|
});
|
|
11609
11771
|
return _context2.abrupt("return", true);
|
|
11610
|
-
case
|
|
11772
|
+
case 15:
|
|
11611
11773
|
case "end":
|
|
11612
11774
|
return _context2.stop();
|
|
11613
11775
|
}
|
|
@@ -11729,10 +11891,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11729
11891
|
defaultMapPreset: defaultMapPreset,
|
|
11730
11892
|
selectedAviationProduct: selectedAviationProduct,
|
|
11731
11893
|
warningType: updatedWarningType,
|
|
11732
|
-
mode: mode
|
|
11733
|
-
onFormSubmit: function onFormSubmit() {
|
|
11734
|
-
return refetchWarnings();
|
|
11735
|
-
}
|
|
11894
|
+
mode: mode
|
|
11736
11895
|
})
|
|
11737
11896
|
}), jsx(AreaObjectLoaderConnect, {})]
|
|
11738
11897
|
});
|
|
@@ -13174,7 +13333,9 @@ var slice = createSlice({
|
|
|
13174
13333
|
filterState = _action$payload.filterState,
|
|
13175
13334
|
panelId = _action$payload.panelId;
|
|
13176
13335
|
if (panelId) {
|
|
13177
|
-
|
|
13336
|
+
var _current;
|
|
13337
|
+
var currentFilterState = ((_current = current(draft)) == null ? void 0 : _current.filterState[panelId]) || initialFilters;
|
|
13338
|
+
draft.filterState[panelId] = Object.assign({}, currentFilterState, filterState);
|
|
13178
13339
|
}
|
|
13179
13340
|
}
|
|
13180
13341
|
}
|
|
@@ -13254,6 +13415,23 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
13254
13415
|
selectAllPublicWarnings: selectAllPublicWarnings
|
|
13255
13416
|
});
|
|
13256
13417
|
|
|
13418
|
+
/* *
|
|
13419
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13420
|
+
* you may not use this file except in compliance with the License.
|
|
13421
|
+
* You may obtain a copy of the License at
|
|
13422
|
+
*
|
|
13423
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13424
|
+
*
|
|
13425
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13426
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13427
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13428
|
+
* See the License for the specific language governing permissions and
|
|
13429
|
+
* limitations under the License.
|
|
13430
|
+
*
|
|
13431
|
+
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13432
|
+
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
13433
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
13434
|
+
* */
|
|
13257
13435
|
var getLevelsForDomainFilter = function getLevelsForDomainFilter(domainFilter) {
|
|
13258
13436
|
return Object.keys(domainFilter).flatMap(function (domain) {
|
|
13259
13437
|
return domainFilter[domain] ? domainLevels[domain] : [];
|
|
@@ -13264,31 +13442,36 @@ var getPhenomenaForDomainFilter = function getPhenomenaForDomainFilter(domainFil
|
|
|
13264
13442
|
return domainFilter[domain] ? domainPhenomena[domain] : [];
|
|
13265
13443
|
});
|
|
13266
13444
|
};
|
|
13267
|
-
|
|
13268
|
-
|
|
13269
|
-
|
|
13270
|
-
|
|
13271
|
-
|
|
13445
|
+
/** Get filter object
|
|
13446
|
+
* @param savedFilter The savedFilter with all options
|
|
13447
|
+
* @param visibleOptions The options that should be shown
|
|
13448
|
+
* @returns pickedFilterObject - The filter object with only the relevant options
|
|
13449
|
+
* @returns allSelected - A value for whether or not every visible option is selected
|
|
13450
|
+
*/
|
|
13451
|
+
var getFilterOptions = function getFilterOptions(savedFilter, visibleOptions) {
|
|
13452
|
+
var pickedFilterObject = pick(savedFilter, [emptyFilterId].concat(visibleOptions));
|
|
13453
|
+
var _getSelectedOptions = getSelectedOptions(pickedFilterObject),
|
|
13272
13454
|
allSelected = _getSelectedOptions.allSelected;
|
|
13273
|
-
return [
|
|
13455
|
+
return [pickedFilterObject, allSelected];
|
|
13274
13456
|
};
|
|
13275
13457
|
var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, savedFilterState, presetFilterState) {
|
|
13276
|
-
var
|
|
13277
|
-
|
|
13278
|
-
|
|
13279
|
-
|
|
13280
|
-
|
|
13281
|
-
|
|
13458
|
+
var savedDomainFilter = savedFilterState.domain,
|
|
13459
|
+
savedPhenomenonFilter = savedFilterState.phenomenon,
|
|
13460
|
+
savedLevelFilter = savedFilterState.level,
|
|
13461
|
+
savedSourceFilter = savedFilterState.source,
|
|
13462
|
+
savedIncidentFilter = savedFilterState.incident;
|
|
13463
|
+
/** Levels for selected domain(s) */
|
|
13282
13464
|
var relevantLevels = useMemo(function () {
|
|
13283
|
-
return getLevelsForDomainFilter(
|
|
13284
|
-
}, [
|
|
13285
|
-
var _getFilterOptions = getFilterOptions(
|
|
13286
|
-
|
|
13465
|
+
return getLevelsForDomainFilter(savedDomainFilter);
|
|
13466
|
+
}, [savedDomainFilter]);
|
|
13467
|
+
var _getFilterOptions = getFilterOptions(savedLevelFilter, relevantLevels),
|
|
13468
|
+
pickedLevelFilter = _getFilterOptions[0],
|
|
13287
13469
|
allLevelsSelected = _getFilterOptions[1];
|
|
13288
|
-
|
|
13470
|
+
/** Phenomena for selected domain(s) */
|
|
13289
13471
|
var domainPhenomena = useMemo(function () {
|
|
13290
|
-
return getPhenomenaForDomainFilter(
|
|
13291
|
-
}, [
|
|
13472
|
+
return getPhenomenaForDomainFilter(savedDomainFilter);
|
|
13473
|
+
}, [savedDomainFilter]);
|
|
13474
|
+
/** Phenomena in the warnings */
|
|
13292
13475
|
var warningsPhenomena = useMemo(function () {
|
|
13293
13476
|
return getFiltersFromWarnings(warnings, 'phenomenon');
|
|
13294
13477
|
}, [warnings]);
|
|
@@ -13297,9 +13480,8 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
13297
13480
|
return warningsPhenomena.includes(phenomenon);
|
|
13298
13481
|
});
|
|
13299
13482
|
}, [warningsPhenomena, domainPhenomena]);
|
|
13300
|
-
relevantPhenomena
|
|
13301
|
-
|
|
13302
|
-
updatedPickedPhenomena = _getFilterOptions2[0],
|
|
13483
|
+
var _getFilterOptions2 = getFilterOptions(savedPhenomenonFilter, relevantPhenomena),
|
|
13484
|
+
pickedPhenomenaFilter = _getFilterOptions2[0],
|
|
13303
13485
|
allPhenomenaSelected = _getFilterOptions2[1];
|
|
13304
13486
|
// source
|
|
13305
13487
|
var relevantSources = useMemo(function () {
|
|
@@ -13307,46 +13489,54 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
13307
13489
|
}, [warnings]);
|
|
13308
13490
|
var defaultSourceFilter = useMemo(function () {
|
|
13309
13491
|
return Object.fromEntries(relevantSources.map(function (key) {
|
|
13310
|
-
|
|
13492
|
+
var presetValue = presetFilterState == null ? void 0 : presetFilterState.source[key];
|
|
13493
|
+
return [key, presetValue === undefined ? true : presetValue];
|
|
13311
13494
|
}));
|
|
13312
|
-
},
|
|
13313
|
-
|
|
13314
|
-
|
|
13315
|
-
|
|
13316
|
-
|
|
13495
|
+
},
|
|
13496
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13497
|
+
[relevantSources]);
|
|
13498
|
+
var _getSelectedOptions2 = getSelectedOptions(savedSourceFilter),
|
|
13499
|
+
allSourcesSelected = _getSelectedOptions2.allSelected;
|
|
13500
|
+
/** Incidents in the warnings */
|
|
13317
13501
|
var relevantIncidents = useMemo(function () {
|
|
13318
13502
|
return getFiltersFromWarnings(warnings, 'incident');
|
|
13319
13503
|
}, [warnings]);
|
|
13504
|
+
/** FilterObject based on relevant incidents with values from the preset */
|
|
13320
13505
|
var defaultIncidentFilter = useMemo(function () {
|
|
13321
13506
|
return Object.fromEntries(relevantIncidents.map(function (key) {
|
|
13322
|
-
|
|
13507
|
+
var presetValue = presetFilterState == null ? void 0 : presetFilterState.incident[key];
|
|
13508
|
+
return [key, presetValue === undefined ? true : presetValue];
|
|
13323
13509
|
}));
|
|
13324
|
-
}, [relevantIncidents]);
|
|
13325
|
-
var
|
|
13326
|
-
|
|
13327
|
-
|
|
13510
|
+
}, [relevantIncidents, presetFilterState == null ? void 0 : presetFilterState.incident]);
|
|
13511
|
+
var _getSelectedOptions3 = getSelectedOptions(savedIncidentFilter),
|
|
13512
|
+
allIncidentsSelected = _getSelectedOptions3.allSelected;
|
|
13513
|
+
var populatedIncidentAndSourceFilter = useMemo(function () {
|
|
13514
|
+
return {
|
|
13515
|
+
incident: defaultIncidentFilter,
|
|
13516
|
+
source: defaultSourceFilter
|
|
13517
|
+
};
|
|
13518
|
+
}, [defaultIncidentFilter, defaultSourceFilter]);
|
|
13519
|
+
var initialFiltersWithPresets = useMemo(function () {
|
|
13520
|
+
return {
|
|
13521
|
+
incident: defaultIncidentFilter || defaultEmptyFilter,
|
|
13522
|
+
source: defaultSourceFilter || defaultEmptyFilter,
|
|
13523
|
+
domain: Object.assign({}, initialFilters.domain, presetFilterState == null ? void 0 : presetFilterState.domain),
|
|
13524
|
+
phenomenon: Object.assign({}, initialFilters.phenomenon, presetFilterState == null ? void 0 : presetFilterState.phenomenon),
|
|
13525
|
+
level: Object.assign({}, initialFilters.level, presetFilterState == null ? void 0 : presetFilterState.level)
|
|
13526
|
+
};
|
|
13527
|
+
},
|
|
13528
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13529
|
+
[presetFilterState]);
|
|
13530
|
+
useEffect(function () {
|
|
13531
|
+
onUpdateFilters(populatedIncidentAndSourceFilter, true);
|
|
13532
|
+
}, [populatedIncidentAndSourceFilter, onUpdateFilters]);
|
|
13328
13533
|
useEffect(function () {
|
|
13329
13534
|
// when the preset changes, update the filters
|
|
13330
|
-
|
|
13331
|
-
var initialFiltersWithPresets = {
|
|
13332
|
-
incident: Object.assign({}, makeFilterFromList(relevantIncidents), presetFilterState.incident),
|
|
13333
|
-
source: Object.assign({}, makeFilterFromList(relevantSources), presetFilterState.source),
|
|
13334
|
-
domain: Object.assign({}, initialFilters.domain, presetFilterState.domain),
|
|
13335
|
-
phenomenon: Object.assign({}, initialFilters.phenomenon, presetFilterState.phenomenon),
|
|
13336
|
-
level: Object.assign({}, initialFilters.level, presetFilterState.level)
|
|
13337
|
-
};
|
|
13338
|
-
onUpdateFilters(initialFiltersWithPresets, 'system');
|
|
13339
|
-
} else {
|
|
13340
|
-
// for a preset without filters saved use the initial filters
|
|
13341
|
-
onUpdateFilters(Object.assign({}, initialFilters, {
|
|
13342
|
-
incident: makeFilterFromList(relevantIncidents),
|
|
13343
|
-
source: makeFilterFromList(relevantSources)
|
|
13344
|
-
}), 'system');
|
|
13345
|
-
}
|
|
13535
|
+
onUpdateFilters(initialFiltersWithPresets, true);
|
|
13346
13536
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13347
|
-
}, [
|
|
13348
|
-
var
|
|
13349
|
-
allDomainSelected =
|
|
13537
|
+
}, [initialFiltersWithPresets, onUpdateFilters]);
|
|
13538
|
+
var _getSelectedOptions4 = getSelectedOptions(savedDomainFilter),
|
|
13539
|
+
allDomainSelected = _getSelectedOptions4.allSelected;
|
|
13350
13540
|
var allSelected = allDomainSelected && allLevelsSelected && allPhenomenaSelected && allIncidentsSelected && allSourcesSelected;
|
|
13351
13541
|
/**
|
|
13352
13542
|
* @param filterKey - Name of the filter | "ALL" filters
|
|
@@ -13358,44 +13548,40 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
13358
13548
|
var levelFilter = value ? defaultLevelFilter : defaultEmptyFilter;
|
|
13359
13549
|
if (filterKey === 'ALL') {
|
|
13360
13550
|
onUpdateFilters({
|
|
13361
|
-
domain: updateState(
|
|
13551
|
+
domain: updateState(savedDomainFilter, 'ALL', value),
|
|
13362
13552
|
level: updateState(levelFilter, 'ALL', value),
|
|
13363
|
-
phenomenon: updateState(
|
|
13364
|
-
incident: updateState(
|
|
13365
|
-
source: updateState(
|
|
13366
|
-
}
|
|
13553
|
+
phenomenon: updateState(savedPhenomenonFilter, 'ALL', value),
|
|
13554
|
+
incident: updateState(savedIncidentFilter, 'ALL', value),
|
|
13555
|
+
source: updateState(savedSourceFilter, 'ALL', value)
|
|
13556
|
+
});
|
|
13367
13557
|
} else if (filterKey === 'domain') {
|
|
13368
|
-
var newDomain = updateState(
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
onUpdateFilters(Object.assign({}, savedFilterState, {
|
|
13373
|
-
domain: newDomain,
|
|
13374
|
-
level: newLevel // levels depend on selected domains
|
|
13375
|
-
}), 'user');
|
|
13558
|
+
var newDomain = updateState(savedDomainFilter, optionKey, value, only);
|
|
13559
|
+
onUpdateFilters({
|
|
13560
|
+
domain: newDomain
|
|
13561
|
+
});
|
|
13376
13562
|
} else if (filterKey === 'level') {
|
|
13377
|
-
onUpdateFilters(
|
|
13378
|
-
level: updateState(
|
|
13379
|
-
})
|
|
13563
|
+
onUpdateFilters({
|
|
13564
|
+
level: updateState(savedLevelFilter, optionKey, value, only)
|
|
13565
|
+
});
|
|
13380
13566
|
} else if (filterKey === 'phenomenon') {
|
|
13381
|
-
onUpdateFilters(
|
|
13382
|
-
phenomenon: updateState(
|
|
13383
|
-
})
|
|
13567
|
+
onUpdateFilters({
|
|
13568
|
+
phenomenon: updateState(savedPhenomenonFilter, optionKey, value, only)
|
|
13569
|
+
});
|
|
13384
13570
|
} else if (filterKey === 'source') {
|
|
13385
|
-
onUpdateFilters(
|
|
13386
|
-
source: updateState(
|
|
13387
|
-
})
|
|
13571
|
+
onUpdateFilters({
|
|
13572
|
+
source: updateState(savedSourceFilter, optionKey, value, only)
|
|
13573
|
+
});
|
|
13388
13574
|
} else if (filterKey === 'incident') {
|
|
13389
|
-
onUpdateFilters(
|
|
13390
|
-
incident: updateState(
|
|
13391
|
-
})
|
|
13575
|
+
onUpdateFilters({
|
|
13576
|
+
incident: updateState(savedIncidentFilter, optionKey, value, only)
|
|
13577
|
+
});
|
|
13392
13578
|
}
|
|
13393
13579
|
};
|
|
13394
13580
|
var byFilterState = useCallback(function (warning) {
|
|
13395
|
-
var levelDomain = ['SIG', 'AIR'].find(function (
|
|
13396
|
-
return
|
|
13581
|
+
var levelDomain = ['SIG', 'AIR'].find(function (dom) {
|
|
13582
|
+
return dom === warning.warningDetail.level;
|
|
13397
13583
|
}) ? Domain.aviation : Domain["public"];
|
|
13398
|
-
if (!
|
|
13584
|
+
if (!savedDomainFilter[levelDomain]) {
|
|
13399
13585
|
return false;
|
|
13400
13586
|
}
|
|
13401
13587
|
var level = getValue(Level, warning.warningDetail.level);
|
|
@@ -13403,33 +13589,33 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
13403
13589
|
return false;
|
|
13404
13590
|
}
|
|
13405
13591
|
var phenomenon = getValue(AllPhenomenaKeys, warning.warningDetail.phenomenon);
|
|
13406
|
-
if (!
|
|
13592
|
+
if (!pickedPhenomenaFilter[phenomenon]) {
|
|
13407
13593
|
return false;
|
|
13408
13594
|
}
|
|
13409
13595
|
var source = relevantSources.find(function (source) {
|
|
13410
13596
|
return source === warning.warningDetail.warningProposalSource;
|
|
13411
13597
|
}) || emptyFilterId;
|
|
13412
|
-
if (!
|
|
13598
|
+
if (!savedSourceFilter[source]) {
|
|
13413
13599
|
return false;
|
|
13414
13600
|
}
|
|
13415
13601
|
var incident = relevantIncidents.find(function (incident) {
|
|
13416
13602
|
return incident === warning.warningDetail.incident;
|
|
13417
13603
|
}) || emptyFilterId;
|
|
13418
|
-
if (!
|
|
13604
|
+
if (!savedIncidentFilter[incident]) {
|
|
13419
13605
|
return false;
|
|
13420
13606
|
}
|
|
13421
13607
|
return true;
|
|
13422
|
-
}, [
|
|
13608
|
+
}, [savedDomainFilter, pickedLevelFilter, pickedPhenomenaFilter, relevantSources, savedSourceFilter, relevantIncidents, savedIncidentFilter]);
|
|
13423
13609
|
return {
|
|
13424
13610
|
allSelected: allSelected,
|
|
13425
13611
|
updateFilter: updateFilter,
|
|
13426
13612
|
byFilterState: byFilterState,
|
|
13427
13613
|
filterState: {
|
|
13428
|
-
domain:
|
|
13429
|
-
level:
|
|
13430
|
-
phenomenon:
|
|
13431
|
-
incident:
|
|
13432
|
-
source:
|
|
13614
|
+
domain: savedDomainFilter,
|
|
13615
|
+
level: pickedLevelFilter,
|
|
13616
|
+
phenomenon: pickedPhenomenaFilter,
|
|
13617
|
+
incident: savedIncidentFilter,
|
|
13618
|
+
source: savedSourceFilter
|
|
13433
13619
|
}
|
|
13434
13620
|
};
|
|
13435
13621
|
};
|
|
@@ -13747,11 +13933,14 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
13747
13933
|
openSnackbar(snackbarMessage);
|
|
13748
13934
|
refetchWarnings();
|
|
13749
13935
|
};
|
|
13750
|
-
var onUpdateFilters = React__default.useCallback(function (filterState,
|
|
13936
|
+
var onUpdateFilters = React__default.useCallback(function (filterState, systemUpdate) {
|
|
13937
|
+
if (systemUpdate === void 0) {
|
|
13938
|
+
systemUpdate = false;
|
|
13939
|
+
}
|
|
13751
13940
|
dispatch(publicWarningActions.setWarningFilters({
|
|
13752
13941
|
filterState: filterState,
|
|
13753
13942
|
panelId: panelId,
|
|
13754
|
-
|
|
13943
|
+
systemUpdate: systemUpdate
|
|
13755
13944
|
}));
|
|
13756
13945
|
}, [dispatch, panelId]);
|
|
13757
13946
|
var filterHookState = useWarningFilters(combinedWarnings, onUpdateFilters, savedFilterState, presetFilterState);
|
|
@@ -13879,52 +14068,28 @@ var componentsLookUp = function componentsLookUp(payload, apiProps) {
|
|
|
13879
14068
|
}
|
|
13880
14069
|
};
|
|
13881
14070
|
|
|
13882
|
-
var getErrorMessage = function getErrorMessage(error) {
|
|
13883
|
-
return isAxiosError(error) ? getAxiosErrorMessage(error) : error.message;
|
|
13884
|
-
};
|
|
13885
14071
|
var publicWarningFormListener = createListenerMiddleware();
|
|
13886
14072
|
publicWarningFormListener.startListening({
|
|
13887
|
-
actionCreator: publicWarningFormActions.
|
|
14073
|
+
actionCreator: publicWarningFormActions.openPublicWarningFormDialog,
|
|
13888
14074
|
effect: function () {
|
|
13889
14075
|
var _effect = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
|
|
13890
|
-
var payload,
|
|
14076
|
+
var payload, panelId;
|
|
13891
14077
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
13892
14078
|
while (1) switch (_context.prev = _context.next) {
|
|
13893
14079
|
case 0:
|
|
13894
14080
|
payload = _ref.payload;
|
|
13895
14081
|
listenerApi.cancelActiveListeners();
|
|
13896
|
-
|
|
13897
|
-
publicWarning = payload.publicWarning, refetchWarnings = payload.refetchWarnings;
|
|
13898
|
-
_context.next = 6;
|
|
13899
|
-
return saveOrUpdateWarning(publicWarning);
|
|
13900
|
-
case 6:
|
|
13901
|
-
publishedWarning = _context.sent;
|
|
13902
|
-
if (refetchWarnings) {
|
|
13903
|
-
refetchWarnings();
|
|
13904
|
-
}
|
|
13905
|
-
listenerApi.dispatch(publicWarningFormActions.publishWarningSuccess({
|
|
13906
|
-
publicWarning: publishedWarning,
|
|
13907
|
-
message: {
|
|
13908
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
13909
|
-
key: 'warning-publish-succes'
|
|
13910
|
-
}
|
|
13911
|
-
}));
|
|
14082
|
+
panelId = payload.panelId;
|
|
13912
14083
|
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
14084
|
+
setOpen: true,
|
|
13913
14085
|
type: publicWarningDialogType,
|
|
13914
|
-
|
|
14086
|
+
sourcePanelId: panelId
|
|
13915
14087
|
}));
|
|
13916
|
-
|
|
13917
|
-
break;
|
|
13918
|
-
case 12:
|
|
13919
|
-
_context.prev = 12;
|
|
13920
|
-
_context.t0 = _context["catch"](2);
|
|
13921
|
-
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13922
|
-
errorEffect(listenerApi.dispatch, getErrorMessage(_context.t0), isDialogOpen);
|
|
13923
|
-
case 16:
|
|
14088
|
+
case 4:
|
|
13924
14089
|
case "end":
|
|
13925
14090
|
return _context.stop();
|
|
13926
14091
|
}
|
|
13927
|
-
}, _callee
|
|
14092
|
+
}, _callee);
|
|
13928
14093
|
}));
|
|
13929
14094
|
function effect(_x, _x2) {
|
|
13930
14095
|
return _effect.apply(this, arguments);
|
|
@@ -13933,201 +14098,14 @@ publicWarningFormListener.startListening({
|
|
|
13933
14098
|
}()
|
|
13934
14099
|
});
|
|
13935
14100
|
publicWarningFormListener.startListening({
|
|
13936
|
-
actionCreator:
|
|
14101
|
+
actionCreator: uiActions.setToggleOpenDialog,
|
|
13937
14102
|
effect: function () {
|
|
13938
14103
|
var _effect2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
|
|
13939
|
-
var payload
|
|
14104
|
+
var payload;
|
|
13940
14105
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
13941
14106
|
while (1) switch (_context2.prev = _context2.next) {
|
|
13942
14107
|
case 0:
|
|
13943
14108
|
payload = _ref2.payload;
|
|
13944
|
-
listenerApi.cancelActiveListeners();
|
|
13945
|
-
_context2.prev = 2;
|
|
13946
|
-
publicWarning = payload.publicWarning, refetchWarnings = payload.refetchWarnings;
|
|
13947
|
-
_context2.next = 6;
|
|
13948
|
-
return saveOrUpdateWarning(publicWarning);
|
|
13949
|
-
case 6:
|
|
13950
|
-
savedWarning = _context2.sent;
|
|
13951
|
-
if (refetchWarnings) {
|
|
13952
|
-
refetchWarnings();
|
|
13953
|
-
}
|
|
13954
|
-
listenerApi.dispatch(publicWarningFormActions.saveWarningSuccess({
|
|
13955
|
-
publicWarning: savedWarning,
|
|
13956
|
-
message: {
|
|
13957
|
-
type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
|
|
13958
|
-
key: 'warning-save-succes'
|
|
13959
|
-
}
|
|
13960
|
-
}));
|
|
13961
|
-
_context2.next = 15;
|
|
13962
|
-
break;
|
|
13963
|
-
case 11:
|
|
13964
|
-
_context2.prev = 11;
|
|
13965
|
-
_context2.t0 = _context2["catch"](2);
|
|
13966
|
-
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13967
|
-
errorEffect(listenerApi.dispatch, getErrorMessage(_context2.t0), isDialogOpen);
|
|
13968
|
-
case 15:
|
|
13969
|
-
case "end":
|
|
13970
|
-
return _context2.stop();
|
|
13971
|
-
}
|
|
13972
|
-
}, _callee2, null, [[2, 11]]);
|
|
13973
|
-
}));
|
|
13974
|
-
function effect(_x3, _x4) {
|
|
13975
|
-
return _effect2.apply(this, arguments);
|
|
13976
|
-
}
|
|
13977
|
-
return effect;
|
|
13978
|
-
}()
|
|
13979
|
-
});
|
|
13980
|
-
// Side effects/snackbar listeners
|
|
13981
|
-
publicWarningFormListener.startListening({
|
|
13982
|
-
matcher: isAnyOf(publicWarningFormActions.publishWarningSuccess, publicWarningFormActions.saveWarningSuccess),
|
|
13983
|
-
effect: function () {
|
|
13984
|
-
var _effect3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(_ref3, listenerApi) {
|
|
13985
|
-
var payload, message, isDialogOpen;
|
|
13986
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
13987
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
13988
|
-
case 0:
|
|
13989
|
-
payload = _ref3.payload;
|
|
13990
|
-
listenerApi.cancelActiveListeners();
|
|
13991
|
-
message = payload.message;
|
|
13992
|
-
listenerApi.dispatch(snackbarActions.openSnackbar(message));
|
|
13993
|
-
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
13994
|
-
toggleDialogLoadingEffect(listenerApi.dispatch, isDialogOpen, false);
|
|
13995
|
-
case 6:
|
|
13996
|
-
case "end":
|
|
13997
|
-
return _context3.stop();
|
|
13998
|
-
}
|
|
13999
|
-
}, _callee3);
|
|
14000
|
-
}));
|
|
14001
|
-
function effect(_x5, _x6) {
|
|
14002
|
-
return _effect3.apply(this, arguments);
|
|
14003
|
-
}
|
|
14004
|
-
return effect;
|
|
14005
|
-
}()
|
|
14006
|
-
});
|
|
14007
|
-
publicWarningFormListener.startListening({
|
|
14008
|
-
matcher: isAnyOf(publicWarningFormActions.publishWarning, publicWarningFormActions.saveWarning),
|
|
14009
|
-
effect: function () {
|
|
14010
|
-
var _effect4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(_, listenerApi) {
|
|
14011
|
-
var isDialogOpen;
|
|
14012
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
14013
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
14014
|
-
case 0:
|
|
14015
|
-
listenerApi.cancelActiveListeners();
|
|
14016
|
-
isDialogOpen = uiSelectors.getisDialogOpen(listenerApi.getState(), publicWarningDialogType);
|
|
14017
|
-
toggleDialogLoadingEffect(listenerApi.dispatch, isDialogOpen, true);
|
|
14018
|
-
case 3:
|
|
14019
|
-
case "end":
|
|
14020
|
-
return _context4.stop();
|
|
14021
|
-
}
|
|
14022
|
-
}, _callee4);
|
|
14023
|
-
}));
|
|
14024
|
-
function effect(_x7, _x8) {
|
|
14025
|
-
return _effect4.apply(this, arguments);
|
|
14026
|
-
}
|
|
14027
|
-
return effect;
|
|
14028
|
-
}()
|
|
14029
|
-
});
|
|
14030
|
-
publicWarningFormListener.startListening({
|
|
14031
|
-
actionCreator: publicWarningFormActions.openPublicWarningFormDialog,
|
|
14032
|
-
effect: function () {
|
|
14033
|
-
var _effect5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(_ref4, listenerApi) {
|
|
14034
|
-
var payload, panelId;
|
|
14035
|
-
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
14036
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
14037
|
-
case 0:
|
|
14038
|
-
payload = _ref4.payload;
|
|
14039
|
-
listenerApi.cancelActiveListeners();
|
|
14040
|
-
panelId = payload.panelId;
|
|
14041
|
-
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
14042
|
-
setOpen: true,
|
|
14043
|
-
type: publicWarningDialogType,
|
|
14044
|
-
sourcePanelId: panelId
|
|
14045
|
-
}));
|
|
14046
|
-
case 4:
|
|
14047
|
-
case "end":
|
|
14048
|
-
return _context5.stop();
|
|
14049
|
-
}
|
|
14050
|
-
}, _callee5);
|
|
14051
|
-
}));
|
|
14052
|
-
function effect(_x9, _x10) {
|
|
14053
|
-
return _effect5.apply(this, arguments);
|
|
14054
|
-
}
|
|
14055
|
-
return effect;
|
|
14056
|
-
}()
|
|
14057
|
-
});
|
|
14058
|
-
var saveOrUpdateWarning = /*#__PURE__*/function () {
|
|
14059
|
-
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(publicWarning) {
|
|
14060
|
-
var warningsApi, warningDetail, status, warning, newWarningId;
|
|
14061
|
-
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
14062
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
14063
|
-
case 0:
|
|
14064
|
-
warningsApi = getWarningsApi();
|
|
14065
|
-
warningDetail = publicWarning.warningDetail, status = publicWarning.status;
|
|
14066
|
-
if (!warningDetail.id) {
|
|
14067
|
-
_context6.next = 6;
|
|
14068
|
-
break;
|
|
14069
|
-
}
|
|
14070
|
-
_context6.next = 5;
|
|
14071
|
-
return warningsApi.updateWarning(warningDetail.id, publicWarning);
|
|
14072
|
-
case 5:
|
|
14073
|
-
return _context6.abrupt("return", publicWarning);
|
|
14074
|
-
case 6:
|
|
14075
|
-
if (!(status === 'PUBLISHED' && warningDetail.linked_to_id)) {
|
|
14076
|
-
_context6.next = 11;
|
|
14077
|
-
break;
|
|
14078
|
-
}
|
|
14079
|
-
warning = Object.assign({}, publicWarning, {
|
|
14080
|
-
warningDetail: Object.assign({}, warningDetail, {
|
|
14081
|
-
id: warningDetail.linked_to_id
|
|
14082
|
-
})
|
|
14083
|
-
});
|
|
14084
|
-
_context6.next = 10;
|
|
14085
|
-
return warningsApi.updateWarning(warningDetail.linked_to_id, warning);
|
|
14086
|
-
case 10:
|
|
14087
|
-
return _context6.abrupt("return", warning);
|
|
14088
|
-
case 11:
|
|
14089
|
-
_context6.next = 13;
|
|
14090
|
-
return warningsApi.saveWarningAs(publicWarning);
|
|
14091
|
-
case 13:
|
|
14092
|
-
newWarningId = _context6.sent;
|
|
14093
|
-
return _context6.abrupt("return", Object.assign({}, publicWarning, {
|
|
14094
|
-
warningDetail: Object.assign({}, warningDetail, {
|
|
14095
|
-
id: newWarningId
|
|
14096
|
-
})
|
|
14097
|
-
}));
|
|
14098
|
-
case 15:
|
|
14099
|
-
case "end":
|
|
14100
|
-
return _context6.stop();
|
|
14101
|
-
}
|
|
14102
|
-
}, _callee6);
|
|
14103
|
-
}));
|
|
14104
|
-
return function saveOrUpdateWarning(_x11) {
|
|
14105
|
-
return _ref5.apply(this, arguments);
|
|
14106
|
-
};
|
|
14107
|
-
}();
|
|
14108
|
-
var toggleDialogLoadingEffect = function toggleDialogLoadingEffect(dispatch, isDialogOpen, isLoading) {
|
|
14109
|
-
if (isDialogOpen) {
|
|
14110
|
-
dispatch(uiActions.toggleIsLoadingDialog({
|
|
14111
|
-
isLoading: isLoading,
|
|
14112
|
-
type: publicWarningDialogType
|
|
14113
|
-
}));
|
|
14114
|
-
}
|
|
14115
|
-
};
|
|
14116
|
-
var errorEffect = function errorEffect(dispatch, message, isDialogOpen) {
|
|
14117
|
-
dispatch(publicWarningFormActions.setFormError({
|
|
14118
|
-
message: message
|
|
14119
|
-
}));
|
|
14120
|
-
toggleDialogLoadingEffect(dispatch, isDialogOpen, false);
|
|
14121
|
-
};
|
|
14122
|
-
publicWarningFormListener.startListening({
|
|
14123
|
-
actionCreator: uiActions.setToggleOpenDialog,
|
|
14124
|
-
effect: function () {
|
|
14125
|
-
var _effect6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(_ref6, listenerApi) {
|
|
14126
|
-
var payload;
|
|
14127
|
-
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
14128
|
-
while (1) switch (_context7.prev = _context7.next) {
|
|
14129
|
-
case 0:
|
|
14130
|
-
payload = _ref6.payload;
|
|
14131
14109
|
if (!payload.setOpen && payload.type === publicWarningDialogType) {
|
|
14132
14110
|
listenerApi.dispatch(uiActions.setToggleOpenDialog({
|
|
14133
14111
|
setOpen: false,
|
|
@@ -14136,12 +14114,12 @@ publicWarningFormListener.startListening({
|
|
|
14136
14114
|
}
|
|
14137
14115
|
case 2:
|
|
14138
14116
|
case "end":
|
|
14139
|
-
return
|
|
14117
|
+
return _context2.stop();
|
|
14140
14118
|
}
|
|
14141
|
-
},
|
|
14119
|
+
}, _callee2);
|
|
14142
14120
|
}));
|
|
14143
|
-
function effect(
|
|
14144
|
-
return
|
|
14121
|
+
function effect(_x3, _x4) {
|
|
14122
|
+
return _effect2.apply(this, arguments);
|
|
14145
14123
|
}
|
|
14146
14124
|
return effect;
|
|
14147
14125
|
}()
|
|
@@ -14215,7 +14193,7 @@ warningsDrawingsListener.startListening({
|
|
|
14215
14193
|
isLoading: false,
|
|
14216
14194
|
type: drawingDialogType
|
|
14217
14195
|
}));
|
|
14218
|
-
errorMessage = isAxiosError
|
|
14196
|
+
errorMessage = isAxiosError(taskError) ? getAxiosErrorMessage(taskError) : taskError.message;
|
|
14219
14197
|
listenerApi.dispatch(uiActions.setErrorDialog({
|
|
14220
14198
|
type: drawingDialogType,
|
|
14221
14199
|
error: errorMessage
|