@opengeoweb/warnings 13.1.1 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +439 -123
- package/package.json +12 -12
- package/src/lib/api/aviation-api/api.d.ts +6 -0
- package/src/lib/api/aviation-api/fakeApi.d.ts +2 -0
- package/src/lib/api/aviation-api/hooks.d.ts +2 -0
- package/src/lib/api/warning-api/hooks.d.ts +1 -1
- package/src/lib/components/AreaObjectLoader/AreaObjectLoader.d.ts +1 -0
- package/src/lib/components/AreaObjectLoader/AreasObjects.d.ts +2 -0
- package/src/lib/components/FilterList/filter-hooks.d.ts +0 -2
- package/src/lib/components/FilterList/filter-utils.d.ts +0 -1
- package/src/lib/components/MaritimeWarningsForm/{useConfirmRetractDialog.d.ts → useConfirmDeleteDialog.d.ts} +3 -3
- package/src/lib/components/PublicWarningList/PublicWarningListConnect.aviation.drawTools.integration.spec.d.ts +1 -0
- package/src/lib/components/PublicWarningList/PublicWarningListConnect.aviation.saveAndPublish.integration.spec.d.ts +1 -0
- package/src/lib/components/PublicWarningsForm/PublicWarningsForm.stories.d.ts +8 -0
- package/src/lib/components/PublicWarningsForm/ValidFromField/ValidFromField.d.ts +10 -0
- package/src/lib/components/PublicWarningsFormDialog/AviationWarningCancelDialogContent.d.ts +7 -0
- package/src/lib/components/PublicWarningsFormDialog/AviationWarningCancelDialogContent.spec.d.ts +1 -0
- /package/src/lib/components/PublicWarningList/{PublicWarningListConnect.aviation.integration.spec.d.ts → PublicWarningListConnect.aviation.createAndEdit.integration.spec.d.ts} +0 -0
package/index.esm.js
CHANGED
|
@@ -7,7 +7,7 @@ import { SHARED_NAMESPACE, useConfirmationDialog, dateUtils, ToggleMenu, calcula
|
|
|
7
7
|
import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, current, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
8
8
|
import { defaultBbox } from '@opengeoweb/core';
|
|
9
9
|
import { FORM_FIELDS_NAMESPACE, useDraftFormHelpers, ReactHookFormSelect, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions, errorMessages, isEmpty, ReactHookFormDateTime, isXHoursAfter, isXHoursBefore } from '@opengeoweb/form-fields';
|
|
10
|
-
import { SA_NAMESPACE, isInstanceOfCancelSigmet, getDefaultValidFromValue, isInstanceOfCancelAirmet, getDefaultValidUntilValue, useShortTestHelpers, ProductAction, SigmetForm, AirmetForm, getConfirmationDialogCancelLabel, getConfirmationDialogButtonLabel, getConfirmationDialogContent, getConfirmationDialogTitle, isVAPhenomenon, CancelSigmetVolcanicMovements, createAirmetPostParameter, createSigmetPostParameter, prepareCancelSigmet, getProductFormMode } from '@opengeoweb/sigmet-airmet';
|
|
10
|
+
import { SA_NAMESPACE, isInstanceOfCancelSigmet, getDefaultValidFromValue, isInstanceOfCancelAirmet, getDefaultValidUntilValue, findSequenceNumber, getSequenceStyling, useShortTestHelpers, ProductAction, SigmetForm, AirmetForm, getConfirmationDialogCancelLabel, getConfirmationDialogButtonLabel, getConfirmationDialogContent, getConfirmationDialogTitle, isVAPhenomenon, CancelSigmetVolcanicMovements, createAirmetPostParameter, createSigmetPostParameter, prepareCancelSigmet, getProductFormMode } from '@opengeoweb/sigmet-airmet';
|
|
11
11
|
import { LayerType, generateMapId } from '@opengeoweb/webmap';
|
|
12
12
|
import { t } from 'i18next';
|
|
13
13
|
import { useTranslation } from 'react-i18next';
|
|
@@ -74,6 +74,7 @@ var en = {
|
|
|
74
74
|
"warning-button-publishing": "Publishing",
|
|
75
75
|
"warning-area": "Area",
|
|
76
76
|
"warning-button-add-object": "Add Areas & Objects",
|
|
77
|
+
"warning-button-replace-object": "Replace Areas & Objects",
|
|
77
78
|
"warning-description-original": "Description original",
|
|
78
79
|
"warning-description-translation": "Description translation",
|
|
79
80
|
"warning-unspecified": "(not specified)",
|
|
@@ -137,9 +138,11 @@ var en = {
|
|
|
137
138
|
"warning-list-header-levels": "Levels",
|
|
138
139
|
"warning-list-header-status": "Status",
|
|
139
140
|
"warning-list-header-draft": "DRAFT",
|
|
140
|
-
"area-object-loader-title": "
|
|
141
|
+
"area-object-loader-title": "Areas & Objects",
|
|
141
142
|
"add-button": "Add",
|
|
143
|
+
"replace-button": "Replace",
|
|
142
144
|
"remove-button": "Remove",
|
|
145
|
+
"disabled-button-tooltip": "Removing an area/object is only allowed for draft warnings",
|
|
143
146
|
"area-object-loader-no-areas-objects": "No areas or objects found",
|
|
144
147
|
objects: "Objects",
|
|
145
148
|
areas: "Areas",
|
|
@@ -209,6 +212,9 @@ var en = {
|
|
|
209
212
|
"publish-this-product": "Are you sure you want to publish this {{product}}?",
|
|
210
213
|
"yes-cancel": "Yes, cancel {{product}}",
|
|
211
214
|
"cancel-this-product": "Are you sure you want to cancel this {{product}}?",
|
|
215
|
+
"cancel-message": "Cancel message",
|
|
216
|
+
"will-cancel-message": "Will cancel warning",
|
|
217
|
+
"tac-label": "TAC:",
|
|
212
218
|
"aviation-cancel-success": "{{warningType}} has succesfully been cancelled!",
|
|
213
219
|
"aviation-discard-success": "{{warningType}} has been discarded!",
|
|
214
220
|
"error-auth-login": "This feature is protected by authentication. Please log in to proceed",
|
|
@@ -247,12 +253,11 @@ var en = {
|
|
|
247
253
|
"maritime-change-BACKING": "Backing",
|
|
248
254
|
"maritime-change-VEERING": "Veering",
|
|
249
255
|
"maritime-delete-button": "Delete",
|
|
250
|
-
"maritime-
|
|
251
|
-
"maritime-no-change
|
|
252
|
-
"maritime-
|
|
253
|
-
"maritime-
|
|
254
|
-
"maritime-
|
|
255
|
-
"maritime-retract-dialog-confirm": "Retract",
|
|
256
|
+
"maritime-delete-warning": "Delete warning",
|
|
257
|
+
"maritime-delete-dialog-no-change": "(no change in direction)",
|
|
258
|
+
"maritime-delete-dialog-description-suffix": "will be removed",
|
|
259
|
+
"maritime-delete-dialog-empty-warning-description": "The warning will be deleted",
|
|
260
|
+
"maritime-delete-dialog-confirm": "Delete",
|
|
256
261
|
"maritime-clear-dialog-title": "Clear all",
|
|
257
262
|
"maritime-clear-dialog-description": "All warnings will be removed from the list",
|
|
258
263
|
"maritime-warning-title-coastal": "Warning Maritime - Coastal Waters",
|
|
@@ -316,6 +321,7 @@ var nl = {
|
|
|
316
321
|
"warning-button-publishing": "Publiceren",
|
|
317
322
|
"warning-area": "Gebied",
|
|
318
323
|
"warning-button-add-object": "Gebieden & Objecten toevoegen",
|
|
324
|
+
"warning-button-replace-object": "Vervang Gebieden & Objecten",
|
|
319
325
|
"warning-description-original": "Beschrijving origineel",
|
|
320
326
|
"warning-description-translation": "Beschrijving vertaling",
|
|
321
327
|
"warning-level": "Niveau",
|
|
@@ -376,9 +382,11 @@ var nl = {
|
|
|
376
382
|
"warning-list-header-levels": "Niveaus",
|
|
377
383
|
"warning-list-header-status": "Status",
|
|
378
384
|
"warning-list-header-draft": "CONCEPT",
|
|
379
|
-
"area-object-loader-title": "Gebieden & Objecten
|
|
385
|
+
"area-object-loader-title": "Gebieden & Objecten",
|
|
380
386
|
"add-button": "Toevoegen",
|
|
387
|
+
"replace-button": "Vervangen",
|
|
381
388
|
"remove-button": "Verwijderen",
|
|
389
|
+
"disabled-button-tooltip": "Het verwijderen van een gebied/object is alleen toegestaan voor CONCEPT waarschuwingen",
|
|
382
390
|
"area-object-loader-no-areas-objects": "Geen gebieden of objecten gevonden",
|
|
383
391
|
objects: "Objecten",
|
|
384
392
|
areas: "Gebieden",
|
|
@@ -450,11 +458,11 @@ var nl = {
|
|
|
450
458
|
"maritime-direction-NW": "Noordwest",
|
|
451
459
|
"maritime-direction-NNW": "Noord tot noordwest",
|
|
452
460
|
"maritime-delete-button": "Verwijderen",
|
|
453
|
-
"maritime-
|
|
454
|
-
"maritime-
|
|
455
|
-
"maritime-
|
|
456
|
-
"maritime-
|
|
457
|
-
"maritime-
|
|
461
|
+
"maritime-delete-warning": "Waarschuwing verwijderen",
|
|
462
|
+
"maritime-delete-dialog-no-change": "(geen wijziging in richting)",
|
|
463
|
+
"maritime-delete-dialog-empty-warning-description": "De waarschuwing wordt verwijderd",
|
|
464
|
+
"maritime-delete-dialog-description-suffix": "wordt verwijderd",
|
|
465
|
+
"maritime-delete-dialog-confirm": "Verwijderen",
|
|
458
466
|
"maritime-clear-dialog-title": "Wissen",
|
|
459
467
|
"maritime-clear-dialog-description": "Alle waarschuwingen worden verwijderd",
|
|
460
468
|
"maritime-warning-title-coastal": "Maritieme Waarschuwing - Kustgebieden",
|
|
@@ -514,6 +522,7 @@ var fi = {
|
|
|
514
522
|
"warning-button-publishing": "Julkaisu",
|
|
515
523
|
"warning-area": "Alue",
|
|
516
524
|
"warning-button-add-object": "Lisää objekti",
|
|
525
|
+
"warning-button-replace-object": "ei käännetty",
|
|
517
526
|
"warning-description-original": "Alkuperäinen kuvaus",
|
|
518
527
|
"warning-description-translation": "Kuvauksen käännös",
|
|
519
528
|
"warning-level": "Taso",
|
|
@@ -576,7 +585,9 @@ var fi = {
|
|
|
576
585
|
"warning-list-header-draft": "LUONNOS",
|
|
577
586
|
"area-object-loader-title": "ei käännetty",
|
|
578
587
|
"add-button": "ei käännetty",
|
|
588
|
+
"replace-button": "ei käännetty",
|
|
579
589
|
"remove-button": "Poista",
|
|
590
|
+
"disabled-button-tooltip": "Alueen tai objektin poistaminen on sallittua vain luonnosvaroituksille",
|
|
580
591
|
"area-object-loader-no-areas-objects": "ei käännetty",
|
|
581
592
|
objects: "ei käännetty",
|
|
582
593
|
areas: "ei käännetty",
|
|
@@ -668,6 +679,7 @@ var no = {
|
|
|
668
679
|
"warning-button-publishing": "Publiserer",
|
|
669
680
|
"warning-area": "Område",
|
|
670
681
|
"warning-button-add-object": "Legg til objekt",
|
|
682
|
+
"warning-button-replace-object": "Legg til objekt",
|
|
671
683
|
"warning-description-original": "Original beskrivelse",
|
|
672
684
|
"warning-description-translation": "Oversatt beskrivelse",
|
|
673
685
|
"warning-level": "Grad",
|
|
@@ -728,9 +740,11 @@ var no = {
|
|
|
728
740
|
"warning-list-header-levels": "Grad",
|
|
729
741
|
"warning-list-header-status": "Status",
|
|
730
742
|
"warning-list-header-draft": "UTKAST",
|
|
731
|
-
"area-object-loader-title": "
|
|
743
|
+
"area-object-loader-title": "Områder og objekter",
|
|
732
744
|
"add-button": "Legg til",
|
|
745
|
+
"replace-button": "Bytt ut",
|
|
733
746
|
"remove-button": "Fjerne",
|
|
747
|
+
"disabled-button-tooltip": "Fjerning av et område/objekt er kun tillatt for kladdvarsler",
|
|
734
748
|
"area-object-loader-no-areas-objects": "Ingen områder eller objekter funnet",
|
|
735
749
|
objects: "Objekter",
|
|
736
750
|
areas: "Områder",
|
|
@@ -1112,11 +1126,7 @@ var slice$2 = createSlice({
|
|
|
1112
1126
|
}
|
|
1113
1127
|
},
|
|
1114
1128
|
// action caught in drawings/listener
|
|
1115
|
-
submitDrawValues: function submitDrawValues(
|
|
1116
|
-
// eslint-disable-next-line no-unused-vars
|
|
1117
|
-
draft,
|
|
1118
|
-
// eslint-disable-next-line no-unused-vars
|
|
1119
|
-
action) {},
|
|
1129
|
+
submitDrawValues: function submitDrawValues(draft, action) {},
|
|
1120
1130
|
setFormDirty: function setFormDirty(draft, action) {
|
|
1121
1131
|
var _action$payload = action.payload,
|
|
1122
1132
|
drawingInstanceId = _action$payload.drawingInstanceId,
|
|
@@ -1187,12 +1197,13 @@ var warningsDrawingsReducer = slice$2.reducer,
|
|
|
1187
1197
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
1188
1198
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1189
1199
|
* */
|
|
1200
|
+
var EMPTY_DRAW_STATE = {
|
|
1201
|
+
entities: {},
|
|
1202
|
+
ids: []
|
|
1203
|
+
};
|
|
1190
1204
|
var _drawAdapter$getSelec = drawAdapter.getSelectors(function (state) {
|
|
1191
1205
|
var _state$drawings;
|
|
1192
|
-
return (_state$drawings = state == null ? void 0 : state.drawings) != null ? _state$drawings :
|
|
1193
|
-
entities: {},
|
|
1194
|
-
ids: []
|
|
1195
|
-
};
|
|
1206
|
+
return (_state$drawings = state == null ? void 0 : state.drawings) != null ? _state$drawings : EMPTY_DRAW_STATE;
|
|
1196
1207
|
}),
|
|
1197
1208
|
selectDrawByInstanceId = _drawAdapter$getSelec.selectById;
|
|
1198
1209
|
var getWarningFormDirty = createSelector(selectDrawByInstanceId, function (drawing) {
|
|
@@ -2447,7 +2458,6 @@ var domainPhenomena = {
|
|
|
2447
2458
|
};
|
|
2448
2459
|
var defaultPhenomenonFilter = makeFilterFromList(Object.keys(AllPhenomenaKeys));
|
|
2449
2460
|
var initialFilters = {
|
|
2450
|
-
incident: defaultEmptyFilter,
|
|
2451
2461
|
source: defaultEmptyFilter,
|
|
2452
2462
|
domain: defaultDomainFilter,
|
|
2453
2463
|
phenomenon: defaultPhenomenonFilter,
|
|
@@ -3205,15 +3215,12 @@ var useDrawings = function useDrawings(params, enabled) {
|
|
|
3205
3215
|
}
|
|
3206
3216
|
return useAuthQuery(['drawings', JSON.stringify(params)], function (auth) {
|
|
3207
3217
|
return getDrawings(auth, params);
|
|
3208
|
-
}, enabled);
|
|
3218
|
+
}, !enabled);
|
|
3209
3219
|
};
|
|
3210
|
-
var useDrawingDetails = function useDrawingDetails(drawingId
|
|
3211
|
-
if (enabled === void 0) {
|
|
3212
|
-
enabled = true;
|
|
3213
|
-
}
|
|
3220
|
+
var useDrawingDetails = function useDrawingDetails(drawingId) {
|
|
3214
3221
|
return useAuthQuery(['drawing-details', JSON.stringify(drawingId)], function (auth) {
|
|
3215
3222
|
return getDrawingDetails(auth, drawingId);
|
|
3216
|
-
},
|
|
3223
|
+
}, !drawingId);
|
|
3217
3224
|
};
|
|
3218
3225
|
var useAreaKeywords = function useAreaKeywords(enabled) {
|
|
3219
3226
|
if (enabled === void 0) {
|
|
@@ -3468,9 +3475,9 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
3468
3475
|
var _useState = useState(),
|
|
3469
3476
|
selectedDrawingId = _useState[0],
|
|
3470
3477
|
setSelectedDrawingId = _useState[1];
|
|
3471
|
-
var _useDrawingDetails = useDrawingDetails(selectedDrawingId
|
|
3478
|
+
var _useDrawingDetails = useDrawingDetails(selectedDrawingId),
|
|
3472
3479
|
drawingDetails = _useDrawingDetails.data,
|
|
3473
|
-
|
|
3480
|
+
isFetchingDetails = _useDrawingDetails.isFetching,
|
|
3474
3481
|
drawingError = _useDrawingDetails.error;
|
|
3475
3482
|
var dispatch = useDispatch();
|
|
3476
3483
|
var mapId = useSelector(function (store) {
|
|
@@ -3493,7 +3500,8 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
3493
3500
|
var _useDrawings = useDrawings({}, isDialogOpen),
|
|
3494
3501
|
_useDrawings$data = _useDrawings.data,
|
|
3495
3502
|
drawings = _useDrawings$data === void 0 ? [] : _useDrawings$data,
|
|
3496
|
-
error = _useDrawings.error
|
|
3503
|
+
error = _useDrawings.error,
|
|
3504
|
+
isFetchingList = _useDrawings.isFetching;
|
|
3497
3505
|
useEffect(function () {
|
|
3498
3506
|
if (error || !isLoggedIn) {
|
|
3499
3507
|
var _error$message;
|
|
@@ -3654,7 +3662,7 @@ var ObjectManagerConnect = function ObjectManagerConnect(_ref) {
|
|
|
3654
3662
|
onCreateNewObject: onCreateNewObject,
|
|
3655
3663
|
activeDrawingId: activeDrawingId,
|
|
3656
3664
|
error: uiError,
|
|
3657
|
-
isLoading:
|
|
3665
|
+
isLoading: isFetchingDetails || isFetchingList
|
|
3658
3666
|
}), confirmDialogOptions && jsx(ConfirmDeleteDialog, Object.assign({}, confirmDialogOptions, {
|
|
3659
3667
|
onDeleteSucces: onDeleteSuccess,
|
|
3660
3668
|
onClose: function onClose() {
|
|
@@ -4584,6 +4592,77 @@ var getSigmetTAC = function getSigmetTAC(auth, product) {
|
|
|
4584
4592
|
};
|
|
4585
4593
|
}());
|
|
4586
4594
|
};
|
|
4595
|
+
// For cancel TAC (not normal TAC)
|
|
4596
|
+
var getAirmetCancelTAC = function getAirmetCancelTAC(auth, product) {
|
|
4597
|
+
return fetch(airmetBaseUrl + "/airmet2cancel2tac", {
|
|
4598
|
+
body: JSON.stringify(product),
|
|
4599
|
+
method: 'POST',
|
|
4600
|
+
headers: getHeaders(auth)
|
|
4601
|
+
}).then(/*#__PURE__*/function () {
|
|
4602
|
+
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(result) {
|
|
4603
|
+
var textData;
|
|
4604
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
4605
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
4606
|
+
case 0:
|
|
4607
|
+
if (!(result.status === 200)) {
|
|
4608
|
+
_context3.next = 5;
|
|
4609
|
+
break;
|
|
4610
|
+
}
|
|
4611
|
+
_context3.next = 3;
|
|
4612
|
+
return result.text();
|
|
4613
|
+
case 3:
|
|
4614
|
+
textData = _context3.sent;
|
|
4615
|
+
return _context3.abrupt("return", {
|
|
4616
|
+
data: textData
|
|
4617
|
+
});
|
|
4618
|
+
case 5:
|
|
4619
|
+
throw new Error("Failed to fetch Cancel TAC data: " + result.statusText);
|
|
4620
|
+
case 6:
|
|
4621
|
+
case "end":
|
|
4622
|
+
return _context3.stop();
|
|
4623
|
+
}
|
|
4624
|
+
}, _callee3);
|
|
4625
|
+
}));
|
|
4626
|
+
return function (_x3) {
|
|
4627
|
+
return _ref3.apply(this, arguments);
|
|
4628
|
+
};
|
|
4629
|
+
}());
|
|
4630
|
+
};
|
|
4631
|
+
var getSigmetCancelTAC = function getSigmetCancelTAC(auth, product) {
|
|
4632
|
+
return fetch(sigmetBaseUrl + "/sigmet2cancel2tac", {
|
|
4633
|
+
body: JSON.stringify(product),
|
|
4634
|
+
method: 'POST',
|
|
4635
|
+
headers: getHeaders(auth)
|
|
4636
|
+
}).then(/*#__PURE__*/function () {
|
|
4637
|
+
var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(result) {
|
|
4638
|
+
var textData;
|
|
4639
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
4640
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
4641
|
+
case 0:
|
|
4642
|
+
if (!(result.status === 200)) {
|
|
4643
|
+
_context4.next = 5;
|
|
4644
|
+
break;
|
|
4645
|
+
}
|
|
4646
|
+
_context4.next = 3;
|
|
4647
|
+
return result.text();
|
|
4648
|
+
case 3:
|
|
4649
|
+
textData = _context4.sent;
|
|
4650
|
+
return _context4.abrupt("return", {
|
|
4651
|
+
data: textData
|
|
4652
|
+
});
|
|
4653
|
+
case 5:
|
|
4654
|
+
throw new Error("Failed to fetch Cancel TAC data: " + result.statusText);
|
|
4655
|
+
case 6:
|
|
4656
|
+
case "end":
|
|
4657
|
+
return _context4.stop();
|
|
4658
|
+
}
|
|
4659
|
+
}, _callee4);
|
|
4660
|
+
}));
|
|
4661
|
+
return function (_x4) {
|
|
4662
|
+
return _ref4.apply(this, arguments);
|
|
4663
|
+
};
|
|
4664
|
+
}());
|
|
4665
|
+
};
|
|
4587
4666
|
var postSigmet = function postSigmet(auth, data) {
|
|
4588
4667
|
return fetch(sigmetBaseUrl + "/sigmet", {
|
|
4589
4668
|
headers: getHeaders(auth),
|
|
@@ -4660,9 +4739,29 @@ var useTACApi = function useTACApi() {
|
|
|
4660
4739
|
staleTime: 1000 * 15
|
|
4661
4740
|
});
|
|
4662
4741
|
};
|
|
4742
|
+
var fetchSigmetCancelTAC = function fetchSigmetCancelTAC(product) {
|
|
4743
|
+
return queryClient.fetchQuery({
|
|
4744
|
+
queryKey: ['sigmet-cancel-tac', product],
|
|
4745
|
+
queryFn: function queryFn() {
|
|
4746
|
+
return getSigmetCancelTAC(auth, product);
|
|
4747
|
+
},
|
|
4748
|
+
staleTime: 1000 * 15
|
|
4749
|
+
});
|
|
4750
|
+
};
|
|
4751
|
+
var fetchAirmetCancelTAC = function fetchAirmetCancelTAC(product) {
|
|
4752
|
+
return queryClient.fetchQuery({
|
|
4753
|
+
queryKey: ['airmet-cancel-tac', product],
|
|
4754
|
+
queryFn: function queryFn() {
|
|
4755
|
+
return getAirmetCancelTAC(auth, product);
|
|
4756
|
+
},
|
|
4757
|
+
staleTime: 1000 * 15
|
|
4758
|
+
});
|
|
4759
|
+
};
|
|
4663
4760
|
return {
|
|
4664
4761
|
fetchSigmetTAC: fetchSigmetTAC,
|
|
4665
|
-
fetchAirmetTAC: fetchAirmetTAC
|
|
4762
|
+
fetchAirmetTAC: fetchAirmetTAC,
|
|
4763
|
+
fetchSigmetCancelTAC: fetchSigmetCancelTAC,
|
|
4764
|
+
fetchAirmetCancelTAC: fetchAirmetCancelTAC
|
|
4666
4765
|
};
|
|
4667
4766
|
};
|
|
4668
4767
|
/**
|
|
@@ -5193,6 +5292,8 @@ var AreaField = function AreaField(_ref) {
|
|
|
5193
5292
|
var geoJSON = getValues('areas[0].geoJSON');
|
|
5194
5293
|
var objectName = getObjectName(geoJSON, getValues('areas[0].objectName'), t);
|
|
5195
5294
|
var hasErrors = (errors == null ? void 0 : errors.areas) !== undefined;
|
|
5295
|
+
var hasExistingGeoJSON = geoJSON !== undefined && geoJSON !== null;
|
|
5296
|
+
var areaButtonTitle = t(!hasExistingGeoJSON ? 'warning-button-add-object' : 'warning-button-replace-object');
|
|
5196
5297
|
return jsxs(Fragment, {
|
|
5197
5298
|
children: [jsx(Typography, Object.assign({
|
|
5198
5299
|
variant: "h3",
|
|
@@ -5282,7 +5383,7 @@ var AreaField = function AreaField(_ref) {
|
|
|
5282
5383
|
size: "small",
|
|
5283
5384
|
onClick: onAddObject,
|
|
5284
5385
|
disabled: isDisabled,
|
|
5285
|
-
children:
|
|
5386
|
+
children: areaButtonTitle
|
|
5286
5387
|
})]
|
|
5287
5388
|
});
|
|
5288
5389
|
};
|
|
@@ -5595,6 +5696,7 @@ var ProbabilityField = function ProbabilityField(_ref) {
|
|
|
5595
5696
|
};
|
|
5596
5697
|
|
|
5597
5698
|
var VALID_FROM_MAX_HOURS_AFTER_CURRENT = 192;
|
|
5699
|
+
var VALID_UNTIL_DEFAULT_OFFSET = 6;
|
|
5598
5700
|
var _isValueBeforeCurrentTime$1 = function isValueBeforeCurrentTime(value, t) {
|
|
5599
5701
|
return isXHoursBefore(value, dateUtils.getCurrentTimeAsString(), 0) || t('warning-valid-from-error-before-current');
|
|
5600
5702
|
};
|
|
@@ -5604,6 +5706,16 @@ var _isMaxHoursAfterCurrentTime$1 = function isMaxHoursAfterCurrentTime(value, t
|
|
|
5604
5706
|
MAX_HOURS: VALID_FROM_MAX_HOURS_AFTER_CURRENT
|
|
5605
5707
|
});
|
|
5606
5708
|
};
|
|
5709
|
+
var offsetTimeValidUntilField = function offsetTimeValidUntilField(validFrom, validUntil) {
|
|
5710
|
+
var validUntilValue = dateUtils.getUtcFromString(validUntil);
|
|
5711
|
+
var valueFrom = dateUtils.getUtcFromString(validFrom);
|
|
5712
|
+
if (valueFrom && validUntilValue && dateUtils.isAfter(valueFrom, validUntilValue)) {
|
|
5713
|
+
return dateUtils.add(valueFrom, {
|
|
5714
|
+
hours: VALID_UNTIL_DEFAULT_OFFSET
|
|
5715
|
+
}).toISOString();
|
|
5716
|
+
}
|
|
5717
|
+
return null;
|
|
5718
|
+
};
|
|
5607
5719
|
var ValidFrom = function ValidFrom(_ref) {
|
|
5608
5720
|
var isDisabled = _ref.isDisabled,
|
|
5609
5721
|
isReadOnly = _ref.isReadOnly;
|
|
@@ -5612,8 +5724,22 @@ var ValidFrom = function ValidFrom(_ref) {
|
|
|
5612
5724
|
var _useDraftFormHelpers = useDraftFormHelpers(),
|
|
5613
5725
|
isRequired = _useDraftFormHelpers.isRequired;
|
|
5614
5726
|
var _useFormContext = useFormContext(),
|
|
5615
|
-
trigger = _useFormContext.trigger
|
|
5616
|
-
|
|
5727
|
+
trigger = _useFormContext.trigger,
|
|
5728
|
+
getValues = _useFormContext.getValues,
|
|
5729
|
+
setValue = _useFormContext.setValue;
|
|
5730
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5731
|
+
var onChangeValidFrom = function onChangeValidFrom(value) {
|
|
5732
|
+
if (!value) {
|
|
5733
|
+
return;
|
|
5734
|
+
}
|
|
5735
|
+
var newValidUntilOffset = offsetTimeValidUntilField(value, getValues('validUntil'));
|
|
5736
|
+
if (newValidUntilOffset) {
|
|
5737
|
+
setValue('validUntil', newValidUntilOffset, {
|
|
5738
|
+
shouldValidate: true,
|
|
5739
|
+
shouldDirty: true
|
|
5740
|
+
});
|
|
5741
|
+
}
|
|
5742
|
+
// If the new value is after the current valid until, trigger validation
|
|
5617
5743
|
void trigger(['validFrom', 'validUntil']);
|
|
5618
5744
|
};
|
|
5619
5745
|
return jsx(ReactHookFormDateTime, {
|
|
@@ -6334,7 +6460,7 @@ var WarningListItem$1 = /*#__PURE__*/React__default.memo(function (_ref) {
|
|
|
6334
6460
|
return onRemove(warning.id);
|
|
6335
6461
|
},
|
|
6336
6462
|
"aria-label": t('maritime-delete-button'),
|
|
6337
|
-
tooltipTitle: t('maritime-
|
|
6463
|
+
tooltipTitle: t('maritime-delete-warning'),
|
|
6338
6464
|
children: jsx(Delete, {})
|
|
6339
6465
|
})]
|
|
6340
6466
|
});
|
|
@@ -6653,7 +6779,7 @@ function useMaritimeWarningsFormState() {
|
|
|
6653
6779
|
return React__default.useReducer(reducer, initialState);
|
|
6654
6780
|
}
|
|
6655
6781
|
|
|
6656
|
-
function
|
|
6782
|
+
function useConfirmDeleteDialog(_ref) {
|
|
6657
6783
|
var areas = _ref.areas,
|
|
6658
6784
|
warnings = _ref.warnings,
|
|
6659
6785
|
maritimeConfig = _ref.maritimeConfig,
|
|
@@ -6681,7 +6807,7 @@ function useConfirmRetractDialog(_ref) {
|
|
|
6681
6807
|
}, [t]);
|
|
6682
6808
|
var getWarningDescription = React__default.useCallback(function (warning) {
|
|
6683
6809
|
if (!isPublishedWarning(warning)) {
|
|
6684
|
-
return t('maritime-
|
|
6810
|
+
return t('maritime-delete-dialog-empty-warning-description');
|
|
6685
6811
|
}
|
|
6686
6812
|
var windDirectionFromLabel = getLabelFromWindDirectionConfig(maritimeConfig.windDirectionDefinition, warning.windDirectionFrom);
|
|
6687
6813
|
var areasById = new Map(areas.map(function (area) {
|
|
@@ -6690,11 +6816,11 @@ function useConfirmRetractDialog(_ref) {
|
|
|
6690
6816
|
var areaLabels = warning.assignedAreaIds.map(function (areaId) {
|
|
6691
6817
|
return areasById.get(areaId).districtName;
|
|
6692
6818
|
});
|
|
6693
|
-
var changeToLabel = warning.changeType === 'NO_CHANGE' ? t('maritime-
|
|
6819
|
+
var changeToLabel = warning.changeType === 'NO_CHANGE' ? t('maritime-delete-dialog-no-change') : getLabelFromChangeConfig(maritimeConfig.changeType, warning.changeType) + " " + getLabelFromWindDirectionConfig(maritimeConfig.windDirectionDefinition, warning.windDirectionTo);
|
|
6694
6820
|
var warningDescription = [windDirectionFromLabel + " " + t('maritime-windforce', {
|
|
6695
6821
|
value: warning.windForce
|
|
6696
6822
|
})].concat(areaLabels, [changeToLabel]).join(', ');
|
|
6697
|
-
return warningDescription + ". " + t('maritime-
|
|
6823
|
+
return warningDescription + ". " + t('maritime-delete-dialog-description-suffix');
|
|
6698
6824
|
}, [getLabelFromWindDirectionConfig, maritimeConfig.windDirectionDefinition, maritimeConfig.changeType, areas, t, getLabelFromChangeConfig]);
|
|
6699
6825
|
return {
|
|
6700
6826
|
onRemoveWarningWithConfirmation: React__default.useCallback(/*#__PURE__*/function () {
|
|
@@ -6708,9 +6834,9 @@ function useConfirmRetractDialog(_ref) {
|
|
|
6708
6834
|
});
|
|
6709
6835
|
_context.next = 3;
|
|
6710
6836
|
return confirmDialog({
|
|
6711
|
-
title: t('maritime-
|
|
6837
|
+
title: t('maritime-delete-warning'),
|
|
6712
6838
|
description: '',
|
|
6713
|
-
confirmLabel: t('maritime-
|
|
6839
|
+
confirmLabel: t('maritime-delete-dialog-confirm'),
|
|
6714
6840
|
cancelLabel: t('close-dialog-cancel'),
|
|
6715
6841
|
content: getWarningDescription(warning)
|
|
6716
6842
|
});
|
|
@@ -6931,13 +7057,13 @@ var MaritimeWarningsForm = function MaritimeWarningsForm(_ref) {
|
|
|
6931
7057
|
var disabledAreaIds = warnings.flatMap(function (warning) {
|
|
6932
7058
|
return warning.assignedAreaIds;
|
|
6933
7059
|
});
|
|
6934
|
-
var
|
|
7060
|
+
var _useConfirmDeleteDial = useConfirmDeleteDialog({
|
|
6935
7061
|
areas: areas,
|
|
6936
7062
|
warnings: warnings,
|
|
6937
7063
|
maritimeConfig: maritimeConfig,
|
|
6938
7064
|
onRemoveWarning: onRemoveWarning
|
|
6939
7065
|
}),
|
|
6940
|
-
onRemoveWarningWithConfirmation =
|
|
7066
|
+
onRemoveWarningWithConfirmation = _useConfirmDeleteDial.onRemoveWarningWithConfirmation;
|
|
6941
7067
|
var onClearWithConfirmation = React__default.useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6942
7068
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6943
7069
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -7488,6 +7614,173 @@ var MaritimeWarningsFormConnect = function MaritimeWarningsFormConnect(_ref) {
|
|
|
7488
7614
|
});
|
|
7489
7615
|
};
|
|
7490
7616
|
|
|
7617
|
+
var CancelAviationDialogContent = function CancelAviationDialogContent(_ref) {
|
|
7618
|
+
var product = _ref.product,
|
|
7619
|
+
warningType = _ref.warningType;
|
|
7620
|
+
var _useTACApi = useTACApi(),
|
|
7621
|
+
fetchSigmetCancelTAC = _useTACApi.fetchSigmetCancelTAC,
|
|
7622
|
+
fetchAirmetCancelTAC = _useTACApi.fetchAirmetCancelTAC,
|
|
7623
|
+
fetchSigmetTAC = _useTACApi.fetchSigmetTAC,
|
|
7624
|
+
fetchAirmetTAC = _useTACApi.fetchAirmetTAC;
|
|
7625
|
+
var _React$useState = React__default.useState(null),
|
|
7626
|
+
cancelTAC = _React$useState[0],
|
|
7627
|
+
setCancelTAC = _React$useState[1];
|
|
7628
|
+
var _React$useState2 = React__default.useState(null),
|
|
7629
|
+
currentTAC = _React$useState2[0],
|
|
7630
|
+
setCurrentTAC = _React$useState2[1];
|
|
7631
|
+
var _useWarningsTranslati = useWarningsTranslation(),
|
|
7632
|
+
t = _useWarningsTranslati.t;
|
|
7633
|
+
React__default.useEffect(function () {
|
|
7634
|
+
var fetchData = /*#__PURE__*/function () {
|
|
7635
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
7636
|
+
var cancelResult, currentResult;
|
|
7637
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
7638
|
+
while (1) switch (_context.prev = _context.next) {
|
|
7639
|
+
case 0:
|
|
7640
|
+
_context.prev = 0;
|
|
7641
|
+
if (!(warningType === 'sigmet')) {
|
|
7642
|
+
_context.next = 7;
|
|
7643
|
+
break;
|
|
7644
|
+
}
|
|
7645
|
+
_context.next = 4;
|
|
7646
|
+
return fetchSigmetCancelTAC(product);
|
|
7647
|
+
case 4:
|
|
7648
|
+
_context.t0 = _context.sent;
|
|
7649
|
+
_context.next = 10;
|
|
7650
|
+
break;
|
|
7651
|
+
case 7:
|
|
7652
|
+
_context.next = 9;
|
|
7653
|
+
return fetchAirmetCancelTAC(product);
|
|
7654
|
+
case 9:
|
|
7655
|
+
_context.t0 = _context.sent;
|
|
7656
|
+
case 10:
|
|
7657
|
+
cancelResult = _context.t0;
|
|
7658
|
+
setCancelTAC(cancelResult.data);
|
|
7659
|
+
if (!(warningType === 'sigmet')) {
|
|
7660
|
+
_context.next = 18;
|
|
7661
|
+
break;
|
|
7662
|
+
}
|
|
7663
|
+
_context.next = 15;
|
|
7664
|
+
return fetchSigmetTAC(product);
|
|
7665
|
+
case 15:
|
|
7666
|
+
_context.t1 = _context.sent;
|
|
7667
|
+
_context.next = 21;
|
|
7668
|
+
break;
|
|
7669
|
+
case 18:
|
|
7670
|
+
_context.next = 20;
|
|
7671
|
+
return fetchAirmetTAC(product);
|
|
7672
|
+
case 20:
|
|
7673
|
+
_context.t1 = _context.sent;
|
|
7674
|
+
case 21:
|
|
7675
|
+
currentResult = _context.t1;
|
|
7676
|
+
setCurrentTAC(currentResult.data);
|
|
7677
|
+
_context.next = 27;
|
|
7678
|
+
break;
|
|
7679
|
+
case 25:
|
|
7680
|
+
_context.prev = 25;
|
|
7681
|
+
_context.t2 = _context["catch"](0);
|
|
7682
|
+
case 27:
|
|
7683
|
+
case "end":
|
|
7684
|
+
return _context.stop();
|
|
7685
|
+
}
|
|
7686
|
+
}, _callee, null, [[0, 25]]);
|
|
7687
|
+
}));
|
|
7688
|
+
return function fetchData() {
|
|
7689
|
+
return _ref2.apply(this, arguments);
|
|
7690
|
+
};
|
|
7691
|
+
}();
|
|
7692
|
+
void fetchData();
|
|
7693
|
+
}, [fetchAirmetCancelTAC, fetchAirmetTAC, fetchSigmetCancelTAC, fetchSigmetTAC, product, warningType]);
|
|
7694
|
+
var tacBlockStyle = {
|
|
7695
|
+
whiteSpace: 'pre-wrap',
|
|
7696
|
+
wordBreak: 'break-word',
|
|
7697
|
+
overflowX: 'auto',
|
|
7698
|
+
overflowY: 'auto',
|
|
7699
|
+
maxWidth: '100%',
|
|
7700
|
+
fontFamily: 'monospace',
|
|
7701
|
+
fontSize: '0.9rem',
|
|
7702
|
+
minHeight: 120,
|
|
7703
|
+
maxHeight: 140
|
|
7704
|
+
};
|
|
7705
|
+
var renderTacWithSequence = function renderTacWithSequence(tac, noTacKey, product) {
|
|
7706
|
+
if (!tac) {
|
|
7707
|
+
return jsx(Box, {
|
|
7708
|
+
component: "pre",
|
|
7709
|
+
sx: tacBlockStyle,
|
|
7710
|
+
children: t(noTacKey)
|
|
7711
|
+
});
|
|
7712
|
+
}
|
|
7713
|
+
var noTac = t(noTacKey);
|
|
7714
|
+
var hasTac = tac.split('\n').length > 0 && tac !== noTac;
|
|
7715
|
+
var sequenceNumberInTac = findSequenceNumber(tac, noTac);
|
|
7716
|
+
var sequenceStyle = getSequenceStyling(product, hasTac);
|
|
7717
|
+
var words = tac.split(' ');
|
|
7718
|
+
return jsxs(Box, {
|
|
7719
|
+
component: "pre",
|
|
7720
|
+
sx: tacBlockStyle,
|
|
7721
|
+
children: [jsx(Box, {
|
|
7722
|
+
component: "span",
|
|
7723
|
+
sx: {
|
|
7724
|
+
fontWeight: 'bold',
|
|
7725
|
+
fontSize: 12,
|
|
7726
|
+
mr: 1.5
|
|
7727
|
+
},
|
|
7728
|
+
children: t('tac-label')
|
|
7729
|
+
}), words.map(function (word, i) {
|
|
7730
|
+
return jsx(Box
|
|
7731
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
7732
|
+
, {
|
|
7733
|
+
component: "span",
|
|
7734
|
+
sx: hasTac && word === sequenceNumberInTac ? sequenceStyle : {},
|
|
7735
|
+
children: word + (i < words.length - 1 ? ' ' : '')
|
|
7736
|
+
}, word + "-" + i);
|
|
7737
|
+
})]
|
|
7738
|
+
});
|
|
7739
|
+
};
|
|
7740
|
+
return jsxs(Box, {
|
|
7741
|
+
sx: {
|
|
7742
|
+
width: '500px',
|
|
7743
|
+
maxWidth: '600px'
|
|
7744
|
+
},
|
|
7745
|
+
children: [jsx(Typography, {
|
|
7746
|
+
variant: "subtitle2",
|
|
7747
|
+
marginTop: "15px",
|
|
7748
|
+
children: jsx("strong", {
|
|
7749
|
+
children: t('cancel-message')
|
|
7750
|
+
})
|
|
7751
|
+
}), jsx("div", {
|
|
7752
|
+
style: {
|
|
7753
|
+
display: 'flex',
|
|
7754
|
+
alignItems: 'flex-start'
|
|
7755
|
+
},
|
|
7756
|
+
children: renderTacWithSequence(cancelTAC, 'tac-missing-data')
|
|
7757
|
+
}), jsx(Typography, {
|
|
7758
|
+
variant: "subtitle2",
|
|
7759
|
+
children: jsx("strong", {
|
|
7760
|
+
children: t('will-cancel-message')
|
|
7761
|
+
})
|
|
7762
|
+
}), jsx("div", {
|
|
7763
|
+
style: {
|
|
7764
|
+
display: 'flex',
|
|
7765
|
+
alignItems: 'flex-start'
|
|
7766
|
+
},
|
|
7767
|
+
children: jsxs(Box, {
|
|
7768
|
+
component: "pre",
|
|
7769
|
+
sx: tacBlockStyle,
|
|
7770
|
+
children: [jsx(Box, {
|
|
7771
|
+
component: "span",
|
|
7772
|
+
sx: {
|
|
7773
|
+
fontWeight: 'bold',
|
|
7774
|
+
fontSize: 12,
|
|
7775
|
+
mr: 1.5
|
|
7776
|
+
},
|
|
7777
|
+
children: t('tac-label')
|
|
7778
|
+
}), currentTAC != null ? currentTAC : t('tac-missing-data')]
|
|
7779
|
+
})
|
|
7780
|
+
})]
|
|
7781
|
+
});
|
|
7782
|
+
};
|
|
7783
|
+
|
|
7491
7784
|
var _excluded$3 = ["IS_DRAFT", "object", "translation-select"];
|
|
7492
7785
|
var useScrollTopOnError = function useScrollTopOnError(error) {
|
|
7493
7786
|
var ref = React.useRef(null);
|
|
@@ -7759,12 +8052,12 @@ var Form = function Form(_ref5) {
|
|
|
7759
8052
|
var _useTACApi = useTACApi(),
|
|
7760
8053
|
fetchSigmetTAC = _useTACApi.fetchSigmetTAC,
|
|
7761
8054
|
fetchAirmetTAC = _useTACApi.fetchAirmetTAC;
|
|
7762
|
-
var _useShortTestHelpers = useShortTestHelpers(),
|
|
7763
|
-
isShortTest = _useShortTestHelpers.isShortTest;
|
|
7764
8055
|
var confirmationDialog = useConfirmationDialog();
|
|
7765
8056
|
var formMethods = useForm({
|
|
7766
8057
|
defaultValues: {}
|
|
7767
8058
|
});
|
|
8059
|
+
var _useShortTestHelpers = useShortTestHelpers(),
|
|
8060
|
+
isShortTest = _useShortTestHelpers.isShortTest;
|
|
7768
8061
|
var endOfWarningValidity = publicWarningDetails == null ? void 0 : publicWarningDetails.validUntil;
|
|
7769
8062
|
React.useEffect(function () {
|
|
7770
8063
|
if (!endOfWarningValidity || formState !== 'amending') {
|
|
@@ -7871,7 +8164,12 @@ var Form = function Form(_ref5) {
|
|
|
7871
8164
|
confirmLabel: getConfirmationDialogButtonLabel(t, action, warningType || 'airmet'),
|
|
7872
8165
|
cancelLabel: getConfirmationDialogCancelLabel(t, action),
|
|
7873
8166
|
catchOnCancel: action === ProductAction.CLOSE,
|
|
7874
|
-
content:
|
|
8167
|
+
content:
|
|
8168
|
+
// eslint-disable-next-line no-nested-ternary
|
|
8169
|
+
action === ProductAction.CANCEL ? jsx(CancelAviationDialogContent, {
|
|
8170
|
+
product: selectedAviationProduct,
|
|
8171
|
+
warningType: warningType
|
|
8172
|
+
}) : isVAPhenomenon(selectedAviationProduct, action) && !isShortTest() ? jsx(FormProvider, Object.assign({}, formMethods, {
|
|
7875
8173
|
children: jsx(CancelSigmetVolcanicMovements, {
|
|
7876
8174
|
sigmet: selectedAviationProduct,
|
|
7877
8175
|
productConfig: aviationConfig
|
|
@@ -8470,11 +8768,12 @@ var PublicWarningsForm = function PublicWarningsForm(props) {
|
|
|
8470
8768
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
8471
8769
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
8472
8770
|
* */
|
|
8771
|
+
var EMPTY_WARNING_FORM_STATE = {};
|
|
8473
8772
|
var selectPublicWarningState = function selectPublicWarningState(store) {
|
|
8474
8773
|
if (store && store.publicWarningForm) {
|
|
8475
8774
|
return store.publicWarningForm;
|
|
8476
8775
|
}
|
|
8477
|
-
return
|
|
8776
|
+
return EMPTY_WARNING_FORM_STATE;
|
|
8478
8777
|
};
|
|
8479
8778
|
createSelector(selectPublicWarningState, function (publicWarningStore) {
|
|
8480
8779
|
return publicWarningStore.object;
|
|
@@ -8796,6 +9095,12 @@ var getListInclHeaders = function getListInclHeaders(items, translateFn) {
|
|
|
8796
9095
|
}
|
|
8797
9096
|
};
|
|
8798
9097
|
};
|
|
9098
|
+
var getLabel = function getLabel(selectedAreas, isAreaSelected) {
|
|
9099
|
+
if (isAreaSelected) {
|
|
9100
|
+
return 'remove-button';
|
|
9101
|
+
}
|
|
9102
|
+
return selectedAreas.length === 0 ? 'add-button' : 'replace-button';
|
|
9103
|
+
};
|
|
8799
9104
|
var getDisplayDate = function getDisplayDate(date) {
|
|
8800
9105
|
return dateUtils.dateToString(dateUtils.utc(date), dateUtils.DATE_FORMAT_NAME_OF_DAY) + " UTC";
|
|
8801
9106
|
};
|
|
@@ -8805,26 +9110,41 @@ var ListItemAction = function ListItemAction(_ref2) {
|
|
|
8805
9110
|
onAddArea = _ref2.onAddArea,
|
|
8806
9111
|
onRemoveArea = _ref2.onRemoveArea,
|
|
8807
9112
|
isDisabled = _ref2.isDisabled,
|
|
8808
|
-
t = _ref2.t
|
|
9113
|
+
t = _ref2.t,
|
|
9114
|
+
_ref2$shouldDisableRe = _ref2.shouldDisableRemoveWarning,
|
|
9115
|
+
shouldDisableRemoveWarning = _ref2$shouldDisableRe === void 0 ? false : _ref2$shouldDisableRe;
|
|
8809
9116
|
var isAreaSelected = !!selectedAreas.find(function (area) {
|
|
8810
9117
|
return area.objectName === listItem.objectName;
|
|
8811
9118
|
});
|
|
8812
|
-
var label = t(
|
|
9119
|
+
var label = t(getLabel(selectedAreas, isAreaSelected));
|
|
8813
9120
|
var onClick = function onClick() {
|
|
8814
9121
|
isAreaSelected ? onRemoveArea(listItem) : onAddArea(listItem);
|
|
8815
9122
|
};
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8825
|
-
|
|
8826
|
-
|
|
8827
|
-
|
|
9123
|
+
var shouldDisableRemove = shouldDisableRemoveWarning && isAreaSelected;
|
|
9124
|
+
var render = function render() {
|
|
9125
|
+
return jsx(CustomToggleButton, {
|
|
9126
|
+
sx: {
|
|
9127
|
+
fontSize: '12px',
|
|
9128
|
+
height: '22px!important',
|
|
9129
|
+
minWidth: '60px'
|
|
9130
|
+
},
|
|
9131
|
+
variant: "tool",
|
|
9132
|
+
onClick: onClick,
|
|
9133
|
+
selected: isAreaSelected,
|
|
9134
|
+
disabled: isDisabled || shouldDisableRemove,
|
|
9135
|
+
children: label
|
|
9136
|
+
});
|
|
9137
|
+
};
|
|
9138
|
+
if (shouldDisableRemove) {
|
|
9139
|
+
return jsx(CustomTooltip, {
|
|
9140
|
+
title: t('disabled-button-tooltip'),
|
|
9141
|
+
placement: "top",
|
|
9142
|
+
children: jsx("span", {
|
|
9143
|
+
children: render()
|
|
9144
|
+
})
|
|
9145
|
+
});
|
|
9146
|
+
}
|
|
9147
|
+
return render();
|
|
8828
9148
|
};
|
|
8829
9149
|
var ContainerDiv = styled('div')(function () {
|
|
8830
9150
|
return {
|
|
@@ -8862,7 +9182,9 @@ var AreasObjects = function AreasObjects(_ref3) {
|
|
|
8862
9182
|
_ref3$selectedAreas = _ref3.selectedAreas,
|
|
8863
9183
|
selectedAreas = _ref3$selectedAreas === void 0 ? [] : _ref3$selectedAreas,
|
|
8864
9184
|
_ref3$isChangeAreaDis = _ref3.isChangeAreaDisabled,
|
|
8865
|
-
isChangeAreaDisabled = _ref3$isChangeAreaDis === void 0 ? true : _ref3$isChangeAreaDis
|
|
9185
|
+
isChangeAreaDisabled = _ref3$isChangeAreaDis === void 0 ? true : _ref3$isChangeAreaDis,
|
|
9186
|
+
_ref3$shouldDisableRe = _ref3.shouldDisableRemoveWarning,
|
|
9187
|
+
shouldDisableRemoveWarning = _ref3$shouldDisableRe === void 0 ? false : _ref3$shouldDisableRe;
|
|
8866
9188
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
8867
9189
|
t = _useWarningsTranslati.t;
|
|
8868
9190
|
var listRef = React__default.useRef(null);
|
|
@@ -8949,7 +9271,8 @@ var AreasObjects = function AreasObjects(_ref3) {
|
|
|
8949
9271
|
onAddArea: onAddArea,
|
|
8950
9272
|
onRemoveArea: onRemoveArea,
|
|
8951
9273
|
t: t,
|
|
8952
|
-
isDisabled: isChangeAreaDisabled
|
|
9274
|
+
isDisabled: isChangeAreaDisabled,
|
|
9275
|
+
shouldDisableRemoveWarning: shouldDisableRemoveWarning
|
|
8953
9276
|
}),
|
|
8954
9277
|
children: jsx(Paper, {
|
|
8955
9278
|
elevation: 0,
|
|
@@ -9067,7 +9390,9 @@ var AreaObjectLoader = function AreaObjectLoader(_ref) {
|
|
|
9067
9390
|
_ref$onRetryRequest = _ref.onRetryRequest,
|
|
9068
9391
|
onRetryRequest = _ref$onRetryRequest === void 0 ? function () {} : _ref$onRetryRequest,
|
|
9069
9392
|
_ref$isChangeAreaDisa = _ref.isChangeAreaDisabled,
|
|
9070
|
-
isChangeAreaDisabled = _ref$isChangeAreaDisa === void 0 ? true : _ref$isChangeAreaDisa
|
|
9393
|
+
isChangeAreaDisabled = _ref$isChangeAreaDisa === void 0 ? true : _ref$isChangeAreaDisa,
|
|
9394
|
+
_ref$shouldDisableRem = _ref.shouldDisableRemoveWarning,
|
|
9395
|
+
shouldDisableRemoveWarning = _ref$shouldDisableRem === void 0 ? false : _ref$shouldDisableRem;
|
|
9071
9396
|
var _useWarningsTranslati = useWarningsTranslation(),
|
|
9072
9397
|
t = _useWarningsTranslati.t;
|
|
9073
9398
|
var minSize = DEFAULT_LOADER_MIN_SIZE;
|
|
@@ -9144,7 +9469,8 @@ var AreaObjectLoader = function AreaObjectLoader(_ref) {
|
|
|
9144
9469
|
onAddArea: onAddArea,
|
|
9145
9470
|
onRemoveArea: onRemoveArea,
|
|
9146
9471
|
selectedAreas: selectedAreas,
|
|
9147
|
-
isChangeAreaDisabled: isChangeAreaDisabled
|
|
9472
|
+
isChangeAreaDisabled: isChangeAreaDisabled,
|
|
9473
|
+
shouldDisableRemoveWarning: shouldDisableRemoveWarning
|
|
9148
9474
|
})]
|
|
9149
9475
|
})]
|
|
9150
9476
|
});
|
|
@@ -9355,6 +9681,7 @@ var AreaObjectLoaderConnect = function AreaObjectLoaderConnect(_ref) {
|
|
|
9355
9681
|
type: areaObjectLoaderType,
|
|
9356
9682
|
error: uiError
|
|
9357
9683
|
} : undefined;
|
|
9684
|
+
var shouldDisableRemoveWarning = warningStatus !== undefined && warningStatus !== PublicWarningStatus.DRAFT && areas.length > 0;
|
|
9358
9685
|
return jsx(AreaObjectLoader, {
|
|
9359
9686
|
title: t('area-object-loader-title'),
|
|
9360
9687
|
bounds: bounds,
|
|
@@ -9379,7 +9706,8 @@ var AreaObjectLoaderConnect = function AreaObjectLoaderConnect(_ref) {
|
|
|
9379
9706
|
onRemoveArea: onRemoveArea,
|
|
9380
9707
|
selectedAreas: selectedAreas,
|
|
9381
9708
|
isChangeAreaDisabled: isChangeAreaDisabled,
|
|
9382
|
-
onRetryRequest: onRetryRequest
|
|
9709
|
+
onRetryRequest: onRetryRequest,
|
|
9710
|
+
shouldDisableRemoveWarning: shouldDisableRemoveWarning
|
|
9383
9711
|
});
|
|
9384
9712
|
};
|
|
9385
9713
|
|
|
@@ -9850,10 +10178,12 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
9850
10178
|
return setAnchorEl(null);
|
|
9851
10179
|
},
|
|
9852
10180
|
anchorEl: anchorEl,
|
|
9853
|
-
|
|
9854
|
-
|
|
9855
|
-
|
|
9856
|
-
|
|
10181
|
+
slotProps: {
|
|
10182
|
+
backdrop: {
|
|
10183
|
+
style: {
|
|
10184
|
+
opacity: 0,
|
|
10185
|
+
transition: 'none'
|
|
10186
|
+
}
|
|
9857
10187
|
}
|
|
9858
10188
|
},
|
|
9859
10189
|
sx: {
|
|
@@ -9898,8 +10228,10 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
9898
10228
|
justifyContent: "space-between",
|
|
9899
10229
|
alignItems: "center",
|
|
9900
10230
|
children: [t('filter-select-all'), jsx(Switch, {
|
|
9901
|
-
|
|
9902
|
-
|
|
10231
|
+
slotProps: {
|
|
10232
|
+
input: {
|
|
10233
|
+
'aria-label': t('filter-select-all')
|
|
10234
|
+
}
|
|
9903
10235
|
},
|
|
9904
10236
|
checked: allSelected,
|
|
9905
10237
|
onChange: function onChange() {
|
|
@@ -9967,7 +10299,7 @@ var ExpandableFilterChip = function ExpandableFilterChip(_ref) {
|
|
|
9967
10299
|
});
|
|
9968
10300
|
};
|
|
9969
10301
|
|
|
9970
|
-
var filterOrder = ['
|
|
10302
|
+
var filterOrder = ['source', 'domain', 'phenomenon', 'level'];
|
|
9971
10303
|
var FilterList = function FilterList(_ref) {
|
|
9972
10304
|
var _ref$onClickAll = _ref.onClickAll,
|
|
9973
10305
|
onClickAll = _ref$onClickAll === void 0 ? function () {} : _ref$onClickAll,
|
|
@@ -10051,6 +10383,7 @@ var WarningListItemSeperator = function WarningListItemSeperator(_ref) {
|
|
|
10051
10383
|
},
|
|
10052
10384
|
onClick: onClick,
|
|
10053
10385
|
"data-testid": "warninglist-" + status,
|
|
10386
|
+
"aria-expanded": isExpanded,
|
|
10054
10387
|
children: [isExpanded ? jsx(ChevronDown, {}) : jsx(ChevronUp, {}), jsx(Typography, {
|
|
10055
10388
|
variant: "caption",
|
|
10056
10389
|
sx: {
|
|
@@ -10388,6 +10721,16 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
10388
10721
|
}
|
|
10389
10722
|
return 'geowebColors.cards.cardContainer';
|
|
10390
10723
|
}, [highlightedItem, status]);
|
|
10724
|
+
var domain = React__default.useMemo(function () {
|
|
10725
|
+
var _warning$warningDetai2;
|
|
10726
|
+
if ((_warning$warningDetai2 = warning.warningDetail.domain) != null && _warning$warningDetai2.includes(Domain.maritime)) {
|
|
10727
|
+
return t('warning-domain-maritime');
|
|
10728
|
+
}
|
|
10729
|
+
if (warning.warningDetail.domain === Domain["public"]) {
|
|
10730
|
+
return t('warning-domain-public');
|
|
10731
|
+
}
|
|
10732
|
+
return t('warning-domain-aviation');
|
|
10733
|
+
}, [t, warning.warningDetail.domain]);
|
|
10391
10734
|
return jsx(ListItem, Object.assign({
|
|
10392
10735
|
sx: {
|
|
10393
10736
|
marginBottom: 0.25,
|
|
@@ -10465,7 +10808,7 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
10465
10808
|
}), jsx(WarningListColumnContent, {
|
|
10466
10809
|
title: t('warning-list-header-domain'),
|
|
10467
10810
|
status: status,
|
|
10468
|
-
children:
|
|
10811
|
+
children: domain
|
|
10469
10812
|
}), jsx(WarningListColumnContent, {
|
|
10470
10813
|
title: t('warning-list-header-phenomenon'),
|
|
10471
10814
|
status: status,
|
|
@@ -10533,8 +10876,8 @@ var WarningListItem = function WarningListItem(_ref) {
|
|
|
10533
10876
|
display: 'none'
|
|
10534
10877
|
}
|
|
10535
10878
|
}, _Object$assign)),
|
|
10536
|
-
children: function (_warning$
|
|
10537
|
-
if ((_warning$
|
|
10879
|
+
children: function (_warning$warningDetai3) {
|
|
10880
|
+
if ((_warning$warningDetai3 = warning.warningDetail) != null && _warning$warningDetai3.level && !levelTranslation) {
|
|
10538
10881
|
// Show sigmet-airmet level
|
|
10539
10882
|
return warning.warningDetail.level;
|
|
10540
10883
|
}
|
|
@@ -10669,11 +11012,11 @@ var NewWarningButton = function NewWarningButton(_ref) {
|
|
|
10669
11012
|
}
|
|
10670
11013
|
}
|
|
10671
11014
|
}
|
|
10672
|
-
}
|
|
10673
|
-
|
|
10674
|
-
|
|
10675
|
-
|
|
10676
|
-
|
|
11015
|
+
},
|
|
11016
|
+
list: {
|
|
11017
|
+
style: {
|
|
11018
|
+
padding: '0px'
|
|
11019
|
+
}
|
|
10677
11020
|
}
|
|
10678
11021
|
},
|
|
10679
11022
|
children: [jsx(MenuItem, {
|
|
@@ -11184,8 +11527,7 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11184
11527
|
var savedDomainFilter = savedFilterState.domain,
|
|
11185
11528
|
savedPhenomenonFilter = savedFilterState.phenomenon,
|
|
11186
11529
|
savedLevelFilter = savedFilterState.level,
|
|
11187
|
-
savedSourceFilter = savedFilterState.source
|
|
11188
|
-
savedIncidentFilter = savedFilterState.incident;
|
|
11530
|
+
savedSourceFilter = savedFilterState.source;
|
|
11189
11531
|
/** Levels for selected domain(s) */
|
|
11190
11532
|
var relevantLevels = useMemo(function () {
|
|
11191
11533
|
return getLevelsForDomainFilter(savedDomainFilter);
|
|
@@ -11223,28 +11565,14 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11223
11565
|
[relevantSources]);
|
|
11224
11566
|
var _getSelectedOptions2 = getSelectedOptions(savedSourceFilter),
|
|
11225
11567
|
allSourcesSelected = _getSelectedOptions2.allSelected;
|
|
11226
|
-
/** Incidents in the warnings */
|
|
11227
|
-
var relevantIncidents = useMemo(function () {
|
|
11228
|
-
return getFiltersFromWarnings(warnings, 'incident');
|
|
11229
|
-
}, [warnings]);
|
|
11230
|
-
/** FilterObject based on relevant incidents with values from the preset */
|
|
11231
|
-
var defaultIncidentFilter = useMemo(function () {
|
|
11232
|
-
return Object.fromEntries(relevantIncidents.map(function (key) {
|
|
11233
|
-
var presetValue = presetFilterState == null ? void 0 : presetFilterState.incident[key];
|
|
11234
|
-
return [key, presetValue === undefined ? true : presetValue];
|
|
11235
|
-
}));
|
|
11236
|
-
}, [relevantIncidents, presetFilterState == null ? void 0 : presetFilterState.incident]);
|
|
11237
|
-
var _getSelectedOptions3 = getSelectedOptions(savedIncidentFilter),
|
|
11238
|
-
allIncidentsSelected = _getSelectedOptions3.allSelected;
|
|
11239
11568
|
var populatedIncidentAndSourceFilter = useMemo(function () {
|
|
11240
11569
|
return {
|
|
11241
|
-
incident: defaultIncidentFilter,
|
|
11570
|
+
// incident: defaultIncidentFilter,
|
|
11242
11571
|
source: defaultSourceFilter
|
|
11243
11572
|
};
|
|
11244
|
-
}, [
|
|
11573
|
+
}, [defaultSourceFilter]);
|
|
11245
11574
|
var initialFiltersWithPresets = useMemo(function () {
|
|
11246
11575
|
return {
|
|
11247
|
-
incident: defaultIncidentFilter || defaultEmptyFilter,
|
|
11248
11576
|
source: defaultSourceFilter || defaultEmptyFilter,
|
|
11249
11577
|
domain: Object.assign({}, initialFilters.domain, presetFilterState == null ? void 0 : presetFilterState.domain),
|
|
11250
11578
|
phenomenon: Object.assign({}, initialFilters.phenomenon, presetFilterState == null ? void 0 : presetFilterState.phenomenon),
|
|
@@ -11259,11 +11587,10 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11259
11587
|
useEffect(function () {
|
|
11260
11588
|
// when the preset changes, update the filters
|
|
11261
11589
|
onUpdateFilters(initialFiltersWithPresets, true);
|
|
11262
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11263
11590
|
}, [initialFiltersWithPresets, onUpdateFilters]);
|
|
11264
|
-
var
|
|
11265
|
-
allDomainSelected =
|
|
11266
|
-
var allSelected = allDomainSelected && allLevelsSelected && allPhenomenaSelected &&
|
|
11591
|
+
var _getSelectedOptions3 = getSelectedOptions(savedDomainFilter),
|
|
11592
|
+
allDomainSelected = _getSelectedOptions3.allSelected;
|
|
11593
|
+
var allSelected = allDomainSelected && allLevelsSelected && allPhenomenaSelected && allSourcesSelected;
|
|
11267
11594
|
/**
|
|
11268
11595
|
* @param filterKey - Name of the filter | "ALL" filters
|
|
11269
11596
|
* @param optionKey - Name of the option | "ALL" options
|
|
@@ -11277,7 +11604,7 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11277
11604
|
domain: updateState(savedDomainFilter, 'ALL', value),
|
|
11278
11605
|
level: updateState(levelFilter, 'ALL', value),
|
|
11279
11606
|
phenomenon: updateState(savedPhenomenonFilter, 'ALL', value),
|
|
11280
|
-
incident: updateState(savedIncidentFilter, 'ALL', value),
|
|
11607
|
+
// incident: updateState(savedIncidentFilter, 'ALL', value),
|
|
11281
11608
|
source: updateState(savedSourceFilter, 'ALL', value)
|
|
11282
11609
|
});
|
|
11283
11610
|
} else if (filterKey === 'domain') {
|
|
@@ -11297,10 +11624,6 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11297
11624
|
onUpdateFilters({
|
|
11298
11625
|
source: updateState(savedSourceFilter, optionKey, value, only)
|
|
11299
11626
|
});
|
|
11300
|
-
} else if (filterKey === 'incident') {
|
|
11301
|
-
onUpdateFilters({
|
|
11302
|
-
incident: updateState(savedIncidentFilter, optionKey, value, only)
|
|
11303
|
-
});
|
|
11304
11627
|
}
|
|
11305
11628
|
};
|
|
11306
11629
|
var byFilterState = useCallback(function (warning) {
|
|
@@ -11330,14 +11653,8 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11330
11653
|
if (!savedSourceFilter[source]) {
|
|
11331
11654
|
return false;
|
|
11332
11655
|
}
|
|
11333
|
-
var incident = relevantIncidents.find(function (incident) {
|
|
11334
|
-
return incident === warning.warningDetail.incident;
|
|
11335
|
-
}) || emptyFilterId;
|
|
11336
|
-
if (!savedIncidentFilter[incident]) {
|
|
11337
|
-
return false;
|
|
11338
|
-
}
|
|
11339
11656
|
return true;
|
|
11340
|
-
}, [savedDomainFilter, pickedLevelFilter, pickedPhenomenaFilter, relevantSources, savedSourceFilter
|
|
11657
|
+
}, [savedDomainFilter, pickedLevelFilter, pickedPhenomenaFilter, relevantSources, savedSourceFilter]);
|
|
11341
11658
|
return {
|
|
11342
11659
|
allSelected: allSelected,
|
|
11343
11660
|
updateFilter: updateFilter,
|
|
@@ -11346,7 +11663,6 @@ var useWarningFilters = function useWarningFilters(warnings, onUpdateFilters, sa
|
|
|
11346
11663
|
domain: savedDomainFilter,
|
|
11347
11664
|
level: pickedLevelFilter,
|
|
11348
11665
|
phenomenon: pickedPhenomenaFilter,
|
|
11349
|
-
incident: savedIncidentFilter,
|
|
11350
11666
|
source: savedSourceFilter
|
|
11351
11667
|
}
|
|
11352
11668
|
};
|
|
@@ -11811,8 +12127,8 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
|
|
|
11811
12127
|
return combinedWarnings.filter(filterHookState.byFilterState);
|
|
11812
12128
|
}, [combinedWarnings, filterHookState.byFilterState]);
|
|
11813
12129
|
var _React$useState2 = React__default.useState({
|
|
11814
|
-
TODO:
|
|
11815
|
-
DRAFT:
|
|
12130
|
+
TODO: false,
|
|
12131
|
+
DRAFT: false,
|
|
11816
12132
|
PUBLISHED: true,
|
|
11817
12133
|
EXPIRED: false
|
|
11818
12134
|
}),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/warnings",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "14.0.0",
|
|
4
4
|
"description": "GeoWeb warinings library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,25 +8,25 @@
|
|
|
8
8
|
"url": "git@gitlab.com:opengeoweb/opengeoweb.git"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@opengeoweb/api": "
|
|
12
|
-
"@opengeoweb/shared": "
|
|
13
|
-
"@opengeoweb/store": "
|
|
14
|
-
"@opengeoweb/webmap-react": "
|
|
11
|
+
"@opengeoweb/api": "14.0.0",
|
|
12
|
+
"@opengeoweb/shared": "14.0.0",
|
|
13
|
+
"@opengeoweb/store": "14.0.0",
|
|
14
|
+
"@opengeoweb/webmap-react": "14.0.0",
|
|
15
15
|
"@tanstack/react-query": "^5.85.5",
|
|
16
16
|
"react-redux": "^9.2.0",
|
|
17
|
-
"@opengeoweb/theme": "
|
|
18
|
-
"@opengeoweb/form-fields": "
|
|
17
|
+
"@opengeoweb/theme": "14.0.0",
|
|
18
|
+
"@opengeoweb/form-fields": "14.0.0",
|
|
19
19
|
"react-hook-form": "^7.50.1",
|
|
20
20
|
"lodash": "^4.17.21",
|
|
21
21
|
"@reduxjs/toolkit": "^2.6.1",
|
|
22
|
-
"@opengeoweb/snackbar": "
|
|
22
|
+
"@opengeoweb/snackbar": "14.0.0",
|
|
23
23
|
"react-window": "^1.8.10",
|
|
24
24
|
"react-virtualized-auto-sizer": "^1.0.20",
|
|
25
25
|
"axios": "^1.7.7",
|
|
26
|
-
"@opengeoweb/core": "
|
|
27
|
-
"@opengeoweb/webmap": "
|
|
28
|
-
"@opengeoweb/authentication": "
|
|
29
|
-
"@opengeoweb/sigmet-airmet": "
|
|
26
|
+
"@opengeoweb/core": "14.0.0",
|
|
27
|
+
"@opengeoweb/webmap": "14.0.0",
|
|
28
|
+
"@opengeoweb/authentication": "14.0.0",
|
|
29
|
+
"@opengeoweb/sigmet-airmet": "14.0.0",
|
|
30
30
|
"react-i18next": "^15.1.1",
|
|
31
31
|
"i18next": "^25.0.1",
|
|
32
32
|
"@mui/material": "^7.0.1",
|
|
@@ -13,5 +13,11 @@ export declare const getAirmetTAC: (auth: Credentials, product: AviationProduct)
|
|
|
13
13
|
export declare const getSigmetTAC: (auth: Credentials, product: AviationProduct) => Promise<{
|
|
14
14
|
data: string;
|
|
15
15
|
}>;
|
|
16
|
+
export declare const getAirmetCancelTAC: (auth: Credentials, product: AviationProduct) => Promise<{
|
|
17
|
+
data: string;
|
|
18
|
+
}>;
|
|
19
|
+
export declare const getSigmetCancelTAC: (auth: Credentials, product: AviationProduct) => Promise<{
|
|
20
|
+
data: string;
|
|
21
|
+
}>;
|
|
16
22
|
export declare const postSigmet: (auth: Credentials, data: SigmetFromFrontend) => Promise<SigmetFromBackend>;
|
|
17
23
|
export declare const postAirmet: (auth: Credentials, data: AirmetFromFrontend) => Promise<AirmetFromBackend>;
|
|
@@ -3,4 +3,6 @@ export declare const airmetList: AirmetFromBackend[];
|
|
|
3
3
|
export declare const sigmetList: SigmetFromBackend[];
|
|
4
4
|
export declare const fakeSigmetTAC = "EHAA SIGMET 1 VALID 121249/121449 EHDB- EHAA AMSTERDAM FIR FRQ TS OBS ENTIRE FIR FL010 STNR WKN";
|
|
5
5
|
export declare const fakeAirmetTAC = "EHAA AIRMET -1 VALID 310700/311100 EHDB- EHAA AMSTERDAM FIR ISOL CB OBS ENTIRE FIR FL020 STNR NC";
|
|
6
|
+
export declare const fakeDraftCancelSigmetTAC = "EHAA SIGMET 2 121249/121449 EHDB- EHAA AMSTERDAM FIR";
|
|
7
|
+
export declare const fakeDraftCancelAirmetTAC = "EHAA AIRMET 2 310700/311100 EHDB- EHAA AMSTERDAM FIR ";
|
|
6
8
|
export declare const aviationEndpoints: import("msw").HttpHandler[];
|
|
@@ -12,6 +12,8 @@ type FetchTACData = Promise<{
|
|
|
12
12
|
export declare const useTACApi: () => {
|
|
13
13
|
fetchSigmetTAC: (product: AviationProduct) => FetchTACData;
|
|
14
14
|
fetchAirmetTAC: (product: AviationProduct) => FetchTACData;
|
|
15
|
+
fetchSigmetCancelTAC: (product: AviationProduct) => FetchTACData;
|
|
16
|
+
fetchAirmetCancelTAC: (product: AviationProduct) => FetchTACData;
|
|
15
17
|
};
|
|
16
18
|
/**
|
|
17
19
|
* Hook for posting a SIGMET, with feedback.
|
|
@@ -31,7 +31,7 @@ export declare const useMutateDeleteWarning: () => MutationReturnType<{
|
|
|
31
31
|
export declare const usePublishWarning: () => MutationReturnType<UpdateWarningProps>;
|
|
32
32
|
export declare const useSaveWarning: () => MutationReturnType<UpdateWarningProps>;
|
|
33
33
|
export declare const useDrawings: (params?: FetchDrawingParams, enabled?: boolean) => UseQueryResult<DrawingListItem[]>;
|
|
34
|
-
export declare const useDrawingDetails: (drawingId: string
|
|
34
|
+
export declare const useDrawingDetails: (drawingId: string) => UseQueryResult<DrawingFromBE>;
|
|
35
35
|
export declare const useAreaKeywords: (enabled?: boolean) => UseQueryResult<string[]>;
|
|
36
36
|
export declare const useMutateSaveOrUpdateDrawing: () => DrawingMutationReturnType<{
|
|
37
37
|
data: DrawingFromFE;
|
|
@@ -11,6 +11,7 @@ export declare const getListInclHeaders: (items: DrawingListItem[], translateFn:
|
|
|
11
11
|
objects: ObjectAreaList;
|
|
12
12
|
areas: ObjectAreaList;
|
|
13
13
|
};
|
|
14
|
+
export declare const getLabel: (selectedAreas: Area[], isAreaSelected: boolean) => string;
|
|
14
15
|
export declare const getDisplayDate: (date: string) => string;
|
|
15
16
|
export declare const AreasObjects: FC<{
|
|
16
17
|
drawingListItems: DrawingListItem[];
|
|
@@ -21,5 +22,6 @@ export declare const AreasObjects: FC<{
|
|
|
21
22
|
onRemoveArea?: (drawingListItem: DrawingListItem) => void;
|
|
22
23
|
selectedAreas?: Area[];
|
|
23
24
|
isChangeAreaDisabled?: boolean;
|
|
25
|
+
shouldDisableRemoveWarning?: boolean;
|
|
24
26
|
}>;
|
|
25
27
|
export {};
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { Warning } from '../../store/publicWarningForm/types';
|
|
2
2
|
import { AllPhenomenaKeys, defaultDomainFilter, defaultEmptyFilter, defaultLevelFilter, defaultPhenomenonFilter, Domain } from './filter-utils';
|
|
3
3
|
export interface PickedFilterState {
|
|
4
|
-
incident: Partial<typeof defaultEmptyFilter>;
|
|
5
4
|
source: Partial<typeof defaultEmptyFilter>;
|
|
6
5
|
domain: Partial<typeof defaultDomainFilter>;
|
|
7
6
|
phenomenon: Partial<typeof defaultPhenomenonFilter>;
|
|
8
7
|
level: Partial<typeof defaultLevelFilter>;
|
|
9
8
|
}
|
|
10
9
|
export interface FilterState extends PickedFilterState {
|
|
11
|
-
incident: typeof defaultEmptyFilter;
|
|
12
10
|
source: typeof defaultEmptyFilter;
|
|
13
11
|
domain: typeof defaultDomainFilter;
|
|
14
12
|
phenomenon: typeof defaultPhenomenonFilter;
|
|
@@ -76,7 +76,6 @@ export declare const AllPhenomenaKeys: Record<keyof typeof AllPhenomena, keyof t
|
|
|
76
76
|
export declare const domainPhenomena: Record<Domain, Partial<keyof typeof AllPhenomenaKeys>[]>;
|
|
77
77
|
export declare const defaultPhenomenonFilter: Record<string, boolean>;
|
|
78
78
|
export declare const initialFilters: {
|
|
79
|
-
incident: Record<string, boolean>;
|
|
80
79
|
source: Record<string, boolean>;
|
|
81
80
|
domain: Record<Domain, boolean>;
|
|
82
81
|
phenomenon: Record<string, boolean>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DistrictsType, MaritimeWarningItem, MaritimeWarningsConfig } from './types';
|
|
2
|
-
interface
|
|
2
|
+
interface UseConfirmDeleteDialogProps {
|
|
3
3
|
areas: DistrictsType[];
|
|
4
4
|
warnings: MaritimeWarningItem[];
|
|
5
5
|
maritimeConfig: MaritimeWarningsConfig;
|
|
6
6
|
onRemoveWarning: (id: string) => void;
|
|
7
7
|
}
|
|
8
|
-
interface
|
|
8
|
+
interface UseConfirmDeleteDialog {
|
|
9
9
|
onRemoveWarningWithConfirmation(id: string): Promise<void>;
|
|
10
10
|
}
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function useConfirmDeleteDialog({ areas, warnings, maritimeConfig, onRemoveWarning, }: UseConfirmDeleteDialogProps): UseConfirmDeleteDialog;
|
|
12
12
|
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -25,3 +25,11 @@ export declare const PublicWarningsFormAirmetCancels: () => React.ReactElement;
|
|
|
25
25
|
export declare const PublicWarningsFormAirmetCancelled: () => React.ReactElement;
|
|
26
26
|
export declare const PublicWarningsFormSigmetCancels: () => React.ReactElement;
|
|
27
27
|
export declare const PublicWarningsFormSigmetCancelled: () => React.ReactElement;
|
|
28
|
+
export declare const PublicWarningsFormCancelAirmet: {
|
|
29
|
+
(): React.ReactElement;
|
|
30
|
+
tags: string[];
|
|
31
|
+
};
|
|
32
|
+
export declare const PublicWarningsFormCancelSigmet: {
|
|
33
|
+
(): React.ReactElement;
|
|
34
|
+
tags: string[];
|
|
35
|
+
};
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TFunction } from 'i18next';
|
|
3
3
|
export declare const VALID_FROM_MAX_HOURS_AFTER_CURRENT = 192;
|
|
4
|
+
export declare const VALID_UNTIL_DEFAULT_OFFSET = 6;
|
|
4
5
|
export declare const isValueBeforeCurrentTime: (value: string, t: TFunction) => boolean | string;
|
|
5
6
|
export declare const isMaxHoursAfterCurrentTime: (value: string, t: TFunction) => boolean | string;
|
|
7
|
+
/**
|
|
8
|
+
* Automatically adjusts the valid until field when valid from is changed
|
|
9
|
+
* If the new valid from time is after the current valid until time,
|
|
10
|
+
* it sets valid until to 6 hours after valid from
|
|
11
|
+
* @param validFrom - The new valid from ISO date string
|
|
12
|
+
* @param validUntil - The current valid until ISO date string
|
|
13
|
+
* @returns The adjusted valid until ISO date string, or null if no adjustment needed
|
|
14
|
+
*/
|
|
15
|
+
export declare const offsetTimeValidUntilField: (validFrom: string, validUntil: string) => string | null;
|
|
6
16
|
export declare const ValidFrom: React.FC<{
|
|
7
17
|
isDisabled?: boolean;
|
|
8
18
|
isReadOnly?: boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AviationProduct } from '@opengeoweb/sigmet-airmet';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { WarningType } from '../../store/publicWarningForm/types';
|
|
4
|
+
export declare const CancelAviationDialogContent: ({ product, warningType, }: {
|
|
5
|
+
product: AviationProduct;
|
|
6
|
+
warningType: WarningType;
|
|
7
|
+
}) => React.ReactElement;
|
package/src/lib/components/PublicWarningsFormDialog/AviationWarningCancelDialogContent.spec.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|