@opengeoweb/warnings 15.1.0 → 15.3.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 +1400 -592
- package/package.json +13 -14
- package/src/index.d.ts +2 -1
- package/src/lib/api/api-utils.d.ts +1 -1
- package/src/lib/api/aviation-api/hooks.d.ts +1 -1
- package/src/lib/api/warning-api/api.d.ts +1 -1
- package/src/lib/api/warning-api/hooks.d.ts +1 -1
- 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 +1 -1
- package/src/lib/components/FilterList/filter-utils.d.ts +1 -1
- package/src/lib/components/MaritimeWarningsForm/utils.d.ts +1 -1
- package/src/lib/components/PublicWarningList/NewWarningButton/NewWarningButton.d.ts +1 -1
- package/src/lib/components/PublicWarningList/PublicWarningList.d.ts +1 -1
- package/src/lib/components/PublicWarningList/WarningListColumnContent.d.ts +1 -1
- package/src/lib/components/PublicWarningList/WarningListItem.d.ts +1 -1
- package/src/lib/components/PublicWarningList/WarningListItemMenu.d.ts +2 -2
- package/src/lib/components/PublicWarningList/WarningListItemSeperator.d.ts +1 -1
- package/src/lib/components/PublicWarningsForm/LevelField/LevelField.d.ts +1 -1
- package/src/lib/components/PublicWarningsForm/PhenomenonField/PhenomenonField.d.ts +1 -1
- package/src/lib/components/PublicWarningsForm/PublicWarningsForm.d.ts +2 -2
- package/src/lib/components/PublicWarningsForm/PublicWarningsFormConnect.d.ts +1 -1
- package/src/lib/components/PublicWarningsFormDialog/AviationWarningCancelDialogContent.d.ts +1 -1
- package/src/lib/components/PublicWarningsFormDialog/PublicWarningsFormDialog.d.ts +1 -1
- package/src/lib/components/WarningsMapView/WarningsMapView.d.ts +1 -0
- package/src/lib/components/WarningsTimeline/WarningBlock.d.ts +10 -0
- package/src/lib/components/WarningsTimeline/WarningsTimeline.d.ts +6 -0
- package/src/lib/components/WarningsTimeline/WarningsTimeline.stories.d.ts +12 -0
- package/src/lib/components/WarningsTimeline/WarningsTimelineConnect.d.ts +5 -0
- package/src/lib/components/WarningsTimeline/index.d.ts +4 -0
- package/src/lib/components/WarningsTimeline/warningBlockColors.d.ts +16 -0
- package/src/lib/components/WarningsTimeline/warningsTimelineUtils.d.ts +15 -0
- package/src/lib/components/WarningsTimeline/warningsTimelineUtils.spec.d.ts +1 -0
- package/src/lib/store/index.d.ts +2 -2
- package/src/lib/store/store.d.ts +2 -2
- package/src/lib/store/types.d.ts +4 -4
- package/src/lib/store/warningsFilters/index.d.ts +1 -0
- package/src/lib/store/warningsFilters/reducer.d.ts +11 -0
- package/src/lib/store/warningsFilters/selectors.d.ts +62 -0
- package/src/lib/store/warningsFilters/selectors.spec.d.ts +1 -0
- package/src/lib/store/warningsFilters/types.d.ts +7 -0
- package/src/lib/store/warningsForm/index.d.ts +2 -0
- package/src/lib/store/warningsForm/listener.d.ts +2 -0
- package/src/lib/store/{publicWarningForm → warningsForm}/reducer.d.ts +2 -2
- package/src/lib/store/warningsForm/reducer.spec.d.ts +1 -0
- package/src/lib/store/{publicWarningForm → warningsForm}/selectors.d.ts +1 -43
- package/src/lib/store/warningsForm/selectors.spec.d.ts +1 -0
- package/src/lib/storybookUtils/testUtils.d.ts +1 -1
- package/src/lib/utils/fakeApi/index.d.ts +1 -1
- package/src/lib/utils/sig-airmet-util.d.ts +2 -2
- package/src/lib/utils/warningUtils.d.ts +2 -2
- package/src/lib/store/publicWarningForm/index.d.ts +0 -2
- package/src/lib/store/publicWarningForm/listener.d.ts +0 -2
- package/src/lib/store/publicWarnings/index.d.ts +0 -2
- package/src/lib/store/publicWarnings/listener.d.ts +0 -3
- package/src/lib/store/publicWarnings/reducer.d.ts +0 -13
- package/src/lib/store/publicWarnings/selectors.d.ts +0 -166
- package/src/lib/store/publicWarnings/types.d.ts +0 -19
- /package/src/lib/{store/publicWarningForm/reducer.spec.d.ts → api/api-utils.spec.d.ts} +0 -0
- /package/src/lib/{store/publicWarningForm/selectors.spec.d.ts → components/WarningsTimeline/WarningsTimeline.spec.d.ts} +0 -0
- /package/src/lib/{store/publicWarnings/listener.spec.d.ts → components/WarningsTimeline/WarningsTimelineConnect.spec.d.ts} +0 -0
- /package/src/lib/{store/publicWarnings/selectors.spec.d.ts → components/WarningsTimeline/warningBlockColors.spec.d.ts} +0 -0
- /package/src/lib/store/{publicWarningForm → warningsForm}/types.d.ts +0 -0
- /package/src/lib/store/{publicWarningForm → warningsForm}/utils.d.ts +0 -0
package/index.esm.js
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useDispatch, useSelector } from 'react-redux';
|
|
3
|
-
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawingToolSelectors, layerSelectors, uiSelectors,
|
|
3
|
+
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawingToolSelectors, layerSelectors, uiSelectors, layerActions, drawingToolActions, mapListener, layersListener, drawingToolListener, syncGroupsListener, openlayersListener, syncGroupsReducer, drawingToolReducer, uiReducer, layerReducer, mapReducer, useSetupDialog, genericSelectors, useUpdateSharedData, genericActions, selectorMemoizationOptions } from '@opengeoweb/store';
|
|
4
4
|
import { Polygons, CoastalEvent, TemperatureLow, TemperatureHigh, Rain, Snow, Lightning, Fog, Wind, Thunderstorm, SevereMountainWaves, VulcanicEruption, Haze, FreezingPrecipitation, ModerateAircraftIcing, SevereAircraftIcing, ModerateTurbulence, SevereTurbulence, SandStorm, RadioactiveMaterials, ExitDomain, Share, Edit, Delete, DrawPolygon, Visibility, Add, breakpoints, DragHandle, Info, ArrowUpCompact, ArrowDownCompact, Copy, Update, Cancel, Success, Expire, Remove, Options, ChevronDown, ChevronUp, Close, Clock } from '@opengeoweb/theme';
|
|
5
|
-
import { WEBMAP_REACT_NAMESPACE, defaultPolygon,
|
|
5
|
+
import { WEBMAP_REACT_NAMESPACE, defaultPolygon, emptyGeoJSON, MapControlButton, defaultSmoothLine, defaultLineString, defaultFreehandLine, defaultOval, defaultCircle, defaultRotatableBox, defaultSquare, defaultLocation, defaultPoint, defaultDelete, getDrawModeIdFromSelectionType, getIcon, rewindGeometry, getGeoJSONPropertyValue, currentlySupportedDrawModes, defaultLayers, viewUtils, OpenLayersMapView, MapControls, OpenLayersZoomControl, OpenLayersLayer, OpenLayersFeatureLayer, genericOpenLayersFeatureStyle, DEFAULT_GEOJSON_STYLE_FILL_OPACITY, FEATURE_DRAW_FILL_COLOR, FEATURE_DRAW_SECONDARY_FILL_COLOR, FEATURE_DRAW_STROKE_COLOR } from '@opengeoweb/webmap-react';
|
|
6
6
|
import { SHARED_NAMESPACE, useConfirmationDialog, sessionStorageProvider, dateUtils, ConfirmationDialog, AlertBanner, ToggleMenu, calculateStartSize, ToolContainerDraggable, CustomIconButton, usePrevious, usePreventBrowserClose, CustomTooltip, Avatar, getInitials, SwitchButton, Filter, CustomToggleButton, FilterChip, TooltipSelect, LastUpdateTime, StatusTag, FilterOption, getAxiosErrorMessage, CustomDialog, ConfirmationButtons, ErrorBoundary } from '@opengeoweb/shared';
|
|
7
7
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, current, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
8
8
|
import { t } from 'i18next';
|
|
9
9
|
import { useTranslation } from 'react-i18next';
|
|
10
10
|
import { defaultBbox } from '@opengeoweb/core';
|
|
11
|
-
import { FORM_FIELDS_NAMESPACE, useDraftFormHelpers, ReactHookFormSelect, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions, errorMessages, isEmpty, ReactHookFormDateTime, isXHoursAfter, isXHoursBefore } from '@opengeoweb/form-fields';
|
|
11
|
+
import { FORM_FIELDS_NAMESPACE, useDraftFormHelpers, ReactHookFormSelect, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions, errorMessages, isEmpty as isEmpty$1, ReactHookFormDateTime, isXHoursAfter, isXHoursBefore } from '@opengeoweb/form-fields';
|
|
12
12
|
import { SA_NAMESPACE, isInstanceOfCancelSigmet, getDefaultValidFromValue, isInstanceOfCancelAirmet, getDefaultValidUntilValue, useShortTestHelpers, ProductAction, SigmetForm, AirmetForm, isVAPhenomenon, getConfirmationDialogCancelLabel, getConfirmationDialogButtonLabel, getConfirmationDialogContent, getConfirmationDialogTitle, CancelSigmetVolcanicMovements, createAirmetPostParameter, createSigmetPostParameter, prepareCancelSigmet, getProductFormMode, findSequenceNumber, getSequenceStyling } from '@opengeoweb/sigmet-airmet';
|
|
13
13
|
import { LayerType, generateMapId } from '@opengeoweb/webmap';
|
|
14
|
-
import React, { useState, useEffect, useMemo,
|
|
14
|
+
import React, { useRef, useState, useEffect, useMemo, useCallback } from 'react';
|
|
15
15
|
import { useAuthenticationContext as useAuthenticationContext$1 } from '@opengeoweb/authentication';
|
|
16
|
-
import { MenuItem, Grid, Box, Typography, styled, ListItem, Paper, ListItemButton, Stack, LinearProgress, Button, FormHelperText, Card, CardContent, Tabs, Tab, useTheme, FormControl, CircularProgress, Menu, ListItemText, DialogTitle, DialogContent, Switch, RadioGroup, FormControlLabel, Radio, InputAdornment, Collapse } from '@mui/material';
|
|
16
|
+
import { MenuItem, Grid, Box, Typography, styled, ListItem, Paper, ListItemButton, Stack, LinearProgress, Button, FormHelperText, Card, CardContent, Tabs, Tab, useTheme, FormControl, CircularProgress, Menu, ListItemText, DialogTitle, DialogContent, Switch, RadioGroup, FormControlLabel, Radio, InputAdornment, Collapse, Tooltip } from '@mui/material';
|
|
17
17
|
import { useQueryClient, useMutation, queryOptions, QueryClient, useQuery } from '@tanstack/react-query';
|
|
18
18
|
import { getHeaders, handleResponse, AirmetPhenomena, SigmetPhenomena, useAuthQuery, useAuthenticationContext, optimisticUpdate, ProductStatus } from '@opengeoweb/api';
|
|
19
19
|
import { snackbarListener, snackbarReducer, snackbarActions, snackbarTypes } from '@opengeoweb/snackbar';
|
|
20
|
-
import
|
|
21
|
-
import { VariableSizeList } from 'react-window';
|
|
20
|
+
import { List, useListRef } from 'react-window';
|
|
22
21
|
import { isEqual, cloneDeep, clamp, concat, groupBy, pick } from 'lodash';
|
|
23
22
|
import { useFormContext, useForm, FormProvider } from 'react-hook-form';
|
|
23
|
+
import { isEmpty, createEmpty, extend } from 'ol/extent';
|
|
24
|
+
import GeoJSON from 'ol/format/GeoJSON';
|
|
24
25
|
import { ReactSortable } from 'react-sortablejs';
|
|
25
26
|
import { LocalizationProvider } from '@mui/x-date-pickers';
|
|
26
27
|
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
|
|
27
28
|
import { DateTimePicker } from '@mui/x-date-pickers/DateTimePicker';
|
|
29
|
+
import Box$1 from '@mui/material/Box';
|
|
30
|
+
import Tooltip$1 from '@mui/material/Tooltip';
|
|
28
31
|
|
|
29
32
|
var en = {
|
|
30
33
|
"drawing-tool-form-tools": "Tools",
|
|
@@ -85,6 +88,11 @@ var en = {
|
|
|
85
88
|
"warning-level-moderate": "Moderate",
|
|
86
89
|
"warning-level-severe": "Severe",
|
|
87
90
|
"warning-level-extreme": "Extreme",
|
|
91
|
+
"warning-level-letter-moderate": "M",
|
|
92
|
+
"warning-level-letter-severe": "S",
|
|
93
|
+
"warning-level-letter-extreme": "E",
|
|
94
|
+
"warning-level-letter-SIG": "SIG",
|
|
95
|
+
"warning-level-letter-AIR": "AIR",
|
|
88
96
|
"warning-level-SIG": "Sigmet",
|
|
89
97
|
"warning-level-AIR": "Airmet",
|
|
90
98
|
"warning-phenomenon": "Phenomenon",
|
|
@@ -348,6 +356,11 @@ var nl = {
|
|
|
348
356
|
"warning-level-moderate": "Gematigd",
|
|
349
357
|
"warning-level-severe": "Ernstig",
|
|
350
358
|
"warning-level-extreme": "Extreem",
|
|
359
|
+
"warning-level-letter-moderate": "G",
|
|
360
|
+
"warning-level-letter-severe": "E",
|
|
361
|
+
"warning-level-letter-extreme": "X",
|
|
362
|
+
"warning-level-letter-SIG": "SIG",
|
|
363
|
+
"warning-level-letter-AIR": "AIR",
|
|
351
364
|
"warning-phenomenon": "Fenomeen",
|
|
352
365
|
"warning-phenomenon-wind": "Windstoten",
|
|
353
366
|
"warning-phenomenon-fog": "Dichte mist",
|
|
@@ -568,6 +581,11 @@ var fi = {
|
|
|
568
581
|
"warning-level-moderate": "Kohtalainen",
|
|
569
582
|
"warning-level-severe": "Vakava",
|
|
570
583
|
"warning-level-extreme": "Äärimmäinen",
|
|
584
|
+
"warning-level-letter-moderate": "K",
|
|
585
|
+
"warning-level-letter-severe": "V",
|
|
586
|
+
"warning-level-letter-extreme": "Ä",
|
|
587
|
+
"warning-level-letter-SIG": "SIG",
|
|
588
|
+
"warning-level-letter-AIR": "AIR",
|
|
571
589
|
"warning-phenomenon": "Sääilmiö",
|
|
572
590
|
"warning-phenomenon-wind": "Tuuli",
|
|
573
591
|
"warning-phenomenon-fog": "Sumu",
|
|
@@ -740,6 +758,11 @@ var no = {
|
|
|
740
758
|
"warning-level-moderate": "Moderat",
|
|
741
759
|
"warning-level-severe": "Stor",
|
|
742
760
|
"warning-level-extreme": "Ekstrem",
|
|
761
|
+
"warning-level-letter-moderate": "M",
|
|
762
|
+
"warning-level-letter-severe": "S",
|
|
763
|
+
"warning-level-letter-extreme": "E",
|
|
764
|
+
"warning-level-letter-SIG": "SIG",
|
|
765
|
+
"warning-level-letter-AIR": "AIR",
|
|
743
766
|
"warning-phenomenon": "Fenomen",
|
|
744
767
|
"warning-phenomenon-wind": "Vind",
|
|
745
768
|
"warning-phenomenon-fog": "Tåke",
|
|
@@ -884,6 +907,11 @@ var areaObjectLoaderType = uiTypes.DialogTypes.AreaObjectLoader;
|
|
|
884
907
|
function _OverloadYield(e, d) {
|
|
885
908
|
this.v = e, this.k = d;
|
|
886
909
|
}
|
|
910
|
+
function _arrayLikeToArray(r, a) {
|
|
911
|
+
(null == a || a > r.length) && (a = r.length);
|
|
912
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
913
|
+
return n;
|
|
914
|
+
}
|
|
887
915
|
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
888
916
|
try {
|
|
889
917
|
var i = n[a](c),
|
|
@@ -909,6 +937,23 @@ function _asyncToGenerator(n) {
|
|
|
909
937
|
});
|
|
910
938
|
};
|
|
911
939
|
}
|
|
940
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
941
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
942
|
+
if (t) return (t = t.call(r)).next.bind(t);
|
|
943
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
|
|
944
|
+
t && (r = t);
|
|
945
|
+
var o = 0;
|
|
946
|
+
return function () {
|
|
947
|
+
return o >= r.length ? {
|
|
948
|
+
done: true
|
|
949
|
+
} : {
|
|
950
|
+
done: false,
|
|
951
|
+
value: r[o++]
|
|
952
|
+
};
|
|
953
|
+
};
|
|
954
|
+
}
|
|
955
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
956
|
+
}
|
|
912
957
|
function _objectWithoutPropertiesLoose(r, e) {
|
|
913
958
|
if (null == r) return {};
|
|
914
959
|
var t = {};
|
|
@@ -1093,6 +1138,13 @@ function _regeneratorValues(e) {
|
|
|
1093
1138
|
}
|
|
1094
1139
|
throw new TypeError(typeof e + " is not iterable");
|
|
1095
1140
|
}
|
|
1141
|
+
function _unsupportedIterableToArray(r, a) {
|
|
1142
|
+
if (r) {
|
|
1143
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
1144
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
1145
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1096
1148
|
function _regeneratorRuntime() {
|
|
1097
1149
|
|
|
1098
1150
|
var r = _regenerator(),
|
|
@@ -1490,6 +1542,9 @@ var useObjectDrawDialogAction = function useObjectDrawDialogAction(_ref5) {
|
|
|
1490
1542
|
var isFormDirty = useSelector(function (store) {
|
|
1491
1543
|
return getWarningFormDirty(store, drawingDialogType);
|
|
1492
1544
|
});
|
|
1545
|
+
var isDrawLayerSelectable = useSelector(function (store) {
|
|
1546
|
+
return layerSelectors.getIsLayerSelectable(store, currentDrawLayerId);
|
|
1547
|
+
});
|
|
1493
1548
|
// object selectors
|
|
1494
1549
|
var _useDialogOptions2 = useDialogOptions({
|
|
1495
1550
|
dialogType: objectDialogType
|
|
@@ -1536,6 +1591,12 @@ var useObjectDrawDialogAction = function useObjectDrawDialogAction(_ref5) {
|
|
|
1536
1591
|
}
|
|
1537
1592
|
closeDrawDialog(true);
|
|
1538
1593
|
case 9:
|
|
1594
|
+
// make drawLayer not selectable
|
|
1595
|
+
if (isDrawLayerSelectable) {
|
|
1596
|
+
dispatch(layerActions.toggleSelectableFeatures({
|
|
1597
|
+
layerId: currentDrawLayerId
|
|
1598
|
+
}));
|
|
1599
|
+
}
|
|
1539
1600
|
// open object dialog
|
|
1540
1601
|
dispatch(uiActions.setActiveMapIdForDialog({
|
|
1541
1602
|
type: objectDialogType,
|
|
@@ -1553,7 +1614,7 @@ var useObjectDrawDialogAction = function useObjectDrawDialogAction(_ref5) {
|
|
|
1553
1614
|
// remove current shape
|
|
1554
1615
|
clearGeoJSON(objectDialogLayerId);
|
|
1555
1616
|
}
|
|
1556
|
-
case
|
|
1617
|
+
case 12:
|
|
1557
1618
|
case "end":
|
|
1558
1619
|
return _context2.stop();
|
|
1559
1620
|
}
|
|
@@ -1571,6 +1632,12 @@ var useObjectDrawDialogAction = function useObjectDrawDialogAction(_ref5) {
|
|
|
1571
1632
|
var shouldResetShape = newGeoJSON === undefined;
|
|
1572
1633
|
closeObjectDialog(shouldResetShape);
|
|
1573
1634
|
}
|
|
1635
|
+
// make drawLayer selectable
|
|
1636
|
+
if (!isDrawLayerSelectable) {
|
|
1637
|
+
dispatch(layerActions.toggleSelectableFeatures({
|
|
1638
|
+
layerId: currentDrawLayerId
|
|
1639
|
+
}));
|
|
1640
|
+
}
|
|
1574
1641
|
// open draw dialog
|
|
1575
1642
|
dispatch(uiActions.setActiveMapIdForDialog({
|
|
1576
1643
|
type: drawingDialogType,
|
|
@@ -1615,18 +1682,10 @@ var useObjectDrawDialogAction = function useObjectDrawDialogAction(_ref5) {
|
|
|
1615
1682
|
}));
|
|
1616
1683
|
}
|
|
1617
1684
|
if (newGeoJSON) {
|
|
1618
|
-
var _newGeoJSON$features$;
|
|
1619
1685
|
dispatch(layerActions.layerChangeGeojson({
|
|
1620
1686
|
layerId: currentDrawLayerId,
|
|
1621
1687
|
geojson: newGeoJSON
|
|
1622
1688
|
}));
|
|
1623
|
-
// select correct drawTool for selected object
|
|
1624
|
-
var type = (_newGeoJSON$features$ = newGeoJSON.features[0].properties) == null ? void 0 : _newGeoJSON$features$.selectionType;
|
|
1625
|
-
var drawModeId = getDrawModeIdFromSelectionType(type, currentlySupportedDrawModes);
|
|
1626
|
-
dispatch(drawingToolActions.changeDrawToolMode({
|
|
1627
|
-
drawToolId: drawingDialogType,
|
|
1628
|
-
drawModeId: drawModeId
|
|
1629
|
-
}));
|
|
1630
1689
|
}
|
|
1631
1690
|
};
|
|
1632
1691
|
var _useCloseDrawDialog = useCloseDrawDialog({
|
|
@@ -2232,7 +2291,7 @@ var TAKEOVER_MESSAGE = 'You are no longer the editor of this warning';
|
|
|
2232
2291
|
var initialState$2 = {};
|
|
2233
2292
|
var slice$1 = createSlice({
|
|
2234
2293
|
initialState: initialState$2,
|
|
2235
|
-
name: '
|
|
2294
|
+
name: 'warningsForm',
|
|
2236
2295
|
reducers: {
|
|
2237
2296
|
setFormValues: function setFormValues(draft, action) {
|
|
2238
2297
|
var _action$payload = action.payload,
|
|
@@ -2352,12 +2411,12 @@ var slice$1 = createSlice({
|
|
|
2352
2411
|
});
|
|
2353
2412
|
}
|
|
2354
2413
|
});
|
|
2355
|
-
var
|
|
2356
|
-
|
|
2414
|
+
var warningsFormReducer = slice$1.reducer,
|
|
2415
|
+
warningsFormActions = slice$1.actions;
|
|
2357
2416
|
|
|
2358
|
-
var
|
|
2359
|
-
|
|
2360
|
-
actionCreator:
|
|
2417
|
+
var warningsFormListener = createListenerMiddleware();
|
|
2418
|
+
warningsFormListener.startListening({
|
|
2419
|
+
actionCreator: warningsFormActions.openPublicWarningFormDialog,
|
|
2361
2420
|
effect: function () {
|
|
2362
2421
|
var _effect = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, listenerApi) {
|
|
2363
2422
|
var payload, panelId;
|
|
@@ -2384,7 +2443,7 @@ publicWarningFormListener.startListening({
|
|
|
2384
2443
|
return effect;
|
|
2385
2444
|
}()
|
|
2386
2445
|
});
|
|
2387
|
-
|
|
2446
|
+
warningsFormListener.startListening({
|
|
2388
2447
|
actionCreator: uiActions.setToggleOpenDialog,
|
|
2389
2448
|
effect: function () {
|
|
2390
2449
|
var _effect2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2, listenerApi) {
|
|
@@ -2429,54 +2488,24 @@ publicWarningFormListener.startListening({
|
|
|
2429
2488
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2430
2489
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2431
2490
|
* */
|
|
2432
|
-
var
|
|
2433
|
-
selectId: function selectId(warning) {
|
|
2434
|
-
return warning.id;
|
|
2435
|
-
}
|
|
2436
|
-
});
|
|
2437
|
-
var initialState$1 = {
|
|
2438
|
-
warnings: publicWarningsAdapter.getInitialState(),
|
|
2439
|
-
isLoading: true,
|
|
2440
|
-
lastUpdatedTime: '',
|
|
2441
|
-
filterState: {}
|
|
2442
|
-
};
|
|
2491
|
+
var initialState$1 = {};
|
|
2443
2492
|
var slice = createSlice({
|
|
2444
2493
|
initialState: initialState$1,
|
|
2445
|
-
name: '
|
|
2494
|
+
name: 'warningsFilters',
|
|
2446
2495
|
reducers: {
|
|
2447
2496
|
setWarningFilters: function setWarningFilters(draft, action) {
|
|
2448
2497
|
var _action$payload = action.payload,
|
|
2449
2498
|
filterState = _action$payload.filterState,
|
|
2450
2499
|
panelId = _action$payload.panelId;
|
|
2451
2500
|
if (panelId) {
|
|
2452
|
-
var
|
|
2453
|
-
|
|
2454
|
-
draft.filterState[panelId] = Object.assign({}, currentFilterState, filterState);
|
|
2501
|
+
var currentFilterState = current(draft)[panelId] || initialFilters;
|
|
2502
|
+
draft[panelId] = Object.assign({}, currentFilterState, filterState);
|
|
2455
2503
|
}
|
|
2456
2504
|
}
|
|
2457
2505
|
}
|
|
2458
2506
|
});
|
|
2459
|
-
var
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
/* *
|
|
2463
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2464
|
-
* you may not use this file except in compliance with the License.
|
|
2465
|
-
* You may obtain a copy of the License at
|
|
2466
|
-
*
|
|
2467
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2468
|
-
*
|
|
2469
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
2470
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2471
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2472
|
-
* See the License for the specific language governing permissions and
|
|
2473
|
-
* limitations under the License.
|
|
2474
|
-
*
|
|
2475
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
2476
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2477
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2478
|
-
* */
|
|
2479
|
-
var publicWarningsListener = createListenerMiddleware();
|
|
2507
|
+
var warningsFiltersReducer = slice.reducer,
|
|
2508
|
+
warningsFiltersActions = slice.actions;
|
|
2480
2509
|
|
|
2481
2510
|
/* *
|
|
2482
2511
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -2501,12 +2530,12 @@ var warningsReducersMap = {
|
|
|
2501
2530
|
ui: uiReducer,
|
|
2502
2531
|
drawingtools: drawingToolReducer,
|
|
2503
2532
|
drawings: warningsDrawingsReducer,
|
|
2504
|
-
|
|
2505
|
-
|
|
2533
|
+
warningsForm: warningsFormReducer,
|
|
2534
|
+
warningsFilters: warningsFiltersReducer,
|
|
2506
2535
|
snackbar: snackbarReducer,
|
|
2507
2536
|
syncGroups: syncGroupsReducer
|
|
2508
2537
|
};
|
|
2509
|
-
var warningsMiddlewares = [mapListener.middleware, layersListener.middleware, drawingToolListener.middleware,
|
|
2538
|
+
var warningsMiddlewares = [mapListener.middleware, layersListener.middleware, drawingToolListener.middleware, warningsFormListener.middleware, snackbarListener.middleware, syncGroupsListener.middleware, openlayersListener.middleware];
|
|
2510
2539
|
var warningsRootReducer = combineReducers(warningsReducersMap);
|
|
2511
2540
|
var createMockStore = function createMockStore(mockState) {
|
|
2512
2541
|
return configureStore({
|
|
@@ -2989,7 +3018,7 @@ var useMutatePublicWarningEditor = function useMutatePublicWarningEditor() {
|
|
|
2989
3018
|
}
|
|
2990
3019
|
throw new Error('Authentication context not found');
|
|
2991
3020
|
case 3:
|
|
2992
|
-
dispatch(
|
|
3021
|
+
dispatch(warningsFormActions.removeFormError());
|
|
2993
3022
|
return _context2.abrupt("return", updatePublicWarningEditor(id, isEditor, auth, force));
|
|
2994
3023
|
case 5:
|
|
2995
3024
|
case "end":
|
|
@@ -3009,7 +3038,7 @@ var useMutatePublicWarningEditor = function useMutatePublicWarningEditor() {
|
|
|
3009
3038
|
});
|
|
3010
3039
|
}, function (error) {
|
|
3011
3040
|
if (error.cause !== 409) {
|
|
3012
|
-
dispatch(
|
|
3041
|
+
dispatch(warningsFormActions.setFormError({
|
|
3013
3042
|
message: error.message
|
|
3014
3043
|
}));
|
|
3015
3044
|
}
|
|
@@ -3057,7 +3086,7 @@ var useMutateWarning = function useMutateWarning(snackBarMessage) {
|
|
|
3057
3086
|
}
|
|
3058
3087
|
throw new Error('Authentication context not found');
|
|
3059
3088
|
case 3:
|
|
3060
|
-
dispatch(
|
|
3089
|
+
dispatch(warningsFormActions.removeFormError());
|
|
3061
3090
|
if (!id) {
|
|
3062
3091
|
_context4.next = 6;
|
|
3063
3092
|
break;
|
|
@@ -3081,7 +3110,7 @@ var useMutateWarning = function useMutateWarning(snackBarMessage) {
|
|
|
3081
3110
|
queryKey: ['public-warning-list'],
|
|
3082
3111
|
exact: false
|
|
3083
3112
|
});
|
|
3084
|
-
dispatch(
|
|
3113
|
+
dispatch(warningsFormActions.setFormError({
|
|
3085
3114
|
message: error.message
|
|
3086
3115
|
}));
|
|
3087
3116
|
},
|
|
@@ -3110,7 +3139,7 @@ var useMutateWarning = function useMutateWarning(snackBarMessage) {
|
|
|
3110
3139
|
domain: 'public'
|
|
3111
3140
|
})
|
|
3112
3141
|
});
|
|
3113
|
-
dispatch(
|
|
3142
|
+
dispatch(warningsFormActions.openPublicWarningFormDialog({
|
|
3114
3143
|
warning: newWarning,
|
|
3115
3144
|
formState: '',
|
|
3116
3145
|
panelId: variables.panelId
|
|
@@ -3544,6 +3573,145 @@ var ConfirmDeleteDialog = function ConfirmDeleteDialog(_ref) {
|
|
|
3544
3573
|
* */
|
|
3545
3574
|
var DATE_FORMAT_HEADER = 'EEEE, MMMM dd';
|
|
3546
3575
|
|
|
3576
|
+
var RowComponent$2 = function RowComponent(_ref) {
|
|
3577
|
+
var _buttonSx;
|
|
3578
|
+
var index = _ref.index,
|
|
3579
|
+
style = _ref.style,
|
|
3580
|
+
listInclHeaders = _ref.listInclHeaders,
|
|
3581
|
+
headerList = _ref.headerList,
|
|
3582
|
+
objects = _ref.objects,
|
|
3583
|
+
onClickObject = _ref.onClickObject,
|
|
3584
|
+
onClickEdit = _ref.onClickEdit,
|
|
3585
|
+
onClickDelete = _ref.onClickDelete,
|
|
3586
|
+
onClickShare = _ref.onClickShare,
|
|
3587
|
+
activeObject = _ref.activeObject,
|
|
3588
|
+
t = _ref.t;
|
|
3589
|
+
var listItem = listInclHeaders[index];
|
|
3590
|
+
if (!listItem.isObject) {
|
|
3591
|
+
var header = headerList[listItem.index];
|
|
3592
|
+
return jsx(Typography, {
|
|
3593
|
+
style: style,
|
|
3594
|
+
sx: {
|
|
3595
|
+
paddingLeft: 2.5,
|
|
3596
|
+
paddingBottom: 0.5,
|
|
3597
|
+
paddingTop: 1,
|
|
3598
|
+
opacity: 0.67,
|
|
3599
|
+
lineHeight: '16px',
|
|
3600
|
+
overflow: 'hidden',
|
|
3601
|
+
whiteSpace: 'nowrap',
|
|
3602
|
+
textOverflow: 'ellipsis'
|
|
3603
|
+
},
|
|
3604
|
+
variant: "caption",
|
|
3605
|
+
children: header
|
|
3606
|
+
}, listItem.index);
|
|
3607
|
+
}
|
|
3608
|
+
var object = objects[listItem.index];
|
|
3609
|
+
return jsx(ContainerDiv$1, {
|
|
3610
|
+
children: jsx(ListItem, {
|
|
3611
|
+
disablePadding: true,
|
|
3612
|
+
secondaryAction: jsxs(Grid, {
|
|
3613
|
+
container: true,
|
|
3614
|
+
rowSpacing: 1,
|
|
3615
|
+
children: [jsx(Grid, {
|
|
3616
|
+
className: "objectActions",
|
|
3617
|
+
children: jsx(ToggleMenu, {
|
|
3618
|
+
"aria-label": t('object-manager-button-share'),
|
|
3619
|
+
buttonIcon: jsx(Share, {}),
|
|
3620
|
+
buttonSx: (_buttonSx = {
|
|
3621
|
+
// position the share button for scope global
|
|
3622
|
+
marginBottom: object.scope === 'user' ? 0 : 4
|
|
3623
|
+
}, _buttonSx["@container objectList (min-width: " + BREAKPOINT$1 + "px)"] = {
|
|
3624
|
+
marginBottom: 0,
|
|
3625
|
+
marginRight: object.scope === 'user' ? 1 : 4
|
|
3626
|
+
}, _buttonSx),
|
|
3627
|
+
menuItems: [{
|
|
3628
|
+
text: BUTTON_AIRMET$1,
|
|
3629
|
+
action: function action() {},
|
|
3630
|
+
icon: jsx(ExitDomain, {}),
|
|
3631
|
+
isDisabled: true
|
|
3632
|
+
}, {
|
|
3633
|
+
text: BUTTON_SIGMET$1,
|
|
3634
|
+
action: function action() {},
|
|
3635
|
+
icon: jsx(ExitDomain, {}),
|
|
3636
|
+
isDisabled: true
|
|
3637
|
+
}, {
|
|
3638
|
+
text: t('public-warning-title').toUpperCase(),
|
|
3639
|
+
action: function action() {
|
|
3640
|
+
onClickShare(object);
|
|
3641
|
+
},
|
|
3642
|
+
icon: jsx(ExitDomain, {})
|
|
3643
|
+
}],
|
|
3644
|
+
menuPosition: "bottom",
|
|
3645
|
+
menuTitle: t('object-manager-share-menu'),
|
|
3646
|
+
tooltipTitle: t('object-manager-button-share')
|
|
3647
|
+
})
|
|
3648
|
+
}), object.scope === 'user' && jsx(Grid, {
|
|
3649
|
+
className: "objectActions",
|
|
3650
|
+
children: jsx(ToggleMenu, {
|
|
3651
|
+
"aria-label": "Options",
|
|
3652
|
+
menuItems: [{
|
|
3653
|
+
text: t('object-manager-button-edit'),
|
|
3654
|
+
action: function action() {
|
|
3655
|
+
onClickEdit(object.id);
|
|
3656
|
+
},
|
|
3657
|
+
icon: jsx(Edit, {})
|
|
3658
|
+
}, {
|
|
3659
|
+
text: t('object-manager-button-delete'),
|
|
3660
|
+
action: function action() {
|
|
3661
|
+
onClickDelete(object.id);
|
|
3662
|
+
},
|
|
3663
|
+
icon: jsx(Delete, {})
|
|
3664
|
+
}],
|
|
3665
|
+
menuPosition: "bottom",
|
|
3666
|
+
menuTitle: t('object-manager-options-menu'),
|
|
3667
|
+
tooltipTitle: t('object-manager-options-menu')
|
|
3668
|
+
})
|
|
3669
|
+
})]
|
|
3670
|
+
}),
|
|
3671
|
+
style: style,
|
|
3672
|
+
children: jsx(Paper, {
|
|
3673
|
+
elevation: 0,
|
|
3674
|
+
sx: {
|
|
3675
|
+
width: '100%',
|
|
3676
|
+
margin: 0.25,
|
|
3677
|
+
backgroundColor: 'geowebColors.background.surface',
|
|
3678
|
+
border: 'solid 1px',
|
|
3679
|
+
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
3680
|
+
},
|
|
3681
|
+
children: jsx(ListItemButton, {
|
|
3682
|
+
onClick: function onClick() {
|
|
3683
|
+
onClickObject(object);
|
|
3684
|
+
},
|
|
3685
|
+
selected: activeObject === object.id,
|
|
3686
|
+
sx: {
|
|
3687
|
+
padding: 1,
|
|
3688
|
+
height: '44px'
|
|
3689
|
+
},
|
|
3690
|
+
children: jsxs(Stack, {
|
|
3691
|
+
children: [jsx(Typography, {
|
|
3692
|
+
sx: {
|
|
3693
|
+
lineHeight: '16px',
|
|
3694
|
+
maxHeight: '32px',
|
|
3695
|
+
overflow: 'hidden'
|
|
3696
|
+
},
|
|
3697
|
+
variant: "caption",
|
|
3698
|
+
children: object.objectName
|
|
3699
|
+
}), jsxs(Typography, {
|
|
3700
|
+
sx: {
|
|
3701
|
+
opacity: 0.67,
|
|
3702
|
+
lineHeight: '16px',
|
|
3703
|
+
maxHeight: '32px',
|
|
3704
|
+
overflow: 'hidden'
|
|
3705
|
+
},
|
|
3706
|
+
variant: "caption",
|
|
3707
|
+
children: [object.scope === 'global' && 'Global: ', dateUtils.dateToString(dateUtils.utc(object.lastUpdatedTime), dateUtils.DATE_FORMAT_DATEPICKER) + " UTC"]
|
|
3708
|
+
})]
|
|
3709
|
+
})
|
|
3710
|
+
})
|
|
3711
|
+
})
|
|
3712
|
+
}, object.id)
|
|
3713
|
+
});
|
|
3714
|
+
};
|
|
3547
3715
|
var DEFAULT_ADD_BUTTON_HEIGHT = 80;
|
|
3548
3716
|
var OBJECT_ITEM_SIZE$1 = 50;
|
|
3549
3717
|
var OBJECT_ITEM_SIZE_SMALL_WIDTH$1 = 72;
|
|
@@ -3578,8 +3746,8 @@ var getListInclHeaders$1 = function getListInclHeaders(objects) {
|
|
|
3578
3746
|
};
|
|
3579
3747
|
};
|
|
3580
3748
|
var ContainerDiv$1 = styled('div')(function () {
|
|
3581
|
-
var
|
|
3582
|
-
return
|
|
3749
|
+
var _ref2;
|
|
3750
|
+
return _ref2 = {
|
|
3583
3751
|
'.objectActions': {
|
|
3584
3752
|
width: '100%',
|
|
3585
3753
|
minWidth: '100%'
|
|
@@ -3600,7 +3768,7 @@ var ContainerDiv$1 = styled('div')(function () {
|
|
|
3600
3768
|
overflowWrap: 'anywhere',
|
|
3601
3769
|
overflow: 'hidden'
|
|
3602
3770
|
}
|
|
3603
|
-
},
|
|
3771
|
+
}, _ref2["@container objectList (min-width: " + BREAKPOINT$1 + "px)"] = {
|
|
3604
3772
|
'.objectActions': {
|
|
3605
3773
|
width: '50%',
|
|
3606
3774
|
minWidth: '50%'
|
|
@@ -3611,20 +3779,19 @@ var ContainerDiv$1 = styled('div')(function () {
|
|
|
3611
3779
|
'& .MuiStack-root': {
|
|
3612
3780
|
paddingRight: '64px'
|
|
3613
3781
|
}
|
|
3614
|
-
},
|
|
3782
|
+
}, _ref2;
|
|
3615
3783
|
});
|
|
3616
|
-
var Objects = function Objects(
|
|
3617
|
-
var objects =
|
|
3618
|
-
onClickObject =
|
|
3619
|
-
onClickEdit =
|
|
3620
|
-
onClickDelete =
|
|
3621
|
-
onClickShare =
|
|
3622
|
-
activeObject =
|
|
3623
|
-
|
|
3624
|
-
isLoading =
|
|
3784
|
+
var Objects = function Objects(_ref3) {
|
|
3785
|
+
var objects = _ref3.objects,
|
|
3786
|
+
onClickObject = _ref3.onClickObject,
|
|
3787
|
+
onClickEdit = _ref3.onClickEdit,
|
|
3788
|
+
onClickDelete = _ref3.onClickDelete,
|
|
3789
|
+
onClickShare = _ref3.onClickShare,
|
|
3790
|
+
activeObject = _ref3.activeObject,
|
|
3791
|
+
_ref3$isLoading = _ref3.isLoading,
|
|
3792
|
+
isLoading = _ref3$isLoading === void 0 ? false : _ref3$isLoading;
|
|
3625
3793
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
3626
3794
|
t = _useWarningsTranslati.t;
|
|
3627
|
-
var listRef = React.useRef(null);
|
|
3628
3795
|
var _getListInclHeaders = getListInclHeaders$1(objects || []),
|
|
3629
3796
|
listInclHeaders = _getListInclHeaders.listInclHeaders,
|
|
3630
3797
|
headerList = _getListInclHeaders.headerList;
|
|
@@ -3635,178 +3802,51 @@ var Objects = function Objects(_ref2) {
|
|
|
3635
3802
|
}
|
|
3636
3803
|
return HEADER_ITEM_SIZE$1;
|
|
3637
3804
|
};
|
|
3805
|
+
var ref = useRef(null);
|
|
3806
|
+
var _React$useState = React.useState(0),
|
|
3807
|
+
width = _React$useState[0],
|
|
3808
|
+
setWidth = _React$useState[1];
|
|
3638
3809
|
React.useEffect(function () {
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
}
|
|
3810
|
+
var _ref$current;
|
|
3811
|
+
setWidth(((_ref$current = ref.current) == null ? void 0 : _ref$current.clientWidth) || 0);
|
|
3812
|
+
}, [ref]);
|
|
3813
|
+
return jsx(Box, {
|
|
3814
|
+
ref: ref,
|
|
3815
|
+
sx: {
|
|
3816
|
+
height: '100%',
|
|
3817
|
+
width: '100%'
|
|
3648
3818
|
},
|
|
3649
|
-
children:
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
style = _ref4.style;
|
|
3681
|
-
var listItem = listInclHeaders[index];
|
|
3682
|
-
if (!listItem.isObject) {
|
|
3683
|
-
var header = headerList[listItem.index];
|
|
3684
|
-
return jsx(Typography, {
|
|
3685
|
-
style: style,
|
|
3686
|
-
sx: {
|
|
3687
|
-
paddingLeft: 2.5,
|
|
3688
|
-
paddingBottom: 0.5,
|
|
3689
|
-
paddingTop: 1,
|
|
3690
|
-
opacity: 0.67,
|
|
3691
|
-
lineHeight: '16px',
|
|
3692
|
-
overflow: 'hidden',
|
|
3693
|
-
whiteSpace: 'nowrap',
|
|
3694
|
-
textOverflow: 'ellipsis'
|
|
3695
|
-
},
|
|
3696
|
-
variant: "caption",
|
|
3697
|
-
children: header
|
|
3698
|
-
}, listItem.index);
|
|
3699
|
-
}
|
|
3700
|
-
var object = objects[listItem.index];
|
|
3701
|
-
return jsx(ContainerDiv$1, {
|
|
3702
|
-
children: jsx(ListItem, {
|
|
3703
|
-
disablePadding: true,
|
|
3704
|
-
secondaryAction: jsxs(Grid, {
|
|
3705
|
-
container: true,
|
|
3706
|
-
rowSpacing: 1,
|
|
3707
|
-
children: [jsx(Grid, {
|
|
3708
|
-
className: "objectActions",
|
|
3709
|
-
children: jsx(ToggleMenu, {
|
|
3710
|
-
"aria-label": t('object-manager-button-share'),
|
|
3711
|
-
buttonIcon: jsx(Share, {}),
|
|
3712
|
-
buttonSx: (_buttonSx = {
|
|
3713
|
-
// position the share button for scope global
|
|
3714
|
-
marginBottom: object.scope === 'user' ? 0 : 4
|
|
3715
|
-
}, _buttonSx["@container objectList (min-width: " + BREAKPOINT$1 + "px)"] = {
|
|
3716
|
-
marginBottom: 0,
|
|
3717
|
-
marginRight: object.scope === 'user' ? 1 : 4
|
|
3718
|
-
}, _buttonSx),
|
|
3719
|
-
menuItems: [{
|
|
3720
|
-
text: BUTTON_AIRMET$1,
|
|
3721
|
-
action: function action() {},
|
|
3722
|
-
icon: jsx(ExitDomain, {}),
|
|
3723
|
-
isDisabled: true
|
|
3724
|
-
}, {
|
|
3725
|
-
text: BUTTON_SIGMET$1,
|
|
3726
|
-
action: function action() {},
|
|
3727
|
-
icon: jsx(ExitDomain, {}),
|
|
3728
|
-
isDisabled: true
|
|
3729
|
-
}, {
|
|
3730
|
-
text: t('public-warning-title').toUpperCase(),
|
|
3731
|
-
action: function action() {
|
|
3732
|
-
onClickShare(object);
|
|
3733
|
-
},
|
|
3734
|
-
icon: jsx(ExitDomain, {})
|
|
3735
|
-
}],
|
|
3736
|
-
menuPosition: "bottom",
|
|
3737
|
-
menuTitle: t('object-manager-share-menu'),
|
|
3738
|
-
tooltipTitle: t('object-manager-button-share')
|
|
3739
|
-
})
|
|
3740
|
-
}), object.scope === 'user' && jsx(Grid, {
|
|
3741
|
-
className: "objectActions",
|
|
3742
|
-
children: jsx(ToggleMenu, {
|
|
3743
|
-
"aria-label": "Options",
|
|
3744
|
-
menuItems: [{
|
|
3745
|
-
text: t('object-manager-button-edit'),
|
|
3746
|
-
action: function action() {
|
|
3747
|
-
onClickEdit(object.id);
|
|
3748
|
-
},
|
|
3749
|
-
icon: jsx(Edit, {})
|
|
3750
|
-
}, {
|
|
3751
|
-
text: t('object-manager-button-delete'),
|
|
3752
|
-
action: function action() {
|
|
3753
|
-
onClickDelete(object.id);
|
|
3754
|
-
},
|
|
3755
|
-
icon: jsx(Delete, {})
|
|
3756
|
-
}],
|
|
3757
|
-
menuPosition: "bottom",
|
|
3758
|
-
menuTitle: t('object-manager-options-menu'),
|
|
3759
|
-
tooltipTitle: t('object-manager-options-menu')
|
|
3760
|
-
})
|
|
3761
|
-
})]
|
|
3762
|
-
}),
|
|
3763
|
-
style: style,
|
|
3764
|
-
children: jsx(Paper, {
|
|
3765
|
-
elevation: 0,
|
|
3766
|
-
sx: {
|
|
3767
|
-
width: '100%',
|
|
3768
|
-
margin: 0.25,
|
|
3769
|
-
backgroundColor: 'geowebColors.background.surface',
|
|
3770
|
-
border: 'solid 1px',
|
|
3771
|
-
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
3772
|
-
},
|
|
3773
|
-
children: jsx(ListItemButton, {
|
|
3774
|
-
onClick: function onClick() {
|
|
3775
|
-
onClickObject(object);
|
|
3776
|
-
},
|
|
3777
|
-
selected: activeObject === object.id,
|
|
3778
|
-
sx: {
|
|
3779
|
-
padding: 1,
|
|
3780
|
-
height: '44px'
|
|
3781
|
-
},
|
|
3782
|
-
children: jsxs(Stack, {
|
|
3783
|
-
children: [jsx(Typography, {
|
|
3784
|
-
sx: {
|
|
3785
|
-
lineHeight: '16px',
|
|
3786
|
-
maxHeight: '32px',
|
|
3787
|
-
overflow: 'hidden'
|
|
3788
|
-
},
|
|
3789
|
-
variant: "caption",
|
|
3790
|
-
children: object.objectName
|
|
3791
|
-
}), jsxs(Typography, {
|
|
3792
|
-
sx: {
|
|
3793
|
-
opacity: 0.67,
|
|
3794
|
-
lineHeight: '16px',
|
|
3795
|
-
maxHeight: '32px',
|
|
3796
|
-
overflow: 'hidden'
|
|
3797
|
-
},
|
|
3798
|
-
variant: "caption",
|
|
3799
|
-
children: [object.scope === 'global' && 'Global: ', dateUtils.dateToString(dateUtils.utc(object.lastUpdatedTime), dateUtils.DATE_FORMAT_DATEPICKER) + " UTC"]
|
|
3800
|
-
})]
|
|
3801
|
-
})
|
|
3802
|
-
})
|
|
3803
|
-
})
|
|
3804
|
-
}, object.id)
|
|
3805
|
-
});
|
|
3806
|
-
}
|
|
3807
|
-
})
|
|
3808
|
-
});
|
|
3809
|
-
}
|
|
3819
|
+
children: !isLoading && objects.length === 0 ? jsx(Typography, {
|
|
3820
|
+
sx: {
|
|
3821
|
+
paddingLeft: '16px',
|
|
3822
|
+
paddingTop: '8px'
|
|
3823
|
+
},
|
|
3824
|
+
variant: "body1",
|
|
3825
|
+
children: t('object-manager-no-objects')
|
|
3826
|
+
}) : jsx(List, {
|
|
3827
|
+
rowComponent: RowComponent$2,
|
|
3828
|
+
rowCount: listInclHeaders.length,
|
|
3829
|
+
rowHeight: function rowHeight(index) {
|
|
3830
|
+
return getItemSize(width, index);
|
|
3831
|
+
},
|
|
3832
|
+
rowProps: {
|
|
3833
|
+
listInclHeaders: listInclHeaders,
|
|
3834
|
+
headerList: headerList,
|
|
3835
|
+
objects: objects,
|
|
3836
|
+
onClickObject: onClickObject,
|
|
3837
|
+
onClickEdit: onClickEdit,
|
|
3838
|
+
onClickDelete: onClickDelete,
|
|
3839
|
+
onClickShare: onClickShare,
|
|
3840
|
+
activeObject: activeObject,
|
|
3841
|
+
t: t
|
|
3842
|
+
},
|
|
3843
|
+
style: {
|
|
3844
|
+
width: width,
|
|
3845
|
+
height: "calc(100% - " + DEFAULT_ADD_BUTTON_HEIGHT + "px)",
|
|
3846
|
+
containerType: 'inline-size',
|
|
3847
|
+
containerName: 'objectList'
|
|
3848
|
+
}
|
|
3849
|
+
})
|
|
3810
3850
|
});
|
|
3811
3851
|
};
|
|
3812
3852
|
|
|
@@ -4007,7 +4047,9 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
4007
4047
|
dispatch(layerActions.addLayer({
|
|
4008
4048
|
mapId: mapId,
|
|
4009
4049
|
layer: {
|
|
4010
|
-
geojson: drawing.geoJSON
|
|
4050
|
+
geojson: drawing.geoJSON,
|
|
4051
|
+
isSelectable: false,
|
|
4052
|
+
isInEditMode: false
|
|
4011
4053
|
},
|
|
4012
4054
|
layerId: geoJSONLayerId,
|
|
4013
4055
|
origin: 'warnings-lib'
|
|
@@ -4060,7 +4102,7 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
4060
4102
|
setSelectedDrawingId(drawingId);
|
|
4061
4103
|
};
|
|
4062
4104
|
useEffect(function () {
|
|
4063
|
-
if (!selectedDrawingId || !drawingDetails || drawingDetails.id !== selectedDrawingId || isFetchingDetails) {
|
|
4105
|
+
if (!selectedDrawingId || !drawingDetails || (drawingDetails == null ? void 0 : drawingDetails.id) !== selectedDrawingId || isFetchingDetails) {
|
|
4064
4106
|
return;
|
|
4065
4107
|
}
|
|
4066
4108
|
dispatch(warningsDrawingsActions.setDrawValues({
|
|
@@ -4087,7 +4129,7 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
4087
4129
|
closeObjectDialog();
|
|
4088
4130
|
};
|
|
4089
4131
|
var onShareObject = function onShareObject(object) {
|
|
4090
|
-
dispatch(
|
|
4132
|
+
dispatch(warningsFormActions.openPublicWarningFormDialog({
|
|
4091
4133
|
object: object,
|
|
4092
4134
|
warning: {
|
|
4093
4135
|
warningDetail: {
|
|
@@ -4290,7 +4332,7 @@ var drawToolConfig = [{
|
|
|
4290
4332
|
secondaryMode: defaultOval
|
|
4291
4333
|
}, {
|
|
4292
4334
|
primaryMode: defaultSquare,
|
|
4293
|
-
secondaryMode:
|
|
4335
|
+
secondaryMode: defaultRotatableBox
|
|
4294
4336
|
}, {
|
|
4295
4337
|
primaryMode: defaultPoint,
|
|
4296
4338
|
secondaryMode: defaultLocation
|
|
@@ -4825,7 +4867,8 @@ var DrawingToolConnect = function DrawingToolConnect(_ref) {
|
|
|
4825
4867
|
var defaultDrawModes = translateDrawModes(currentlySupportedDrawModes, t);
|
|
4826
4868
|
dispatch(drawingToolActions.registerDrawTool({
|
|
4827
4869
|
drawToolId: drawingDialogType,
|
|
4828
|
-
defaultDrawModes: defaultDrawModes
|
|
4870
|
+
defaultDrawModes: defaultDrawModes,
|
|
4871
|
+
shouldAllowMultipleShapes: true
|
|
4829
4872
|
}));
|
|
4830
4873
|
return function () {
|
|
4831
4874
|
dispatch(drawingToolActions.unregisterDrawTool({
|
|
@@ -6117,7 +6160,7 @@ var usePostSigmet = function usePostSigmet() {
|
|
|
6117
6160
|
}
|
|
6118
6161
|
throw new Error('Authentication context not found');
|
|
6119
6162
|
case 2:
|
|
6120
|
-
dispatch(
|
|
6163
|
+
dispatch(warningsFormActions.removeFormError());
|
|
6121
6164
|
return _context7.abrupt("return", postSigmet(auth, formData));
|
|
6122
6165
|
case 4:
|
|
6123
6166
|
case "end":
|
|
@@ -6132,10 +6175,10 @@ var usePostSigmet = function usePostSigmet() {
|
|
|
6132
6175
|
}(),
|
|
6133
6176
|
onError: function onError(error) {
|
|
6134
6177
|
if (error.cause === 409) {
|
|
6135
|
-
dispatch(
|
|
6178
|
+
dispatch(warningsFormActions.setFormValues({
|
|
6136
6179
|
formState: 'edit'
|
|
6137
6180
|
}));
|
|
6138
|
-
dispatch(
|
|
6181
|
+
dispatch(warningsFormActions.setFormError({
|
|
6139
6182
|
severity: 'warning',
|
|
6140
6183
|
message: t('aviation-post-conflict-title', {
|
|
6141
6184
|
warningType: 'SIGMET'
|
|
@@ -6150,7 +6193,7 @@ var usePostSigmet = function usePostSigmet() {
|
|
|
6150
6193
|
queryKey: ['sigmet']
|
|
6151
6194
|
});
|
|
6152
6195
|
var formattedError = humanizeApiErrorMessage(error);
|
|
6153
|
-
dispatch(
|
|
6196
|
+
dispatch(warningsFormActions.setFormError({
|
|
6154
6197
|
message: "Failed to save SIGMET: " + formattedError
|
|
6155
6198
|
}));
|
|
6156
6199
|
},
|
|
@@ -6210,7 +6253,7 @@ var usePostAirmet = function usePostAirmet() {
|
|
|
6210
6253
|
}
|
|
6211
6254
|
throw new Error('Authentication context not found');
|
|
6212
6255
|
case 2:
|
|
6213
|
-
dispatch(
|
|
6256
|
+
dispatch(warningsFormActions.removeFormError());
|
|
6214
6257
|
return _context9.abrupt("return", postAirmet(auth, formData));
|
|
6215
6258
|
case 4:
|
|
6216
6259
|
case "end":
|
|
@@ -6225,10 +6268,10 @@ var usePostAirmet = function usePostAirmet() {
|
|
|
6225
6268
|
}(),
|
|
6226
6269
|
onError: function onError(error) {
|
|
6227
6270
|
if (error.cause === 409) {
|
|
6228
|
-
dispatch(
|
|
6271
|
+
dispatch(warningsFormActions.setFormValues({
|
|
6229
6272
|
formState: 'edit'
|
|
6230
6273
|
}));
|
|
6231
|
-
dispatch(
|
|
6274
|
+
dispatch(warningsFormActions.setFormError({
|
|
6232
6275
|
severity: 'warning',
|
|
6233
6276
|
message: t('aviation-post-conflict-title', {
|
|
6234
6277
|
warningType: 'AIRMET'
|
|
@@ -6243,7 +6286,7 @@ var usePostAirmet = function usePostAirmet() {
|
|
|
6243
6286
|
queryKey: ['airmet']
|
|
6244
6287
|
});
|
|
6245
6288
|
var formattedError = humanizeApiErrorMessage(error);
|
|
6246
|
-
dispatch(
|
|
6289
|
+
dispatch(warningsFormActions.setFormError({
|
|
6247
6290
|
message: "Failed to save AIRMET: " + formattedError
|
|
6248
6291
|
}));
|
|
6249
6292
|
},
|
|
@@ -6296,17 +6339,24 @@ var usePostAirmet = function usePostAirmet() {
|
|
|
6296
6339
|
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
6297
6340
|
* */
|
|
6298
6341
|
var useWarnings = function useWarnings(disabled, timeFilter) {
|
|
6299
|
-
var
|
|
6342
|
+
var config = sessionStorageProvider.getConfig();
|
|
6343
|
+
var hasPublicWarningsBaseUrl = Boolean(config.GW_DRAWINGS_BASE_URL);
|
|
6344
|
+
var hasAirmetBaseUrl = Boolean(config.GW_AIRMET_BASE_URL);
|
|
6345
|
+
var hasSigmetBaseUrl = Boolean(config.GW_SIGMET_BASE_URL);
|
|
6346
|
+
var isPublicWarningsDisabled = disabled || !hasPublicWarningsBaseUrl;
|
|
6347
|
+
var isAirmetDisabled = disabled || !hasAirmetBaseUrl;
|
|
6348
|
+
var isSigmetDisabled = disabled || !hasSigmetBaseUrl;
|
|
6349
|
+
var _usePublicWarnings = usePublicWarnings(isPublicWarningsDisabled, timeFilter),
|
|
6300
6350
|
publicWarnings = _usePublicWarnings.data,
|
|
6301
6351
|
refetchPublicWarnings = _usePublicWarnings.refetch,
|
|
6302
6352
|
isFetchingPublicWarnings = _usePublicWarnings.isFetching,
|
|
6303
6353
|
publicWarningsError = _usePublicWarnings.error,
|
|
6304
6354
|
dataUpdatedAt = _usePublicWarnings.dataUpdatedAt;
|
|
6305
|
-
var _useAirmetList = useAirmetList(
|
|
6355
|
+
var _useAirmetList = useAirmetList(isAirmetDisabled, timeFilter),
|
|
6306
6356
|
airmetWarnings = _useAirmetList.data,
|
|
6307
6357
|
refetchAirmet = _useAirmetList.refetch,
|
|
6308
6358
|
isFetchingAirmet = _useAirmetList.isFetching;
|
|
6309
|
-
var _useSigmetList = useSigmetList(
|
|
6359
|
+
var _useSigmetList = useSigmetList(isSigmetDisabled, timeFilter),
|
|
6310
6360
|
sigmetWarnings = _useSigmetList.data,
|
|
6311
6361
|
refetchSigmet = _useSigmetList.refetch,
|
|
6312
6362
|
isFetchingSigmet = _useSigmetList.isFetching;
|
|
@@ -6320,9 +6370,15 @@ var useWarnings = function useWarnings(disabled, timeFilter) {
|
|
|
6320
6370
|
return concat(publicWarnings || [], transformedSigmets, transformedAirmets);
|
|
6321
6371
|
}, [sigmetWarnings, airmetWarnings, publicWarnings]);
|
|
6322
6372
|
var refetchWarnings = function refetchWarnings() {
|
|
6323
|
-
|
|
6324
|
-
|
|
6325
|
-
|
|
6373
|
+
if (hasPublicWarningsBaseUrl) {
|
|
6374
|
+
void refetchPublicWarnings();
|
|
6375
|
+
}
|
|
6376
|
+
if (hasAirmetBaseUrl) {
|
|
6377
|
+
void refetchAirmet();
|
|
6378
|
+
}
|
|
6379
|
+
if (hasSigmetBaseUrl) {
|
|
6380
|
+
void refetchSigmet();
|
|
6381
|
+
}
|
|
6326
6382
|
};
|
|
6327
6383
|
var isFetching = isFetchingPublicWarnings || isFetchingAirmet || isFetchingSigmet;
|
|
6328
6384
|
return {
|
|
@@ -6378,47 +6434,41 @@ function useAutoRefetchOnExpiry(combinedWarnings, refetchWarnings) {
|
|
|
6378
6434
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
6379
6435
|
* */
|
|
6380
6436
|
var EMPTY_WARNING_FORM_STATE = {};
|
|
6381
|
-
var
|
|
6382
|
-
if (store != null && store.
|
|
6383
|
-
return store.
|
|
6437
|
+
var selectWarningsFormState = function selectWarningsFormState(store) {
|
|
6438
|
+
if (store != null && store.warningsForm) {
|
|
6439
|
+
return store.warningsForm;
|
|
6384
6440
|
}
|
|
6385
6441
|
return EMPTY_WARNING_FORM_STATE;
|
|
6386
6442
|
};
|
|
6387
|
-
createSelector(
|
|
6388
|
-
return
|
|
6443
|
+
var getPublicWarning = createSelector(selectWarningsFormState, function (store) {
|
|
6444
|
+
return store == null ? void 0 : store.warning;
|
|
6389
6445
|
});
|
|
6390
|
-
var
|
|
6391
|
-
|
|
6446
|
+
var getPublicWarningStatus = createSelector(selectWarningsFormState, function (store) {
|
|
6447
|
+
var _store$warning;
|
|
6448
|
+
return store == null || (_store$warning = store.warning) == null ? void 0 : _store$warning.status;
|
|
6392
6449
|
});
|
|
6393
|
-
var
|
|
6394
|
-
var
|
|
6395
|
-
return
|
|
6450
|
+
var getPublicWarningId = createSelector(selectWarningsFormState, function (store) {
|
|
6451
|
+
var _store$warning2;
|
|
6452
|
+
return store == null || (_store$warning2 = store.warning) == null ? void 0 : _store$warning2.warningDetail.id;
|
|
6396
6453
|
});
|
|
6397
|
-
var
|
|
6398
|
-
var
|
|
6399
|
-
return
|
|
6454
|
+
var getPublicWarningAreas = createSelector(selectWarningsFormState, function (store) {
|
|
6455
|
+
var _store$warning3;
|
|
6456
|
+
return (store == null || (_store$warning3 = store.warning) == null ? void 0 : _store$warning3.warningDetail.areas) || [];
|
|
6400
6457
|
});
|
|
6401
|
-
var
|
|
6402
|
-
|
|
6403
|
-
return (publicWarningStore == null || (_publicWarningStore$w3 = publicWarningStore.warning) == null ? void 0 : _publicWarningStore$w3.warningDetail.areas) || [];
|
|
6458
|
+
var getPublicWarningFormState = createSelector(selectWarningsFormState, function (store) {
|
|
6459
|
+
return (store == null ? void 0 : store.formState) || '';
|
|
6404
6460
|
});
|
|
6405
|
-
var
|
|
6406
|
-
return (
|
|
6461
|
+
var getSelectedWarningId = createSelector(selectWarningsFormState, function (store) {
|
|
6462
|
+
return (store == null ? void 0 : store.selectedWarningId) || '';
|
|
6407
6463
|
});
|
|
6408
|
-
createSelector(
|
|
6409
|
-
return
|
|
6464
|
+
var getSelectedPublicIsFormDirty = createSelector(selectWarningsFormState, function (store) {
|
|
6465
|
+
return (store == null ? void 0 : store.isFormDirty) || false;
|
|
6410
6466
|
});
|
|
6411
|
-
var
|
|
6412
|
-
return
|
|
6467
|
+
var getWarningType = createSelector(selectWarningsFormState, function (store) {
|
|
6468
|
+
return store == null ? void 0 : store.warningType;
|
|
6413
6469
|
});
|
|
6414
|
-
var
|
|
6415
|
-
return (
|
|
6416
|
-
});
|
|
6417
|
-
var getWarningType = createSelector(selectPublicWarningState, function (publicWarningStore) {
|
|
6418
|
-
return publicWarningStore == null ? void 0 : publicWarningStore.warningType;
|
|
6419
|
-
});
|
|
6420
|
-
var getPublicWarningPanelId = createSelector(selectPublicWarningState, function (publicWarningStore) {
|
|
6421
|
-
return (publicWarningStore == null ? void 0 : publicWarningStore.panelId) || '';
|
|
6470
|
+
var getPublicWarningPanelId = createSelector(selectWarningsFormState, function (store) {
|
|
6471
|
+
return (store == null ? void 0 : store.panelId) || '';
|
|
6422
6472
|
});
|
|
6423
6473
|
|
|
6424
6474
|
var AreaObjectFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
@@ -6451,6 +6501,80 @@ var AreaObjectFilter = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
6451
6501
|
});
|
|
6452
6502
|
});
|
|
6453
6503
|
|
|
6504
|
+
var RowComponent$1 = function RowComponent(_ref) {
|
|
6505
|
+
var index = _ref.index,
|
|
6506
|
+
style = _ref.style,
|
|
6507
|
+
items = _ref.items,
|
|
6508
|
+
selectedAreas = _ref.selectedAreas,
|
|
6509
|
+
onAddArea = _ref.onAddArea,
|
|
6510
|
+
onRemoveArea = _ref.onRemoveArea,
|
|
6511
|
+
isChangeAreaDisabled = _ref.isChangeAreaDisabled,
|
|
6512
|
+
shouldDisableRemoveWarning = _ref.shouldDisableRemoveWarning,
|
|
6513
|
+
t = _ref.t;
|
|
6514
|
+
var listItem = items[index];
|
|
6515
|
+
if (typeof listItem === 'string') {
|
|
6516
|
+
return jsx(Typography, {
|
|
6517
|
+
style: style,
|
|
6518
|
+
sx: {
|
|
6519
|
+
paddingLeft: 2.5,
|
|
6520
|
+
paddingBottom: 0.5,
|
|
6521
|
+
paddingTop: 1,
|
|
6522
|
+
opacity: 0.67,
|
|
6523
|
+
lineHeight: '16px',
|
|
6524
|
+
overflow: 'hidden',
|
|
6525
|
+
whiteSpace: 'nowrap',
|
|
6526
|
+
textOverflow: 'ellipsis'
|
|
6527
|
+
},
|
|
6528
|
+
variant: "caption",
|
|
6529
|
+
children: listItem
|
|
6530
|
+
}, index);
|
|
6531
|
+
}
|
|
6532
|
+
return jsx(ContainerDiv, {
|
|
6533
|
+
children: jsx(ListItem, {
|
|
6534
|
+
disablePadding: true,
|
|
6535
|
+
secondaryAction: jsx(ListItemAction, {
|
|
6536
|
+
isDisabled: isChangeAreaDisabled,
|
|
6537
|
+
listItem: listItem,
|
|
6538
|
+
onAddArea: onAddArea,
|
|
6539
|
+
onRemoveArea: onRemoveArea,
|
|
6540
|
+
selectedAreas: selectedAreas,
|
|
6541
|
+
shouldDisableRemoveWarning: shouldDisableRemoveWarning,
|
|
6542
|
+
t: t
|
|
6543
|
+
}),
|
|
6544
|
+
style: style,
|
|
6545
|
+
children: jsx(Paper, {
|
|
6546
|
+
elevation: 0,
|
|
6547
|
+
sx: {
|
|
6548
|
+
width: '100%',
|
|
6549
|
+
margin: 0.25,
|
|
6550
|
+
backgroundColor: 'geowebColors.background.surface',
|
|
6551
|
+
border: 'solid 1px',
|
|
6552
|
+
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
6553
|
+
},
|
|
6554
|
+
children: jsxs(Stack, {
|
|
6555
|
+
children: [jsx(Typography, {
|
|
6556
|
+
sx: {
|
|
6557
|
+
lineHeight: '16px',
|
|
6558
|
+
maxHeight: '32px',
|
|
6559
|
+
overflow: 'hidden'
|
|
6560
|
+
},
|
|
6561
|
+
variant: "caption",
|
|
6562
|
+
children: listItem.objectName
|
|
6563
|
+
}), !isArea(listItem) && jsx(Typography, {
|
|
6564
|
+
sx: {
|
|
6565
|
+
opacity: 0.67,
|
|
6566
|
+
lineHeight: '16px',
|
|
6567
|
+
maxHeight: '32px',
|
|
6568
|
+
overflow: 'hidden'
|
|
6569
|
+
},
|
|
6570
|
+
variant: "caption",
|
|
6571
|
+
children: getDisplayDate(listItem.lastUpdatedTime)
|
|
6572
|
+
})]
|
|
6573
|
+
})
|
|
6574
|
+
})
|
|
6575
|
+
}, listItem.id)
|
|
6576
|
+
});
|
|
6577
|
+
};
|
|
6454
6578
|
var OBJECT_ITEM_SIZE = 44;
|
|
6455
6579
|
var OBJECT_ITEM_SIZE_SMALL_WIDTH = 72;
|
|
6456
6580
|
var HEADER_ITEM_SIZE = 28;
|
|
@@ -6482,9 +6606,9 @@ var isArea = function isArea(item) {
|
|
|
6482
6606
|
return !((_item$keywords = item.keywords) != null && _item$keywords.includes('Objects'));
|
|
6483
6607
|
};
|
|
6484
6608
|
var getListInclHeaders = function getListInclHeaders(items, translateFn) {
|
|
6485
|
-
var _items$reduce = items.reduce(function (
|
|
6486
|
-
var objects =
|
|
6487
|
-
areas =
|
|
6609
|
+
var _items$reduce = items.reduce(function (_ref2, item) {
|
|
6610
|
+
var objects = _ref2.objects,
|
|
6611
|
+
areas = _ref2.areas;
|
|
6488
6612
|
var isObject = !isArea(item);
|
|
6489
6613
|
if (isObject) {
|
|
6490
6614
|
return {
|
|
@@ -6522,15 +6646,15 @@ var getLabel = function getLabel(selectedAreas, isAreaSelected) {
|
|
|
6522
6646
|
var getDisplayDate = function getDisplayDate(date) {
|
|
6523
6647
|
return dateUtils.dateToString(dateUtils.utc(date), dateUtils.DATE_FORMAT_NAME_OF_DAY) + " UTC";
|
|
6524
6648
|
};
|
|
6525
|
-
var ListItemAction = function ListItemAction(
|
|
6526
|
-
var listItem =
|
|
6527
|
-
selectedAreas =
|
|
6528
|
-
onAddArea =
|
|
6529
|
-
onRemoveArea =
|
|
6530
|
-
isDisabled =
|
|
6531
|
-
t =
|
|
6532
|
-
|
|
6533
|
-
shouldDisableRemoveWarning =
|
|
6649
|
+
var ListItemAction = function ListItemAction(_ref3) {
|
|
6650
|
+
var listItem = _ref3.listItem,
|
|
6651
|
+
selectedAreas = _ref3.selectedAreas,
|
|
6652
|
+
onAddArea = _ref3.onAddArea,
|
|
6653
|
+
onRemoveArea = _ref3.onRemoveArea,
|
|
6654
|
+
isDisabled = _ref3.isDisabled,
|
|
6655
|
+
t = _ref3.t,
|
|
6656
|
+
_ref3$shouldDisableRe = _ref3.shouldDisableRemoveWarning,
|
|
6657
|
+
shouldDisableRemoveWarning = _ref3$shouldDisableRe === void 0 ? false : _ref3$shouldDisableRe;
|
|
6534
6658
|
var isAreaSelected = !!selectedAreas.find(function (area) {
|
|
6535
6659
|
return area.objectName === listItem.objectName;
|
|
6536
6660
|
});
|
|
@@ -6586,35 +6710,29 @@ var ContainerDiv = styled('div')(function () {
|
|
|
6586
6710
|
}
|
|
6587
6711
|
};
|
|
6588
6712
|
});
|
|
6589
|
-
var AreasObjects = function AreasObjects(
|
|
6590
|
-
var drawingListItems =
|
|
6591
|
-
|
|
6592
|
-
isLoading =
|
|
6593
|
-
|
|
6594
|
-
hasError =
|
|
6595
|
-
filterRef =
|
|
6596
|
-
|
|
6597
|
-
onAddArea =
|
|
6598
|
-
|
|
6599
|
-
onRemoveArea =
|
|
6600
|
-
|
|
6601
|
-
selectedAreas =
|
|
6602
|
-
|
|
6603
|
-
isChangeAreaDisabled =
|
|
6604
|
-
|
|
6605
|
-
shouldDisableRemoveWarning =
|
|
6713
|
+
var AreasObjects = function AreasObjects(_ref4) {
|
|
6714
|
+
var drawingListItems = _ref4.drawingListItems,
|
|
6715
|
+
_ref4$isLoading = _ref4.isLoading,
|
|
6716
|
+
isLoading = _ref4$isLoading === void 0 ? false : _ref4$isLoading,
|
|
6717
|
+
_ref4$hasError = _ref4.hasError,
|
|
6718
|
+
hasError = _ref4$hasError === void 0 ? false : _ref4$hasError,
|
|
6719
|
+
filterRef = _ref4.filterRef,
|
|
6720
|
+
_ref4$onAddArea = _ref4.onAddArea,
|
|
6721
|
+
onAddArea = _ref4$onAddArea === void 0 ? function () {} : _ref4$onAddArea,
|
|
6722
|
+
_ref4$onRemoveArea = _ref4.onRemoveArea,
|
|
6723
|
+
onRemoveArea = _ref4$onRemoveArea === void 0 ? function () {} : _ref4$onRemoveArea,
|
|
6724
|
+
_ref4$selectedAreas = _ref4.selectedAreas,
|
|
6725
|
+
selectedAreas = _ref4$selectedAreas === void 0 ? [] : _ref4$selectedAreas,
|
|
6726
|
+
_ref4$isChangeAreaDis = _ref4.isChangeAreaDisabled,
|
|
6727
|
+
isChangeAreaDisabled = _ref4$isChangeAreaDis === void 0 ? true : _ref4$isChangeAreaDis,
|
|
6728
|
+
_ref4$shouldDisableRe = _ref4.shouldDisableRemoveWarning,
|
|
6729
|
+
shouldDisableRemoveWarning = _ref4$shouldDisableRe === void 0 ? false : _ref4$shouldDisableRe;
|
|
6606
6730
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
6607
6731
|
t = _useWarningsTranslati.t;
|
|
6608
|
-
var listRef = React.useRef(null);
|
|
6609
6732
|
var _getListInclHeaders = getListInclHeaders(drawingListItems, t),
|
|
6610
6733
|
objects = _getListInclHeaders.objects,
|
|
6611
6734
|
areas = _getListInclHeaders.areas;
|
|
6612
6735
|
var filterHeight = useGetFilterHeight(filterRef);
|
|
6613
|
-
React.useEffect(function () {
|
|
6614
|
-
if (listRef.current !== null) {
|
|
6615
|
-
listRef.current.resetAfterIndex(0, true);
|
|
6616
|
-
}
|
|
6617
|
-
}, [drawingListItems]);
|
|
6618
6736
|
var items = [objects.title].concat(objects.items, [areas.title], areas.items);
|
|
6619
6737
|
var getItemSize = function getItemSize(width, index) {
|
|
6620
6738
|
var item = items[index];
|
|
@@ -6624,109 +6742,44 @@ var AreasObjects = function AreasObjects(_ref3) {
|
|
|
6624
6742
|
return HEADER_ITEM_SIZE;
|
|
6625
6743
|
};
|
|
6626
6744
|
var totalContainerHeight = hasError ? filterHeight + ERROR_HEIGHT : filterHeight;
|
|
6745
|
+
var ref = useRef(null);
|
|
6746
|
+
var _React$useState2 = React.useState(0),
|
|
6747
|
+
width = _React$useState2[0],
|
|
6748
|
+
setWidth = _React$useState2[1];
|
|
6749
|
+
React.useEffect(function () {
|
|
6750
|
+
var _ref$current;
|
|
6751
|
+
setWidth(((_ref$current = ref.current) == null ? void 0 : _ref$current.clientWidth) || 0);
|
|
6752
|
+
}, [ref]);
|
|
6627
6753
|
return jsx(Box, {
|
|
6754
|
+
ref: ref,
|
|
6628
6755
|
sx: {
|
|
6629
6756
|
height: "calc(100% - " + totalContainerHeight + "px)"
|
|
6630
6757
|
},
|
|
6631
|
-
children: jsx(
|
|
6632
|
-
|
|
6633
|
-
|
|
6634
|
-
|
|
6635
|
-
}
|
|
6758
|
+
children: !isLoading && drawingListItems.length === 0 ? jsx(Typography, {
|
|
6759
|
+
sx: {
|
|
6760
|
+
paddingLeft: '16px',
|
|
6761
|
+
paddingTop: '8px'
|
|
6636
6762
|
},
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
|
|
6643
|
-
|
|
6644
|
-
|
|
6645
|
-
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
6649
|
-
|
|
6650
|
-
|
|
6651
|
-
|
|
6652
|
-
|
|
6653
|
-
|
|
6654
|
-
|
|
6655
|
-
|
|
6656
|
-
|
|
6657
|
-
return getItemSize(width, index);
|
|
6658
|
-
},
|
|
6659
|
-
ref: listRef,
|
|
6660
|
-
width: width,
|
|
6661
|
-
children: function children(_ref5) {
|
|
6662
|
-
var index = _ref5.index,
|
|
6663
|
-
style = _ref5.style;
|
|
6664
|
-
var listItem = items[index];
|
|
6665
|
-
if (typeof listItem === 'string') {
|
|
6666
|
-
return jsx(Typography, {
|
|
6667
|
-
style: style,
|
|
6668
|
-
sx: {
|
|
6669
|
-
paddingLeft: 2.5,
|
|
6670
|
-
paddingBottom: 0.5,
|
|
6671
|
-
paddingTop: 1,
|
|
6672
|
-
opacity: 0.67,
|
|
6673
|
-
lineHeight: '16px',
|
|
6674
|
-
overflow: 'hidden',
|
|
6675
|
-
whiteSpace: 'nowrap',
|
|
6676
|
-
textOverflow: 'ellipsis'
|
|
6677
|
-
},
|
|
6678
|
-
variant: "caption",
|
|
6679
|
-
children: listItem
|
|
6680
|
-
}, index);
|
|
6681
|
-
}
|
|
6682
|
-
return jsx(ContainerDiv, {
|
|
6683
|
-
children: jsx(ListItem, {
|
|
6684
|
-
disablePadding: true,
|
|
6685
|
-
secondaryAction: jsx(ListItemAction, {
|
|
6686
|
-
isDisabled: isChangeAreaDisabled,
|
|
6687
|
-
listItem: listItem,
|
|
6688
|
-
onAddArea: onAddArea,
|
|
6689
|
-
onRemoveArea: onRemoveArea,
|
|
6690
|
-
selectedAreas: selectedAreas,
|
|
6691
|
-
shouldDisableRemoveWarning: shouldDisableRemoveWarning,
|
|
6692
|
-
t: t
|
|
6693
|
-
}),
|
|
6694
|
-
style: style,
|
|
6695
|
-
children: jsx(Paper, {
|
|
6696
|
-
elevation: 0,
|
|
6697
|
-
sx: {
|
|
6698
|
-
width: '100%',
|
|
6699
|
-
margin: 0.25,
|
|
6700
|
-
backgroundColor: 'geowebColors.background.surface',
|
|
6701
|
-
border: 'solid 1px',
|
|
6702
|
-
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
6703
|
-
},
|
|
6704
|
-
children: jsxs(Stack, {
|
|
6705
|
-
children: [jsx(Typography, {
|
|
6706
|
-
sx: {
|
|
6707
|
-
lineHeight: '16px',
|
|
6708
|
-
maxHeight: '32px',
|
|
6709
|
-
overflow: 'hidden'
|
|
6710
|
-
},
|
|
6711
|
-
variant: "caption",
|
|
6712
|
-
children: listItem.objectName
|
|
6713
|
-
}), !isArea(listItem) && jsx(Typography, {
|
|
6714
|
-
sx: {
|
|
6715
|
-
opacity: 0.67,
|
|
6716
|
-
lineHeight: '16px',
|
|
6717
|
-
maxHeight: '32px',
|
|
6718
|
-
overflow: 'hidden'
|
|
6719
|
-
},
|
|
6720
|
-
variant: "caption",
|
|
6721
|
-
children: getDisplayDate(listItem.lastUpdatedTime)
|
|
6722
|
-
})]
|
|
6723
|
-
})
|
|
6724
|
-
})
|
|
6725
|
-
}, listItem.id)
|
|
6726
|
-
});
|
|
6727
|
-
}
|
|
6728
|
-
})
|
|
6729
|
-
});
|
|
6763
|
+
variant: "body1",
|
|
6764
|
+
children: t('area-object-loader-no-areas-objects')
|
|
6765
|
+
}) : jsx(List, {
|
|
6766
|
+
rowComponent: RowComponent$1,
|
|
6767
|
+
rowCount: items.length,
|
|
6768
|
+
rowHeight: function rowHeight(index) {
|
|
6769
|
+
return getItemSize(width, index);
|
|
6770
|
+
},
|
|
6771
|
+
rowProps: {
|
|
6772
|
+
items: items,
|
|
6773
|
+
selectedAreas: selectedAreas,
|
|
6774
|
+
onAddArea: onAddArea,
|
|
6775
|
+
onRemoveArea: onRemoveArea,
|
|
6776
|
+
isChangeAreaDisabled: isChangeAreaDisabled,
|
|
6777
|
+
shouldDisableRemoveWarning: shouldDisableRemoveWarning,
|
|
6778
|
+
t: t
|
|
6779
|
+
},
|
|
6780
|
+
style: {
|
|
6781
|
+
height: '100%',
|
|
6782
|
+
width: '100%'
|
|
6730
6783
|
}
|
|
6731
6784
|
})
|
|
6732
6785
|
});
|
|
@@ -6864,12 +6917,30 @@ var AreaObjectLoader = function AreaObjectLoader(_ref) {
|
|
|
6864
6917
|
});
|
|
6865
6918
|
};
|
|
6866
6919
|
|
|
6920
|
+
var EXTENT_PADDING = 50;
|
|
6921
|
+
function getGeojsonExtent(featureCollection, viewSrs, dataSrs) {
|
|
6922
|
+
var format = new GeoJSON();
|
|
6923
|
+
var features = format.readFeatures(featureCollection, {
|
|
6924
|
+
dataProjection: dataSrs,
|
|
6925
|
+
featureProjection: viewSrs
|
|
6926
|
+
});
|
|
6927
|
+
var extent = createEmpty();
|
|
6928
|
+
for (var _iterator = _createForOfIteratorHelperLoose(features), _step; !(_step = _iterator()).done;) {
|
|
6929
|
+
var feat = _step.value;
|
|
6930
|
+
var geo = feat.getGeometry();
|
|
6931
|
+
if (geo) {
|
|
6932
|
+
extend(extent, geo.getExtent());
|
|
6933
|
+
}
|
|
6934
|
+
}
|
|
6935
|
+
return extent;
|
|
6936
|
+
}
|
|
6867
6937
|
var WarningsMapView = function WarningsMapView(_ref) {
|
|
6868
6938
|
var _defaultMapPreset$lay, _defaultMapPreset$lay2, _viewRef$current;
|
|
6869
6939
|
var geojsonFeature = _ref.geojsonFeature,
|
|
6870
6940
|
defaultMapPreset = _ref.defaultMapPreset,
|
|
6871
6941
|
_ref$isSnapshot = _ref.isSnapshot,
|
|
6872
6942
|
isSnapshot = _ref$isSnapshot === void 0 ? false : _ref$isSnapshot;
|
|
6943
|
+
var containerRef = useRef(null);
|
|
6873
6944
|
var defaultMapPresetBbox = geojsonFeature != null && geojsonFeature.features.length ? undefined : defaultBbox;
|
|
6874
6945
|
var defaultBbox$1 = (defaultMapPreset == null ? void 0 : defaultMapPreset.proj) || defaultMapPresetBbox;
|
|
6875
6946
|
var defaultBaseLayer = (defaultMapPreset == null || (_defaultMapPreset$lay = defaultMapPreset.layers) == null ? void 0 : _defaultMapPreset$lay.find(function (layer) {
|
|
@@ -6885,12 +6956,36 @@ var WarningsMapView = function WarningsMapView(_ref) {
|
|
|
6885
6956
|
};
|
|
6886
6957
|
var viewRef = useRef(viewUtils.makeView());
|
|
6887
6958
|
React.useEffect(function () {
|
|
6959
|
+
var _geojsonFeature$featu;
|
|
6888
6960
|
if (viewRef.current.getProjection().getCode() !== (defaultBbox$1 == null ? void 0 : defaultBbox$1.srs)) {
|
|
6889
6961
|
viewRef.current = viewUtils.makeView(defaultBbox$1 == null ? void 0 : defaultBbox$1.srs);
|
|
6890
6962
|
}
|
|
6891
|
-
|
|
6963
|
+
var isNew = (defaultBbox$1 == null ? void 0 : defaultBbox$1.bbox) && !(geojsonFeature != null && geojsonFeature.features.length);
|
|
6964
|
+
if (isNew) {
|
|
6965
|
+
viewUtils.setViewFromExtent(viewRef.current, defaultBbox$1 == null ? void 0 : defaultBbox$1.bbox);
|
|
6966
|
+
return;
|
|
6967
|
+
}
|
|
6968
|
+
if (geojsonFeature != null && (_geojsonFeature$featu = geojsonFeature.features) != null && _geojsonFeature$featu.length) {
|
|
6969
|
+
var viewSrs = viewRef.current.getProjection().getCode();
|
|
6970
|
+
var extent = getGeojsonExtent(geojsonFeature, viewSrs, 'EPSG:4326');
|
|
6971
|
+
if (!isEmpty(extent)) {
|
|
6972
|
+
var el = containerRef.current;
|
|
6973
|
+
var rect = el == null ? void 0 : el.getBoundingClientRect();
|
|
6974
|
+
var size = rect && rect.width > 0 && rect.height > 0 ? [Math.round(rect.width), Math.round(rect.height)] : undefined;
|
|
6975
|
+
viewRef.current.fit(extent, {
|
|
6976
|
+
size: size,
|
|
6977
|
+
padding: [EXTENT_PADDING, EXTENT_PADDING, EXTENT_PADDING, EXTENT_PADDING],
|
|
6978
|
+
maxZoom: 12,
|
|
6979
|
+
duration: 0
|
|
6980
|
+
});
|
|
6981
|
+
return;
|
|
6982
|
+
}
|
|
6983
|
+
}
|
|
6984
|
+
// fallback
|
|
6985
|
+
viewUtils.setViewFromFeature(viewRef.current, geojsonFeature);
|
|
6892
6986
|
}, [defaultBbox$1, geojsonFeature]);
|
|
6893
6987
|
return jsx("div", {
|
|
6988
|
+
ref: containerRef,
|
|
6894
6989
|
style: {
|
|
6895
6990
|
height: '200px',
|
|
6896
6991
|
width: '100%'
|
|
@@ -7198,18 +7293,18 @@ var WarningLevel;
|
|
|
7198
7293
|
var LevelColors = {
|
|
7199
7294
|
moderate: {
|
|
7200
7295
|
color: '#FAE21E',
|
|
7201
|
-
textColor: '#
|
|
7202
|
-
borderColor: '#
|
|
7296
|
+
textColor: '#3A3400',
|
|
7297
|
+
borderColor: '#A08F07'
|
|
7203
7298
|
},
|
|
7204
7299
|
severe: {
|
|
7205
7300
|
color: '#E27000',
|
|
7206
7301
|
textColor: '#051039',
|
|
7207
|
-
borderColor: '#
|
|
7302
|
+
borderColor: '#9C4D00'
|
|
7208
7303
|
},
|
|
7209
7304
|
extreme: {
|
|
7210
7305
|
color: '#D62A20',
|
|
7211
7306
|
textColor: '#ffffff',
|
|
7212
|
-
borderColor: '#
|
|
7307
|
+
borderColor: '#890101'
|
|
7213
7308
|
}
|
|
7214
7309
|
};
|
|
7215
7310
|
var getLevelStyle = function getLevelStyle(levelColor) {
|
|
@@ -7327,7 +7422,7 @@ var ProbabilityField = function ProbabilityField(_ref) {
|
|
|
7327
7422
|
var onChangeProbability = function onChangeProbability() {
|
|
7328
7423
|
void trigger('probability');
|
|
7329
7424
|
// We don't want to trigger the missing value validation
|
|
7330
|
-
if (!isEmpty(getValues('level'))) {
|
|
7425
|
+
if (!isEmpty$1(getValues('level'))) {
|
|
7331
7426
|
void trigger('level');
|
|
7332
7427
|
}
|
|
7333
7428
|
};
|
|
@@ -7436,7 +7531,7 @@ var _isMaxHoursAfterCurrentTime = function isMaxHoursAfterCurrentTime(value, t)
|
|
|
7436
7531
|
});
|
|
7437
7532
|
};
|
|
7438
7533
|
var _isMinHoursAfterValidFrom = function isMinHoursAfterValidFrom(value, validFromValue, t) {
|
|
7439
|
-
if (isEmpty(value) || isEmpty(validFromValue) || !dateUtils.isValidIsoDateString(validFromValue)) {
|
|
7534
|
+
if (isEmpty$1(value) || isEmpty$1(validFromValue) || !dateUtils.isValidIsoDateString(validFromValue)) {
|
|
7440
7535
|
return true;
|
|
7441
7536
|
}
|
|
7442
7537
|
var duration = dateUtils.differenceInHours(new Date(value), new Date(validFromValue));
|
|
@@ -10451,7 +10546,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10451
10546
|
_ref$warningType = _ref.warningType,
|
|
10452
10547
|
warningType = _ref$warningType === void 0 ? 'public' : _ref$warningType,
|
|
10453
10548
|
mode = _ref.mode;
|
|
10454
|
-
var _useSelector = useSelector(
|
|
10549
|
+
var _useSelector = useSelector(selectWarningsFormState),
|
|
10455
10550
|
warning = _useSelector.warning,
|
|
10456
10551
|
object = _useSelector.object,
|
|
10457
10552
|
formState = _useSelector.formState,
|
|
@@ -10496,7 +10591,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10496
10591
|
};
|
|
10497
10592
|
}();
|
|
10498
10593
|
var clearForm = function clearForm() {
|
|
10499
|
-
dispatch(
|
|
10594
|
+
dispatch(warningsFormActions.removeAllAreas());
|
|
10500
10595
|
};
|
|
10501
10596
|
var closeForm = function closeForm() {
|
|
10502
10597
|
dispatch(uiActions.setToggleOpenDialog({
|
|
@@ -10544,7 +10639,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10544
10639
|
case 13:
|
|
10545
10640
|
if ((_result = result) != null && _result.uuid) {
|
|
10546
10641
|
setSelectedUUID == null || setSelectedUUID(result.uuid);
|
|
10547
|
-
dispatch(
|
|
10642
|
+
dispatch(warningsFormActions.setSelectedWarningId(result.uuid));
|
|
10548
10643
|
}
|
|
10549
10644
|
return _context2.abrupt("return", result);
|
|
10550
10645
|
case 15:
|
|
@@ -10585,7 +10680,7 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10585
10680
|
};
|
|
10586
10681
|
}();
|
|
10587
10682
|
var onFormDirty = function onFormDirty(isFormDirty) {
|
|
10588
|
-
dispatch(
|
|
10683
|
+
dispatch(warningsFormActions.setFormDirty({
|
|
10589
10684
|
isFormDirty: isFormDirty
|
|
10590
10685
|
}));
|
|
10591
10686
|
};
|
|
@@ -10625,12 +10720,12 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
|
|
|
10625
10720
|
}));
|
|
10626
10721
|
};
|
|
10627
10722
|
var onSetViewModeResetArea = function onSetViewModeResetArea(area) {
|
|
10628
|
-
dispatch(
|
|
10723
|
+
dispatch(warningsFormActions.addArea({
|
|
10629
10724
|
area: area[0]
|
|
10630
10725
|
}));
|
|
10631
10726
|
};
|
|
10632
10727
|
var setWarningLevel = function setWarningLevel(level) {
|
|
10633
|
-
dispatch(
|
|
10728
|
+
dispatch(warningsFormActions.setWarningLevel(level));
|
|
10634
10729
|
};
|
|
10635
10730
|
var selectedMapIds = useSelector(function (state) {
|
|
10636
10731
|
return genericSelectors.getLinkedMaps(state, panelId);
|
|
@@ -10847,7 +10942,7 @@ var AreaObjectLoaderConnect = function AreaObjectLoaderConnect(_ref) {
|
|
|
10847
10942
|
var onAddArea = function onAddArea(_ref2) {
|
|
10848
10943
|
var geoJSON = _ref2.geoJSON,
|
|
10849
10944
|
objectName = _ref2.objectName;
|
|
10850
|
-
dispatch(
|
|
10945
|
+
dispatch(warningsFormActions.addArea({
|
|
10851
10946
|
area: {
|
|
10852
10947
|
geoJSON: geoJSON,
|
|
10853
10948
|
objectName: objectName
|
|
@@ -10857,7 +10952,7 @@ var AreaObjectLoaderConnect = function AreaObjectLoaderConnect(_ref) {
|
|
|
10857
10952
|
var onRemoveArea = function onRemoveArea(_ref3) {
|
|
10858
10953
|
var geoJSON = _ref3.geoJSON,
|
|
10859
10954
|
objectName = _ref3.objectName;
|
|
10860
|
-
dispatch(
|
|
10955
|
+
dispatch(warningsFormActions.removeArea({
|
|
10861
10956
|
area: {
|
|
10862
10957
|
geoJSON: geoJSON,
|
|
10863
10958
|
objectName: objectName
|
|
@@ -10969,7 +11064,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
10969
11064
|
var shouldGiveEditorWarning = React.useCallback(function (newEditor, oldEditor) {
|
|
10970
11065
|
var oldEditorIsYou = oldEditor && oldEditor === (auth == null ? void 0 : auth.username);
|
|
10971
11066
|
if (oldEditorIsYou && newEditor && newEditor !== oldEditor) {
|
|
10972
|
-
dispatch(
|
|
11067
|
+
dispatch(warningsFormActions.setFormError({
|
|
10973
11068
|
severity: 'warning',
|
|
10974
11069
|
message: TAKEOVER_MESSAGE
|
|
10975
11070
|
}));
|
|
@@ -11002,7 +11097,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11002
11097
|
}, [editor]);
|
|
11003
11098
|
React.useEffect(function () {
|
|
11004
11099
|
if ((selectedWarning == null ? void 0 : selectedWarning.id) !== (previousSelectedWarning == null ? void 0 : previousSelectedWarning.id)) {
|
|
11005
|
-
dispatch(
|
|
11100
|
+
dispatch(warningsFormActions.removeFormError());
|
|
11006
11101
|
}
|
|
11007
11102
|
}, [selectedWarning == null ? void 0 : selectedWarning.id, previousSelectedWarning == null ? void 0 : previousSelectedWarning.id, dispatch]);
|
|
11008
11103
|
React.useEffect(function () {
|
|
@@ -11059,7 +11154,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11059
11154
|
}) : warning;
|
|
11060
11155
|
});
|
|
11061
11156
|
});
|
|
11062
|
-
dispatch(
|
|
11157
|
+
dispatch(warningsFormActions.setFormValues({
|
|
11063
11158
|
formState: isReadOnly ? 'readonly' : ''
|
|
11064
11159
|
}));
|
|
11065
11160
|
dispatch(uiActions.setToggleOpenDialog({
|
|
@@ -11087,7 +11182,7 @@ var PublicWarningsFormDialogConnect = function PublicWarningsFormDialogConnect(_
|
|
|
11087
11182
|
// correct editor is already set or
|
|
11088
11183
|
// someone else is editor so only have to set to readonly mode
|
|
11089
11184
|
// No need for a BE call
|
|
11090
|
-
dispatch(
|
|
11185
|
+
dispatch(warningsFormActions.setFormValues({
|
|
11091
11186
|
formState: isReadOnly ? 'readonly' : ''
|
|
11092
11187
|
}));
|
|
11093
11188
|
// If the editor was changed in a different window, refetch the warnings
|
|
@@ -11241,15 +11336,28 @@ var NewWarningButton = function NewWarningButton(_ref) {
|
|
|
11241
11336
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
11242
11337
|
t = _useWarningsTranslati.t;
|
|
11243
11338
|
var config = sessionStorageProvider.getConfig();
|
|
11244
|
-
var showMartimeWarningOption = !!config.GW_WARNINGS_MARITIME_WARNINGS;
|
|
11339
|
+
var showMartimeWarningOption = !!config.GW_WARNINGS_MARITIME_WARNINGS && !!config.GW_DRAWINGS_BASE_URL;
|
|
11245
11340
|
var showAirMetOption = !!config.GW_AIRMET_BASE_URL;
|
|
11341
|
+
var showSigmetOption = !!config.GW_SIGMET_BASE_URL;
|
|
11342
|
+
var showPublicWarningOption = !!config.GW_DRAWINGS_BASE_URL;
|
|
11246
11343
|
var _React$useState = React.useState(null),
|
|
11247
11344
|
anchorEl = _React$useState[0],
|
|
11248
11345
|
setAnchorEl = _React$useState[1];
|
|
11249
11346
|
var isOpen = Boolean(anchorEl);
|
|
11347
|
+
var _React$useState2 = React.useState(0),
|
|
11348
|
+
menuMinWidth = _React$useState2[0],
|
|
11349
|
+
setMenuMinWidth = _React$useState2[1];
|
|
11350
|
+
var buttonId = 'newWarningButton';
|
|
11351
|
+
React.useEffect(function () {
|
|
11352
|
+
if (isDefaultOpen) {
|
|
11353
|
+
setAnchorEl(document.getElementById(buttonId));
|
|
11354
|
+
}
|
|
11355
|
+
}, [isDefaultOpen, buttonId]);
|
|
11250
11356
|
var handleClick = function handleClick(event) {
|
|
11251
11357
|
event.stopPropagation();
|
|
11252
11358
|
setAnchorEl(event.currentTarget);
|
|
11359
|
+
var buttonWidth = event.currentTarget.getBoundingClientRect().width;
|
|
11360
|
+
setMenuMinWidth(buttonWidth);
|
|
11253
11361
|
};
|
|
11254
11362
|
var handleClose = function handleClose(event) {
|
|
11255
11363
|
event.stopPropagation();
|
|
@@ -11259,12 +11367,6 @@ var NewWarningButton = function NewWarningButton(_ref) {
|
|
|
11259
11367
|
onCreateWarning(warningType);
|
|
11260
11368
|
handleClose(event);
|
|
11261
11369
|
};
|
|
11262
|
-
var buttonId = 'newWarningButton';
|
|
11263
|
-
React.useEffect(function () {
|
|
11264
|
-
if (isDefaultOpen) {
|
|
11265
|
-
setAnchorEl(document.getElementById(buttonId));
|
|
11266
|
-
}
|
|
11267
|
-
}, [isDefaultOpen, buttonId]);
|
|
11268
11370
|
return jsxs(Fragment, {
|
|
11269
11371
|
children: [jsxs(CustomToggleButton, {
|
|
11270
11372
|
id: buttonId,
|
|
@@ -11309,7 +11411,8 @@ var NewWarningButton = function NewWarningButton(_ref) {
|
|
|
11309
11411
|
},
|
|
11310
11412
|
list: {
|
|
11311
11413
|
style: {
|
|
11312
|
-
padding: '0px'
|
|
11414
|
+
padding: '0px',
|
|
11415
|
+
minWidth: menuMinWidth || undefined
|
|
11313
11416
|
}
|
|
11314
11417
|
}
|
|
11315
11418
|
},
|
|
@@ -11317,28 +11420,28 @@ var NewWarningButton = function NewWarningButton(_ref) {
|
|
|
11317
11420
|
vertical: 'top',
|
|
11318
11421
|
horizontal: 'center'
|
|
11319
11422
|
},
|
|
11320
|
-
children: [jsx(MenuItem, {
|
|
11423
|
+
children: [showPublicWarningOption ? jsx(MenuItem, {
|
|
11321
11424
|
onClick: function onClick(event) {
|
|
11322
11425
|
onCreateNewWarning('public', event);
|
|
11323
11426
|
},
|
|
11324
11427
|
children: jsx(ListItemText, {
|
|
11325
11428
|
children: t('public-warning-title').toUpperCase()
|
|
11326
11429
|
})
|
|
11327
|
-
}, "Public"), showAirMetOption ? jsx(MenuItem, {
|
|
11430
|
+
}, "Public") : null, showAirMetOption ? jsx(MenuItem, {
|
|
11328
11431
|
onClick: function onClick(event) {
|
|
11329
11432
|
onCreateNewWarning('airmet', event);
|
|
11330
11433
|
},
|
|
11331
11434
|
children: jsx(ListItemText, {
|
|
11332
11435
|
children: BUTTON_AIRMET
|
|
11333
11436
|
})
|
|
11334
|
-
}, "Airmet") : null, jsx(MenuItem, {
|
|
11437
|
+
}, "Airmet") : null, showSigmetOption ? jsx(MenuItem, {
|
|
11335
11438
|
onClick: function onClick(event) {
|
|
11336
11439
|
onCreateNewWarning('sigmet', event);
|
|
11337
11440
|
},
|
|
11338
11441
|
children: jsx(ListItemText, {
|
|
11339
11442
|
children: BUTTON_SIGMET
|
|
11340
11443
|
})
|
|
11341
|
-
}, "Sigmet"), showMartimeWarningOption ? jsxs(Fragment, {
|
|
11444
|
+
}, "Sigmet") : null, showMartimeWarningOption ? jsxs(Fragment, {
|
|
11342
11445
|
children: [jsx(MenuItem, {
|
|
11343
11446
|
onClick: function onClick(event) {
|
|
11344
11447
|
onCreateNewWarning('maritimeWarningCoastal', event);
|
|
@@ -12486,6 +12589,55 @@ var FilterList = function FilterList(_ref) {
|
|
|
12486
12589
|
});
|
|
12487
12590
|
};
|
|
12488
12591
|
|
|
12592
|
+
var RowComponent = function RowComponent(_ref) {
|
|
12593
|
+
var index = _ref.index,
|
|
12594
|
+
style = _ref.style,
|
|
12595
|
+
items = _ref.items,
|
|
12596
|
+
expandedSections = _ref.expandedSections,
|
|
12597
|
+
hoveredFeatureId = _ref.hoveredFeatureId,
|
|
12598
|
+
selectedWarningId = _ref.selectedWarningId,
|
|
12599
|
+
onSelectWarning = _ref.onSelectWarning,
|
|
12600
|
+
onEditWarning = _ref.onEditWarning,
|
|
12601
|
+
onDeleteWarning = _ref.onDeleteWarning,
|
|
12602
|
+
onDeleteReviewWarning = _ref.onDeleteReviewWarning,
|
|
12603
|
+
onExpireWarning = _ref.onExpireWarning,
|
|
12604
|
+
onWithdrawWarning = _ref.onWithdrawWarning,
|
|
12605
|
+
toggleExpand = _ref.toggleExpand,
|
|
12606
|
+
timeFilter = _ref.timeFilter,
|
|
12607
|
+
onActionAviationWarning = _ref.onActionAviationWarning,
|
|
12608
|
+
onActionMaritimeWarning = _ref.onActionMaritimeWarning;
|
|
12609
|
+
var warning = items[index];
|
|
12610
|
+
var key = "warning-" + warning.status + "-" + index;
|
|
12611
|
+
if (warning.totalWarnings !== undefined) {
|
|
12612
|
+
var header = warning;
|
|
12613
|
+
return jsx(WarningListItemSeperator, {
|
|
12614
|
+
isExpanded: expandedSections[warning.status],
|
|
12615
|
+
onClick: function onClick() {
|
|
12616
|
+
toggleExpand(!expandedSections[header.status], header.status);
|
|
12617
|
+
},
|
|
12618
|
+
status: header.status,
|
|
12619
|
+
style: style,
|
|
12620
|
+
timeFilter: timeFilter,
|
|
12621
|
+
totalWarnings: header.totalWarnings
|
|
12622
|
+
}, key);
|
|
12623
|
+
}
|
|
12624
|
+
var publicWarning = warning;
|
|
12625
|
+
var highlightedItem = hoveredFeatureId === publicWarning.id;
|
|
12626
|
+
return jsx(WarningListItem, {
|
|
12627
|
+
activeWarningId: selectedWarningId,
|
|
12628
|
+
highlightedItem: highlightedItem,
|
|
12629
|
+
onActionAviationWarning: onActionAviationWarning,
|
|
12630
|
+
onActionMaritimeWarning: onActionMaritimeWarning,
|
|
12631
|
+
onDeleteReviewWarning: onDeleteReviewWarning,
|
|
12632
|
+
onDeleteWarning: onDeleteWarning,
|
|
12633
|
+
onEditWarning: onEditWarning,
|
|
12634
|
+
onExpireWarning: onExpireWarning,
|
|
12635
|
+
onSelectWarning: onSelectWarning,
|
|
12636
|
+
onWithdrawWarning: onWithdrawWarning,
|
|
12637
|
+
style: style,
|
|
12638
|
+
warning: publicWarning
|
|
12639
|
+
}, key);
|
|
12640
|
+
};
|
|
12489
12641
|
var groupWarningsOnStatus = function groupWarningsOnStatus(warnings, sortState) {
|
|
12490
12642
|
var key = sortState.key,
|
|
12491
12643
|
direction = sortState.direction;
|
|
@@ -12523,42 +12675,42 @@ var groupWarningsOnStatus = function groupWarningsOnStatus(warnings, sortState)
|
|
|
12523
12675
|
expired: []
|
|
12524
12676
|
}, groupedWarnings);
|
|
12525
12677
|
};
|
|
12526
|
-
var PublicWarningList = function PublicWarningList(
|
|
12678
|
+
var PublicWarningList = function PublicWarningList(_ref2) {
|
|
12527
12679
|
var _sx, _sx2;
|
|
12528
|
-
var
|
|
12529
|
-
warnings =
|
|
12530
|
-
filterHookState =
|
|
12531
|
-
|
|
12532
|
-
isLoading =
|
|
12533
|
-
error =
|
|
12534
|
-
|
|
12535
|
-
selectedWarningId =
|
|
12536
|
-
lastUpdatedTime =
|
|
12537
|
-
|
|
12538
|
-
onSelectWarning =
|
|
12539
|
-
|
|
12540
|
-
onEditWarning =
|
|
12541
|
-
|
|
12542
|
-
onCreateWarning =
|
|
12543
|
-
|
|
12544
|
-
onDeleteWarning =
|
|
12545
|
-
|
|
12546
|
-
onRefetchWarnings =
|
|
12547
|
-
|
|
12548
|
-
onDeleteReviewWarning =
|
|
12549
|
-
|
|
12550
|
-
onExpireWarning =
|
|
12551
|
-
|
|
12552
|
-
onWithdrawWarning =
|
|
12553
|
-
|
|
12554
|
-
onActionAviationWarning =
|
|
12555
|
-
|
|
12556
|
-
onActionMaritimeWarning =
|
|
12557
|
-
hoveredFeatureId =
|
|
12558
|
-
expandedSections =
|
|
12559
|
-
setExpandedSections =
|
|
12560
|
-
limitAlertCount =
|
|
12561
|
-
showLimitAlert =
|
|
12680
|
+
var _ref2$warnings = _ref2.warnings,
|
|
12681
|
+
warnings = _ref2$warnings === void 0 ? [] : _ref2$warnings,
|
|
12682
|
+
filterHookState = _ref2.filterHookState,
|
|
12683
|
+
_ref2$isLoading = _ref2.isLoading,
|
|
12684
|
+
isLoading = _ref2$isLoading === void 0 ? false : _ref2$isLoading,
|
|
12685
|
+
error = _ref2.error,
|
|
12686
|
+
_ref2$selectedWarning = _ref2.selectedWarningId,
|
|
12687
|
+
selectedWarningId = _ref2$selectedWarning === void 0 ? '' : _ref2$selectedWarning,
|
|
12688
|
+
lastUpdatedTime = _ref2.lastUpdatedTime,
|
|
12689
|
+
_ref2$onSelectWarning = _ref2.onSelectWarning,
|
|
12690
|
+
onSelectWarning = _ref2$onSelectWarning === void 0 ? function () {} : _ref2$onSelectWarning,
|
|
12691
|
+
_ref2$onEditWarning = _ref2.onEditWarning,
|
|
12692
|
+
onEditWarning = _ref2$onEditWarning === void 0 ? function () {} : _ref2$onEditWarning,
|
|
12693
|
+
_ref2$onCreateWarning = _ref2.onCreateWarning,
|
|
12694
|
+
onCreateWarning = _ref2$onCreateWarning === void 0 ? function () {} : _ref2$onCreateWarning,
|
|
12695
|
+
_ref2$onDeleteWarning = _ref2.onDeleteWarning,
|
|
12696
|
+
onDeleteWarning = _ref2$onDeleteWarning === void 0 ? function () {} : _ref2$onDeleteWarning,
|
|
12697
|
+
_ref2$onRefetchWarnin = _ref2.onRefetchWarnings,
|
|
12698
|
+
onRefetchWarnings = _ref2$onRefetchWarnin === void 0 ? function () {} : _ref2$onRefetchWarnin,
|
|
12699
|
+
_ref2$onDeleteReviewW = _ref2.onDeleteReviewWarning,
|
|
12700
|
+
onDeleteReviewWarning = _ref2$onDeleteReviewW === void 0 ? function () {} : _ref2$onDeleteReviewW,
|
|
12701
|
+
_ref2$onExpireWarning = _ref2.onExpireWarning,
|
|
12702
|
+
onExpireWarning = _ref2$onExpireWarning === void 0 ? function () {} : _ref2$onExpireWarning,
|
|
12703
|
+
_ref2$onWithdrawWarni = _ref2.onWithdrawWarning,
|
|
12704
|
+
onWithdrawWarning = _ref2$onWithdrawWarni === void 0 ? function () {} : _ref2$onWithdrawWarni,
|
|
12705
|
+
_ref2$onActionAviatio = _ref2.onActionAviationWarning,
|
|
12706
|
+
onActionAviationWarning = _ref2$onActionAviatio === void 0 ? function () {} : _ref2$onActionAviatio,
|
|
12707
|
+
_ref2$onActionMaritim = _ref2.onActionMaritimeWarning,
|
|
12708
|
+
onActionMaritimeWarning = _ref2$onActionMaritim === void 0 ? function () {} : _ref2$onActionMaritim,
|
|
12709
|
+
hoveredFeatureId = _ref2.hoveredFeatureId,
|
|
12710
|
+
expandedSections = _ref2.expandedSections,
|
|
12711
|
+
setExpandedSections = _ref2.setExpandedSections,
|
|
12712
|
+
limitAlertCount = _ref2.limitAlertCount,
|
|
12713
|
+
showLimitAlert = _ref2.showLimitAlert;
|
|
12562
12714
|
var updateFilter = filterHookState.updateFilter,
|
|
12563
12715
|
allSelected = filterHookState.allSelected,
|
|
12564
12716
|
filterState = filterHookState.filterState,
|
|
@@ -12626,27 +12778,34 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12626
12778
|
return 34;
|
|
12627
12779
|
};
|
|
12628
12780
|
var filterRef = React.useRef(null);
|
|
12629
|
-
var listRef =
|
|
12630
|
-
var resetListIndex = function
|
|
12781
|
+
var listRef = useListRef(null);
|
|
12782
|
+
var resetListIndex = useCallback(function () {
|
|
12631
12783
|
if (listRef.current) {
|
|
12632
|
-
|
|
12784
|
+
var _listRef$current;
|
|
12785
|
+
(_listRef$current = listRef.current) == null || _listRef$current.scrollToRow({
|
|
12786
|
+
index: 0,
|
|
12787
|
+
behavior: 'instant'
|
|
12788
|
+
});
|
|
12633
12789
|
}
|
|
12634
|
-
};
|
|
12790
|
+
}, [listRef]);
|
|
12635
12791
|
React.useEffect(function () {
|
|
12636
12792
|
if (listRef.current) {
|
|
12637
12793
|
resetListIndex();
|
|
12638
12794
|
}
|
|
12639
|
-
}, [warnings]);
|
|
12795
|
+
}, [listRef, resetListIndex, warnings]);
|
|
12640
12796
|
var filterHeight = useGetFilterHeight(filterRef);
|
|
12641
12797
|
React.useEffect(function () {
|
|
12642
12798
|
if (hoveredFeatureId) {
|
|
12643
|
-
var _listRef$
|
|
12799
|
+
var _listRef$current2;
|
|
12644
12800
|
var index = items.findIndex(function (item) {
|
|
12645
12801
|
return item.id === hoveredFeatureId;
|
|
12646
12802
|
});
|
|
12647
|
-
(_listRef$
|
|
12803
|
+
(_listRef$current2 = listRef.current) == null || _listRef$current2.scrollToRow({
|
|
12804
|
+
index: index,
|
|
12805
|
+
behavior: 'smooth'
|
|
12806
|
+
});
|
|
12648
12807
|
}
|
|
12649
|
-
}, [hoveredFeatureId, items]);
|
|
12808
|
+
}, [hoveredFeatureId, items, listRef]);
|
|
12650
12809
|
return jsxs(Fragment, {
|
|
12651
12810
|
children: [isLoading ? jsx(LinearProgress, {
|
|
12652
12811
|
color: "secondary",
|
|
@@ -12781,57 +12940,29 @@ var PublicWarningList = function PublicWarningList(_ref) {
|
|
|
12781
12940
|
height: "calc(100% - " + filterHeight + "px)",
|
|
12782
12941
|
minHeight: '206px'
|
|
12783
12942
|
},
|
|
12784
|
-
children: jsx(
|
|
12785
|
-
|
|
12786
|
-
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
|
|
12790
|
-
|
|
12791
|
-
|
|
12792
|
-
|
|
12793
|
-
|
|
12794
|
-
|
|
12795
|
-
|
|
12796
|
-
|
|
12797
|
-
|
|
12798
|
-
|
|
12799
|
-
|
|
12800
|
-
|
|
12801
|
-
|
|
12802
|
-
|
|
12803
|
-
|
|
12804
|
-
|
|
12805
|
-
|
|
12806
|
-
|
|
12807
|
-
isExpanded: expandedSections[warning.status],
|
|
12808
|
-
onClick: function onClick() {
|
|
12809
|
-
toggleExpand(!expandedSections[header.status], header.status);
|
|
12810
|
-
},
|
|
12811
|
-
status: header.status,
|
|
12812
|
-
style: style,
|
|
12813
|
-
timeFilter: timeFilter,
|
|
12814
|
-
totalWarnings: header.totalWarnings
|
|
12815
|
-
}, key);
|
|
12816
|
-
}
|
|
12817
|
-
var publicWarning = warning;
|
|
12818
|
-
var highlightedItem = hoveredFeatureId === publicWarning.id;
|
|
12819
|
-
return jsx(WarningListItem, {
|
|
12820
|
-
activeWarningId: selectedWarningId,
|
|
12821
|
-
highlightedItem: highlightedItem,
|
|
12822
|
-
onActionAviationWarning: onActionAviationWarning,
|
|
12823
|
-
onActionMaritimeWarning: onActionMaritimeWarning,
|
|
12824
|
-
onDeleteReviewWarning: onDeleteReviewWarning,
|
|
12825
|
-
onDeleteWarning: onDeleteWarning,
|
|
12826
|
-
onEditWarning: onEditWarning,
|
|
12827
|
-
onExpireWarning: onExpireWarning,
|
|
12828
|
-
onSelectWarning: onSelectWarning,
|
|
12829
|
-
onWithdrawWarning: onWithdrawWarning,
|
|
12830
|
-
style: style,
|
|
12831
|
-
warning: publicWarning
|
|
12832
|
-
}, key);
|
|
12833
|
-
}
|
|
12834
|
-
});
|
|
12943
|
+
children: jsx(List, {
|
|
12944
|
+
listRef: listRef,
|
|
12945
|
+
rowComponent: RowComponent,
|
|
12946
|
+
rowCount: items.length,
|
|
12947
|
+
rowHeight: function rowHeight(index) {
|
|
12948
|
+
var _listRef$current3;
|
|
12949
|
+
return getItemSize(index, ((_listRef$current3 = listRef.current) == null || (_listRef$current3 = _listRef$current3.element) == null ? void 0 : _listRef$current3.clientWidth) || 0);
|
|
12950
|
+
},
|
|
12951
|
+
rowProps: {
|
|
12952
|
+
items: items,
|
|
12953
|
+
expandedSections: expandedSections,
|
|
12954
|
+
hoveredFeatureId: hoveredFeatureId,
|
|
12955
|
+
selectedWarningId: selectedWarningId,
|
|
12956
|
+
onSelectWarning: onSelectWarning,
|
|
12957
|
+
onEditWarning: onEditWarning,
|
|
12958
|
+
onDeleteWarning: onDeleteWarning,
|
|
12959
|
+
onDeleteReviewWarning: onDeleteReviewWarning,
|
|
12960
|
+
onExpireWarning: onExpireWarning,
|
|
12961
|
+
onWithdrawWarning: onWithdrawWarning,
|
|
12962
|
+
toggleExpand: toggleExpand,
|
|
12963
|
+
timeFilter: timeFilter,
|
|
12964
|
+
onActionAviationWarning: onActionAviationWarning,
|
|
12965
|
+
onActionMaritimeWarning: onActionMaritimeWarning
|
|
12835
12966
|
}
|
|
12836
12967
|
})
|
|
12837
12968
|
}) : null]
|
|
@@ -12931,38 +13062,18 @@ var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
|
|
|
12931
13062
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
12932
13063
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
12933
13064
|
* */
|
|
12934
|
-
var
|
|
12935
|
-
if (store != null && store.
|
|
12936
|
-
return store.
|
|
13065
|
+
var getWarningsFilters = function getWarningsFilters(store) {
|
|
13066
|
+
if (store != null && store.warningsFilters) {
|
|
13067
|
+
return store.warningsFilters;
|
|
12937
13068
|
}
|
|
12938
13069
|
return null;
|
|
12939
13070
|
};
|
|
12940
|
-
var
|
|
12941
|
-
var _state$publicWarnings, _state$publicWarnings2;
|
|
12942
|
-
return (_state$publicWarnings = state == null || (_state$publicWarnings2 = state.publicWarnings) == null ? void 0 : _state$publicWarnings2.warnings) != null ? _state$publicWarnings : {
|
|
12943
|
-
entities: {},
|
|
12944
|
-
ids: []
|
|
12945
|
-
};
|
|
12946
|
-
}),
|
|
12947
|
-
selectAllPublicWarnings = _publicWarningsAdapte.selectAll;
|
|
12948
|
-
var isPublicWarningsLoading = createSelector(getPublicWarningsStore, function (store) {
|
|
12949
|
-
return (store == null ? void 0 : store.isLoading) || false;
|
|
12950
|
-
});
|
|
12951
|
-
var getPublicWarningsError = createSelector(getPublicWarningsStore, function (store) {
|
|
12952
|
-
return store == null ? void 0 : store.error;
|
|
12953
|
-
});
|
|
12954
|
-
var getPublicWarningsLastUpdatedTime = createSelector(getPublicWarningsStore, function (store) {
|
|
12955
|
-
return store == null ? void 0 : store.lastUpdatedTime;
|
|
12956
|
-
});
|
|
12957
|
-
var getWarningsFilterState = createSelector(getPublicWarningsStore, function (store) {
|
|
12958
|
-
return store == null ? void 0 : store.filterState;
|
|
12959
|
-
}, selectorMemoizationOptions);
|
|
12960
|
-
var getWarningsFilterById = createSelector(getWarningsFilterState, function (_store, panelId) {
|
|
13071
|
+
var getWarningsFilterById = createSelector(getWarningsFilters, function (_store, panelId) {
|
|
12961
13072
|
return panelId;
|
|
12962
13073
|
}, function (filterState, panelId) {
|
|
12963
13074
|
return panelId && filterState != null && filterState[panelId] ? filterState[panelId] : initialFilters;
|
|
12964
13075
|
}, selectorMemoizationOptions);
|
|
12965
|
-
var getWarningsPresetById = createSelector(
|
|
13076
|
+
var getWarningsPresetById = createSelector(getWarningsFilters, function (_store, panelId) {
|
|
12966
13077
|
return panelId;
|
|
12967
13078
|
}, function (filterState, panelId) {
|
|
12968
13079
|
if (!panelId || !(filterState != null && filterState[panelId])) {
|
|
@@ -12977,13 +13088,9 @@ var getWarningsPresetById = createSelector(getWarningsFilterState, function (_st
|
|
|
12977
13088
|
|
|
12978
13089
|
var selectors = /*#__PURE__*/Object.freeze({
|
|
12979
13090
|
__proto__: null,
|
|
12980
|
-
getPublicWarningsError: getPublicWarningsError,
|
|
12981
|
-
getPublicWarningsLastUpdatedTime: getPublicWarningsLastUpdatedTime,
|
|
12982
|
-
getPublicWarningsStore: getPublicWarningsStore,
|
|
12983
13091
|
getWarningsFilterById: getWarningsFilterById,
|
|
12984
|
-
|
|
12985
|
-
|
|
12986
|
-
selectAllPublicWarnings: selectAllPublicWarnings
|
|
13092
|
+
getWarningsFilters: getWarningsFilters,
|
|
13093
|
+
getWarningsPresetById: getWarningsPresetById
|
|
12987
13094
|
});
|
|
12988
13095
|
|
|
12989
13096
|
/* *
|
|
@@ -13472,7 +13579,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
13472
13579
|
}
|
|
13473
13580
|
return _context.abrupt("return");
|
|
13474
13581
|
case 6:
|
|
13475
|
-
dispatch(
|
|
13582
|
+
dispatch(warningsFormActions.openPublicWarningFormDialog(Object.assign({}, warning && {
|
|
13476
13583
|
warning: warning
|
|
13477
13584
|
}, {
|
|
13478
13585
|
formState: formAction,
|
|
@@ -13907,7 +14014,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
13907
14014
|
if (systemUpdate === void 0) {
|
|
13908
14015
|
systemUpdate = false;
|
|
13909
14016
|
}
|
|
13910
|
-
dispatch(
|
|
14017
|
+
dispatch(warningsFiltersActions.setWarningFilters({
|
|
13911
14018
|
filterState: filterState,
|
|
13912
14019
|
panelId: panelId,
|
|
13913
14020
|
systemUpdate: systemUpdate
|
|
@@ -14079,4 +14186,705 @@ ComponentsLookUpWrapper) {
|
|
|
14079
14186
|
}
|
|
14080
14187
|
};
|
|
14081
14188
|
|
|
14082
|
-
|
|
14189
|
+
/* *
|
|
14190
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14191
|
+
* you may not use this file except in compliance with the License.
|
|
14192
|
+
* You may obtain a copy of the License at
|
|
14193
|
+
*
|
|
14194
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14195
|
+
*
|
|
14196
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14197
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14198
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14199
|
+
* See the License for the specific language governing permissions and
|
|
14200
|
+
* limitations under the License.
|
|
14201
|
+
*
|
|
14202
|
+
* Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
14203
|
+
* Copyright 2026 - Finnish Meteorological Institute (FMI)
|
|
14204
|
+
* Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
|
|
14205
|
+
* */
|
|
14206
|
+
var draftStripes = function draftStripes(stripeColor, bgColor) {
|
|
14207
|
+
return "repeating-linear-gradient(\n -45deg,\n transparent,\n transparent 8px,\n " + stripeColor + " 8px,\n " + stripeColor + " 9px\n ), " + bgColor;
|
|
14208
|
+
};
|
|
14209
|
+
var TimelineColors = {
|
|
14210
|
+
// Public warnings - Extreme (Red)
|
|
14211
|
+
extreme: {
|
|
14212
|
+
published: {
|
|
14213
|
+
background: LevelColors.extreme.color,
|
|
14214
|
+
border: LevelColors.extreme.borderColor,
|
|
14215
|
+
iconColor: LevelColors.extreme.textColor,
|
|
14216
|
+
letterColor: LevelColors.extreme.textColor
|
|
14217
|
+
},
|
|
14218
|
+
draft: {
|
|
14219
|
+
background: '#F1D0D0',
|
|
14220
|
+
stripeColor: 'rgba(255, 255, 255, 0.5)',
|
|
14221
|
+
border: LevelColors.extreme.borderColor,
|
|
14222
|
+
iconColor: LevelColors.extreme.color,
|
|
14223
|
+
letterColor: LevelColors.extreme.color
|
|
14224
|
+
},
|
|
14225
|
+
expired: {
|
|
14226
|
+
background: '#EFEFEF',
|
|
14227
|
+
border: LevelColors.extreme.borderColor,
|
|
14228
|
+
iconColor: LevelColors.extreme.color,
|
|
14229
|
+
letterColor: LevelColors.extreme.color
|
|
14230
|
+
}
|
|
14231
|
+
},
|
|
14232
|
+
// Public warnings - Severe (Orange)
|
|
14233
|
+
severe: {
|
|
14234
|
+
published: {
|
|
14235
|
+
background: LevelColors.severe.color,
|
|
14236
|
+
border: LevelColors.severe.borderColor,
|
|
14237
|
+
iconColor: 'white',
|
|
14238
|
+
letterColor: 'white'
|
|
14239
|
+
},
|
|
14240
|
+
draft: {
|
|
14241
|
+
background: '#FADDC2',
|
|
14242
|
+
stripeColor: 'rgba(255, 255, 255, 0.5)',
|
|
14243
|
+
border: '#E27000',
|
|
14244
|
+
iconColor: '#9C4D00',
|
|
14245
|
+
letterColor: '#9C4D00'
|
|
14246
|
+
},
|
|
14247
|
+
expired: {
|
|
14248
|
+
background: '#EFEFEF',
|
|
14249
|
+
border: '#E27000',
|
|
14250
|
+
iconColor: '#9C4D00',
|
|
14251
|
+
letterColor: '#9C4D00'
|
|
14252
|
+
}
|
|
14253
|
+
},
|
|
14254
|
+
// Public warnings - Moderate (Yellow)
|
|
14255
|
+
moderate: {
|
|
14256
|
+
published: {
|
|
14257
|
+
background: LevelColors.moderate.color,
|
|
14258
|
+
border: LevelColors.moderate.borderColor,
|
|
14259
|
+
iconColor: '#3A3400',
|
|
14260
|
+
letterColor: '#3A3400'
|
|
14261
|
+
},
|
|
14262
|
+
draft: {
|
|
14263
|
+
background: '#FFFACE',
|
|
14264
|
+
stripeColor: 'rgba(250, 226, 28, 0.5)',
|
|
14265
|
+
// Yellow stripes
|
|
14266
|
+
border: LevelColors.moderate.borderColor,
|
|
14267
|
+
iconColor: '#3A3400',
|
|
14268
|
+
letterColor: '#3A3400'
|
|
14269
|
+
},
|
|
14270
|
+
expired: {
|
|
14271
|
+
background: '#EFEFEF',
|
|
14272
|
+
border: LevelColors.moderate.borderColor,
|
|
14273
|
+
iconColor: '#3A3400',
|
|
14274
|
+
letterColor: '#3A3400'
|
|
14275
|
+
}
|
|
14276
|
+
},
|
|
14277
|
+
// Aviation (SIGMET/AIRMET) - Blue
|
|
14278
|
+
aviation: {
|
|
14279
|
+
published: {
|
|
14280
|
+
background: '#186DFF',
|
|
14281
|
+
border: '#0800B9',
|
|
14282
|
+
iconColor: '#FFFFFF',
|
|
14283
|
+
letterColor: '#FFFFFF'
|
|
14284
|
+
},
|
|
14285
|
+
draft: {
|
|
14286
|
+
background: '#E3EDFF',
|
|
14287
|
+
stripeColor: 'rgba(255, 255, 255, 0.5)',
|
|
14288
|
+
border: '#0800B9',
|
|
14289
|
+
iconColor: '#0800B9',
|
|
14290
|
+
letterColor: '#0800B9'
|
|
14291
|
+
},
|
|
14292
|
+
expired: {
|
|
14293
|
+
background: '#EFEFEF',
|
|
14294
|
+
border: '#0800B9',
|
|
14295
|
+
iconColor: '#186DFF',
|
|
14296
|
+
letterColor: '#186DFF'
|
|
14297
|
+
}
|
|
14298
|
+
},
|
|
14299
|
+
// Default/fallback
|
|
14300
|
+
"default": {
|
|
14301
|
+
published: {
|
|
14302
|
+
background: '#FFFFFF',
|
|
14303
|
+
border: '#AAAAAA',
|
|
14304
|
+
iconColor: '#333333',
|
|
14305
|
+
letterColor: '#333333'
|
|
14306
|
+
},
|
|
14307
|
+
draft: {
|
|
14308
|
+
background: '#FFFFFF',
|
|
14309
|
+
stripeColor: 'rgba(255, 255, 255, 0.5)',
|
|
14310
|
+
border: '#AAAAAA',
|
|
14311
|
+
iconColor: '#333333',
|
|
14312
|
+
letterColor: '#333333'
|
|
14313
|
+
},
|
|
14314
|
+
expired: {
|
|
14315
|
+
background: '#EFEFEF',
|
|
14316
|
+
border: '#AAAAAA',
|
|
14317
|
+
iconColor: '#333333',
|
|
14318
|
+
letterColor: '#333333'
|
|
14319
|
+
}
|
|
14320
|
+
}
|
|
14321
|
+
};
|
|
14322
|
+
var getThemeForLevel = function getThemeForLevel(level, isAviation) {
|
|
14323
|
+
if (isAviation) {
|
|
14324
|
+
return TimelineColors.aviation;
|
|
14325
|
+
}
|
|
14326
|
+
switch (level) {
|
|
14327
|
+
case WarningLevel.extreme:
|
|
14328
|
+
return TimelineColors.extreme;
|
|
14329
|
+
case WarningLevel.severe:
|
|
14330
|
+
return TimelineColors.severe;
|
|
14331
|
+
case WarningLevel.moderate:
|
|
14332
|
+
return TimelineColors.moderate;
|
|
14333
|
+
default:
|
|
14334
|
+
return TimelineColors["default"];
|
|
14335
|
+
}
|
|
14336
|
+
};
|
|
14337
|
+
var getBlockStyle = function getBlockStyle(level, status, isAviation) {
|
|
14338
|
+
var theme = getThemeForLevel(level, isAviation);
|
|
14339
|
+
if (status === PublicWarningStatus.DRAFT || status === PublicWarningStatus.DRAFT_PUBLISHED) {
|
|
14340
|
+
var _theme$draft = theme.draft,
|
|
14341
|
+
stripeColor = _theme$draft.stripeColor,
|
|
14342
|
+
background = _theme$draft.background,
|
|
14343
|
+
border = _theme$draft.border,
|
|
14344
|
+
iconColor = _theme$draft.iconColor,
|
|
14345
|
+
letterColor = _theme$draft.letterColor;
|
|
14346
|
+
return {
|
|
14347
|
+
background: draftStripes(stripeColor, background),
|
|
14348
|
+
border: "1px solid " + border,
|
|
14349
|
+
borderColor: border,
|
|
14350
|
+
iconColor: iconColor,
|
|
14351
|
+
letterColor: letterColor
|
|
14352
|
+
};
|
|
14353
|
+
}
|
|
14354
|
+
if (status === PublicWarningStatus.EXPIRED) {
|
|
14355
|
+
return {
|
|
14356
|
+
background: theme.expired.background,
|
|
14357
|
+
border: "1px solid " + theme.expired.border,
|
|
14358
|
+
borderColor: theme.expired.border,
|
|
14359
|
+
iconColor: theme.expired.iconColor,
|
|
14360
|
+
letterColor: theme.expired.letterColor
|
|
14361
|
+
};
|
|
14362
|
+
}
|
|
14363
|
+
// Published (default)
|
|
14364
|
+
return {
|
|
14365
|
+
background: theme.published.background,
|
|
14366
|
+
border: "1px solid " + theme.published.border,
|
|
14367
|
+
borderColor: theme.published.border,
|
|
14368
|
+
iconColor: theme.published.iconColor,
|
|
14369
|
+
letterColor: theme.published.letterColor
|
|
14370
|
+
};
|
|
14371
|
+
};
|
|
14372
|
+
|
|
14373
|
+
/* *
|
|
14374
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14375
|
+
* you may not use this file except in compliance with the License.
|
|
14376
|
+
* You may obtain a copy of the License at
|
|
14377
|
+
*
|
|
14378
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14379
|
+
*
|
|
14380
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14381
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14382
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14383
|
+
* See the License for the specific language governing permissions and
|
|
14384
|
+
* limitations under the License.
|
|
14385
|
+
*
|
|
14386
|
+
* Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
14387
|
+
* Copyright 2026 - Finnish Meteorological Institute (FMI)
|
|
14388
|
+
* Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
|
|
14389
|
+
* */
|
|
14390
|
+
var EDGE_PADDING = 24;
|
|
14391
|
+
var SIZE_THRESHOLDS = {
|
|
14392
|
+
xxs: 24,
|
|
14393
|
+
xs: 50,
|
|
14394
|
+
sm: 100
|
|
14395
|
+
};
|
|
14396
|
+
var getTimelineX = function getTimelineX(targetTime, timelineStart, timelineEnd, drawableWidth) {
|
|
14397
|
+
var totalTimelineDuration = timelineEnd.getTime() - timelineStart.getTime();
|
|
14398
|
+
if (totalTimelineDuration <= 0) {
|
|
14399
|
+
return 0;
|
|
14400
|
+
}
|
|
14401
|
+
var elapsedMs = targetTime.getTime() - timelineStart.getTime();
|
|
14402
|
+
return EDGE_PADDING + elapsedMs / totalTimelineDuration * drawableWidth;
|
|
14403
|
+
};
|
|
14404
|
+
var getTimeFromX = function getTimeFromX(x, timelineStart, timelineEnd, drawableWidth) {
|
|
14405
|
+
var totalTimelineDuration = timelineEnd.getTime() - timelineStart.getTime();
|
|
14406
|
+
if (drawableWidth <= 0) {
|
|
14407
|
+
return new Date(timelineStart);
|
|
14408
|
+
}
|
|
14409
|
+
var adjustedX = x - EDGE_PADDING;
|
|
14410
|
+
var ratio = adjustedX / drawableWidth;
|
|
14411
|
+
var timeMs = timelineStart.getTime() + ratio * totalTimelineDuration;
|
|
14412
|
+
return new Date(timeMs);
|
|
14413
|
+
};
|
|
14414
|
+
var generateTicks = function generateTicks(timelineStart, timelineEnd) {
|
|
14415
|
+
var ticks = [];
|
|
14416
|
+
var hourInterval = 3;
|
|
14417
|
+
var current = new Date(timelineStart);
|
|
14418
|
+
current.setUTCMinutes(0, 0, 0);
|
|
14419
|
+
if (current < timelineStart) {
|
|
14420
|
+
current.setUTCHours(current.getUTCHours() + 1);
|
|
14421
|
+
}
|
|
14422
|
+
while (current <= timelineEnd) {
|
|
14423
|
+
var hour = current.getUTCHours();
|
|
14424
|
+
if (hour === 0) {
|
|
14425
|
+
ticks.push({
|
|
14426
|
+
time: new Date(current),
|
|
14427
|
+
type: 'day'
|
|
14428
|
+
});
|
|
14429
|
+
} else if (hour % hourInterval === 0) {
|
|
14430
|
+
ticks.push({
|
|
14431
|
+
time: new Date(current),
|
|
14432
|
+
type: 'major'
|
|
14433
|
+
});
|
|
14434
|
+
} else {
|
|
14435
|
+
ticks.push({
|
|
14436
|
+
time: new Date(current),
|
|
14437
|
+
type: 'dashed'
|
|
14438
|
+
});
|
|
14439
|
+
}
|
|
14440
|
+
current.setUTCHours(current.getUTCHours() + 1);
|
|
14441
|
+
}
|
|
14442
|
+
return ticks;
|
|
14443
|
+
};
|
|
14444
|
+
var getTickLineStyle = function getTickLineStyle(tickType) {
|
|
14445
|
+
if (tickType === 'day') {
|
|
14446
|
+
return {
|
|
14447
|
+
width: '2px',
|
|
14448
|
+
borderLeft: '2px solid #ABC3FF'
|
|
14449
|
+
};
|
|
14450
|
+
}
|
|
14451
|
+
if (tickType === 'dashed') {
|
|
14452
|
+
return {
|
|
14453
|
+
width: '1px',
|
|
14454
|
+
borderLeft: '1px dashed #E7ECFA'
|
|
14455
|
+
};
|
|
14456
|
+
}
|
|
14457
|
+
return {
|
|
14458
|
+
width: '1px',
|
|
14459
|
+
borderLeft: '1px solid #90caf9'
|
|
14460
|
+
};
|
|
14461
|
+
};
|
|
14462
|
+
var getBlockSize = function getBlockSize(width) {
|
|
14463
|
+
if (width < SIZE_THRESHOLDS.xxs) {
|
|
14464
|
+
return 'xxs';
|
|
14465
|
+
}
|
|
14466
|
+
if (width < SIZE_THRESHOLDS.xs) {
|
|
14467
|
+
return 'xs';
|
|
14468
|
+
}
|
|
14469
|
+
if (width < SIZE_THRESHOLDS.sm) {
|
|
14470
|
+
return 's';
|
|
14471
|
+
}
|
|
14472
|
+
return 'l';
|
|
14473
|
+
};
|
|
14474
|
+
|
|
14475
|
+
/**
|
|
14476
|
+
* Gets the author/editor from a warning.
|
|
14477
|
+
* For airmet/sigmet warnings, author is in sigmetAirmetDetails.
|
|
14478
|
+
* For public/maritime warnings, editor is on the base warning.
|
|
14479
|
+
*/
|
|
14480
|
+
var getWarningAuthor = function getWarningAuthor(warning) {
|
|
14481
|
+
if ('sigmetAirmetDetails' in warning) {
|
|
14482
|
+
var _warning$sigmetAirmet, _warning$sigmetAirmet2;
|
|
14483
|
+
return (_warning$sigmetAirmet = (_warning$sigmetAirmet2 = warning.sigmetAirmetDetails) == null ? void 0 : _warning$sigmetAirmet2.author) != null ? _warning$sigmetAirmet : warning.editor;
|
|
14484
|
+
}
|
|
14485
|
+
return warning.editor;
|
|
14486
|
+
};
|
|
14487
|
+
var formatPeriod = function formatPeriod(from, until) {
|
|
14488
|
+
var ff = new Date(from);
|
|
14489
|
+
var uu = new Date(until);
|
|
14490
|
+
var dateOpts = {
|
|
14491
|
+
day: 'numeric',
|
|
14492
|
+
month: 'short',
|
|
14493
|
+
timeZone: 'UTC'
|
|
14494
|
+
};
|
|
14495
|
+
var timeOpts = {
|
|
14496
|
+
hour: '2-digit',
|
|
14497
|
+
minute: '2-digit',
|
|
14498
|
+
hour12: false,
|
|
14499
|
+
timeZone: 'UTC'
|
|
14500
|
+
};
|
|
14501
|
+
var fDate = ff.toLocaleDateString('en-GB', dateOpts);
|
|
14502
|
+
var uDate = uu.toLocaleDateString('en-GB', dateOpts);
|
|
14503
|
+
var fTime = ff.toLocaleTimeString('en-GB', timeOpts);
|
|
14504
|
+
var uTime = uu.toLocaleTimeString('en-GB', timeOpts);
|
|
14505
|
+
return fDate === uDate ? fDate + " " + fTime + " \u2013 " + uTime + " UTC" : fDate + " " + fTime + " \u2013 " + uDate + " " + uTime + " UTC";
|
|
14506
|
+
};
|
|
14507
|
+
var getTooltipContent = function getTooltipContent(warning, t) {
|
|
14508
|
+
var warningDetail = warning.warningDetail,
|
|
14509
|
+
status = warning.status,
|
|
14510
|
+
type = warning.type;
|
|
14511
|
+
var author = getWarningAuthor(warning);
|
|
14512
|
+
var isAviation = type === 'sigmet' || type === 'airmet';
|
|
14513
|
+
var phenomenonEntry = warningPhenomena.find(function (entry) {
|
|
14514
|
+
return entry.key === warningDetail.phenomenon;
|
|
14515
|
+
});
|
|
14516
|
+
var phenomenonLabel = phenomenonEntry ? t(phenomenonEntry.translationKey) : warningDetail.phenomenon;
|
|
14517
|
+
var line1 = isAviation ? [type.toUpperCase(), phenomenonLabel].filter(Boolean).join(' · ') : [phenomenonLabel, warningDetail.level, warningDetail.probability ? warningDetail.probability + "%" : null].filter(Boolean).join(' · ');
|
|
14518
|
+
var period = warningDetail.validFrom && warningDetail.validUntil ? formatPeriod(warningDetail.validFrom, warningDetail.validUntil) : null;
|
|
14519
|
+
var meta = [author, status].filter(Boolean).join(' · ');
|
|
14520
|
+
return jsxs(Box, {
|
|
14521
|
+
sx: {
|
|
14522
|
+
fontSize: 12,
|
|
14523
|
+
lineHeight: 1.6
|
|
14524
|
+
},
|
|
14525
|
+
children: [jsx(Box, {
|
|
14526
|
+
sx: {
|
|
14527
|
+
fontWeight: 600
|
|
14528
|
+
},
|
|
14529
|
+
children: line1
|
|
14530
|
+
}), period ? jsx(Box, {
|
|
14531
|
+
children: period
|
|
14532
|
+
}) : null, meta ? jsx(Box, {
|
|
14533
|
+
children: meta
|
|
14534
|
+
}) : null]
|
|
14535
|
+
});
|
|
14536
|
+
};
|
|
14537
|
+
var WarningBlock = function WarningBlock(_ref) {
|
|
14538
|
+
var warning = _ref.warning,
|
|
14539
|
+
left = _ref.left,
|
|
14540
|
+
top = _ref.top,
|
|
14541
|
+
width = _ref.width;
|
|
14542
|
+
var _useWarningsTranslati = useWarningsTranslation(),
|
|
14543
|
+
t = _useWarningsTranslati.t;
|
|
14544
|
+
var warningDetail = warning.warningDetail,
|
|
14545
|
+
status = warning.status,
|
|
14546
|
+
type = warning.type;
|
|
14547
|
+
var author = getWarningAuthor(warning);
|
|
14548
|
+
var isAviation = type === 'sigmet' || type === 'airmet';
|
|
14549
|
+
var level = warningDetail.level || null;
|
|
14550
|
+
var letter = level ? t("warning-level-letter-" + level) : '';
|
|
14551
|
+
var _getBlockStyle = getBlockStyle(level, status, isAviation),
|
|
14552
|
+
background = _getBlockStyle.background,
|
|
14553
|
+
border = _getBlockStyle.border,
|
|
14554
|
+
iconColor = _getBlockStyle.iconColor,
|
|
14555
|
+
letterColor = _getBlockStyle.letterColor;
|
|
14556
|
+
var size = getBlockSize(width);
|
|
14557
|
+
var elements = [];
|
|
14558
|
+
if (size === 's' || size === 'l') {
|
|
14559
|
+
elements.push(jsx(Box, {
|
|
14560
|
+
sx: {
|
|
14561
|
+
fontSize: 16,
|
|
14562
|
+
fontWeight: 600,
|
|
14563
|
+
lineHeight: '80%',
|
|
14564
|
+
color: letterColor
|
|
14565
|
+
},
|
|
14566
|
+
children: letter
|
|
14567
|
+
}, "letter"));
|
|
14568
|
+
}
|
|
14569
|
+
if (size !== 'xxs') {
|
|
14570
|
+
elements.push(jsx(Box, {
|
|
14571
|
+
sx: {
|
|
14572
|
+
display: 'flex',
|
|
14573
|
+
alignItems: 'center',
|
|
14574
|
+
justifyContent: 'center',
|
|
14575
|
+
color: iconColor,
|
|
14576
|
+
fontSize: 18
|
|
14577
|
+
},
|
|
14578
|
+
children: getPhenomenaIcon(warningDetail.phenomenon) || null
|
|
14579
|
+
}, "icon"));
|
|
14580
|
+
}
|
|
14581
|
+
if (size === 'l') {
|
|
14582
|
+
elements.push(jsx(Box, {
|
|
14583
|
+
sx: {
|
|
14584
|
+
border: '0.5px solid white',
|
|
14585
|
+
borderRadius: '50%'
|
|
14586
|
+
},
|
|
14587
|
+
children: jsx(WarningAvatar, {
|
|
14588
|
+
editor: author != null ? author : ''
|
|
14589
|
+
})
|
|
14590
|
+
}, "avatar"));
|
|
14591
|
+
}
|
|
14592
|
+
return jsx(Tooltip, {
|
|
14593
|
+
placement: "top",
|
|
14594
|
+
title: getTooltipContent(warning, t),
|
|
14595
|
+
children: jsx(Box, {
|
|
14596
|
+
"data-testid": "warning-block",
|
|
14597
|
+
sx: {
|
|
14598
|
+
position: 'absolute',
|
|
14599
|
+
left: left,
|
|
14600
|
+
top: top,
|
|
14601
|
+
width: width,
|
|
14602
|
+
height: 28,
|
|
14603
|
+
padding: '4px 8px',
|
|
14604
|
+
background: background,
|
|
14605
|
+
border: border,
|
|
14606
|
+
borderRadius: 1,
|
|
14607
|
+
display: 'flex',
|
|
14608
|
+
alignItems: 'center',
|
|
14609
|
+
justifyContent: elements.length === 1 ? 'center' : 'space-between',
|
|
14610
|
+
overflow: 'hidden'
|
|
14611
|
+
},
|
|
14612
|
+
children: elements
|
|
14613
|
+
})
|
|
14614
|
+
});
|
|
14615
|
+
};
|
|
14616
|
+
|
|
14617
|
+
var WARNING_BLOCK_HEIGHT = 34;
|
|
14618
|
+
var DEFAULT_VISIBLE_ROWS = 10;
|
|
14619
|
+
var TIMELINE_BAR_HEIGHT = 40;
|
|
14620
|
+
var PIXELS_PER_HOUR = 30;
|
|
14621
|
+
var MS_PER_HOUR = 60 * 60 * 1000;
|
|
14622
|
+
var MS_PER_DAY = 24 * MS_PER_HOUR;
|
|
14623
|
+
var WarningsTimeline = function WarningsTimeline(_ref) {
|
|
14624
|
+
var warnings = _ref.warnings;
|
|
14625
|
+
var timelineWarnings = React.useMemo(function () {
|
|
14626
|
+
var _warnings$filter;
|
|
14627
|
+
return (_warnings$filter = warnings == null ? void 0 : warnings.filter(function (warning) {
|
|
14628
|
+
return Boolean(warning.warningDetail.validFrom) && Boolean(warning.warningDetail.validUntil);
|
|
14629
|
+
})) != null ? _warnings$filter : [];
|
|
14630
|
+
}, [warnings]);
|
|
14631
|
+
var warningsAreaRef = React.useRef(null);
|
|
14632
|
+
var timeAxisRef = React.useRef(null);
|
|
14633
|
+
var _React$useState = React.useState(0),
|
|
14634
|
+
containerWidth = _React$useState[0],
|
|
14635
|
+
setContainerWidth = _React$useState[1];
|
|
14636
|
+
React.useEffect(function () {
|
|
14637
|
+
if (!warningsAreaRef.current) {
|
|
14638
|
+
return undefined;
|
|
14639
|
+
}
|
|
14640
|
+
var resizeObserver = new ResizeObserver(function (entries) {
|
|
14641
|
+
for (var _iterator = _createForOfIteratorHelperLoose(entries), _step; !(_step = _iterator()).done;) {
|
|
14642
|
+
var entry = _step.value;
|
|
14643
|
+
setContainerWidth(entry.contentRect.width);
|
|
14644
|
+
}
|
|
14645
|
+
});
|
|
14646
|
+
resizeObserver.observe(warningsAreaRef.current);
|
|
14647
|
+
return function () {
|
|
14648
|
+
return resizeObserver.disconnect();
|
|
14649
|
+
};
|
|
14650
|
+
}, []);
|
|
14651
|
+
var handleWarningsScroll = React.useCallback(function () {
|
|
14652
|
+
if (warningsAreaRef.current && timeAxisRef.current) {
|
|
14653
|
+
timeAxisRef.current.scrollLeft = warningsAreaRef.current.scrollLeft;
|
|
14654
|
+
}
|
|
14655
|
+
}, []);
|
|
14656
|
+
var _React$useState2 = React.useState(function () {
|
|
14657
|
+
return new Date();
|
|
14658
|
+
}),
|
|
14659
|
+
now = _React$useState2[0],
|
|
14660
|
+
setNow = _React$useState2[1];
|
|
14661
|
+
React.useEffect(function () {
|
|
14662
|
+
var id = setInterval(function () {
|
|
14663
|
+
return setNow(new Date());
|
|
14664
|
+
}, MS_PER_HOUR / 60);
|
|
14665
|
+
return function () {
|
|
14666
|
+
return clearInterval(id);
|
|
14667
|
+
};
|
|
14668
|
+
}, []);
|
|
14669
|
+
var _React$useMemo = React.useMemo(function () {
|
|
14670
|
+
var snapshotNow = new Date();
|
|
14671
|
+
var defaultStart = new Date(snapshotNow.getTime() - MS_PER_DAY);
|
|
14672
|
+
var defaultEnd = new Date(snapshotNow.getTime() + 3 * MS_PER_DAY);
|
|
14673
|
+
if (!timelineWarnings.length) {
|
|
14674
|
+
return {
|
|
14675
|
+
timelineStart: defaultStart,
|
|
14676
|
+
timelineEnd: defaultEnd
|
|
14677
|
+
};
|
|
14678
|
+
}
|
|
14679
|
+
var warningMin = Number.POSITIVE_INFINITY;
|
|
14680
|
+
var warningMax = Number.NEGATIVE_INFINITY;
|
|
14681
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(timelineWarnings), _step2; !(_step2 = _iterator2()).done;) {
|
|
14682
|
+
var warning = _step2.value;
|
|
14683
|
+
var _warning$warningDetai = warning.warningDetail,
|
|
14684
|
+
validFrom = _warning$warningDetai.validFrom,
|
|
14685
|
+
validUntil = _warning$warningDetai.validUntil;
|
|
14686
|
+
if (validFrom) {
|
|
14687
|
+
warningMin = Math.min(warningMin, new Date(validFrom).getTime());
|
|
14688
|
+
}
|
|
14689
|
+
if (validUntil) {
|
|
14690
|
+
warningMax = Math.max(warningMax, new Date(validUntil).getTime());
|
|
14691
|
+
}
|
|
14692
|
+
}
|
|
14693
|
+
// Floor earliest warning to previous 3-hour boundary, then subtract 3h to get some 'air'
|
|
14694
|
+
var warningStartDate = new Date(warningMin);
|
|
14695
|
+
warningStartDate.setUTCMinutes(0, 0, 0);
|
|
14696
|
+
var flooredHour = warningStartDate.getUTCHours() - warningStartDate.getUTCHours() % 3 - 3;
|
|
14697
|
+
warningStartDate.setUTCHours(flooredHour);
|
|
14698
|
+
var minTime = Math.min(defaultStart.getTime(), warningStartDate.getTime());
|
|
14699
|
+
// End is bound by the last warning
|
|
14700
|
+
return {
|
|
14701
|
+
timelineStart: new Date(minTime),
|
|
14702
|
+
timelineEnd: new Date(warningMax)
|
|
14703
|
+
};
|
|
14704
|
+
}, [timelineWarnings]),
|
|
14705
|
+
timelineStart = _React$useMemo.timelineStart,
|
|
14706
|
+
timelineEnd = _React$useMemo.timelineEnd;
|
|
14707
|
+
var totalMs = timelineEnd.getTime() - timelineStart.getTime();
|
|
14708
|
+
var totalHours = totalMs / MS_PER_HOUR;
|
|
14709
|
+
var contentWidth = Math.max(containerWidth, totalHours * PIXELS_PER_HOUR);
|
|
14710
|
+
var fullWidth = contentWidth + 2 * EDGE_PADDING;
|
|
14711
|
+
var ticks = generateTicks(timelineStart, timelineEnd);
|
|
14712
|
+
var _React$useState3 = React.useState(null),
|
|
14713
|
+
hoverTimelineX = _React$useState3[0],
|
|
14714
|
+
setHoverTimelineX = _React$useState3[1];
|
|
14715
|
+
var hoverTime = hoverTimelineX !== null ? getTimeFromX(hoverTimelineX, timelineStart, timelineEnd, contentWidth).toLocaleString('en-GB', {
|
|
14716
|
+
day: 'numeric',
|
|
14717
|
+
month: 'short',
|
|
14718
|
+
hour: '2-digit',
|
|
14719
|
+
minute: '2-digit',
|
|
14720
|
+
timeZone: 'UTC'
|
|
14721
|
+
}) + " UTC" : '';
|
|
14722
|
+
var handleTimeAxisMouseMove = React.useCallback(function (event) {
|
|
14723
|
+
var _timeAxisRef$current$, _timeAxisRef$current;
|
|
14724
|
+
var rect = event.currentTarget.getBoundingClientRect();
|
|
14725
|
+
// Only show tooltip when mouse is below the top 10px (away from scrollbar)
|
|
14726
|
+
if (event.clientY - rect.top < 10) {
|
|
14727
|
+
setHoverTimelineX(null);
|
|
14728
|
+
return;
|
|
14729
|
+
}
|
|
14730
|
+
setHoverTimelineX(event.clientX - rect.left + ((_timeAxisRef$current$ = (_timeAxisRef$current = timeAxisRef.current) == null ? void 0 : _timeAxisRef$current.scrollLeft) != null ? _timeAxisRef$current$ : 0));
|
|
14731
|
+
}, []);
|
|
14732
|
+
var handleTimeAxisMouseLeave = React.useCallback(function () {
|
|
14733
|
+
setHoverTimelineX(null);
|
|
14734
|
+
}, []);
|
|
14735
|
+
var currentTimeX = getTimelineX(now, timelineStart, timelineEnd, contentWidth);
|
|
14736
|
+
var showCurrentTime = now.getTime() >= timelineStart.getTime() && now.getTime() <= timelineEnd.getTime();
|
|
14737
|
+
return jsxs(Box$1, {
|
|
14738
|
+
sx: {
|
|
14739
|
+
width: '100%',
|
|
14740
|
+
height: '100%',
|
|
14741
|
+
display: 'flex',
|
|
14742
|
+
flexDirection: 'column'
|
|
14743
|
+
},
|
|
14744
|
+
children: [jsx(Box$1, {
|
|
14745
|
+
onScroll: handleWarningsScroll,
|
|
14746
|
+
ref: warningsAreaRef,
|
|
14747
|
+
sx: {
|
|
14748
|
+
flex: 1,
|
|
14749
|
+
overflow: 'auto',
|
|
14750
|
+
minHeight: 0
|
|
14751
|
+
},
|
|
14752
|
+
children: jsx(Box$1, {
|
|
14753
|
+
sx: {
|
|
14754
|
+
width: fullWidth,
|
|
14755
|
+
position: 'relative'
|
|
14756
|
+
},
|
|
14757
|
+
children: jsxs(Box$1, {
|
|
14758
|
+
sx: {
|
|
14759
|
+
position: 'relative',
|
|
14760
|
+
height: Math.max(timelineWarnings.length * WARNING_BLOCK_HEIGHT, DEFAULT_VISIBLE_ROWS * WARNING_BLOCK_HEIGHT)
|
|
14761
|
+
},
|
|
14762
|
+
children: [ticks.map(function (tick) {
|
|
14763
|
+
var x = getTimelineX(tick.time, timelineStart, timelineEnd, contentWidth);
|
|
14764
|
+
var lineStyle = getTickLineStyle(tick.type);
|
|
14765
|
+
return jsx(Box$1, {
|
|
14766
|
+
sx: Object.assign({
|
|
14767
|
+
position: 'absolute',
|
|
14768
|
+
left: x,
|
|
14769
|
+
top: 0,
|
|
14770
|
+
bottom: 0
|
|
14771
|
+
}, lineStyle)
|
|
14772
|
+
}, tick.time.toISOString());
|
|
14773
|
+
}), showCurrentTime ? jsx(Box$1, {
|
|
14774
|
+
sx: {
|
|
14775
|
+
position: 'absolute',
|
|
14776
|
+
left: currentTimeX,
|
|
14777
|
+
top: 0,
|
|
14778
|
+
bottom: 0,
|
|
14779
|
+
width: '3px',
|
|
14780
|
+
bgcolor: '#0051DD',
|
|
14781
|
+
zIndex: 10
|
|
14782
|
+
}
|
|
14783
|
+
}) : null, timelineWarnings.map(function (warning, index) {
|
|
14784
|
+
var warningDetail = warning.warningDetail;
|
|
14785
|
+
var validFrom = new Date(warningDetail.validFrom);
|
|
14786
|
+
var validUntil = new Date(warningDetail.validUntil);
|
|
14787
|
+
var left = getTimelineX(validFrom, timelineStart, timelineEnd, contentWidth);
|
|
14788
|
+
var right = getTimelineX(validUntil, timelineStart, timelineEnd, contentWidth);
|
|
14789
|
+
var blockWidth = Math.max(0, right - left);
|
|
14790
|
+
return jsx(WarningBlock, {
|
|
14791
|
+
left: left,
|
|
14792
|
+
top: index * WARNING_BLOCK_HEIGHT,
|
|
14793
|
+
warning: warning,
|
|
14794
|
+
width: blockWidth
|
|
14795
|
+
}, warning.id);
|
|
14796
|
+
})]
|
|
14797
|
+
})
|
|
14798
|
+
})
|
|
14799
|
+
}), jsx(Tooltip$1, {
|
|
14800
|
+
enterDelay: 150,
|
|
14801
|
+
followCursor: true,
|
|
14802
|
+
leaveDelay: 0,
|
|
14803
|
+
placement: "top",
|
|
14804
|
+
slotProps: {
|
|
14805
|
+
popper: {
|
|
14806
|
+
sx: {
|
|
14807
|
+
pointerEvents: 'none'
|
|
14808
|
+
}
|
|
14809
|
+
}
|
|
14810
|
+
},
|
|
14811
|
+
title: hoverTime,
|
|
14812
|
+
children: jsx(Box$1, {
|
|
14813
|
+
onMouseLeave: handleTimeAxisMouseLeave,
|
|
14814
|
+
onMouseMove: handleTimeAxisMouseMove,
|
|
14815
|
+
ref: timeAxisRef,
|
|
14816
|
+
sx: {
|
|
14817
|
+
height: TIMELINE_BAR_HEIGHT,
|
|
14818
|
+
overflow: 'hidden',
|
|
14819
|
+
borderTop: '1px solid #ccc'
|
|
14820
|
+
},
|
|
14821
|
+
children: jsx(Box$1, {
|
|
14822
|
+
sx: {
|
|
14823
|
+
width: fullWidth,
|
|
14824
|
+
position: 'relative',
|
|
14825
|
+
height: '100%'
|
|
14826
|
+
},
|
|
14827
|
+
children: ticks.filter(function (tick) {
|
|
14828
|
+
return tick.type === 'day' || tick.time.getUTCHours() % 3 === 0;
|
|
14829
|
+
}).map(function (tick) {
|
|
14830
|
+
var x = getTimelineX(tick.time, timelineStart, timelineEnd, contentWidth);
|
|
14831
|
+
var hour = tick.time.getUTCHours();
|
|
14832
|
+
var hourLabel = String(hour).padStart(2, '0') + ":00";
|
|
14833
|
+
var isDayBoundary = tick.type === 'day';
|
|
14834
|
+
var dateStr = tick.time.toLocaleDateString('en-GB', {
|
|
14835
|
+
day: 'numeric',
|
|
14836
|
+
month: 'short',
|
|
14837
|
+
timeZone: 'UTC'
|
|
14838
|
+
});
|
|
14839
|
+
return jsxs(Box$1, {
|
|
14840
|
+
sx: {
|
|
14841
|
+
position: 'absolute',
|
|
14842
|
+
left: x,
|
|
14843
|
+
top: 2,
|
|
14844
|
+
transform: 'translateX(-50%)',
|
|
14845
|
+
textAlign: 'center',
|
|
14846
|
+
lineHeight: 1.1
|
|
14847
|
+
},
|
|
14848
|
+
children: [jsx(Box$1, {
|
|
14849
|
+
component: "span",
|
|
14850
|
+
sx: {
|
|
14851
|
+
fontSize: isDayBoundary ? 14 : 12,
|
|
14852
|
+
fontWeight: isDayBoundary ? 'bold' : 'normal',
|
|
14853
|
+
color: isDayBoundary ? '#333' : '#666'
|
|
14854
|
+
},
|
|
14855
|
+
children: hourLabel
|
|
14856
|
+
}), isDayBoundary ? jsx(Box$1, {
|
|
14857
|
+
sx: {
|
|
14858
|
+
fontSize: 12,
|
|
14859
|
+
color: '#666'
|
|
14860
|
+
},
|
|
14861
|
+
children: dateStr
|
|
14862
|
+
}) : null]
|
|
14863
|
+
}, "label-" + tick.time.toISOString());
|
|
14864
|
+
})
|
|
14865
|
+
})
|
|
14866
|
+
})
|
|
14867
|
+
})]
|
|
14868
|
+
});
|
|
14869
|
+
};
|
|
14870
|
+
|
|
14871
|
+
var WarningsTimelineConnect = function WarningsTimelineConnect(_ref) {
|
|
14872
|
+
_ref.panelId;
|
|
14873
|
+
var _useWarningsTranslati = useWarningsTranslation(),
|
|
14874
|
+
t = _useWarningsTranslati.t;
|
|
14875
|
+
var _useAuthenticationCon = useAuthenticationContext$1(),
|
|
14876
|
+
isLoggedIn = _useAuthenticationCon.isLoggedIn;
|
|
14877
|
+
var warnings = [];
|
|
14878
|
+
if (!isLoggedIn) {
|
|
14879
|
+
return jsx(AlertBanner, {
|
|
14880
|
+
dataTestId: "warnings-timeline-auth-error",
|
|
14881
|
+
severity: "error",
|
|
14882
|
+
title: t('error-auth-login')
|
|
14883
|
+
});
|
|
14884
|
+
}
|
|
14885
|
+
return jsx(WarningsTimeline, {
|
|
14886
|
+
warnings: warnings
|
|
14887
|
+
});
|
|
14888
|
+
};
|
|
14889
|
+
|
|
14890
|
+
export { DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WARN_NAMESPACE, WarningsTimeline, WarningsTimelineConnect, componentsLookUp, createMockStore, isAlreadyEdited, selectors as publicWarningsSelectors, useObjectDrawDialogAction, warningFormConfirmationOptions, warningsDrawingsActions, warningsDrawingsReducer, warningsFiltersActions, warningsFiltersReducer, warningsFormActions, warningsFormListener, warningsFormReducer, warningsMiddlewares, warningsReducersMap, warningsTranslations };
|