@opengeoweb/warnings 19.1.1 → 19.2.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/dist/index.esm.js +659 -113
- package/dist/src/lib/components/PublicWarningList/ConfirmWarningDialog.d.ts +1 -1
- package/dist/src/lib/components/PublicWarningList/PublicWarningList.d.ts +5 -0
- package/dist/src/lib/components/PublicWarningList/SelectAllButton/SelectAllButton.d.ts +9 -0
- package/dist/src/lib/components/PublicWarningList/SelectAllButton/index.d.ts +2 -0
- package/dist/src/lib/components/PublicWarningList/SelectAllButton/selectAllButtonUtils.d.ts +7 -0
- package/dist/src/lib/components/PublicWarningList/WarningListItem.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useDispatch, useSelector, useStore, shallowEqual } from 'react-redux';
|
|
3
3
|
import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawingToolSelectors, layerSelectors, uiSelectors, layerActions, drawingToolActions, mapListener, layersListener, drawingToolListener, syncGroupsListener, openlayersListener, syncGroupsReducer, drawingToolReducer, uiReducer, layerReducer, mapReducer, useSetupDialog, layerUtils, genericSelectors, useUpdateFeatureSyncLayers, genericActions, selectorMemoizationOptions, useRegisterFeatureSyncSource, syncGroupsSelector } from '@opengeoweb/store';
|
|
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, Remove, Options, ChevronDown, Visibility, Add, breakpoints, DragHandle, Info, ArrowUpCompact, ArrowDownCompact, Extend24h, Copy, Update, Cancel, Success, Expire, VisibilityOff, ChevronUp, Close, Clock } from '@opengeoweb/theme';
|
|
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, Remove, Options, ChevronDown, Visibility, Add, breakpoints, DragHandle, Info, ArrowUpCompact, ArrowDownCompact, ArrowDropDownDown, Extend24h, Copy, Update, Cancel, Success, Expire, VisibilityOff, ChevronUp, Close, Clock } from '@opengeoweb/theme';
|
|
5
5
|
import { WEBMAP_REACT_NAMESPACE, defaultPolygon, emptyGeoJSON, MapControlButton, defaultSmoothLine, defaultLineString, defaultFreehandLine, defaultOval, defaultCircle, defaultRotatableBox, defaultSquare, defaultLocation, defaultPoint, defaultSplit, defaultDelete, getDrawModeIdFromSelectionType, getIcon, rewindGeometry, getGeoJSONPropertyValue, DRAWMODE, 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, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
@@ -13,7 +13,7 @@ import { SA_NAMESPACE, isInstanceOfCancelSigmet, getDefaultValidFromValue, isIns
|
|
|
13
13
|
import { LayerType, generateMapId, webmapUtils } from '@opengeoweb/webmap';
|
|
14
14
|
import React, { useRef, useState, useEffect, useCallback, useMemo } from 'react';
|
|
15
15
|
import { useAuthenticationContext as useAuthenticationContext$1 } from '@opengeoweb/authentication';
|
|
16
|
-
import { MenuItem, Grid, Box, Typography, styled, ListItem, Paper, ListItemButton, Stack, useTheme, Accordion, AccordionSummary, AccordionDetails, LinearProgress, Tabs, Tab, Button, FormHelperText, Card, CardContent, FormControl, CircularProgress, Menu, ListItemText, IconButton, DialogTitle, DialogContent, Switch, RadioGroup, FormControlLabel, Radio, InputAdornment, Collapse
|
|
16
|
+
import { MenuItem, Grid, Box, Typography, styled, ListItem, Paper, ListItemButton, Stack, useTheme, Accordion, AccordionSummary, AccordionDetails, LinearProgress, Tabs, Tab, Button, FormHelperText, Card, CardContent, FormControl, CircularProgress, Menu, ListItemText, Tooltip, IconButton, Checkbox, DialogTitle, DialogContent, Switch, RadioGroup, FormControlLabel, Radio, InputAdornment, Collapse } from '@mui/material';
|
|
17
17
|
import { useQueryClient, useMutation, queryOptions, QueryClient, useQuery } from '@tanstack/react-query';
|
|
18
18
|
import { getHeaders, handleResponse, AirmetPhenomena, SigmetPhenomena, useAuthenticationContext, useAuthQuery, optimisticUpdate, ProductStatus } from '@opengeoweb/api';
|
|
19
19
|
import { snackbarListener, snackbarReducer, snackbarActions, snackbarTypes } from '@opengeoweb/snackbar';
|
|
@@ -129,7 +129,13 @@ var en = {
|
|
|
129
129
|
"warning-dialog-delete-title": "Delete warning",
|
|
130
130
|
"warning-dialog-delete-confirm": "Delete",
|
|
131
131
|
"warning-dialog-delete-description": "Are you sure you want to delete this warning?",
|
|
132
|
-
"warning-dialog-delete-islocked": "
|
|
132
|
+
"warning-dialog-delete-islocked": "Warning is in edit mode by another user.",
|
|
133
|
+
"warning-dialog-delete-all-succes": "All warnings have been deleted",
|
|
134
|
+
"warning-dialog-delete-all-title": "Delete warnings",
|
|
135
|
+
"warning-dialog-delete-all-confirm": "Delete",
|
|
136
|
+
"warning-dialog-delete-all-description": "Are you sure you want to delete {{NUMBER}} warnings?",
|
|
137
|
+
"warning-dialog-delete-all-button": "Batch delete all selected warnings",
|
|
138
|
+
"warning-dialog-delete-all-failed": "Batch delete failed for {{NUMBER}} warnings. Please check the list and retry.",
|
|
133
139
|
"warning-save-succes": "Public warning has succesfully been saved!",
|
|
134
140
|
"warning-publish-succes": "Public warning has succesfully been published!",
|
|
135
141
|
"warning-editor-user-viewer": "Viewer",
|
|
@@ -163,6 +169,7 @@ var en = {
|
|
|
163
169
|
"warning-list-header-levels": "Levels",
|
|
164
170
|
"warning-list-header-status": "Status",
|
|
165
171
|
"warning-list-header-draft": "DRAFT",
|
|
172
|
+
"warning-list-batch-delete-checkbox": "Select for batch delete",
|
|
166
173
|
"area-object-loader-title": "Areas & Objects",
|
|
167
174
|
"add-button": "Add",
|
|
168
175
|
"replace-button": "Replace",
|
|
@@ -171,9 +178,12 @@ var en = {
|
|
|
171
178
|
"area-object-loader-no-areas-objects": "No areas or objects found",
|
|
172
179
|
objects: "Objects",
|
|
173
180
|
areas: "Areas",
|
|
181
|
+
"filter-select": "Select",
|
|
174
182
|
"filter-select-all": "Select all",
|
|
183
|
+
"filter-deselect-all": "Deselect all",
|
|
175
184
|
"filter-no-results": "No results",
|
|
176
185
|
"filter-all": "All",
|
|
186
|
+
"filter-none": "None",
|
|
177
187
|
"filter-options": "Filter options",
|
|
178
188
|
"filter-show-all": "Show all",
|
|
179
189
|
"filter-hide-all": "Hide all",
|
|
@@ -415,7 +425,13 @@ var nl = {
|
|
|
415
425
|
"warning-dialog-delete-title": "Waarschuwing verwijderen",
|
|
416
426
|
"warning-dialog-delete-confirm": "Verwijderen",
|
|
417
427
|
"warning-dialog-delete-description": "Weet je zeker dat je deze waarschuwing wilt verwijderen?",
|
|
418
|
-
"warning-dialog-delete-islocked": "
|
|
428
|
+
"warning-dialog-delete-islocked": "Waarschuwing wordt bewerkt door een andere gebruiker.",
|
|
429
|
+
"warning-dialog-delete-all-succes": "Waarschuwingen zijn verwijderd",
|
|
430
|
+
"warning-dialog-delete-all-title": "Waarschuwingen verwijderen",
|
|
431
|
+
"warning-dialog-delete-all-confirm": "Verwijderen",
|
|
432
|
+
"warning-dialog-delete-all-description": "Weet je zeker dat je {{NUMBER}} waarschuwingen wilt verwijderen?",
|
|
433
|
+
"warning-dialog-delete-all-button": "Verwijder geselecteerde waarschuwingen",
|
|
434
|
+
"warning-dialog-delete-all-failed": "Bulk verwijderen mislukt voor {{NUMBER}} waarschuwingen. Check de lijst en probeer opnieuw.",
|
|
419
435
|
"warning-save-succes": "Publieke waarschuwing is succesvol opgeslagen!",
|
|
420
436
|
"warning-publish-succes": "Publieke waarschuwing is succesvol gepubliceerd!",
|
|
421
437
|
"warning-editor-add-editor": "Je bent nu de editor van deze waarschuwing",
|
|
@@ -454,6 +470,7 @@ var nl = {
|
|
|
454
470
|
"warning-list-too-many-info": "niet vertaald",
|
|
455
471
|
"warning-list-show-anyway": "niet vertaald",
|
|
456
472
|
"warning-list-adjust-filter": "niet vertaald",
|
|
473
|
+
"warning-list-batch-delete-checkbox": "Selecteer voor bulk verwijderen",
|
|
457
474
|
"area-object-loader-title": "Gebieden & Objecten",
|
|
458
475
|
"add-button": "Toevoegen",
|
|
459
476
|
"replace-button": "Vervangen",
|
|
@@ -462,9 +479,12 @@ var nl = {
|
|
|
462
479
|
"area-object-loader-no-areas-objects": "Geen gebieden of objecten gevonden",
|
|
463
480
|
objects: "Objecten",
|
|
464
481
|
areas: "Gebieden",
|
|
482
|
+
"filter-select": "Selecteer",
|
|
465
483
|
"filter-select-all": "Selecteer alles",
|
|
484
|
+
"filter-deselect-all": "Deselecteer alles",
|
|
466
485
|
"filter-no-results": "Geen resultaten",
|
|
467
486
|
"filter-all": "Alle",
|
|
487
|
+
"filter-none": "Geen",
|
|
468
488
|
"filter-options": "Filter opties",
|
|
469
489
|
"filter-show-all": "Alles tonen",
|
|
470
490
|
"filter-hide-all": "Alles verbergen",
|
|
@@ -661,6 +681,12 @@ var fi = {
|
|
|
661
681
|
"warning-dialog-delete-confirm": "Poista",
|
|
662
682
|
"warning-dialog-delete-description": "Oletko varma, että haluat poistaa varoituksen?",
|
|
663
683
|
"warning-dialog-delete-islocked": "Tämä varoitus on editointitilassa toisen käyttäjän toimesta",
|
|
684
|
+
"warning-dialog-delete-all-succes": "ei käännetty",
|
|
685
|
+
"warning-dialog-delete-all-title": "ei käännetty",
|
|
686
|
+
"warning-dialog-delete-all-confirm": "ei käännetty",
|
|
687
|
+
"warning-dialog-delete-all-description": "ei käännetty",
|
|
688
|
+
"warning-dialog-delete-all-button": "ei käännetty",
|
|
689
|
+
"warning-dialog-delete-all-failed": "ei käännetty",
|
|
664
690
|
"warning-save-succes": "Julkinen varoitus tallannettu onnistuneesti",
|
|
665
691
|
"warning-publish-succes": "Julkinen varoitus tallennettu onnistuneesti",
|
|
666
692
|
"warning-editor-user-viewer": "Katselu",
|
|
@@ -699,6 +725,7 @@ var fi = {
|
|
|
699
725
|
"warning-list-too-many-info": "ei käännetty",
|
|
700
726
|
"warning-list-show-anyway": "ei käännetty",
|
|
701
727
|
"warning-list-adjust-filter": "ei käännetty",
|
|
728
|
+
"warning-list-batch-delete-checkbox": "ei käännetty",
|
|
702
729
|
"area-object-loader-title": "ei käännetty",
|
|
703
730
|
"add-button": "ei käännetty",
|
|
704
731
|
"replace-button": "ei käännetty",
|
|
@@ -707,9 +734,12 @@ var fi = {
|
|
|
707
734
|
"area-object-loader-no-areas-objects": "ei käännetty",
|
|
708
735
|
objects: "ei käännetty",
|
|
709
736
|
areas: "ei käännetty",
|
|
737
|
+
"filter-select": "Valitse",
|
|
710
738
|
"filter-select-all": "ei käännetty",
|
|
739
|
+
"filter-deselect-all": "Poista kaikki valinnat",
|
|
711
740
|
"filter-no-results": "ei käännetty",
|
|
712
741
|
"filter-all": "Kaikki",
|
|
742
|
+
"filter-none": "Ei mitään",
|
|
713
743
|
"filter-options": "ei käännetty",
|
|
714
744
|
"filter-show-all": "ei käännetty",
|
|
715
745
|
"filter-hide-all": "ei käännetty",
|
|
@@ -857,7 +887,13 @@ var no = {
|
|
|
857
887
|
"warning-dialog-delete-title": "Slett varsel",
|
|
858
888
|
"warning-dialog-delete-confirm": "Slett",
|
|
859
889
|
"warning-dialog-delete-description": "Er du sikker på at du vil slette varselet?",
|
|
860
|
-
"warning-dialog-delete-islocked": "
|
|
890
|
+
"warning-dialog-delete-islocked": "Varsel er i endringsmodus av en annen bruker.",
|
|
891
|
+
"warning-dialog-delete-all-succes": "ikke oversatt",
|
|
892
|
+
"warning-dialog-delete-all-title": "ikke oversatt",
|
|
893
|
+
"warning-dialog-delete-all-confirm": "ikke oversatt",
|
|
894
|
+
"warning-dialog-delete-all-description": "ikke oversatt",
|
|
895
|
+
"warning-dialog-delete-all-button": "ikke oversatt",
|
|
896
|
+
"warning-dialog-delete-all-failed": "ikke oversatt",
|
|
861
897
|
"warning-save-succes": "Farevarselet er lagret!",
|
|
862
898
|
"warning-publish-succes": "Farevarselet er publisert!",
|
|
863
899
|
"warning-editor-user-viewer": "Visningsmodus",
|
|
@@ -896,6 +932,7 @@ var no = {
|
|
|
896
932
|
"warning-list-header-levels": "Grad",
|
|
897
933
|
"warning-list-header-status": "Status",
|
|
898
934
|
"warning-list-header-draft": "UTKAST",
|
|
935
|
+
"warning-list-batch-delete-checkbox": "ikke oversatt",
|
|
899
936
|
"area-object-loader-title": "Områder og objekter",
|
|
900
937
|
"add-button": "Legg til",
|
|
901
938
|
"replace-button": "Bytt ut",
|
|
@@ -904,9 +941,12 @@ var no = {
|
|
|
904
941
|
"area-object-loader-no-areas-objects": "Ingen områder eller objekter funnet",
|
|
905
942
|
objects: "Objekter",
|
|
906
943
|
areas: "Områder",
|
|
944
|
+
"filter-select": "Velg",
|
|
907
945
|
"filter-select-all": "Velg alle",
|
|
946
|
+
"filter-deselect-all": "Avmarker alle",
|
|
908
947
|
"filter-no-results": "Ingen resultat",
|
|
909
948
|
"filter-all": "Alle",
|
|
949
|
+
"filter-none": "Ingen",
|
|
910
950
|
"filter-options": "Filtervalg",
|
|
911
951
|
"filter-show-all": "Vis alle",
|
|
912
952
|
"filter-hide-all": "Skjel alle",
|
|
@@ -7592,12 +7632,12 @@ var DescriptionField = function DescriptionField(_ref) {
|
|
|
7592
7632
|
children: [jsxs(Tabs, {
|
|
7593
7633
|
"aria-label": "description tabs",
|
|
7594
7634
|
onChange: handleChange,
|
|
7595
|
-
value: activeTab,
|
|
7596
7635
|
sx: isDisabled ? {
|
|
7597
7636
|
'& .MuiTabs-indicator': {
|
|
7598
7637
|
display: 'none'
|
|
7599
7638
|
}
|
|
7600
7639
|
} : undefined,
|
|
7640
|
+
value: activeTab,
|
|
7601
7641
|
children: [jsx(Tab, Object.assign({
|
|
7602
7642
|
disabled: isDisabled,
|
|
7603
7643
|
label: t('warning-description-original'),
|
|
@@ -9083,7 +9123,9 @@ var WarningListHeaderContent = function WarningListHeaderContent(_ref) {
|
|
|
9083
9123
|
},
|
|
9084
9124
|
sx: Object.assign({}, Array.isArray(props.sx) ? Object.assign.apply(Object, [{}].concat(props.sx)) : props.sx, {
|
|
9085
9125
|
width: width,
|
|
9086
|
-
cursor: _onClick ? 'pointer' : 'default'
|
|
9126
|
+
cursor: _onClick ? 'pointer' : 'default',
|
|
9127
|
+
display: 'flex',
|
|
9128
|
+
justifyContent: 'flex-end'
|
|
9087
9129
|
}),
|
|
9088
9130
|
children: jsxs(Box, {
|
|
9089
9131
|
sx: {
|
|
@@ -12099,6 +12141,228 @@ var NewWarningButton = function NewWarningButton(_ref) {
|
|
|
12099
12141
|
});
|
|
12100
12142
|
};
|
|
12101
12143
|
|
|
12144
|
+
var SelectAllButton = function SelectAllButton(_ref) {
|
|
12145
|
+
var selectionState = _ref.selectionState,
|
|
12146
|
+
onSelectAll = _ref.onSelectAll,
|
|
12147
|
+
onSelectNone = _ref.onSelectNone,
|
|
12148
|
+
_ref$disabled = _ref.disabled,
|
|
12149
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
12150
|
+
var _useWarningsTranslati = useWarningsTranslation(),
|
|
12151
|
+
t = _useWarningsTranslati.t;
|
|
12152
|
+
var allLabel = t('filter-all');
|
|
12153
|
+
var menuTooltipTitle = t('filter-select');
|
|
12154
|
+
var noneLabel = t('filter-none');
|
|
12155
|
+
var selectAllLabel = t('filter-select-all');
|
|
12156
|
+
var deselectAllLabel = t('filter-deselect-all');
|
|
12157
|
+
var tooltipTitle = selectionState === 'all' || selectionState === 'some' ? deselectAllLabel : selectAllLabel;
|
|
12158
|
+
var id = React.useId();
|
|
12159
|
+
var menuButtonId = id + "-menu-button";
|
|
12160
|
+
var menuId = id + "-menu";
|
|
12161
|
+
var _React$useState = React.useState(null),
|
|
12162
|
+
menuAnchorEl = _React$useState[0],
|
|
12163
|
+
setMenuAnchorEl = _React$useState[1];
|
|
12164
|
+
var menuOpen = Boolean(menuAnchorEl);
|
|
12165
|
+
var isActive = !disabled && (menuOpen || selectionState !== 'none');
|
|
12166
|
+
var handleOpenMenu = function handleOpenMenu(event) {
|
|
12167
|
+
if (disabled) {
|
|
12168
|
+
return;
|
|
12169
|
+
}
|
|
12170
|
+
setMenuAnchorEl(event.currentTarget);
|
|
12171
|
+
};
|
|
12172
|
+
var handleCloseMenu = function handleCloseMenu() {
|
|
12173
|
+
setMenuAnchorEl(null);
|
|
12174
|
+
};
|
|
12175
|
+
var toggleSelection = function toggleSelection() {
|
|
12176
|
+
if (disabled) {
|
|
12177
|
+
return;
|
|
12178
|
+
}
|
|
12179
|
+
if (selectionState === 'none') {
|
|
12180
|
+
onSelectAll();
|
|
12181
|
+
return;
|
|
12182
|
+
}
|
|
12183
|
+
onSelectNone();
|
|
12184
|
+
};
|
|
12185
|
+
var handleCheckboxClick = function handleCheckboxClick(event) {
|
|
12186
|
+
event.stopPropagation();
|
|
12187
|
+
toggleSelection();
|
|
12188
|
+
};
|
|
12189
|
+
var handleCheckboxKeyDown = function handleCheckboxKeyDown(event) {
|
|
12190
|
+
if (disabled || event.key !== 'Enter' && event.key !== ' ') {
|
|
12191
|
+
return;
|
|
12192
|
+
}
|
|
12193
|
+
event.preventDefault();
|
|
12194
|
+
toggleSelection();
|
|
12195
|
+
};
|
|
12196
|
+
var getSegmentHoverBackground = function getSegmentHoverBackground(theme) {
|
|
12197
|
+
if (disabled) {
|
|
12198
|
+
return 'transparent';
|
|
12199
|
+
}
|
|
12200
|
+
return isActive ? theme.palette.primary.dark : theme.palette.action.hover;
|
|
12201
|
+
};
|
|
12202
|
+
var segmentHoverSx = {
|
|
12203
|
+
borderRadius: 0.5,
|
|
12204
|
+
'&:hover': {
|
|
12205
|
+
backgroundColor: getSegmentHoverBackground
|
|
12206
|
+
}
|
|
12207
|
+
};
|
|
12208
|
+
var iconColor = isActive ? 'common.white' : 'text.primary';
|
|
12209
|
+
var ariaChecked = selectionState === 'some' ? 'mixed' : selectionState === 'all';
|
|
12210
|
+
return jsxs(Box, {
|
|
12211
|
+
sx: {
|
|
12212
|
+
display: 'inline-flex',
|
|
12213
|
+
alignItems: 'center',
|
|
12214
|
+
borderRadius: 0.5,
|
|
12215
|
+
backgroundColor: isActive ? 'primary.main' : 'transparent',
|
|
12216
|
+
opacity: disabled ? 0.5 : 1
|
|
12217
|
+
},
|
|
12218
|
+
children: [jsx(Tooltip, {
|
|
12219
|
+
placement: "bottom",
|
|
12220
|
+
title: menuTooltipTitle,
|
|
12221
|
+
children: jsx("span", {
|
|
12222
|
+
children: jsx(IconButton, {
|
|
12223
|
+
"aria-controls": menuOpen ? menuId : undefined,
|
|
12224
|
+
"aria-expanded": menuOpen,
|
|
12225
|
+
"aria-haspopup": "true",
|
|
12226
|
+
"aria-label": menuTooltipTitle,
|
|
12227
|
+
disabled: disabled,
|
|
12228
|
+
id: menuButtonId,
|
|
12229
|
+
onClick: handleOpenMenu,
|
|
12230
|
+
size: "small",
|
|
12231
|
+
sx: Object.assign({}, segmentHoverSx, {
|
|
12232
|
+
width: 24,
|
|
12233
|
+
height: 24,
|
|
12234
|
+
borderTopRightRadius: 0,
|
|
12235
|
+
borderBottomRightRadius: 0
|
|
12236
|
+
}),
|
|
12237
|
+
children: jsx(ArrowDropDownDown, {
|
|
12238
|
+
fontSize: "small",
|
|
12239
|
+
sx: {
|
|
12240
|
+
color: iconColor,
|
|
12241
|
+
fontSize: 18
|
|
12242
|
+
}
|
|
12243
|
+
})
|
|
12244
|
+
})
|
|
12245
|
+
})
|
|
12246
|
+
}), jsx(Tooltip, {
|
|
12247
|
+
placement: "bottom",
|
|
12248
|
+
title: tooltipTitle,
|
|
12249
|
+
children: jsx(Box, {
|
|
12250
|
+
"aria-checked": ariaChecked,
|
|
12251
|
+
"aria-label": tooltipTitle,
|
|
12252
|
+
component: "span",
|
|
12253
|
+
"data-testid": "select-all-batch-delete-checkbox",
|
|
12254
|
+
onClick: handleCheckboxClick,
|
|
12255
|
+
onKeyDown: handleCheckboxKeyDown,
|
|
12256
|
+
role: "checkbox",
|
|
12257
|
+
sx: Object.assign({}, segmentHoverSx, {
|
|
12258
|
+
display: 'inline-flex',
|
|
12259
|
+
alignItems: 'center',
|
|
12260
|
+
borderTopLeftRadius: 0,
|
|
12261
|
+
borderBottomLeftRadius: 0,
|
|
12262
|
+
cursor: disabled ? 'default' : 'pointer'
|
|
12263
|
+
}),
|
|
12264
|
+
tabIndex: disabled ? -1 : 0,
|
|
12265
|
+
children: jsx(Checkbox, {
|
|
12266
|
+
checked: selectionState === 'all',
|
|
12267
|
+
disableRipple: true,
|
|
12268
|
+
disabled: disabled,
|
|
12269
|
+
indeterminate: selectionState === 'some',
|
|
12270
|
+
size: "small",
|
|
12271
|
+
sx: {
|
|
12272
|
+
pointerEvents: 'none',
|
|
12273
|
+
color: isActive ? 'common.white' : 'primary.main',
|
|
12274
|
+
padding: '2px',
|
|
12275
|
+
'&.Mui-checked, &.MuiCheckbox-indeterminate': {
|
|
12276
|
+
color: 'common.white'
|
|
12277
|
+
}
|
|
12278
|
+
},
|
|
12279
|
+
tabIndex: -1
|
|
12280
|
+
})
|
|
12281
|
+
})
|
|
12282
|
+
}), jsxs(Menu, {
|
|
12283
|
+
anchorEl: menuAnchorEl,
|
|
12284
|
+
anchorOrigin: {
|
|
12285
|
+
horizontal: 'left',
|
|
12286
|
+
vertical: 'bottom'
|
|
12287
|
+
},
|
|
12288
|
+
id: menuId,
|
|
12289
|
+
onClose: handleCloseMenu,
|
|
12290
|
+
open: menuOpen,
|
|
12291
|
+
slotProps: {
|
|
12292
|
+
list: {
|
|
12293
|
+
'aria-labelledby': menuButtonId
|
|
12294
|
+
}
|
|
12295
|
+
},
|
|
12296
|
+
transformOrigin: {
|
|
12297
|
+
horizontal: 'left',
|
|
12298
|
+
vertical: 'top'
|
|
12299
|
+
},
|
|
12300
|
+
children: [jsx(MenuItem, {
|
|
12301
|
+
onClick: function onClick() {
|
|
12302
|
+
onSelectAll();
|
|
12303
|
+
handleCloseMenu();
|
|
12304
|
+
},
|
|
12305
|
+
children: allLabel
|
|
12306
|
+
}), jsx(MenuItem, {
|
|
12307
|
+
onClick: function onClick() {
|
|
12308
|
+
onSelectNone();
|
|
12309
|
+
handleCloseMenu();
|
|
12310
|
+
},
|
|
12311
|
+
children: noneLabel
|
|
12312
|
+
})]
|
|
12313
|
+
})]
|
|
12314
|
+
});
|
|
12315
|
+
};
|
|
12316
|
+
|
|
12317
|
+
/* *
|
|
12318
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12319
|
+
* you may not use this file except in compliance with the License.
|
|
12320
|
+
* You may obtain a copy of the License at
|
|
12321
|
+
*
|
|
12322
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12323
|
+
*
|
|
12324
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12325
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12326
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12327
|
+
* See the License for the specific language governing permissions and
|
|
12328
|
+
* limitations under the License.
|
|
12329
|
+
*
|
|
12330
|
+
* Copyright 2026 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12331
|
+
* Copyright 2026 - Finnish Meteorological Institute (FMI)
|
|
12332
|
+
* Copyright 2026 - The Norwegian Meteorological Institute (MET Norway)
|
|
12333
|
+
* */
|
|
12334
|
+
var getWarningStatus = function getWarningStatus(warning) {
|
|
12335
|
+
var _warning$status;
|
|
12336
|
+
return (_warning$status = warning.status) != null ? _warning$status : mapProductStatusToWarningStatus(warning.productStatus);
|
|
12337
|
+
};
|
|
12338
|
+
var isWarningSelectableForBatchDelete = function isWarningSelectableForBatchDelete(warning) {
|
|
12339
|
+
var status = getWarningStatus(warning);
|
|
12340
|
+
return status === PublicWarningStatus.DRAFT || status === PublicWarningStatus.DRAFT_PUBLISHED || status === PublicWarningStatus.TODO;
|
|
12341
|
+
};
|
|
12342
|
+
var getBatchDeletableWarningIds = function getBatchDeletableWarningIds(warnings) {
|
|
12343
|
+
return warnings.filter(isWarningSelectableForBatchDelete).map(function (warning) {
|
|
12344
|
+
return warning.id;
|
|
12345
|
+
}).filter(function (id) {
|
|
12346
|
+
return !!id;
|
|
12347
|
+
});
|
|
12348
|
+
};
|
|
12349
|
+
var getBatchSelectionState = function getBatchSelectionState(selectedIds, deletableIds) {
|
|
12350
|
+
if (deletableIds.length === 0) {
|
|
12351
|
+
return 'none';
|
|
12352
|
+
}
|
|
12353
|
+
var selectedIdSet = new Set(selectedIds);
|
|
12354
|
+
var selectedDeletableCount = deletableIds.filter(function (id) {
|
|
12355
|
+
return selectedIdSet.has(id);
|
|
12356
|
+
}).length;
|
|
12357
|
+
if (selectedDeletableCount === 0) {
|
|
12358
|
+
return 'none';
|
|
12359
|
+
}
|
|
12360
|
+
if (selectedDeletableCount === deletableIds.length) {
|
|
12361
|
+
return 'all';
|
|
12362
|
+
}
|
|
12363
|
+
return 'some';
|
|
12364
|
+
};
|
|
12365
|
+
|
|
12102
12366
|
var _excluded$3 = ["title", "status", "children", "width"];
|
|
12103
12367
|
var WarningListColumnContent = function WarningListColumnContent(_ref) {
|
|
12104
12368
|
var _sx;
|
|
@@ -12304,7 +12568,7 @@ var WarningListItemMenu = function WarningListItemMenu(_ref) {
|
|
|
12304
12568
|
}
|
|
12305
12569
|
};
|
|
12306
12570
|
|
|
12307
|
-
var _excluded$2 = ["warning", "activeWarningId", "highlightedItem", "onHoverWarning", "onSelectWarning", "onEditWarning", "onDeleteWarning", "onDeleteReviewWarning", "onExpireWarning", "onWithdrawWarning", "onActionAviationWarning", "onActionMaritimeWarning", "shouldDisableAviationAmendOption", "isHidden", "onToggleVisibility"];
|
|
12571
|
+
var _excluded$2 = ["warning", "activeWarningId", "highlightedItem", "onHoverWarning", "onSelectWarning", "onEditWarning", "onDeleteWarning", "onDeleteReviewWarning", "onExpireWarning", "onWithdrawWarning", "onActionAviationWarning", "onActionMaritimeWarning", "shouldDisableAviationAmendOption", "isHidden", "onToggleVisibility", "selectedForBatchDelete", "toggleWarningForBatchDelete"];
|
|
12308
12572
|
var renderLevelText = function renderLevelText(levelString) {
|
|
12309
12573
|
if (!levelString) {
|
|
12310
12574
|
return null;
|
|
@@ -12410,6 +12674,10 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
12410
12674
|
_ref$isHidden = _ref.isHidden,
|
|
12411
12675
|
isHidden = _ref$isHidden === void 0 ? false : _ref$isHidden,
|
|
12412
12676
|
onToggleVisibility = _ref.onToggleVisibility,
|
|
12677
|
+
_ref$selectedForBatch = _ref.selectedForBatchDelete,
|
|
12678
|
+
selectedForBatchDelete = _ref$selectedForBatch === void 0 ? [] : _ref$selectedForBatch,
|
|
12679
|
+
_ref$toggleWarningFor = _ref.toggleWarningForBatchDelete,
|
|
12680
|
+
toggleWarningForBatchDelete = _ref$toggleWarningFor === void 0 ? function () {} : _ref$toggleWarningFor,
|
|
12413
12681
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
12414
12682
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
12415
12683
|
t = _useWarningsTranslati.t;
|
|
@@ -12450,6 +12718,7 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
12450
12718
|
}
|
|
12451
12719
|
return t('warning-domain-aviation');
|
|
12452
12720
|
}, [t, warning.warningDetail.domain]);
|
|
12721
|
+
var isChecked = selectedForBatchDelete.includes(warning.id || '');
|
|
12453
12722
|
return jsxs(ListItem, Object.assign({
|
|
12454
12723
|
"data-testid": "warning-" + getSortedStatus(status),
|
|
12455
12724
|
onMouseEnter: function onMouseEnter() {
|
|
@@ -12458,24 +12727,40 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
12458
12727
|
onMouseLeave: function onMouseLeave() {
|
|
12459
12728
|
return onHoverWarning(undefined);
|
|
12460
12729
|
},
|
|
12461
|
-
secondaryAction:
|
|
12462
|
-
|
|
12463
|
-
|
|
12464
|
-
|
|
12465
|
-
|
|
12466
|
-
|
|
12467
|
-
|
|
12468
|
-
|
|
12469
|
-
|
|
12470
|
-
|
|
12471
|
-
|
|
12472
|
-
|
|
12473
|
-
|
|
12474
|
-
|
|
12475
|
-
|
|
12476
|
-
|
|
12477
|
-
|
|
12478
|
-
|
|
12730
|
+
secondaryAction: jsxs(Fragment, {
|
|
12731
|
+
children: [jsx(ToggleMenu, {
|
|
12732
|
+
"aria-label": t('warning-list-button-options'),
|
|
12733
|
+
buttonIcon: jsx(Options, {}),
|
|
12734
|
+
menuItems: WarningListItemMenu({
|
|
12735
|
+
warning: warning,
|
|
12736
|
+
t: t,
|
|
12737
|
+
onEditWarning: onEditWarning,
|
|
12738
|
+
onDeleteReviewWarning: onDeleteReviewWarning,
|
|
12739
|
+
onDeleteWarning: onDeleteWarning,
|
|
12740
|
+
onExpireWarning: onExpireWarning,
|
|
12741
|
+
onWithdrawWarning: onWithdrawWarning,
|
|
12742
|
+
onActionAviationWarning: onActionAviationWarning,
|
|
12743
|
+
onActionMaritimeWarning: onActionMaritimeWarning,
|
|
12744
|
+
shouldDisableAviationAmendOption: shouldDisableAviationAmendOption
|
|
12745
|
+
}),
|
|
12746
|
+
menuPosition: "bottom",
|
|
12747
|
+
menuTitle: t('warning-list-button-options'),
|
|
12748
|
+
tooltipTitle: t('warning-list-button-options')
|
|
12749
|
+
}), status === PublicWarningStatus.DRAFT || status === PublicWarningStatus.DRAFT_PUBLISHED || status === PublicWarningStatus.TODO ? jsx(Tooltip, {
|
|
12750
|
+
placement: "left",
|
|
12751
|
+
title: t('warning-list-batch-delete-checkbox'),
|
|
12752
|
+
children: jsx(Checkbox, {
|
|
12753
|
+
checked: isChecked,
|
|
12754
|
+
onChange: function onChange(e) {
|
|
12755
|
+
e.stopPropagation();
|
|
12756
|
+
if (warning.id) {
|
|
12757
|
+
toggleWarningForBatchDelete(warning.id);
|
|
12758
|
+
}
|
|
12759
|
+
},
|
|
12760
|
+
role: "checkbox",
|
|
12761
|
+
size: "small"
|
|
12762
|
+
})
|
|
12763
|
+
}) : null]
|
|
12479
12764
|
}),
|
|
12480
12765
|
sx: {
|
|
12481
12766
|
marginBottom: 0.25,
|
|
@@ -12485,7 +12770,17 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
12485
12770
|
borderColor: status === PublicWarningStatus.EXPIRED || status === PublicWarningStatus.WITHDRAWN ? 'geowebColors.cards.cardContainerDisabledBorder' : 'geowebColors.cards.cardContainerBorder',
|
|
12486
12771
|
borderRadius: 1,
|
|
12487
12772
|
borderWidth: activeWarningId === warning.id ? '1px' : '1px',
|
|
12488
|
-
borderStyle: 'solid'
|
|
12773
|
+
borderStyle: 'solid',
|
|
12774
|
+
'& .MuiListItemButton-root': {
|
|
12775
|
+
paddingRight: '60px'
|
|
12776
|
+
},
|
|
12777
|
+
'& .MuiListItemSecondaryAction-root': {
|
|
12778
|
+
width: '50px',
|
|
12779
|
+
right: '8px'
|
|
12780
|
+
},
|
|
12781
|
+
'& .MuiCheckbox-root': {
|
|
12782
|
+
padding: '2px'
|
|
12783
|
+
}
|
|
12489
12784
|
}
|
|
12490
12785
|
}, props, {
|
|
12491
12786
|
children: [jsx(CustomTooltip, {
|
|
@@ -13295,6 +13590,8 @@ var RowComponent = function RowComponent(_ref) {
|
|
|
13295
13590
|
expandedSections = _ref.expandedSections,
|
|
13296
13591
|
hoveredFeatureId = _ref.hoveredFeatureId,
|
|
13297
13592
|
selectedWarningId = _ref.selectedWarningId,
|
|
13593
|
+
selectedForBatchDelete = _ref.selectedForBatchDelete,
|
|
13594
|
+
toggleWarningForBatchDelete = _ref.toggleWarningForBatchDelete,
|
|
13298
13595
|
onHoverWarning = _ref.onHoverWarning,
|
|
13299
13596
|
onSelectWarning = _ref.onSelectWarning,
|
|
13300
13597
|
onEditWarning = _ref.onEditWarning,
|
|
@@ -13341,8 +13638,10 @@ var RowComponent = function RowComponent(_ref) {
|
|
|
13341
13638
|
onSelectWarning: onSelectWarning,
|
|
13342
13639
|
onToggleVisibility: onToggleWarningVisibility,
|
|
13343
13640
|
onWithdrawWarning: onWithdrawWarning,
|
|
13641
|
+
selectedForBatchDelete: selectedForBatchDelete,
|
|
13344
13642
|
shouldDisableAviationAmendOption: shouldDisableAviationAmendOption,
|
|
13345
13643
|
style: style,
|
|
13644
|
+
toggleWarningForBatchDelete: toggleWarningForBatchDelete,
|
|
13346
13645
|
warning: publicWarning
|
|
13347
13646
|
}, key);
|
|
13348
13647
|
};
|
|
@@ -13414,6 +13713,8 @@ var PublicWarningList = function PublicWarningList(_ref2) {
|
|
|
13414
13713
|
onActionAviationWarning = _ref2$onActionAviatio === void 0 ? function () {} : _ref2$onActionAviatio,
|
|
13415
13714
|
_ref2$onActionMaritim = _ref2.onActionMaritimeWarning,
|
|
13416
13715
|
onActionMaritimeWarning = _ref2$onActionMaritim === void 0 ? function () {} : _ref2$onActionMaritim,
|
|
13716
|
+
_ref2$onClickBatchDel = _ref2.onClickBatchDelete,
|
|
13717
|
+
onClickBatchDelete = _ref2$onClickBatchDel === void 0 ? function () {} : _ref2$onClickBatchDel,
|
|
13417
13718
|
hoveredFeatureId = _ref2.hoveredFeatureId,
|
|
13418
13719
|
expandedSections = _ref2.expandedSections,
|
|
13419
13720
|
setExpandedSections = _ref2.setExpandedSections,
|
|
@@ -13423,7 +13724,15 @@ var PublicWarningList = function PublicWarningList(_ref2) {
|
|
|
13423
13724
|
_ref2$shouldDisableAv = _ref2.shouldDisableAviationAmendOption,
|
|
13424
13725
|
shouldDisableAviationAmendOption = _ref2$shouldDisableAv === void 0 ? false : _ref2$shouldDisableAv,
|
|
13425
13726
|
hiddenWarningIds = _ref2.hiddenWarningIds,
|
|
13426
|
-
onToggleWarningVisibility = _ref2.onToggleWarningVisibility
|
|
13727
|
+
onToggleWarningVisibility = _ref2.onToggleWarningVisibility,
|
|
13728
|
+
_ref2$selectedForBatc = _ref2.selectedForBatchDelete,
|
|
13729
|
+
selectedForBatchDelete = _ref2$selectedForBatc === void 0 ? [] : _ref2$selectedForBatc,
|
|
13730
|
+
_ref2$toggleWarningFo = _ref2.toggleWarningForBatchDelete,
|
|
13731
|
+
toggleWarningForBatchDelete = _ref2$toggleWarningFo === void 0 ? function () {} : _ref2$toggleWarningFo,
|
|
13732
|
+
_ref2$onSelectAllForB = _ref2.onSelectAllForBatchDelete,
|
|
13733
|
+
onSelectAllForBatchDelete = _ref2$onSelectAllForB === void 0 ? function () {} : _ref2$onSelectAllForB,
|
|
13734
|
+
_ref2$onClearBatchDel = _ref2.onClearBatchDeleteSelection,
|
|
13735
|
+
onClearBatchDeleteSelection = _ref2$onClearBatchDel === void 0 ? function () {} : _ref2$onClearBatchDel;
|
|
13427
13736
|
var updateFilter = filterHookState.updateFilter,
|
|
13428
13737
|
allSelected = filterHookState.allSelected,
|
|
13429
13738
|
filterState = filterHookState.filterState,
|
|
@@ -13507,6 +13816,24 @@ var PublicWarningList = function PublicWarningList(_ref2) {
|
|
|
13507
13816
|
}
|
|
13508
13817
|
}, [listRef, resetListIndex, warnings]);
|
|
13509
13818
|
var filterHeight = useGetFilterHeight(filterRef);
|
|
13819
|
+
var warningIdSet = React.useMemo(function () {
|
|
13820
|
+
return new Set(warnings.map(function (warning) {
|
|
13821
|
+
return warning.id;
|
|
13822
|
+
}).filter(function (id) {
|
|
13823
|
+
return !!id;
|
|
13824
|
+
}));
|
|
13825
|
+
}, [warnings]);
|
|
13826
|
+
var selectedForBatchDeleteFiltered = React.useMemo(function () {
|
|
13827
|
+
return selectedForBatchDelete.filter(function (id) {
|
|
13828
|
+
return warningIdSet.has(id);
|
|
13829
|
+
});
|
|
13830
|
+
}, [selectedForBatchDelete, warningIdSet]);
|
|
13831
|
+
var batchDeletableWarningIds = React.useMemo(function () {
|
|
13832
|
+
return getBatchDeletableWarningIds(warnings);
|
|
13833
|
+
}, [warnings]);
|
|
13834
|
+
var batchSelectionState = React.useMemo(function () {
|
|
13835
|
+
return getBatchSelectionState(selectedForBatchDeleteFiltered, batchDeletableWarningIds);
|
|
13836
|
+
}, [batchDeletableWarningIds, selectedForBatchDeleteFiltered]);
|
|
13510
13837
|
return jsxs(Fragment, {
|
|
13511
13838
|
children: [isLoading ? jsx(LinearProgress, {
|
|
13512
13839
|
color: "secondary",
|
|
@@ -13574,66 +13901,107 @@ var PublicWarningList = function PublicWarningList(_ref2) {
|
|
|
13574
13901
|
container: true,
|
|
13575
13902
|
rowSpacing: 0,
|
|
13576
13903
|
size: "grow",
|
|
13577
|
-
sx:
|
|
13904
|
+
sx: {
|
|
13578
13905
|
alignItems: 'center',
|
|
13579
|
-
justifyContent: 'space-between',
|
|
13580
13906
|
maxWidth: '100%',
|
|
13581
|
-
display: '
|
|
13582
|
-
marginTop: '4px'
|
|
13583
|
-
|
|
13584
|
-
|
|
13585
|
-
|
|
13586
|
-
children: [jsx(WarningListHeaderContent, {
|
|
13907
|
+
display: 'flex',
|
|
13908
|
+
marginTop: '4px',
|
|
13909
|
+
height: '24px'
|
|
13910
|
+
},
|
|
13911
|
+
children: [jsx(Box, {
|
|
13587
13912
|
sx: {
|
|
13588
|
-
|
|
13589
|
-
|
|
13590
|
-
|
|
13591
|
-
}), jsx(WarningListHeaderContent, {
|
|
13592
|
-
isSorted: sortState.key === 'lastUpdatedTime',
|
|
13593
|
-
onClick: function onClick() {
|
|
13594
|
-
return toggleSortDirection('lastUpdatedTime');
|
|
13595
|
-
},
|
|
13596
|
-
sortDirection: sortState.direction,
|
|
13597
|
-
sortable: true,
|
|
13598
|
-
title: t('warning-list-header-last-update') + " UTC",
|
|
13599
|
-
width: 142
|
|
13600
|
-
}), jsx(WarningListHeaderContent, {
|
|
13601
|
-
isSorted: sortState.key === 'validFrom',
|
|
13602
|
-
onClick: function onClick() {
|
|
13603
|
-
return toggleSortDirection('validFrom');
|
|
13604
|
-
},
|
|
13605
|
-
sortDirection: sortState.direction,
|
|
13606
|
-
sortable: true,
|
|
13607
|
-
title: t('warning-list-header-start-time') + " UTC",
|
|
13608
|
-
width: 142
|
|
13609
|
-
}), jsx(WarningListHeaderContent, {
|
|
13610
|
-
isSorted: sortState.key === 'validUntil',
|
|
13611
|
-
onClick: function onClick() {
|
|
13612
|
-
return toggleSortDirection('validUntil');
|
|
13913
|
+
display: 'flex',
|
|
13914
|
+
flex: 1,
|
|
13915
|
+
minWidth: 0
|
|
13613
13916
|
},
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13620
|
-
|
|
13621
|
-
|
|
13622
|
-
|
|
13623
|
-
|
|
13624
|
-
|
|
13625
|
-
|
|
13626
|
-
|
|
13627
|
-
|
|
13628
|
-
|
|
13629
|
-
|
|
13630
|
-
|
|
13631
|
-
|
|
13917
|
+
children: jsxs(Grid, {
|
|
13918
|
+
container: true,
|
|
13919
|
+
size: "grow",
|
|
13920
|
+
sx: (_sx = {
|
|
13921
|
+
display: 'none',
|
|
13922
|
+
alignItems: 'center',
|
|
13923
|
+
justifyContent: 'space-between',
|
|
13924
|
+
maxWidth: '100%'
|
|
13925
|
+
}, _sx["@container publicWarningList (min-width: " + breakpoints.desktop + "px)"] = {
|
|
13926
|
+
display: 'flex'
|
|
13927
|
+
}, _sx),
|
|
13928
|
+
children: [jsx(WarningListHeaderContent, {
|
|
13929
|
+
sx: {
|
|
13930
|
+
paddingLeft: 2
|
|
13931
|
+
},
|
|
13932
|
+
title: t('warning-list-header-incidents')
|
|
13933
|
+
}), jsx(WarningListHeaderContent, {
|
|
13934
|
+
isSorted: sortState.key === 'lastUpdatedTime',
|
|
13935
|
+
onClick: function onClick() {
|
|
13936
|
+
return toggleSortDirection('lastUpdatedTime');
|
|
13937
|
+
},
|
|
13938
|
+
sortDirection: sortState.direction,
|
|
13939
|
+
sortable: true,
|
|
13940
|
+
title: t('warning-list-header-last-update') + " UTC",
|
|
13941
|
+
width: 142
|
|
13942
|
+
}), jsx(WarningListHeaderContent, {
|
|
13943
|
+
isSorted: sortState.key === 'validFrom',
|
|
13944
|
+
onClick: function onClick() {
|
|
13945
|
+
return toggleSortDirection('validFrom');
|
|
13946
|
+
},
|
|
13947
|
+
sortDirection: sortState.direction,
|
|
13948
|
+
sortable: true,
|
|
13949
|
+
title: t('warning-list-header-start-time') + " UTC",
|
|
13950
|
+
width: 142
|
|
13951
|
+
}), jsx(WarningListHeaderContent, {
|
|
13952
|
+
isSorted: sortState.key === 'validUntil',
|
|
13953
|
+
onClick: function onClick() {
|
|
13954
|
+
return toggleSortDirection('validUntil');
|
|
13955
|
+
},
|
|
13956
|
+
sortDirection: sortState.direction,
|
|
13957
|
+
sortable: true,
|
|
13958
|
+
title: t('warning-list-header-end-time') + " UTC",
|
|
13959
|
+
width: 142
|
|
13960
|
+
}), jsx(WarningListHeaderContent, {
|
|
13961
|
+
title: t('warning-list-header-domains')
|
|
13962
|
+
}), jsx(WarningListHeaderContent, {
|
|
13963
|
+
title: t('warning-list-header-phenomena'),
|
|
13964
|
+
width: 140
|
|
13965
|
+
}), jsx(WarningListHeaderContent, {
|
|
13966
|
+
sx: (_sx2 = {}, _sx2["@container publicWarningList (min-width: " + breakpoints.desktop + "px)"] = {
|
|
13967
|
+
width: 56
|
|
13968
|
+
}, _sx2),
|
|
13969
|
+
title: t('warning-list-header-levels')
|
|
13970
|
+
}), jsx(WarningListHeaderContent, {
|
|
13971
|
+
title: t('areas'),
|
|
13972
|
+
width: 100
|
|
13973
|
+
}), jsx(WarningListHeaderContent, {
|
|
13974
|
+
sx: {
|
|
13975
|
+
marginRight: '48px'
|
|
13976
|
+
},
|
|
13977
|
+
title: t('warning-list-header-status'),
|
|
13978
|
+
width: 76
|
|
13979
|
+
})]
|
|
13980
|
+
})
|
|
13981
|
+
}), jsxs(Box, {
|
|
13632
13982
|
sx: {
|
|
13633
|
-
|
|
13983
|
+
width: '60px',
|
|
13984
|
+
flexShrink: 0,
|
|
13985
|
+
display: 'flex',
|
|
13986
|
+
alignItems: 'flex-end',
|
|
13987
|
+
justifyContent: 'flex-end'
|
|
13634
13988
|
},
|
|
13635
|
-
|
|
13636
|
-
|
|
13989
|
+
children: [selectedForBatchDeleteFiltered.length > 0 && jsx(CustomIconButton, {
|
|
13990
|
+
"data-testid": "batch-delete-button",
|
|
13991
|
+
onClick: function onClick() {
|
|
13992
|
+
onClickBatchDelete(selectedForBatchDelete);
|
|
13993
|
+
},
|
|
13994
|
+
tooltipTitle: t('warning-dialog-delete-all-button'),
|
|
13995
|
+
variant: "tool",
|
|
13996
|
+
children: jsx(Delete, {})
|
|
13997
|
+
}), jsx(SelectAllButton, {
|
|
13998
|
+
disabled: batchDeletableWarningIds.length === 0,
|
|
13999
|
+
onSelectAll: function onSelectAll() {
|
|
14000
|
+
onSelectAllForBatchDelete(batchDeletableWarningIds);
|
|
14001
|
+
},
|
|
14002
|
+
onSelectNone: onClearBatchDeleteSelection,
|
|
14003
|
+
selectionState: batchSelectionState
|
|
14004
|
+
})]
|
|
13637
14005
|
})]
|
|
13638
14006
|
}), sortedWarnings && !error ? jsx(Box, {
|
|
13639
14007
|
"data-testid": "warnings-list",
|
|
@@ -13667,7 +14035,9 @@ var PublicWarningList = function PublicWarningList(_ref2) {
|
|
|
13667
14035
|
onActionMaritimeWarning: onActionMaritimeWarning,
|
|
13668
14036
|
shouldDisableAviationAmendOption: shouldDisableAviationAmendOption,
|
|
13669
14037
|
hiddenWarningIds: hiddenWarningIds,
|
|
13670
|
-
onToggleWarningVisibility: onToggleWarningVisibility
|
|
14038
|
+
onToggleWarningVisibility: onToggleWarningVisibility,
|
|
14039
|
+
selectedForBatchDelete: selectedForBatchDelete,
|
|
14040
|
+
toggleWarningForBatchDelete: toggleWarningForBatchDelete
|
|
13671
14041
|
}
|
|
13672
14042
|
})
|
|
13673
14043
|
}) : null]
|
|
@@ -13695,7 +14065,7 @@ var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
|
|
|
13695
14065
|
setError = _React$useState2[1];
|
|
13696
14066
|
var onSubmit = /*#__PURE__*/function () {
|
|
13697
14067
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
13698
|
-
var _t;
|
|
14068
|
+
var result, _t;
|
|
13699
14069
|
return _regenerator().w(function (_context) {
|
|
13700
14070
|
while (1) switch (_context.p = _context.n) {
|
|
13701
14071
|
case 0:
|
|
@@ -13704,7 +14074,8 @@ var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
|
|
|
13704
14074
|
_context.n = 2;
|
|
13705
14075
|
return request();
|
|
13706
14076
|
case 2:
|
|
13707
|
-
|
|
14077
|
+
result = _context.v;
|
|
14078
|
+
callback == null || callback(result);
|
|
13708
14079
|
setIsLoading(false);
|
|
13709
14080
|
_context.n = 4;
|
|
13710
14081
|
break;
|
|
@@ -14119,10 +14490,10 @@ var CancelAviationDialogContent = function CancelAviationDialogContent(_ref) {
|
|
|
14119
14490
|
maxWidth: 600
|
|
14120
14491
|
},
|
|
14121
14492
|
children: [jsx(Typography, {
|
|
14122
|
-
variant: "inherit",
|
|
14123
14493
|
sx: {
|
|
14124
14494
|
fontWeight: 'medium'
|
|
14125
14495
|
},
|
|
14496
|
+
variant: "inherit",
|
|
14126
14497
|
children: t('cancel-message')
|
|
14127
14498
|
}), jsx("div", {
|
|
14128
14499
|
style: {
|
|
@@ -14137,10 +14508,10 @@ var CancelAviationDialogContent = function CancelAviationDialogContent(_ref) {
|
|
|
14137
14508
|
children: cancelContent
|
|
14138
14509
|
})
|
|
14139
14510
|
}), jsx(Typography, {
|
|
14140
|
-
variant: "inherit",
|
|
14141
14511
|
sx: {
|
|
14142
14512
|
fontWeight: 'medium'
|
|
14143
14513
|
},
|
|
14514
|
+
variant: "inherit",
|
|
14144
14515
|
children: t('will-cancel-message')
|
|
14145
14516
|
}), jsx("div", {
|
|
14146
14517
|
style: {
|
|
@@ -14277,6 +14648,25 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
14277
14648
|
var panelId = _ref.panelId,
|
|
14278
14649
|
presetExpandedSections = _ref.presetExpandedSections,
|
|
14279
14650
|
presetFilterState = _ref.presetFilterState;
|
|
14651
|
+
var _React$useState = React.useState([]),
|
|
14652
|
+
selectedForBatchDelete = _React$useState[0],
|
|
14653
|
+
setSelectedForBatchDelete = _React$useState[1];
|
|
14654
|
+
var toggleWarningForBatchDelete = React.useCallback(function (warningId) {
|
|
14655
|
+
setSelectedForBatchDelete(function (prev) {
|
|
14656
|
+
if (prev.includes(warningId)) {
|
|
14657
|
+
return prev.filter(function (id) {
|
|
14658
|
+
return id !== warningId;
|
|
14659
|
+
});
|
|
14660
|
+
}
|
|
14661
|
+
return [].concat(prev, [warningId]);
|
|
14662
|
+
});
|
|
14663
|
+
}, []);
|
|
14664
|
+
var selectAllForBatchDelete = React.useCallback(function (warningIds) {
|
|
14665
|
+
setSelectedForBatchDelete(Array.from(new Set(warningIds)));
|
|
14666
|
+
}, []);
|
|
14667
|
+
var clearBatchDeleteSelection = React.useCallback(function () {
|
|
14668
|
+
setSelectedForBatchDelete([]);
|
|
14669
|
+
}, []);
|
|
14280
14670
|
var updatePublicWarningEditor = useMutatePublicWarningEditor();
|
|
14281
14671
|
var _useMutateMaritimeWar = useMutateMaritimeWarningsEditor(),
|
|
14282
14672
|
updateMaritimeWarningEditor = _useMutateMaritimeWar.mutateAsync;
|
|
@@ -14304,9 +14694,9 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
14304
14694
|
dataUpdatedAt = _useWarnings.dataUpdatedAt;
|
|
14305
14695
|
useAutoRefetchOnExpiry(combinedWarnings, refetchWarnings);
|
|
14306
14696
|
var lastUpdateTime = dateUtils.dateToString(new Date(dataUpdatedAt), dateUtils.DATE_FORMAT_HOURS);
|
|
14307
|
-
var _React$
|
|
14308
|
-
confirmDialogOptions = _React$
|
|
14309
|
-
setConfirmDialogOptions = _React$
|
|
14697
|
+
var _React$useState2 = React.useState(undefined),
|
|
14698
|
+
confirmDialogOptions = _React$useState2[0],
|
|
14699
|
+
setConfirmDialogOptions = _React$useState2[1];
|
|
14310
14700
|
var selectedWarningId = useSelector(getSelectedWarningId);
|
|
14311
14701
|
var selectedFormWarning = useSelector(getPublicWarning);
|
|
14312
14702
|
var isFormDirty = useSelector(getSelectedPublicIsFormDirty);
|
|
@@ -14516,9 +14906,9 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
14516
14906
|
return _ref5.apply(this, arguments);
|
|
14517
14907
|
};
|
|
14518
14908
|
}();
|
|
14519
|
-
var _React$
|
|
14520
|
-
hiddenWarningIds = _React$
|
|
14521
|
-
setHiddenWarningIds = _React$
|
|
14909
|
+
var _React$useState3 = React.useState(new Set()),
|
|
14910
|
+
hiddenWarningIds = _React$useState3[0],
|
|
14911
|
+
setHiddenWarningIds = _React$useState3[1];
|
|
14522
14912
|
var handleToggleWarningVisibility = React.useCallback(function (warningId) {
|
|
14523
14913
|
setHiddenWarningIds(function (prev) {
|
|
14524
14914
|
var next = new Set(prev);
|
|
@@ -14530,12 +14920,12 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
14530
14920
|
return next;
|
|
14531
14921
|
});
|
|
14532
14922
|
}, []);
|
|
14533
|
-
var _React$
|
|
14534
|
-
cancelOpen = _React$
|
|
14535
|
-
setCancelOpen = _React$
|
|
14536
|
-
var _React$
|
|
14537
|
-
cancelCtx = _React$
|
|
14538
|
-
setCancelCtx = _React$
|
|
14923
|
+
var _React$useState4 = React.useState(false),
|
|
14924
|
+
cancelOpen = _React$useState4[0],
|
|
14925
|
+
setCancelOpen = _React$useState4[1];
|
|
14926
|
+
var _React$useState5 = React.useState(null),
|
|
14927
|
+
cancelCtx = _React$useState5[0],
|
|
14928
|
+
setCancelCtx = _React$useState5[1];
|
|
14539
14929
|
var openCancelDialog = function openCancelDialog(warning) {
|
|
14540
14930
|
var type = warning.warningDetail.level === 'SIG' ? 'sigmet' : 'airmet';
|
|
14541
14931
|
var product = warning.sigmetAirmetDetails;
|
|
@@ -14842,6 +15232,19 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
14842
15232
|
var displayedWarnings = React.useMemo(function () {
|
|
14843
15233
|
return shouldShowAlertBanner ? [] : filteredWarnings;
|
|
14844
15234
|
}, [shouldShowAlertBanner, filteredWarnings]);
|
|
15235
|
+
React.useEffect(function () {
|
|
15236
|
+
setSelectedForBatchDelete(function (prev) {
|
|
15237
|
+
var visibleIds = new Set(displayedWarnings.map(function (warning) {
|
|
15238
|
+
return warning.id;
|
|
15239
|
+
}).filter(function (id) {
|
|
15240
|
+
return !!id;
|
|
15241
|
+
}));
|
|
15242
|
+
var next = prev.filter(function (id) {
|
|
15243
|
+
return visibleIds.has(id);
|
|
15244
|
+
});
|
|
15245
|
+
return next.length === prev.length ? prev : next;
|
|
15246
|
+
});
|
|
15247
|
+
}, [displayedWarnings]);
|
|
14845
15248
|
var expandedSections = useSelector(function (store) {
|
|
14846
15249
|
return getExpandedSectionsByPanelId(store, panelId);
|
|
14847
15250
|
});
|
|
@@ -14952,12 +15355,12 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
14952
15355
|
var _workspaceViewsById$t;
|
|
14953
15356
|
return (workspaceViewsById == null || (_workspaceViewsById$t = workspaceViewsById[targetId]) == null ? void 0 : _workspaceViewsById$t.componentType) === 'WarningsTimeline';
|
|
14954
15357
|
});
|
|
14955
|
-
var _React$
|
|
14956
|
-
localHoveredWarningId = _React$
|
|
14957
|
-
setLocalHoveredWarningId = _React$
|
|
14958
|
-
var _React$
|
|
14959
|
-
isUsingLocalHoverOverride = _React$
|
|
14960
|
-
setIsUsingLocalHoverOverride = _React$
|
|
15358
|
+
var _React$useState6 = React.useState(undefined),
|
|
15359
|
+
localHoveredWarningId = _React$useState6[0],
|
|
15360
|
+
setLocalHoveredWarningId = _React$useState6[1];
|
|
15361
|
+
var _React$useState7 = React.useState(false),
|
|
15362
|
+
isUsingLocalHoverOverride = _React$useState7[0],
|
|
15363
|
+
setIsUsingLocalHoverOverride = _React$useState7[1];
|
|
14961
15364
|
var hoverDispatchTimeoutRef = React.useRef(undefined);
|
|
14962
15365
|
var hoveredFeatureId = isUsingLocalHoverOverride ? localHoveredWarningId : (_hoveredLinkedFeature = hoveredLinkedFeatureIds[0]) != null ? _hoveredLinkedFeature : hoveredLocalWarningIds[0];
|
|
14963
15366
|
var handleHoverWarning = React.useCallback(function (warningId) {
|
|
@@ -15008,6 +15411,143 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
15008
15411
|
});
|
|
15009
15412
|
};
|
|
15010
15413
|
}, [dispatch, panelId, store]);
|
|
15414
|
+
var doBatchDelete = /*#__PURE__*/function () {
|
|
15415
|
+
var _ref8 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee11(warningIds) {
|
|
15416
|
+
var warningsById, promises, results;
|
|
15417
|
+
return _regenerator().w(function (_context11) {
|
|
15418
|
+
while (1) switch (_context11.n) {
|
|
15419
|
+
case 0:
|
|
15420
|
+
warningsById = new Map(displayedWarnings.map(function (warning) {
|
|
15421
|
+
return [warning.id, warning];
|
|
15422
|
+
}));
|
|
15423
|
+
promises = warningIds.flatMap(function (warningId) {
|
|
15424
|
+
var warning = warningsById.get(warningId);
|
|
15425
|
+
if (!warning) {
|
|
15426
|
+
return [];
|
|
15427
|
+
}
|
|
15428
|
+
if (warning.type === 'public') {
|
|
15429
|
+
var promise = warning.status === PublicWarningStatus.TODO ? saveWarning({
|
|
15430
|
+
id: warning.id,
|
|
15431
|
+
data: Object.assign({}, warning, {
|
|
15432
|
+
status: PublicWarningStatus.IGNORED,
|
|
15433
|
+
type: 'public'
|
|
15434
|
+
})
|
|
15435
|
+
}) : deletePublicWarning({
|
|
15436
|
+
id: warningId
|
|
15437
|
+
});
|
|
15438
|
+
return [{
|
|
15439
|
+
id: warningId,
|
|
15440
|
+
promise: promise
|
|
15441
|
+
}];
|
|
15442
|
+
}
|
|
15443
|
+
if (warning.type === 'airmet' || warning.type === 'sigmet') {
|
|
15444
|
+
return [{
|
|
15445
|
+
id: warningId,
|
|
15446
|
+
promise: postAviationProduct(warning.sigmetAirmetDetails, 'DISCARDED', warning.type)
|
|
15447
|
+
}];
|
|
15448
|
+
}
|
|
15449
|
+
// Maritime warnings are ignored as they cannot have status DRAFT/TODO
|
|
15450
|
+
return [];
|
|
15451
|
+
}); // Correct version
|
|
15452
|
+
_context11.n = 1;
|
|
15453
|
+
return Promise.allSettled(promises.map(/*#__PURE__*/function () {
|
|
15454
|
+
var _ref0 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee10(_ref9) {
|
|
15455
|
+
var promise;
|
|
15456
|
+
return _regenerator().w(function (_context10) {
|
|
15457
|
+
while (1) switch (_context10.n) {
|
|
15458
|
+
case 0:
|
|
15459
|
+
promise = _ref9.promise;
|
|
15460
|
+
return _context10.a(2, promise);
|
|
15461
|
+
}
|
|
15462
|
+
}, _callee10);
|
|
15463
|
+
}));
|
|
15464
|
+
return function (_x12) {
|
|
15465
|
+
return _ref0.apply(this, arguments);
|
|
15466
|
+
};
|
|
15467
|
+
}()));
|
|
15468
|
+
case 1:
|
|
15469
|
+
results = _context11.v;
|
|
15470
|
+
return _context11.a(2, promises.filter(function (_, index) {
|
|
15471
|
+
return results[index].status === 'fulfilled';
|
|
15472
|
+
}).map(function (_ref1) {
|
|
15473
|
+
var id = _ref1.id;
|
|
15474
|
+
return id;
|
|
15475
|
+
}));
|
|
15476
|
+
}
|
|
15477
|
+
}, _callee11);
|
|
15478
|
+
}));
|
|
15479
|
+
return function doBatchDelete(_x11) {
|
|
15480
|
+
return _ref8.apply(this, arguments);
|
|
15481
|
+
};
|
|
15482
|
+
}();
|
|
15483
|
+
var onClickBatchDelete = function onClickBatchDelete(warningIds) {
|
|
15484
|
+
// Filter out any warnings that are excluded because of the filter
|
|
15485
|
+
var warningIdSet = new Set(displayedWarnings.map(function (warning) {
|
|
15486
|
+
return warning.id;
|
|
15487
|
+
}));
|
|
15488
|
+
var filteredWarningIds = warningIds.filter(function (id) {
|
|
15489
|
+
return warningIdSet.has(id);
|
|
15490
|
+
});
|
|
15491
|
+
var isLocked = filteredWarningIds.some(function (warningId) {
|
|
15492
|
+
var _fullWarning$editor, _auth$username4;
|
|
15493
|
+
var fullWarning = displayedWarnings.find(function (warning) {
|
|
15494
|
+
return warning.id === warningId;
|
|
15495
|
+
});
|
|
15496
|
+
var editor = (_fullWarning$editor = fullWarning == null ? void 0 : fullWarning.editor) != null ? _fullWarning$editor : '';
|
|
15497
|
+
var currentUser = (_auth$username4 = auth == null ? void 0 : auth.username) != null ? _auth$username4 : '';
|
|
15498
|
+
return editor !== '' && editor !== currentUser;
|
|
15499
|
+
});
|
|
15500
|
+
setConfirmDialogOptions({
|
|
15501
|
+
confirmLabel: t('warning-dialog-delete-all-confirm'),
|
|
15502
|
+
title: t('warning-dialog-delete-all-title'),
|
|
15503
|
+
description: t('warning-dialog-delete-all-description', {
|
|
15504
|
+
ns: WARN_NAMESPACE,
|
|
15505
|
+
NUMBER: filteredWarningIds.length
|
|
15506
|
+
}),
|
|
15507
|
+
request: function () {
|
|
15508
|
+
var _request7 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee12() {
|
|
15509
|
+
return _regenerator().w(function (_context12) {
|
|
15510
|
+
while (1) switch (_context12.n) {
|
|
15511
|
+
case 0:
|
|
15512
|
+
return _context12.a(2, doBatchDelete(filteredWarningIds));
|
|
15513
|
+
}
|
|
15514
|
+
}, _callee12);
|
|
15515
|
+
}));
|
|
15516
|
+
function request() {
|
|
15517
|
+
return _request7.apply(this, arguments);
|
|
15518
|
+
}
|
|
15519
|
+
return request;
|
|
15520
|
+
}(),
|
|
15521
|
+
callback: function callback(data) {
|
|
15522
|
+
var successfulIds = data || [];
|
|
15523
|
+
if (filteredWarningIds.includes(selectedWarningId)) {
|
|
15524
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
15525
|
+
setOpen: false,
|
|
15526
|
+
type: publicWarningDialogType
|
|
15527
|
+
}));
|
|
15528
|
+
}
|
|
15529
|
+
// Only show snackbar and remove from selection if there were successes
|
|
15530
|
+
if (successfulIds.length > 0) {
|
|
15531
|
+
openSnackbar(t('warning-dialog-delete-all-succes'));
|
|
15532
|
+
setSelectedForBatchDelete(function (prev) {
|
|
15533
|
+
return prev.filter(function (id) {
|
|
15534
|
+
return !successfulIds.includes(id);
|
|
15535
|
+
});
|
|
15536
|
+
});
|
|
15537
|
+
}
|
|
15538
|
+
var failedCount = filteredWarningIds.length - successfulIds.length;
|
|
15539
|
+
if (failedCount > 0) {
|
|
15540
|
+
throw new Error(t('warning-dialog-delete-all-failed', {
|
|
15541
|
+
NUMBER: failedCount
|
|
15542
|
+
}));
|
|
15543
|
+
} else {
|
|
15544
|
+
setConfirmDialogOptions(undefined);
|
|
15545
|
+
}
|
|
15546
|
+
refetchWarnings();
|
|
15547
|
+
},
|
|
15548
|
+
isLocked: isLocked
|
|
15549
|
+
});
|
|
15550
|
+
};
|
|
15011
15551
|
return isLoggedIn ? jsxs(Fragment, {
|
|
15012
15552
|
children: [jsx(PublicWarningList, {
|
|
15013
15553
|
error: error != null ? error : undefined,
|
|
@@ -15020,6 +15560,8 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
15020
15560
|
limitAlertCount: filteredWarnings.length,
|
|
15021
15561
|
onActionAviationWarning: handleAviationProductClick,
|
|
15022
15562
|
onActionMaritimeWarning: handleMaritimeProductClick,
|
|
15563
|
+
onClearBatchDeleteSelection: clearBatchDeleteSelection,
|
|
15564
|
+
onClickBatchDelete: onClickBatchDelete,
|
|
15023
15565
|
onCreateWarning: createWarning,
|
|
15024
15566
|
onDeleteReviewWarning: deleteReviewWarning,
|
|
15025
15567
|
onDeleteWarning: deleteWarning,
|
|
@@ -15027,13 +15569,16 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
15027
15569
|
onExpireWarning: expireWarning,
|
|
15028
15570
|
onHoverWarning: handleHoverWarning,
|
|
15029
15571
|
onRefetchWarnings: refetchWarnings,
|
|
15572
|
+
onSelectAllForBatchDelete: selectAllForBatchDelete,
|
|
15030
15573
|
onSelectWarning: selectWarning,
|
|
15031
15574
|
onToggleWarningVisibility: handleToggleWarningVisibility,
|
|
15032
15575
|
onWithdrawWarning: withdrawWarning,
|
|
15576
|
+
selectedForBatchDelete: selectedForBatchDelete,
|
|
15033
15577
|
selectedWarningId: selectedWarningId,
|
|
15034
15578
|
setExpandedSections: setExpandedSections,
|
|
15035
15579
|
shouldDisableAviationAmendOption: (aviationConfig == null ? void 0 : aviationConfig.disable_amend_action) === true,
|
|
15036
15580
|
showLimitAlert: shouldShowAlertBanner,
|
|
15581
|
+
toggleWarningForBatchDelete: toggleWarningForBatchDelete,
|
|
15037
15582
|
warnings: displayedWarnings
|
|
15038
15583
|
}), confirmDialogOptions ? jsx(ConfirmDeleteWarningDialog, {
|
|
15039
15584
|
callback: confirmDialogOptions.callback,
|
|
@@ -15048,15 +15593,15 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
15048
15593
|
}) : null, !!cancelCtx && jsx(CancelAviationConfirmDialog, {
|
|
15049
15594
|
aviationConfig: aviationConfig,
|
|
15050
15595
|
cancelAviationProduct: function () {
|
|
15051
|
-
var _cancelAviationProduct2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function
|
|
15052
|
-
return _regenerator().w(function (
|
|
15053
|
-
while (1) switch (
|
|
15596
|
+
var _cancelAviationProduct2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee13(product, t, opts) {
|
|
15597
|
+
return _regenerator().w(function (_context13) {
|
|
15598
|
+
while (1) switch (_context13.n) {
|
|
15054
15599
|
case 0:
|
|
15055
|
-
return
|
|
15600
|
+
return _context13.a(2, _cancelAviationProduct(product, t, opts));
|
|
15056
15601
|
}
|
|
15057
|
-
},
|
|
15602
|
+
}, _callee13);
|
|
15058
15603
|
}));
|
|
15059
|
-
function cancelAviationProduct(
|
|
15604
|
+
function cancelAviationProduct(_x13, _x14, _x15) {
|
|
15060
15605
|
return _cancelAviationProduct2.apply(this, arguments);
|
|
15061
15606
|
}
|
|
15062
15607
|
return cancelAviationProduct;
|
|
@@ -15760,8 +16305,8 @@ var WarningsTimeline = function WarningsTimeline(_ref) {
|
|
|
15760
16305
|
var _loop = function _loop() {
|
|
15761
16306
|
var entry = _step.value;
|
|
15762
16307
|
var nextSize = {
|
|
15763
|
-
width: entry.contentRect.width,
|
|
15764
|
-
height: entry.contentRect.height
|
|
16308
|
+
width: Math.round(entry.contentRect.width),
|
|
16309
|
+
height: Math.round(entry.contentRect.height)
|
|
15765
16310
|
};
|
|
15766
16311
|
setContainerSize(function (currentSize) {
|
|
15767
16312
|
return currentSize.width === nextSize.width && currentSize.height === nextSize.height ? currentSize : nextSize;
|
|
@@ -15926,6 +16471,7 @@ var WarningsTimeline = function WarningsTimeline(_ref) {
|
|
|
15926
16471
|
sx: {
|
|
15927
16472
|
flex: 1,
|
|
15928
16473
|
overflow: 'auto',
|
|
16474
|
+
scrollbarGutter: 'stable',
|
|
15929
16475
|
minHeight: 0
|
|
15930
16476
|
},
|
|
15931
16477
|
children: jsx(Box$1, {
|
|
@@ -3,7 +3,7 @@ import type { AirmetFromBackend, SigmetFromBackend } from '@opengeoweb/api';
|
|
|
3
3
|
export interface ConfirmDialogProps {
|
|
4
4
|
title: string;
|
|
5
5
|
description: string;
|
|
6
|
-
request: () => Promise<void> | Promise<Headers | null> | Promise<SigmetFromBackend | AirmetFromBackend>;
|
|
6
|
+
request: () => Promise<void> | Promise<Headers | null> | Promise<SigmetFromBackend | AirmetFromBackend> | Promise<string[]>;
|
|
7
7
|
confirmLabel: string;
|
|
8
8
|
callback?: (data?: unknown) => void;
|
|
9
9
|
isLocked?: boolean;
|
|
@@ -17,11 +17,16 @@ export interface PublicWarningListProps extends WarningListItemActions {
|
|
|
17
17
|
setExpandedSections: (expandedSections: Record<string, boolean>) => void;
|
|
18
18
|
onHoverWarning?: (warningId?: string) => void;
|
|
19
19
|
onActionAviationWarning?: () => void;
|
|
20
|
+
onClickBatchDelete?: (warningIds: string[]) => void;
|
|
20
21
|
limitAlertCount?: number;
|
|
21
22
|
showLimitAlert?: boolean;
|
|
22
23
|
shouldDisableAviationAmendOption: boolean;
|
|
23
24
|
hiddenWarningIds?: Set<string>;
|
|
24
25
|
onToggleWarningVisibility?: (warningId: string) => void;
|
|
26
|
+
selectedForBatchDelete?: string[];
|
|
27
|
+
toggleWarningForBatchDelete?: (warningId: string) => void;
|
|
28
|
+
onSelectAllForBatchDelete?: (warningIds: string[]) => void;
|
|
29
|
+
onClearBatchDeleteSelection?: () => void;
|
|
25
30
|
}
|
|
26
31
|
export declare const PublicWarningList: React.FC<PublicWarningListProps>;
|
|
27
32
|
export default PublicWarningList;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BatchSelectionState } from './selectAllButtonUtils';
|
|
3
|
+
export interface SelectAllButtonProps {
|
|
4
|
+
selectionState: BatchSelectionState;
|
|
5
|
+
onSelectAll: () => void;
|
|
6
|
+
onSelectNone: () => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const SelectAllButton: React.FC<SelectAllButtonProps>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Warning } from '../../../store/warningsForm/types';
|
|
2
|
+
import { PublicWarningStatus } from '../../../store/warningsForm/types';
|
|
3
|
+
export type BatchSelectionState = 'none' | 'some' | 'all';
|
|
4
|
+
export declare const getWarningStatus: (warning: Warning) => PublicWarningStatus;
|
|
5
|
+
export declare const isWarningSelectableForBatchDelete: (warning: Warning) => boolean;
|
|
6
|
+
export declare const getBatchDeletableWarningIds: (warnings: Warning[]) => string[];
|
|
7
|
+
export declare const getBatchSelectionState: (selectedIds: string[], deletableIds: string[]) => BatchSelectionState;
|
|
@@ -11,6 +11,8 @@ export interface WarningListItemProps extends ListItemProps, WarningListItemActi
|
|
|
11
11
|
shouldDisableAviationAmendOption?: boolean;
|
|
12
12
|
isHidden?: boolean;
|
|
13
13
|
onToggleVisibility?: (warningId: string) => void;
|
|
14
|
+
selectedForBatchDelete?: string[];
|
|
15
|
+
toggleWarningForBatchDelete?: (warningId: string) => void;
|
|
14
16
|
}
|
|
15
17
|
declare const WarningListItem: React.FC<WarningListItemProps>;
|
|
16
18
|
export default WarningListItem;
|