@opengeoweb/warnings 12.1.2 → 12.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.
Files changed (25) hide show
  1. package/index.esm.js +235 -107
  2. package/package.json +13 -13
  3. package/src/lib/Warnings.stories.d.ts +1 -0
  4. package/src/lib/api/aviation-api/hooks.d.ts +2 -2
  5. package/src/lib/components/AreaObjectLoader/AreaObjectLoader.stories.d.ts +12 -36
  6. package/src/lib/components/AreaObjectLoader/AreaObjectLoaderConnect.stories.d.ts +1 -0
  7. package/src/lib/components/DrawingTool/DrawingTool.stories.d.ts +7 -30
  8. package/src/lib/components/FilterList/ExpandableFilterChip.stories.d.ts +13 -13
  9. package/src/lib/components/ObjectManager/ObjectManager.stories.d.ts +35 -42
  10. package/src/lib/components/ObjectManager/ObjectManagerConnect.stories.d.ts +6 -21
  11. package/src/lib/components/ObjectManager/ObjectManagerConnectErrors.stories.d.ts +1 -0
  12. package/src/lib/components/Providers/Providers.d.ts +10 -2
  13. package/src/lib/components/PublicWarningList/NewWarningButton/NewWarningButton.d.ts +1 -2
  14. package/src/lib/components/PublicWarningList/NewWarningButton/NewWarningButton.stories.d.ts +7 -8
  15. package/src/lib/components/PublicWarningList/PublicWarningList.stories.d.ts +1 -0
  16. package/src/lib/components/PublicWarningList/PublicWarningListConnect.stories.d.ts +1 -0
  17. package/src/lib/components/PublicWarningsForm/AreaField/AreaField.stories.d.ts +21 -9
  18. package/src/lib/components/PublicWarningsForm/DescriptionField/DescriptionField.stories.d.ts +10 -21
  19. package/src/lib/components/PublicWarningsForm/PublicWarningsForm.d.ts +4 -1
  20. package/src/lib/components/PublicWarningsForm/PublicWarningsForm.stories.d.ts +3 -3
  21. package/src/lib/components/PublicWarningsForm/PublicWarningsFormConnect.stories.d.ts +1 -0
  22. package/src/lib/components/PublicWarningsForm/PublicWarningsFormConnectErrors.stories.d.ts +1 -0
  23. package/src/lib/components/PublicWarningsFormDialog/PublicWarningsFormDialog.stories.d.ts +14 -53
  24. package/src/lib/components/PublicWarningsFormDialog/PublicWarningsFormDialogConnect.stories.d.ts +1 -0
  25. package/src/lib/components/WarningsMapView/WarningsMapView.d.ts +1 -1
package/index.esm.js CHANGED
@@ -1,26 +1,26 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useDispatch, useSelector } from 'react-redux';
3
- import { Polygons, Share, ExitDomain, Edit, Delete, DrawPolygon, Visibility, Add, CoastalEvent, TemperatureLow, TemperatureHigh, Rain, Snow, Lightning, Fog, Wind, Thunderstorm, VulcanicEruption, Haze, FreezingPrecipitation, ModerateAircraftIcing, SevereAircraftIcing, ModerateTurbulence, SevereTurbulence, SandStorm, RadioactiveMaterials, breakpoints, Options, Close, ChevronDown, ChevronUp, Copy, Update, Success, Expire, Remove, ArrowUpCompact, ArrowDownCompact } from '@opengeoweb/theme';
4
- import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawingToolSelectors, layerSelectors, uiSelectors, drawingToolActions, layerActions, useSetupDialog, selectorMemoizationOptions, useUpdateSharedData, mapListener, layersListener, drawingToolListener, syncGroupsListener, mapReducer, layerReducer, uiReducer, drawingToolReducer, syncGroupsReducer } from '@opengeoweb/store';
3
+ import { Polygons, ExitDomain, Share, Edit, Delete, DrawPolygon, Visibility, Add, CoastalEvent, TemperatureLow, TemperatureHigh, Rain, Snow, Lightning, Fog, Wind, Thunderstorm, VulcanicEruption, Haze, FreezingPrecipitation, ModerateAircraftIcing, SevereAircraftIcing, ModerateTurbulence, SevereTurbulence, SandStorm, RadioactiveMaterials, breakpoints, Options, Close, ChevronDown, ChevronUp, Copy, Update, Success, Expire, Remove, ArrowUpCompact, ArrowDownCompact } from '@opengeoweb/theme';
4
+ import { uiTypes, uiActions, getSingularDrawtoolDrawLayerId, drawingToolSelectors, layerSelectors, uiSelectors, drawingToolActions, layerActions, useSetupDialog, genericSelectors, selectorMemoizationOptions, useUpdateSharedData, mapListener, layersListener, drawingToolListener, syncGroupsListener, syncGroupsReducer, drawingToolReducer, uiReducer, layerReducer, mapReducer } from '@opengeoweb/store';
5
5
  import { defaultPolygon, emptyGeoJSON, MapControlButton, getIcon, rewindGeometry, getGeoJSONPropertyValue, currentlySupportedDrawModes, defaultLayers, viewUtils, OpenLayersMapView, MapControls, OpenLayersZoomControl, OpenLayersLayer, OpenLayersFeatureLayer, genericOpenLayersFeatureStyle } from '@opengeoweb/webmap-react';
6
- import { SHARED_NAMESPACE, useConfirmationDialog, ToggleMenu, dateUtils, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, usePrevious, CustomIconButton, CustomTooltip, Avatar, getInitials, SwitchButton, CustomToggleButton, Filter, FilterChip, FilterOption, StatusTag, LastUpdateTime, ErrorBoundary, isAxiosError } from '@opengeoweb/shared';
6
+ import { SHARED_NAMESPACE, useConfirmationDialog, dateUtils, ToggleMenu, calculateStartSize, ToolContainerDraggable, AlertBanner, ConfirmationDialog, getAxiosErrorMessage, usePrevious, CustomIconButton, CustomTooltip, Avatar, getInitials, SwitchButton, CustomToggleButton, Filter, FilterChip, FilterOption, StatusTag, LastUpdateTime, ErrorBoundary, isAxiosError } from '@opengeoweb/shared';
7
7
  import { createEntityAdapter, createSlice, createSelector, current, createListenerMiddleware, combineReducers, configureStore } from '@reduxjs/toolkit';
8
+ import { defaultBbox } from '@opengeoweb/core';
9
+ import { FORM_FIELDS_NAMESPACE, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormSelect, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions, useDraftFormHelpers, errorMessages, isEmpty, ReactHookFormDateTime, isXHoursAfter, isXHoursBefore } from '@opengeoweb/form-fields';
10
+ import { SA_NAMESPACE, airmetConfig, sigmetConfig, isInstanceOfCancelSigmet, isInstanceOfCancelAirmet, getDefaultValidUntilValue, useShortTestHelpers, SigmetForm, AirmetForm, ProductAction, getConfirmationDialogCancelLabel, getConfirmationDialogButtonLabel, getConfirmationDialogContent, getConfirmationDialogTitle, isVAPhenomenon, CancelSigmetVolcanicMovements, createAirmetPostParameter, createSigmetPostParameter, getProductFormMode } from '@opengeoweb/sigmet-airmet';
11
+ import { LayerType, generateMapId } from '@opengeoweb/webmap';
8
12
  import 'i18next';
9
13
  import { useTranslation } from 'react-i18next';
10
- import '@opengeoweb/core';
11
- import { FORM_FIELDS_NAMESPACE, ReactHookFormHiddenInput, isValidGeoJsonCoordinates, ReactHookFormSelect, ReactHookFormTextField, ReactHookFormProvider, defaultFormOptions, useDraftFormHelpers, errorMessages, isEmpty, ReactHookFormDateTime, isXHoursBefore, isXHoursAfter } from '@opengeoweb/form-fields';
12
- import { LayerType, generateMapId } from '@opengeoweb/webmap';
13
- import { airmetConfig, sigmetConfig, isInstanceOfCancelSigmet, isInstanceOfCancelAirmet, getDefaultValidUntilValue, SigmetForm, AirmetForm, createAirmetPostParameter, createSigmetPostParameter, getProductFormMode, ProductAction } from '@opengeoweb/sigmet-airmet';
14
14
  import { snackbarActions, snackbarTypes, snackbarListener, snackbarReducer } from '@opengeoweb/snackbar';
15
15
  import * as React from 'react';
16
16
  import React__default, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
17
- import { styled, Box, Typography, ListItem, Grid2, Paper, ListItemButton, Stack, LinearProgress, Button, FormHelperText, MenuItem, Card, CardContent, Tabs, Tab, CircularProgress, Menu, DialogTitle, DialogContent, Switch, ListItemText } from '@mui/material';
17
+ import { styled, Box, Typography, ListItem, Paper, ListItemButton, Stack, Grid2, LinearProgress, Button, FormHelperText, MenuItem, Card, CardContent, Tabs, Tab, CircularProgress, Menu, DialogTitle, DialogContent, Switch, ListItemText } from '@mui/material';
18
18
  import { VariableSizeList } from 'react-window';
19
19
  import AutoSizer from 'react-virtualized-auto-sizer';
20
20
  import { getApi, createApiInstance, createNonAuthApiInstance, createFakeApiInstance, ApiProvider, getHeaders, handleResponse, useAuthQuery, useAuthenticationContext, ProductStatus, AirmetPhenomena, SigmetPhenomena, optimisticUpdate } from '@opengeoweb/api';
21
21
  import { http, HttpResponse, passthrough, delay } from 'msw';
22
22
  import { concat, isEqual, cloneDeep, clamp, groupBy, pick } from 'lodash';
23
- import { useFormContext } from 'react-hook-form';
23
+ import { useFormContext, useForm, FormProvider } from 'react-hook-form';
24
24
  import { getConfig, useAuthenticationContext as useAuthenticationContext$1 } from '@opengeoweb/authentication';
25
25
  import { useQueryClient, useMutation } from '@tanstack/react-query';
26
26
 
@@ -201,7 +201,12 @@ var en = {
201
201
  "warning-dialog-withdraw-description": "Are you sure you want to withdraw this warning?",
202
202
  "tac-missing-data": "Missing data: no TAC can be generated",
203
203
  "warning-list-button-renew": "Renew",
204
- "aviation-save-succes": "{{warningType}} has succesfully been saved!"
204
+ "aviation-save-success": "{{warningType}} has succesfully been saved!",
205
+ "aviation-publish-success": "{{warningType}} has succesfully been published!",
206
+ "publish-this-product": "Are you sure you want to publish this {{product}}?",
207
+ "yes-cancel": "Yes, cancel {{product}}",
208
+ "cancel-this-product": "Are you sure you want to cancel this {{product}}?",
209
+ "aviation-cancel-success": "{{warningType}} has succesfully been cancelled!"
205
210
  };
206
211
  var nl = {
207
212
  "drawing-tool-form-tools": "Gereedschap",
@@ -341,7 +346,12 @@ var nl = {
341
346
  "error-title-retry": "Probeer opnieuw",
342
347
  "tac-missing-data": "Ontbrekende gegevens: er kan geen TAC worden gegenereerd",
343
348
  "warning-list-button-renew": "Hernieuwen",
344
- "aviation-save-succes": "{{warningType}} is succesvol opgeslagen!"
349
+ "aviation-save-success": "{{warningType}} is succesvol opgeslagen!",
350
+ "aviation-publish-success": "niet vertaald",
351
+ "publish-this-product": "Weet je zeker dat je dit {{product}} wilt publiceren?",
352
+ "yes-cancel": "Ja, annuleer {{product}}",
353
+ "cancel-this-product": "Weet je zeker dat je dit {{product}} wilt annuleren?",
354
+ "aviation-cancel-success": "niet vertaald"
345
355
  };
346
356
  var fi = {
347
357
  "drawing-tool-form-tools": "Työkalut",
@@ -481,7 +491,12 @@ var fi = {
481
491
  "error-title-retry": "Yritä uudelleen",
482
492
  "tac-missing-data": "Tarvittavia tietoja puuttuu, TAC:ia ei voida generoida",
483
493
  "warning-list-button-renew": "Renew",
484
- "aviation-save-succes": "{{warningType}} tallannettu onnistuneesti"
494
+ "aviation-save-success": "{{warningType}} tallannettu onnistuneesti",
495
+ "aviation-publish-success": "ei käännetty",
496
+ "publish-this-product": "Oletko varma, että haluat julkaista tämän {{product}}:n?",
497
+ "yes-cancel": "Kyllä, peruuta {{product}}",
498
+ "cancel-this-product": "Oletko varma, että haluat peruuttaa tämän {{product}}:n?",
499
+ "aviation-cancel-success": "ei käännetty"
485
500
  };
486
501
  var no = {
487
502
  "drawing-tool-form-tools": "Verktøy",
@@ -621,7 +636,12 @@ var no = {
621
636
  "error-title-retry": "Prøv igjen",
622
637
  "tac-missing-data": "Mangler data: ingen TAC kan genereres",
623
638
  "warning-list-button-renew": "Renew",
624
- "aviation-save-succes": "{{warningType}} er lagret!"
639
+ "aviation-save-success": "{{warningType}} er lagret!",
640
+ "aviation-publish-success": "{{warningType}} er lagret!",
641
+ "publish-this-product": "Er du sikker på at du vil publisere dette {{product}}?",
642
+ "yes-cancel": "Ja, kanseller {{product}}",
643
+ "cancel-this-product": "Er du sikker på at du vil avbryte dette {{product}}?",
644
+ "aviation-cancel-success": "{{warningType}} er kansellert!"
625
645
  };
626
646
  var warningsTranslations = {
627
647
  en: en,
@@ -659,7 +679,7 @@ function _objectWithoutPropertiesLoose(r, e) {
659
679
  if (null == r) return {};
660
680
  var t = {};
661
681
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
662
- if (e.indexOf(n) >= 0) continue;
682
+ if (-1 !== e.indexOf(n)) continue;
663
683
  t[n] = r[n];
664
684
  }
665
685
  return t;
@@ -682,9 +702,9 @@ function _regeneratorRuntime() {
682
702
  function define(t, e, r) {
683
703
  return Object.defineProperty(t, e, {
684
704
  value: r,
685
- enumerable: !0,
686
- configurable: !0,
687
- writable: !0
705
+ enumerable: true,
706
+ configurable: true,
707
+ writable: true
688
708
  }), t[e];
689
709
  }
690
710
  try {
@@ -777,7 +797,7 @@ function _regeneratorRuntime() {
777
797
  if ("throw" === i) throw a;
778
798
  return {
779
799
  value: t,
780
- done: !0
800
+ done: true
781
801
  };
782
802
  }
783
803
  for (n.method = i, n.arg = a;;) {
@@ -828,7 +848,7 @@ function _regeneratorRuntime() {
828
848
  function Context(t) {
829
849
  this.tryEntries = [{
830
850
  tryLoc: "root"
831
- }], t.forEach(pushTryEntry, this), this.reset(!0);
851
+ }], t.forEach(pushTryEntry, this), this.reset(true);
832
852
  }
833
853
  function values(e) {
834
854
  if (e || "" === e) {
@@ -838,8 +858,8 @@ function _regeneratorRuntime() {
838
858
  if (!isNaN(e.length)) {
839
859
  var o = -1,
840
860
  i = function next() {
841
- for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
842
- return next.value = t, next.done = !0, next;
861
+ for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = false, next;
862
+ return next.value = t, next.done = true, next;
843
863
  };
844
864
  return i.next = i;
845
865
  }
@@ -848,10 +868,10 @@ function _regeneratorRuntime() {
848
868
  }
849
869
  return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
850
870
  value: GeneratorFunctionPrototype,
851
- configurable: !0
871
+ configurable: true
852
872
  }), o(GeneratorFunctionPrototype, "constructor", {
853
873
  value: GeneratorFunction,
854
- configurable: !0
874
+ configurable: true
855
875
  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
856
876
  var e = "function" == typeof t && t.constructor;
857
877
  return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
@@ -880,17 +900,17 @@ function _regeneratorRuntime() {
880
900
  return r.reverse(), function next() {
881
901
  for (; r.length;) {
882
902
  var t = r.pop();
883
- if (t in e) return next.value = t, next.done = !1, next;
903
+ if (t in e) return next.value = t, next.done = false, next;
884
904
  }
885
- return next.done = !0, next;
905
+ return next.done = true, next;
886
906
  };
887
907
  }, e.values = values, Context.prototype = {
888
908
  constructor: Context,
889
909
  reset: function (e) {
890
- if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
910
+ if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = false, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
891
911
  },
892
912
  stop: function () {
893
- this.done = !0;
913
+ this.done = true;
894
914
  var t = this.tryEntries[0].completion;
895
915
  if ("throw" === t.type) throw t.arg;
896
916
  return this.rval;
@@ -909,10 +929,10 @@ function _regeneratorRuntime() {
909
929
  var c = n.call(i, "catchLoc"),
910
930
  u = n.call(i, "finallyLoc");
911
931
  if (c && u) {
912
- if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
932
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
913
933
  if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
914
934
  } else if (c) {
915
- if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
935
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
916
936
  } else {
917
937
  if (!u) throw Error("try statement without catch or finally");
918
938
  if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
@@ -1125,7 +1145,7 @@ var getWarningFormDirty = createSelector(selectDrawByInstanceId, function (drawi
1125
1145
  * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
1126
1146
  * */
1127
1147
  var WARN_NAMESPACE = 'warn';
1128
- var ns = [WARN_NAMESPACE, FORM_FIELDS_NAMESPACE, SHARED_NAMESPACE];
1148
+ var ns = [WARN_NAMESPACE, FORM_FIELDS_NAMESPACE, SHARED_NAMESPACE, SA_NAMESPACE];
1129
1149
  var useWarningsTranslation = function useWarningsTranslation() {
1130
1150
  return useTranslation(ns);
1131
1151
  };
@@ -2043,10 +2063,7 @@ var ConfirmDeleteDialog = function ConfirmDeleteDialog(_ref) {
2043
2063
  description: !error ? description : '',
2044
2064
  onClose: onClose,
2045
2065
  onSubmit: onSubmit,
2046
- isLoading: isLoading,
2047
- sx: {
2048
- width: 330
2049
- }
2066
+ isLoading: isLoading
2050
2067
  }, error && {
2051
2068
  content: jsxs(Box, {
2052
2069
  sx: {
@@ -8513,6 +8530,16 @@ var postAirmet = function postAirmet(auth, data) {
8513
8530
  }).then(handleResponse);
8514
8531
  };
8515
8532
 
8533
+ var getAviationSnackbarKey = function getAviationSnackbarKey(status) {
8534
+ switch (status) {
8535
+ case 'PUBLISHED':
8536
+ return 'aviation-publish-success';
8537
+ case 'CANCELLED':
8538
+ return 'aviation-cancel-success';
8539
+ default:
8540
+ return 'aviation-save-success';
8541
+ }
8542
+ };
8516
8543
  var useAirmetList = function useAirmetList(disabled) {
8517
8544
  if (disabled === void 0) {
8518
8545
  disabled = false;
@@ -8565,11 +8592,13 @@ var useTACApi = function useTACApi() {
8565
8592
  * @param onDialogClose - Optional callback to close a dialog.
8566
8593
  * @returns A mutation result for posting a SIGMET.
8567
8594
  */
8568
- var usePostSigmet = function usePostSigmet(snackBarMessage) {
8595
+ var usePostSigmet = function usePostSigmet() {
8569
8596
  var _useAuthenticationCon2 = useAuthenticationContext(),
8570
8597
  auth = _useAuthenticationCon2.auth;
8571
8598
  var dispatch = useDispatch();
8572
8599
  var queryClient = useQueryClient();
8600
+ var _useWarningsTranslati = useWarningsTranslation(),
8601
+ t = _useWarningsTranslati.t;
8573
8602
  return useMutation({
8574
8603
  mutationFn: function mutationFn(formData) {
8575
8604
  if (!auth) {
@@ -8578,25 +8607,30 @@ var usePostSigmet = function usePostSigmet(snackBarMessage) {
8578
8607
  return postSigmet(auth, formData);
8579
8608
  },
8580
8609
  onSuccess: function () {
8581
- var _onSuccess = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
8610
+ var _onSuccess = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(data, variables) {
8611
+ var snackbarKey, warningType;
8582
8612
  return _regeneratorRuntime().wrap(function _callee$(_context) {
8583
8613
  while (1) switch (_context.prev = _context.next) {
8584
8614
  case 0:
8615
+ snackbarKey = getAviationSnackbarKey(variables.changeStatusTo);
8616
+ warningType = 'SIGMET';
8585
8617
  dispatch(snackbarActions.openSnackbar({
8586
8618
  type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
8587
- key: snackBarMessage
8619
+ key: t(snackbarKey, {
8620
+ warningType: warningType
8621
+ })
8588
8622
  }));
8589
- _context.next = 3;
8623
+ _context.next = 5;
8590
8624
  return queryClient.invalidateQueries({
8591
8625
  queryKey: ['sigmet-list']
8592
8626
  });
8593
- case 3:
8627
+ case 5:
8594
8628
  case "end":
8595
8629
  return _context.stop();
8596
8630
  }
8597
8631
  }, _callee);
8598
8632
  }));
8599
- function onSuccess() {
8633
+ function onSuccess(_x, _x2) {
8600
8634
  return _onSuccess.apply(this, arguments);
8601
8635
  }
8602
8636
  return onSuccess;
@@ -8610,11 +8644,13 @@ var usePostSigmet = function usePostSigmet(snackBarMessage) {
8610
8644
  * @param onDialogClose - Optional callback to close a dialog.
8611
8645
  * @returns A mutation result for posting an AIRMET.
8612
8646
  */
8613
- var usePostAirmet = function usePostAirmet(snackBarMessage) {
8647
+ var usePostAirmet = function usePostAirmet() {
8614
8648
  var _useAuthenticationCon3 = useAuthenticationContext(),
8615
8649
  auth = _useAuthenticationCon3.auth;
8616
8650
  var dispatch = useDispatch();
8617
8651
  var queryClient = useQueryClient();
8652
+ var _useWarningsTranslati2 = useWarningsTranslation(),
8653
+ t = _useWarningsTranslati2.t;
8618
8654
  return useMutation({
8619
8655
  mutationFn: function mutationFn(formData) {
8620
8656
  if (!auth) {
@@ -8623,25 +8659,30 @@ var usePostAirmet = function usePostAirmet(snackBarMessage) {
8623
8659
  return postAirmet(auth, formData);
8624
8660
  },
8625
8661
  onSuccess: function () {
8626
- var _onSuccess2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
8662
+ var _onSuccess2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data, variables) {
8663
+ var snackbarKey, warningType;
8627
8664
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
8628
8665
  while (1) switch (_context2.prev = _context2.next) {
8629
8666
  case 0:
8667
+ snackbarKey = getAviationSnackbarKey(variables.changeStatusTo);
8668
+ warningType = 'AIRMET';
8630
8669
  dispatch(snackbarActions.openSnackbar({
8631
8670
  type: snackbarTypes.SnackbarMessageType.TRANSLATABLE_MESSAGE,
8632
- key: snackBarMessage
8671
+ key: t(snackbarKey, {
8672
+ warningType: warningType
8673
+ })
8633
8674
  }));
8634
- _context2.next = 3;
8675
+ _context2.next = 5;
8635
8676
  return queryClient.invalidateQueries({
8636
8677
  queryKey: ['airmet-list']
8637
8678
  });
8638
- case 3:
8679
+ case 5:
8639
8680
  case "end":
8640
8681
  return _context2.stop();
8641
8682
  }
8642
8683
  }, _callee2);
8643
8684
  }));
8644
- function onSuccess() {
8685
+ function onSuccess(_x3, _x4) {
8645
8686
  return _onSuccess2.apply(this, arguments);
8646
8687
  }
8647
8688
  return onSuccess;
@@ -8984,7 +9025,8 @@ var WarningsMapView = function WarningsMapView(_ref) {
8984
9025
  defaultMapPreset = _ref.defaultMapPreset,
8985
9026
  _ref$isSnapshot = _ref.isSnapshot,
8986
9027
  isSnapshot = _ref$isSnapshot === void 0 ? false : _ref$isSnapshot;
8987
- var defaultBbox = defaultMapPreset == null ? void 0 : defaultMapPreset.proj;
9028
+ var defaultMapPresetBbox = geojsonFeature != null && geojsonFeature.features.length ? undefined : defaultBbox;
9029
+ var defaultBbox$1 = (defaultMapPreset == null ? void 0 : defaultMapPreset.proj) || defaultMapPresetBbox;
8988
9030
  var defaultBaseLayer = (defaultMapPreset == null || (_defaultMapPreset$lay = defaultMapPreset.layers) == null ? void 0 : _defaultMapPreset$lay.find(function (layer) {
8989
9031
  return layer.layerType === LayerType.baseLayer;
8990
9032
  })) || defaultLayers.baseLayerGrey;
@@ -8993,17 +9035,16 @@ var WarningsMapView = function WarningsMapView(_ref) {
8993
9035
  })) || defaultLayers.overLayer;
8994
9036
  var mapId = React.useRef("WarningsMapView_" + generateMapId()).current;
8995
9037
  var warningLayer = {
8996
- id: mapId + "geojsonfeature",
8997
9038
  geojson: geojsonFeature,
8998
9039
  layerType: LayerType.featureLayer
8999
9040
  };
9000
9041
  var viewRef = useRef(viewUtils.makeView());
9001
9042
  React.useEffect(function () {
9002
- if (viewRef.current.getProjection().getCode() !== (defaultBbox == null ? void 0 : defaultBbox.srs)) {
9003
- viewRef.current = viewUtils.makeView(defaultBbox == null ? void 0 : defaultBbox.srs);
9043
+ if (viewRef.current.getProjection().getCode() !== (defaultBbox$1 == null ? void 0 : defaultBbox$1.srs)) {
9044
+ viewRef.current = viewUtils.makeView(defaultBbox$1 == null ? void 0 : defaultBbox$1.srs);
9004
9045
  }
9005
- defaultBbox && defaultBbox.bbox ? viewUtils.setViewFromExtent(viewRef.current, defaultBbox == null ? void 0 : defaultBbox.bbox) : viewUtils.setViewFromFeature(viewRef.current, geojsonFeature);
9006
- }, [defaultBbox, geojsonFeature]);
9046
+ defaultBbox$1 && defaultBbox$1.bbox ? viewUtils.setViewFromExtent(viewRef.current, defaultBbox$1 == null ? void 0 : defaultBbox$1.bbox) : viewUtils.setViewFromFeature(viewRef.current, geojsonFeature);
9047
+ }, [defaultBbox$1, geojsonFeature]);
9007
9048
  return jsx("div", {
9008
9049
  style: {
9009
9050
  height: '200px',
@@ -9330,7 +9371,7 @@ var getLevelStyle = function getLevelStyle(levelColor) {
9330
9371
  paddingLeft: levelColor ? '0.5em' : 0,
9331
9372
  paddingRight: '0.5em',
9332
9373
  paddingBottom: '1px',
9333
- marginLeft: -'0.5em',
9374
+ marginLeft: NaN,
9334
9375
  border: levelColor ? "solid 1px " + levelColor.borderColor : 'none'
9335
9376
  };
9336
9377
  };
@@ -10192,6 +10233,8 @@ var Form = function Form(_ref5) {
10192
10233
  })) : _ref5$onPublishForm,
10193
10234
  _ref5$onClearForm = _ref5.onClearForm,
10194
10235
  onClearForm = _ref5$onClearForm === void 0 ? function () {} : _ref5$onClearForm,
10236
+ _ref5$onCloseForm = _ref5.onCloseForm,
10237
+ onCloseForm = _ref5$onCloseForm === void 0 ? function () {} : _ref5$onCloseForm,
10195
10238
  _ref5$onSaveAviationF = _ref5.onSaveAviationForm,
10196
10239
  onSaveAviationForm = _ref5$onSaveAviationF === void 0 ? /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
10197
10240
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
@@ -10224,7 +10267,9 @@ var Form = function Form(_ref5) {
10224
10267
  warningType = _ref5$warningType === void 0 ? 'public' : _ref5$warningType,
10225
10268
  mode = _ref5.mode,
10226
10269
  _ref5$onSetViewModeRe = _ref5.onSetViewModeResetArea,
10227
- onSetViewModeResetArea = _ref5$onSetViewModeRe === void 0 ? function () {} : _ref5$onSetViewModeRe;
10270
+ onSetViewModeResetArea = _ref5$onSetViewModeRe === void 0 ? function () {} : _ref5$onSetViewModeRe,
10271
+ storedStartGeoJSON = _ref5.storedStartGeoJSON,
10272
+ storedEndGeoJSON = _ref5.storedEndGeoJSON;
10228
10273
  var _React$useState = React.useState(false),
10229
10274
  isPublishing = _React$useState[0],
10230
10275
  setIsPublishing = _React$useState[1];
@@ -10234,6 +10279,12 @@ var Form = function Form(_ref5) {
10234
10279
  var _useTACApi = useTACApi(),
10235
10280
  fetchSigmetTAC = _useTACApi.fetchSigmetTAC,
10236
10281
  fetchAirmetTAC = _useTACApi.fetchAirmetTAC;
10282
+ var _useShortTestHelpers = useShortTestHelpers(),
10283
+ isShortTest = _useShortTestHelpers.isShortTest;
10284
+ var confirmationDialog = useConfirmationDialog();
10285
+ var formMethods = useForm({
10286
+ defaultValues: {}
10287
+ });
10237
10288
  var initialPublicWarningArea = (publicWarningDetails == null || (_publicWarningDetails = publicWarningDetails.areas) == null ? void 0 : _publicWarningDetails.length) && (publicWarningDetails == null || (_publicWarningDetails2 = publicWarningDetails.areas[0]) == null ? void 0 : _publicWarningDetails2.geoJSON);
10238
10289
  var _React$useState3 = React.useState(initialPublicWarningArea),
10239
10290
  warningGeoJSONFeature = _React$useState3[0],
@@ -10313,29 +10364,90 @@ var Form = function Form(_ref5) {
10313
10364
  }())();
10314
10365
  }
10315
10366
  };
10316
- var handleSubmitAviationProduct = function handleSubmitAviationProduct(newStatus, warningType) {
10317
- if (!isSaving) {
10318
- toggleIsDraft(true);
10319
- void handleSubmit( /*#__PURE__*/function () {
10320
- var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(formValues) {
10321
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
10322
- while (1) switch (_context6.prev = _context6.next) {
10323
- case 0:
10324
- setIsSaving(true);
10325
- _context6.next = 3;
10326
- return onSaveAviationForm(formValues, newStatus, warningType)["catch"](function () {});
10327
- case 3:
10328
- setIsSaving(false);
10329
- case 4:
10330
- case "end":
10331
- return _context6.stop();
10332
- }
10333
- }, _callee6);
10334
- }));
10335
- return function (_x3) {
10336
- return _ref11.apply(this, arguments);
10337
- };
10338
- }())();
10367
+ var showConfirmDialog = function showConfirmDialog(action) {
10368
+ return confirmationDialog({
10369
+ title: getConfirmationDialogTitle(t, action, warningType || 'airmet'),
10370
+ description: getConfirmationDialogContent(t, action, warningType || 'airmet'),
10371
+ confirmLabel: getConfirmationDialogButtonLabel(t, action, warningType || 'airmet'),
10372
+ cancelLabel: getConfirmationDialogCancelLabel(t, action),
10373
+ catchOnCancel: action === ProductAction.CLOSE,
10374
+ content: isVAPhenomenon(selectedAviationProduct, action) && !isShortTest() ? jsx(FormProvider, Object.assign({}, formMethods, {
10375
+ children: jsx(CancelSigmetVolcanicMovements, {
10376
+ sigmet: selectedAviationProduct,
10377
+ productConfig: aviationConfig
10378
+ })
10379
+ })) : null
10380
+ });
10381
+ };
10382
+ var handleSubmitAviationProduct = function handleSubmitAviationProduct(action, warningType) {
10383
+ if (isSaving) {
10384
+ return;
10385
+ }
10386
+ switch (action) {
10387
+ case ProductAction.SAVE:
10388
+ toggleIsDraft(true);
10389
+ void handleSubmit( /*#__PURE__*/function () {
10390
+ var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(formValues) {
10391
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
10392
+ while (1) switch (_context6.prev = _context6.next) {
10393
+ case 0:
10394
+ setIsSaving(true);
10395
+ _context6.next = 3;
10396
+ return onSaveAviationForm(formValues, 'DRAFT', warningType)["catch"](function () {});
10397
+ case 3:
10398
+ setIsSaving(false);
10399
+ case 4:
10400
+ case "end":
10401
+ return _context6.stop();
10402
+ }
10403
+ }, _callee6);
10404
+ }));
10405
+ return function (_x3) {
10406
+ return _ref11.apply(this, arguments);
10407
+ };
10408
+ }())();
10409
+ break;
10410
+ case ProductAction.PUBLISH:
10411
+ void handleSubmit( /*#__PURE__*/function () {
10412
+ var _ref12 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(formValues) {
10413
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
10414
+ while (1) switch (_context8.prev = _context8.next) {
10415
+ case 0:
10416
+ _context8.next = 2;
10417
+ return showConfirmDialog(action).then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7() {
10418
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
10419
+ while (1) switch (_context7.prev = _context7.next) {
10420
+ case 0:
10421
+ setIsPublishing(true);
10422
+ _context7.next = 3;
10423
+ return onSaveAviationForm(formValues, 'PUBLISHED', warningType)["catch"](function () {});
10424
+ case 3:
10425
+ case "end":
10426
+ return _context7.stop();
10427
+ }
10428
+ }, _callee7);
10429
+ })));
10430
+ case 2:
10431
+ setIsPublishing(false);
10432
+ onCloseForm();
10433
+ case 4:
10434
+ case "end":
10435
+ return _context8.stop();
10436
+ }
10437
+ }, _callee8);
10438
+ }));
10439
+ return function (_x4) {
10440
+ return _ref12.apply(this, arguments);
10441
+ };
10442
+ }())();
10443
+ case ProductAction.CANCEL:
10444
+ case ProductAction.RENEW:
10445
+ case ProductAction.DISCARD:
10446
+ case ProductAction.DUPLICATE:
10447
+ case ProductAction.CLOSE:
10448
+ break;
10449
+ default:
10450
+ console.warn("Unhandled product action: " + action);
10339
10451
  }
10340
10452
  };
10341
10453
  var onPressClear = function onPressClear() {
@@ -10452,7 +10564,9 @@ var Form = function Form(_ref5) {
10452
10564
  product: selectedAviationProduct,
10453
10565
  getTAC: function getTAC(product) {
10454
10566
  return fetchSigmetTAC(product);
10455
- }
10567
+ },
10568
+ storedGeoJSON: storedStartGeoJSON,
10569
+ storedEndGeoJSON: storedEndGeoJSON
10456
10570
  }) : jsx(AirmetForm, {
10457
10571
  showMap: false,
10458
10572
  mode: mode,
@@ -10463,7 +10577,8 @@ var Form = function Form(_ref5) {
10463
10577
  product: selectedAviationProduct,
10464
10578
  getTAC: function getTAC(product) {
10465
10579
  return fetchAirmetTAC(product);
10466
- }
10580
+ },
10581
+ storedGeoJSON: storedStartGeoJSON
10467
10582
  })
10468
10583
  }) : jsx(ContainerGrid, {
10469
10584
  children: jsxs(Grid2, {
@@ -10608,7 +10723,7 @@ var Form = function Form(_ref5) {
10608
10723
  },
10609
10724
  disabled: isPublishing,
10610
10725
  onClick: function onClick() {
10611
- return selectedAviationProduct ? handleSubmitAviationProduct('DRAFT', warningType) : onPressSave();
10726
+ return selectedAviationProduct ? handleSubmitAviationProduct(ProductAction.SAVE, warningType) : onPressSave();
10612
10727
  },
10613
10728
  children: jsxs("span", {
10614
10729
  style: {
@@ -10632,7 +10747,9 @@ var Form = function Form(_ref5) {
10632
10747
  width: '100%'
10633
10748
  },
10634
10749
  disabled: isSaving,
10635
- onClick: onPressPublish,
10750
+ onClick: function onClick() {
10751
+ selectedAviationProduct ? handleSubmitAviationProduct(ProductAction.PUBLISH, warningType) : onPressPublish();
10752
+ },
10636
10753
  children: jsxs("span", {
10637
10754
  style: {
10638
10755
  position: 'relative'
@@ -10950,8 +11067,6 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
10950
11067
  _ref$warningType = _ref.warningType,
10951
11068
  warningType = _ref$warningType === void 0 ? 'public' : _ref$warningType,
10952
11069
  mode = _ref.mode;
10953
- var _useWarningsTranslati = useWarningsTranslation(),
10954
- t = _useWarningsTranslati.t;
10955
11070
  var _useSelector = useSelector(selectPublicWarningState),
10956
11071
  warning = _useSelector.warning,
10957
11072
  object = _useSelector.object,
@@ -10962,13 +11077,9 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
10962
11077
  publishWarning = _usePublishWarning.mutateAsync;
10963
11078
  var _useSaveWarning = useSaveWarning(),
10964
11079
  saveWarning = _useSaveWarning.mutateAsync;
10965
- var _usePostSigmet = usePostSigmet(t('aviation-save-succes', {
10966
- warningType: 'sigmet'.toUpperCase()
10967
- })),
11080
+ var _usePostSigmet = usePostSigmet(),
10968
11081
  postSigmet = _usePostSigmet.mutateAsync;
10969
- var _usePostAirmet = usePostAirmet(t('aviation-save-succes', {
10970
- warningType: 'airmet'.toUpperCase()
10971
- })),
11082
+ var _usePostAirmet = usePostAirmet(),
10972
11083
  postAirmet = _usePostAirmet.mutateAsync;
10973
11084
  var _useAuthenticationCon = useAuthenticationContext$1(),
10974
11085
  auth = _useAuthenticationCon.auth;
@@ -11002,6 +11113,12 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
11002
11113
  var clearForm = function clearForm() {
11003
11114
  dispatch(publicWarningFormActions.removeAllAreas());
11004
11115
  };
11116
+ var closeForm = function closeForm() {
11117
+ dispatch(uiActions.setToggleOpenDialog({
11118
+ setOpen: false,
11119
+ type: publicWarningDialogType
11120
+ }));
11121
+ };
11005
11122
  var saveAviationForm = /*#__PURE__*/function () {
11006
11123
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(productToPost, newStatus, warningType) {
11007
11124
  var uuid, _postProductParam, postProductParam, errorMessage;
@@ -11113,12 +11230,26 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
11113
11230
  area: area[0]
11114
11231
  }));
11115
11232
  };
11233
+ var selectedMapIds = useSelector(function (state) {
11234
+ return genericSelectors.getLinkedMaps(state, panelId);
11235
+ });
11236
+ var storedStartGeoJSON = useSelector(function (state) {
11237
+ var _state$layers;
11238
+ var layer = (_state$layers = state.layers) == null ? void 0 : _state$layers.byId["drawLayer-sigmetStartGeometry-" + selectedMapIds];
11239
+ return layer ? layer.geojson : undefined;
11240
+ });
11241
+ var storedEndGeoJSON = useSelector(function (state) {
11242
+ var _state$layers2;
11243
+ var layer = (_state$layers2 = state.layers) == null ? void 0 : _state$layers2.byId["drawLayer-sigmetEndGeometry-" + selectedMapIds];
11244
+ return layer ? layer.geojson : undefined;
11245
+ });
11116
11246
  return jsx(PublicWarningsForm, {
11117
11247
  object: object,
11118
11248
  publicWarningDetails: warning == null ? void 0 : warning.warningDetail,
11119
11249
  onPublishForm: publishForm,
11120
11250
  onSaveForm: saveForm,
11121
11251
  onClearForm: clearForm,
11252
+ onCloseForm: closeForm,
11122
11253
  onSaveAviationForm: saveAviationForm,
11123
11254
  isReadOnly: isReadOnly,
11124
11255
  error: error,
@@ -11128,7 +11259,9 @@ var PublicWarningsFormConnect = function PublicWarningsFormConnect(_ref) {
11128
11259
  selectedAviationProduct: selectedAviationProduct,
11129
11260
  warningType: warningType,
11130
11261
  mode: formMode,
11131
- onSetViewModeResetArea: onSetViewModeResetArea
11262
+ onSetViewModeResetArea: onSetViewModeResetArea,
11263
+ storedStartGeoJSON: storedStartGeoJSON,
11264
+ storedEndGeoJSON: storedEndGeoJSON
11132
11265
  }, (warning == null ? void 0 : warning.id) || (selectedAviationProduct == null ? void 0 : selectedAviationProduct.uuid) || 'new');
11133
11266
  };
11134
11267
 
@@ -12616,7 +12749,7 @@ var WarningListItemMenu = function WarningListItemMenu(_ref) {
12616
12749
  text: t('warning-list-button-renew'),
12617
12750
  action: function action() {
12618
12751
  if (warning) {
12619
- onActionAviationWarning(warning);
12752
+ onActionAviationWarning(warning, ProductAction.RENEW);
12620
12753
  }
12621
12754
  },
12622
12755
  icon: jsx(Update, {})
@@ -13876,10 +14009,7 @@ var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
13876
14009
  description: !error ? description : '',
13877
14010
  onClose: onClose,
13878
14011
  onSubmit: onSubmit,
13879
- isLoading: isLoading,
13880
- sx: {
13881
- width: 330
13882
- }
14012
+ isLoading: isLoading
13883
14013
  }, error && {
13884
14014
  content: jsxs(Box, {
13885
14015
  sx: {
@@ -13900,6 +14030,7 @@ var ConfirmDeleteWarningDialog = function ConfirmDeleteWarningDialog(_ref) {
13900
14030
  };
13901
14031
 
13902
14032
  var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
14033
+ var _filteredWarnings$fin;
13903
14034
  var panelId = _ref.panelId,
13904
14035
  presetFilterState = _ref.presetFilterState;
13905
14036
  var updatePublicWarningEditor = useMutatePublicWarningEditor();
@@ -14161,9 +14292,12 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
14161
14292
  return warning.status && expandedSections[warning.status] || warning.productStatus && expandedSections[warning.productStatus];
14162
14293
  });
14163
14294
  }, [filteredWarnings, expandedSections]);
14295
+ var selectedAviationProductId = (_filteredWarnings$fin = filteredWarnings.find(function (warning) {
14296
+ return (warning.warningDetail.level === 'SIG' || warning.warningDetail.level === 'AIR') && warning.id === selectedWarningId;
14297
+ })) == null ? void 0 : _filteredWarnings$fin.id;
14164
14298
  var allFeatures = React__default.useMemo(function () {
14165
14299
  return filteredWarningsByExpandedSections.flatMap(function (warning) {
14166
- return (warning == null ? void 0 : warning.id) && (warning != null && warning.warningDetail && warning.warningDetail.areas ? warning.warningDetail.areas.filter(function (area) {
14300
+ return (warning == null ? void 0 : warning.id) && warning.id !== selectedAviationProductId && (warning != null && warning.warningDetail && warning.warningDetail.areas ? warning.warningDetail.areas.filter(function (area) {
14167
14301
  return area.geoJSON;
14168
14302
  }).map(function (area) {
14169
14303
  var isAviationWarning = warning.warningDetail.level === 'SIG' || warning.warningDetail.level === 'AIR';
@@ -14177,7 +14311,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
14177
14311
  }).filter(function (feature) {
14178
14312
  return feature.id;
14179
14313
  });
14180
- }, [filteredWarningsByExpandedSections]);
14314
+ }, [filteredWarningsByExpandedSections, selectedAviationProductId]);
14181
14315
  var _useUpdateSharedData = useUpdateSharedData({
14182
14316
  features: allFeatures
14183
14317
  }, panelId),
@@ -14217,11 +14351,7 @@ var PublicWarningListConnect = function PublicWarningListConnect(_ref) {
14217
14351
  };
14218
14352
 
14219
14353
  var warningListViewPreset = {
14220
- title: 'Warning List',
14221
- id: 'warninglist',
14222
- componentType: 'WarningList',
14223
- initialProps: {}
14224
- };
14354
+ componentType: 'WarningList'};
14225
14355
  var PublicWarningApiWrapper = function PublicWarningApiWrapper(_ref) {
14226
14356
  var config = _ref.config,
14227
14357
  auth = _ref.auth,
@@ -14466,12 +14596,10 @@ var createMockStore = function createMockStore(mockState) {
14466
14596
  return configureStore({
14467
14597
  reducer: warningsRootReducer,
14468
14598
  preloadedState: mockState,
14469
- middleware: warningsMiddlewares
14599
+ middleware: function middleware(getDefaultMiddleware) {
14600
+ return getDefaultMiddleware().concat(warningsMiddlewares);
14601
+ }
14470
14602
  });
14471
14603
  };
14472
- /* _____ NOTE --> We should use the middlwares like this down below, but as it will be more strict, it exposes errors from the code itself, which won´t be fixed in this MR ______
14473
- middleware: (getDefaultMiddleware) =>
14474
- getDefaultMiddleware().concat(warningsMiddlewares),
14475
- */
14476
14604
 
14477
14605
  export { DrawingToolConnect, Wrapper as DrawingToolForm, DrawingToolFormConnect, DrawingToolMapButtonConnect, ObjectManagerConnect, ObjectManagerMapButtonConnect, PublicWarningApiWrapper, PublicWarningsFormDialog, PublicWarningsFormDialogConnect, WARN_NAMESPACE, WarningsModuleProvider, componentsLookUp, createMockStore, isAlreadyEdited, publicWarningActions, publicWarningFormActions, publicWarningFormListener, publicWarningFormReducer, publicWarningsListener, publicWarningsReducer, selectors as publicWarningsSelectors, useObjectDrawDialogAction, warningFormConfirmationOptions, warningsDrawingsActions, warningsDrawingsListener, warningsDrawingsReducer, warningsMiddlewares, warningsReducersMap, warningsTranslations };