@opengeoweb/core 12.1.2 → 12.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/index.esm.js +403 -343
  2. package/package.json +15 -16
  3. package/src/lib/components/LayerInfoConnect/LayerInfoDialogConnect.d.ts +6 -1
  4. package/src/lib/components/LayerManager/AddLayersPopup/AddLayersPopup.stories.d.ts +7 -0
  5. package/src/lib/components/LayerManager/BaseLayerRow/BaseLayerRow.d.ts +1 -1
  6. package/src/lib/components/LayerManager/DescriptionRow/DescriptionRow.d.ts +1 -1
  7. package/src/lib/components/LayerManager/LayerContainerRow/LayerContainerRow.d.ts +1 -1
  8. package/src/lib/components/{Search/SearchDialog.d.ts → LocationSearch/LocationSearch.d.ts} +2 -2
  9. package/src/lib/components/LocationSearch/LocationSearch.stories.d.ts +7 -0
  10. package/src/lib/components/LocationSearch/LocationSearchConnect.d.ts +5 -0
  11. package/src/lib/components/LocationSearch/LocationSearchConnect.stories.d.ts +16 -0
  12. package/src/lib/components/{Search → LocationSearch}/index.d.ts +2 -2
  13. package/src/lib/components/MapViewConnect/MapViewConnect.d.ts +2 -0
  14. package/src/lib/components/MapViewConnect/OlMapViewConnect.d.ts +17 -6
  15. package/src/lib/components/SyncGroups/SimpleTimeSliderConnect.d.ts +2 -2
  16. package/src/lib/components/TimeSliderConnect/TimeSliderButtonsConnect/AutoUpdateButtonConnect.d.ts +4 -4
  17. package/src/lib/components/TimeSliderConnect/TimeSliderButtonsConnect/PlayButtonConnect.d.ts +2 -2
  18. package/src/lib/components/TimeSliderConnect/TimeSliderCurrentTimeBoxConnect.d.ts +2 -2
  19. package/src/lib/components/WMSLoader/WMSLayerTree/WMSLayerTreeConnect.d.ts +2 -2
  20. package/src/lib/components/WMSLoader/WMSLoader.stories.d.ts +5 -0
  21. package/src/lib/index.d.ts +1 -1
  22. package/src/lib/store/store.d.ts +9 -9
  23. package/src/lib/utils/jsonPresetFilter.d.ts +3 -1
  24. package/src/lib/utils/location-api/api.d.ts +1 -1
  25. package/src/lib/utils/location-api/hooks.d.ts +1 -1
  26. package/src/lib/components/Search/SearchDialog.stories.d.ts +0 -7
  27. package/src/lib/components/Search/SearchDialogConnect.d.ts +0 -5
  28. package/src/lib/components/Search/SearchDialogConnect.stories.d.ts +0 -11
  29. /package/src/lib/components/{Search/MyMapLocation.spec.d.ts → LocationSearch/LocationSearchConnect.spec.d.ts} +0 -0
  30. /package/src/lib/components/{Search → LocationSearch}/MyMapLocation.d.ts +0 -0
  31. /package/src/lib/components/{Search/SearchDialogConnect.spec.d.ts → LocationSearch/MyMapLocation.spec.d.ts} +0 -0
  32. /package/src/lib/components/{Search → LocationSearch}/SearchControlButtonConnect.d.ts +0 -0
  33. /package/src/lib/components/{Search → LocationSearch}/types.d.ts +0 -0
  34. /package/src/lib/components/{Search → LocationSearch}/utils.d.ts +0 -0
package/index.esm.js CHANGED
@@ -1,23 +1,22 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default, { useState, useCallback, useEffect, useContext, useMemo } from 'react';
4
- import { Grid2, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, InputAdornment, DialogActions, Button, Autocomplete, ListItemIcon, Checkbox, Switch, Select } from '@mui/material';
5
- import { SHARED_NAMESPACE, sharedTranslations, CustomIconButton, CustomTooltip, TooltipSelect, AlertIcon, sliderHeaderStyle, CustomSlider, ToggleMenu, tooltipContainerStyles, renderCounter, AlertBanner, CustomAccordion, PROJECTION, calculateStartSize, useWheelStopPropagation, ToolContainerDraggable, useDebounce, dateUtils, ErrorBoundary } from '@opengeoweb/shared';
6
- import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, Copy, None, FastForward, AutoUpdateActive, Both, Visibility, VisibilityOff, Delete, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Layers, Search, Exclamation, MyLocation, Close, ExitDomain, Info, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
4
+ import { Grid, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, DialogContentText, TextField, InputAdornment, Button, Autocomplete, ListItemIcon, Checkbox, Switch, Select } from '@mui/material';
5
+ import { safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, CustomIconButton, CustomTooltip, TooltipSelect, AlertIcon, sliderHeaderStyle, CustomSlider, ToggleMenu, tooltipContainerStyles, renderCounter, AlertBanner, CustomAccordion, CustomDialog, PROJECTION, calculateStartSize, useWheelStopPropagation, ToolContainerDraggable, sessionStorageProvider, useDebounce, dateUtils, usePrevious, ErrorBoundary } from '@opengeoweb/shared';
6
+ import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, Copy, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Layers, Search, Exclamation, MyLocation, Close, ExitDomain, Info, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
7
7
  import i18n from 'i18next';
8
- import { initReactI18next, useTranslation, I18nextProvider } from 'react-i18next';
8
+ import { useTranslation, I18nextProvider } from 'react-i18next';
9
9
  import { TIMESLIDER_NAMESPACE, timesliderTranslations, defaultTimeSpan, TIME_SLIDER_LEGEND_HEIGHT, SpeedButton, TimeStepButton, AnimationLengthButton, AnimationLength, TimeSpanButton, secondsPerPxFromCanvasWidth, getNewCenterOfFixedPointZoom, OptionsMenuButton, PlayButton, defaultTimeStep, BackwardForwardStepButton, AutoUpdateButton, NowButton, handleSetNowEvent, TimeSliderButtons, TimeSliderCurrentTimeBox, TimeSliderLegend, onsetNewDateDebounced, defaultSecondsPerPx, moveSelectedTimePx, TimeSlider, getFilteredTime, ControlButtons, OptionsMenu, TimeSliderClock } from '@opengeoweb/timeslider';
10
- import { WEBMAP_REACT_NAMESPACE, webmapReactTranslations, WEBMAP_NAMESPACE, webmapTranslations, LayerInfoButton, LayerInfoDialog, MapControlButton, MapDimensionSelect, dimensionConfig, DimensionSelectDialog, DimensionSelectButton, MapContext, emptyGeoJSON, registerDrawFunction, MapFeatureClass, setMapCenter, ZoomControls, LegendDialog, LegendButton, MapView, MapViewLayer, MapControls, OpenLayersFeatureLayer, OpenLayersMapDraw, getIsInsideAcceptanceTime, OpenLayersLayer, useSetIntervalWhenVisible, openLayersGetMapImageStore, TimeContext, OpenLayersMapView, WMSLayer, genericOpenLayersFeatureStyle, OpenLayersGetFeatureInfo, OpenLayersZoomControl, getLayerUpdateInfo, isOpenLayersEnabled, publicLayers } from '@opengeoweb/webmap-react';
10
+ import { webmapReactTranslations, WEBMAP_REACT_NAMESPACE, webmapTranslations, WEBMAP_NAMESPACE, LayerInfoButton, LayerInfoDialog, MapControlButton, MapDimensionSelect, dimensionConfig, DimensionSelectDialog, DimensionSelectButton, MapContext, emptyGeoJSON, registerDrawFunction, MapFeatureClass, setMapCenter, ZoomControls, LegendDialog, LegendButton, MapView, MapViewLayer, MapControls, OpenLayersFeatureLayer, OpenLayersMapDraw, getIsInsideAcceptanceTime, OpenLayersLayer, useSetIntervalWhenVisible, openLayersGetMapImageStore, TimeContext, OpenLayersMapView, WMSLayer, genericOpenLayersFeatureStyle, OpenLayersGetFeatureInfo, OpenLayersZoomControl, getLayerUpdateInfo, isOpenLayersEnabled, publicLayers } from '@opengeoweb/webmap-react';
11
11
  import { useDispatch, useSelector, connect, useStore, Provider } from 'react-redux';
12
12
  import { ReactSortable } from 'react-sortablejs';
13
13
  import Sortable from 'sortablejs';
14
14
  import { layerTypes, layerUtils, mapSelectors, layerActions, layerSelectors, serviceSelectors, serviceActions, mapActions, mapEnums, uiSelectors, uiTypes, useSetupDialog, filterLayers, getUserAddedServices, uiActions, genericSelectors, genericActions, drawingToolSelectors, syncConstants, loadingIndicatorActions, syncGroupsSelectors, getViewObjectForSyncGroup, getViewObjectForMapId, defaultLayers, getSingularDrawtoolDrawLayerId, syncGroupsSelector, syncGroupsActions, routerUtils } from '@opengeoweb/store';
15
- import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, getWMSServiceId, generateLayerId, getWMJSMapById, getWMSGetFeatureInfoRequestURL, getMapDimURL, handleDateUtilsISOString, wmServiceListener, EVENT_GETCAPABILITIES_START, EVENT_GETCAPABILITIES_READY, WMJSDimension, getWMLayerById, WMLayer } from '@opengeoweb/webmap';
15
+ import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, LayerType, getWMSServiceId, generateLayerId, getWMJSMapById, getWMSGetFeatureInfoRequestURL, getMapDimURL, wmServiceListener, EVENT_GETCAPABILITIES_START, EVENT_GETCAPABILITIES_READY, handleDateUtilsISOString, WMJSDimension, getWMLayerById, WMLayer } from '@opengeoweb/webmap';
16
16
  import _, { isArray, isEqual, debounce, range } from 'lodash';
17
17
  import { Box as Box$1, styled as styled$1 } from '@mui/system';
18
18
  import { LayerSelectButtonConnect, LayerSelectConnect } from '@opengeoweb/layer-select';
19
19
  import { useQuery, QueryClient, QueryClientProvider } from '@tanstack/react-query';
20
- import { getConfig } from '@opengeoweb/authentication';
21
20
  import { handleResponse } from '@opengeoweb/api';
22
21
  import axios from 'axios';
23
22
  import { ImageWMS } from 'ol/source';
@@ -372,14 +371,14 @@ function _asyncToGenerator(n) {
372
371
  function _createForOfIteratorHelperLoose(r, e) {
373
372
  var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
374
373
  if (t) return (t = t.call(r)).next.bind(t);
375
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) {
374
+ if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
376
375
  t && (r = t);
377
376
  var o = 0;
378
377
  return function () {
379
378
  return o >= r.length ? {
380
- done: !0
379
+ done: true
381
380
  } : {
382
- done: !1,
381
+ done: false,
383
382
  value: r[o++]
384
383
  };
385
384
  };
@@ -390,7 +389,7 @@ function _objectWithoutPropertiesLoose(r, e) {
390
389
  if (null == r) return {};
391
390
  var t = {};
392
391
  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
393
- if (e.indexOf(n) >= 0) continue;
392
+ if (-1 !== e.indexOf(n)) continue;
394
393
  t[n] = r[n];
395
394
  }
396
395
  return t;
@@ -413,9 +412,9 @@ function _regeneratorRuntime() {
413
412
  function define(t, e, r) {
414
413
  return Object.defineProperty(t, e, {
415
414
  value: r,
416
- enumerable: !0,
417
- configurable: !0,
418
- writable: !0
415
+ enumerable: true,
416
+ configurable: true,
417
+ writable: true
419
418
  }), t[e];
420
419
  }
421
420
  try {
@@ -508,7 +507,7 @@ function _regeneratorRuntime() {
508
507
  if ("throw" === i) throw a;
509
508
  return {
510
509
  value: t,
511
- done: !0
510
+ done: true
512
511
  };
513
512
  }
514
513
  for (n.method = i, n.arg = a;;) {
@@ -559,7 +558,7 @@ function _regeneratorRuntime() {
559
558
  function Context(t) {
560
559
  this.tryEntries = [{
561
560
  tryLoc: "root"
562
- }], t.forEach(pushTryEntry, this), this.reset(!0);
561
+ }], t.forEach(pushTryEntry, this), this.reset(true);
563
562
  }
564
563
  function values(e) {
565
564
  if (e || "" === e) {
@@ -569,8 +568,8 @@ function _regeneratorRuntime() {
569
568
  if (!isNaN(e.length)) {
570
569
  var o = -1,
571
570
  i = function next() {
572
- for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
573
- return next.value = t, next.done = !0, next;
571
+ for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = false, next;
572
+ return next.value = t, next.done = true, next;
574
573
  };
575
574
  return i.next = i;
576
575
  }
@@ -579,10 +578,10 @@ function _regeneratorRuntime() {
579
578
  }
580
579
  return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
581
580
  value: GeneratorFunctionPrototype,
582
- configurable: !0
581
+ configurable: true
583
582
  }), o(GeneratorFunctionPrototype, "constructor", {
584
583
  value: GeneratorFunction,
585
- configurable: !0
584
+ configurable: true
586
585
  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
587
586
  var e = "function" == typeof t && t.constructor;
588
587
  return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
@@ -611,17 +610,17 @@ function _regeneratorRuntime() {
611
610
  return r.reverse(), function next() {
612
611
  for (; r.length;) {
613
612
  var t = r.pop();
614
- if (t in e) return next.value = t, next.done = !1, next;
613
+ if (t in e) return next.value = t, next.done = false, next;
615
614
  }
616
- return next.done = !0, next;
615
+ return next.done = true, next;
617
616
  };
618
617
  }, e.values = values, Context.prototype = {
619
618
  constructor: Context,
620
619
  reset: function (e) {
621
- 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);
620
+ 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);
622
621
  },
623
622
  stop: function () {
624
- this.done = !0;
623
+ this.done = true;
625
624
  var t = this.tryEntries[0].completion;
626
625
  if ("throw" === t.type) throw t.arg;
627
626
  return this.rval;
@@ -640,10 +639,10 @@ function _regeneratorRuntime() {
640
639
  var c = n.call(i, "catchLoc"),
641
640
  u = n.call(i, "finallyLoc");
642
641
  if (c && u) {
643
- if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
642
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
644
643
  if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
645
644
  } else if (c) {
646
- if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
645
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, true);
647
646
  } else {
648
647
  if (!u) throw Error("try statement without catch or finally");
649
648
  if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
@@ -723,21 +722,22 @@ function _unsupportedIterableToArray(r, a) {
723
722
  * */
724
723
  var CORE_NAMESPACE = 'core';
725
724
  var initCoreReactI18n = function initCoreReactI18n() {
726
- var _en, _fi, _no, _nl;
727
- void i18n.use(initReactI18next).init({
728
- lng: 'en',
729
- fallbackLng: 'en',
725
+ safelyInitI18nForTestsAndStories(i18n, CORE_NAMESPACE, [{
730
726
  ns: CORE_NAMESPACE,
731
- interpolation: {
732
- escapeValue: false
733
- },
734
- resources: {
735
- en: (_en = {}, _en[CORE_NAMESPACE] = coreTranslations.en, _en[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.en, _en[WEBMAP_NAMESPACE] = webmapTranslations.en, _en[SHARED_NAMESPACE] = sharedTranslations.en, _en[TIMESLIDER_NAMESPACE] = timesliderTranslations.en, _en),
736
- fi: (_fi = {}, _fi[CORE_NAMESPACE] = coreTranslations.fi, _fi[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.fi, _fi[WEBMAP_NAMESPACE] = webmapTranslations.fi, _fi[SHARED_NAMESPACE] = sharedTranslations.fi, _fi[TIMESLIDER_NAMESPACE] = timesliderTranslations.fi, _fi),
737
- no: (_no = {}, _no[CORE_NAMESPACE] = coreTranslations.no, _no[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.no, _no[WEBMAP_NAMESPACE] = webmapTranslations.no, _no[SHARED_NAMESPACE] = sharedTranslations.no, _no[TIMESLIDER_NAMESPACE] = timesliderTranslations.no, _no),
738
- nl: (_nl = {}, _nl[CORE_NAMESPACE] = coreTranslations.nl, _nl[WEBMAP_REACT_NAMESPACE] = webmapReactTranslations.nl, _nl[WEBMAP_NAMESPACE] = webmapTranslations.nl, _nl[SHARED_NAMESPACE] = sharedTranslations.nl, _nl[TIMESLIDER_NAMESPACE] = timesliderTranslations.nl, _nl)
739
- }
740
- });
727
+ translations: coreTranslations
728
+ }, {
729
+ ns: WEBMAP_REACT_NAMESPACE,
730
+ translations: webmapReactTranslations
731
+ }, {
732
+ ns: WEBMAP_NAMESPACE,
733
+ translations: webmapTranslations
734
+ }, {
735
+ ns: SHARED_NAMESPACE,
736
+ translations: sharedTranslations
737
+ }, {
738
+ ns: TIMESLIDER_NAMESPACE,
739
+ translations: timesliderTranslations
740
+ }]);
741
741
  };
742
742
  var ns = [CORE_NAMESPACE, TIMESLIDER_NAMESPACE];
743
743
  var useCoreTranslation = function useCoreTranslation() {
@@ -852,9 +852,7 @@ var columnClasses = {
852
852
  acceptanceTime: 'column-acceptanceTime',
853
853
  loadDuration: 'column-loadDuration',
854
854
  columnHeader: 'columnHeader',
855
- baseLayer: 'baseLayer',
856
- columnTarget: 'columnTarget'
857
- };
855
+ baseLayer: 'baseLayer'};
858
856
  var DRAG_VISIBILITY_LEADING_BUTTONS = 3;
859
857
  var DELETE_MORE_BUTTONS = 3;
860
858
  var MISSING = 4;
@@ -1097,7 +1095,7 @@ var RowItemCollapse$1 = function RowItemCollapse(_ref) {
1097
1095
  title: collapsedColumns != null && collapsedColumns[className] ? t('column-expand', {
1098
1096
  title: title
1099
1097
  }) : t('column-collapse'),
1100
- children: jsx(Grid2, {
1098
+ children: jsx(Grid, {
1101
1099
  className: columnClasses.columnHeader + " " + className,
1102
1100
  style: Object.assign({}, (collapsedColumns == null ? void 0 : collapsedColumns[className]) && {
1103
1101
  width: '24px',
@@ -1143,13 +1141,13 @@ var DescriptionRow = function DescriptionRow(_ref2) {
1143
1141
  gridProps = _objectWithoutPropertiesLoose(_ref2, _excluded$6);
1144
1142
  var _useCoreTranslation2 = useCoreTranslation(),
1145
1143
  t = _useCoreTranslation2.t;
1146
- return jsxs(Grid2, Object.assign({
1144
+ return jsxs(Grid, Object.assign({
1147
1145
  container: true,
1148
1146
  "data-testid": "descriptionRow",
1149
1147
  className: "descriptionRow",
1150
1148
  alignItems: "center"
1151
1149
  }, gridProps, {
1152
- children: [jsx(Grid2, {
1150
+ children: [jsx(Grid, {
1153
1151
  className: columnClasses.column1,
1154
1152
  sx: Object.assign({}, leftButtonsStyle, {
1155
1153
  justifyContent: 'center',
@@ -1159,7 +1157,7 @@ var DescriptionRow = function DescriptionRow(_ref2) {
1159
1157
  tooltipTitle: settings == null || (_settings$addLayer = settings.addLayer) == null ? void 0 : _settings$addLayer.tooltipTitle,
1160
1158
  icon: settings == null || (_settings$addLayer2 = settings.addLayer) == null ? void 0 : _settings$addLayer2.icon
1161
1159
  })
1162
- }), jsx(Grid2, {
1160
+ }), jsx(Grid, {
1163
1161
  className: "medium-layermanager columnLayerName",
1164
1162
  children: jsx(Box, {
1165
1163
  sx: styles$3.text,
@@ -1190,7 +1188,7 @@ var DescriptionRow = function DescriptionRow(_ref2) {
1190
1188
  title: (_settings$acceptanceT = settings == null || (_settings$acceptanceT2 = settings.acceptanceTime) == null ? void 0 : _settings$acceptanceT2.title) != null ? _settings$acceptanceT : t('layermanager-acceptance-time'),
1191
1189
  onToggleCollapsed: onToggleCollapsed,
1192
1190
  collapsedColumns: collapsedColumns
1193
- }), jsx(Grid2, {
1191
+ }), jsx(Grid, {
1194
1192
  className: columnClasses.loadDuration,
1195
1193
  children: jsx(Box, {
1196
1194
  sx: [styles$3.text, {
@@ -1199,7 +1197,7 @@ var DescriptionRow = function DescriptionRow(_ref2) {
1199
1197
  }],
1200
1198
  children: jsx(CloudLoading, {})
1201
1199
  })
1202
- }), jsx(Grid2, {
1200
+ }), jsx(Grid, {
1203
1201
  className: columnClasses.column6
1204
1202
  })]
1205
1203
  }));
@@ -2246,7 +2244,7 @@ var RowItemCollapse = function RowItemCollapse(_ref7) {
2246
2244
  element.style.backgroundColor = 'inherit';
2247
2245
  });
2248
2246
  });
2249
- return jsx(Grid2, {
2247
+ return jsx(Grid, {
2250
2248
  className: className,
2251
2249
  style: Object.assign({
2252
2250
  height: '32px'
@@ -2335,7 +2333,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2335
2333
  // className needed for styled() utility
2336
2334
  jsx("div", {
2337
2335
  className: className,
2338
- children: jsxs(Grid2, {
2336
+ children: jsxs(Grid, {
2339
2337
  container: true,
2340
2338
  "data-testid": "layerRow-" + layerId,
2341
2339
  className: "layerRow",
@@ -2377,7 +2375,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2377
2375
  DeleteLayer: layerDeleteLayout || jsx(DeleteLayer, {
2378
2376
  onClick: deleteLayer
2379
2377
  })
2380
- }), jsx(Grid2, {
2378
+ }), jsx(Grid, {
2381
2379
  className: columnClasses.column1,
2382
2380
  alignItems: "center",
2383
2381
  children: jsx(LeftButtons, {
@@ -2404,7 +2402,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2404
2402
  });
2405
2403
  }
2406
2404
  })
2407
- }), isLayerMissing ? jsx(Grid2, {
2405
+ }), isLayerMissing ? jsx(Grid, {
2408
2406
  className: columnClasses.column7,
2409
2407
  children: jsx(AlertBanner, {
2410
2408
  title: t('layermanager-layer-error'),
@@ -2450,7 +2448,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2450
2448
  acceptanceTime: layer.acceptanceTimeInMinutes,
2451
2449
  onChangeAcceptanceTime: changeAcceptanceTime
2452
2450
  })
2453
- }), jsx(Grid2, {
2451
+ }), jsx(Grid, {
2454
2452
  display: "flex",
2455
2453
  justifyContent: "flex-end",
2456
2454
  className: columnClasses.loadDuration,
@@ -2459,7 +2457,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
2459
2457
  mapId: mapId
2460
2458
  })
2461
2459
  })]
2462
- }), jsxs(Grid2, {
2460
+ }), jsxs(Grid, {
2463
2461
  className: columnClasses.column6,
2464
2462
  alignItems: "center",
2465
2463
  children: [layerShowLayerInfoLayout || jsx(ShowLayerInfo, {
@@ -2528,46 +2526,46 @@ var Accordion = function Accordion(_ref10) {
2528
2526
  children: layerName
2529
2527
  })]
2530
2528
  }),
2531
- children: jsxs(Grid2, {
2529
+ children: jsxs(Grid, {
2532
2530
  container: true,
2533
2531
  sx: {
2534
2532
  padding: '16px 32px'
2535
2533
  },
2536
2534
  spacing: 3,
2537
- children: [jsxs(Grid2, {
2535
+ children: [jsxs(Grid, {
2538
2536
  container: true,
2539
- children: [jsx(Grid2, {
2537
+ children: [jsx(Grid, {
2540
2538
  children: t('layermanager-style-title')
2541
2539
  }), Styles]
2542
- }), jsxs(Grid2, {
2540
+ }), jsxs(Grid, {
2543
2541
  container: true,
2544
2542
  sx: {
2545
2543
  '.MuiButtonBase-root': {
2546
2544
  justifyContent: 'flex-start'
2547
2545
  }
2548
2546
  },
2549
- children: [jsx(Grid2, {
2547
+ children: [jsx(Grid, {
2550
2548
  children: t('layermanager-opacity-title')
2551
2549
  }), Opacity]
2552
- }), jsxs(Grid2, {
2550
+ }), jsxs(Grid, {
2553
2551
  container: true,
2554
- children: [jsx(Grid2, {
2552
+ children: [jsx(Grid, {
2555
2553
  children: t('layermanager-acceptance-time')
2556
2554
  }), Acceptance]
2557
- }), jsxs(Grid2, {
2555
+ }), jsxs(Grid, {
2558
2556
  container: true,
2559
2557
  flexDirection: "column",
2560
- children: [jsx(Grid2, {
2558
+ children: [jsx(Grid, {
2561
2559
  children: jsx(CloudLoading, {})
2562
2560
  }), LoadDuration]
2563
- }), jsxs(Grid2, {
2561
+ }), jsxs(Grid, {
2564
2562
  container: true,
2565
2563
  justifyContent: "center",
2566
2564
  spacing: 2,
2567
- children: [jsx(Grid2, {
2565
+ children: [jsx(Grid, {
2568
2566
  sx: {},
2569
2567
  children: ShowLayerInfo
2570
- }), jsx(Grid2, {
2568
+ }), jsx(Grid, {
2571
2569
  sx: {},
2572
2570
  children: DeleteLayer
2573
2571
  })]
@@ -3208,7 +3206,10 @@ var MissingDataConnect = function MissingDataConnect(_ref) {
3208
3206
  var serviceLayer = useSelector(function (store) {
3209
3207
  return serviceSelectors.getLayerFromService(store, layerService, layerName);
3210
3208
  });
3211
- var layerIsMissingOnServer = !serviceLayer;
3209
+ var layerStatus = useSelector(function (store) {
3210
+ return layerSelectors.getLayerStatus(store, layerId);
3211
+ });
3212
+ var layerIsMissingOnServer = !serviceLayer || layerStatus === layerTypes.LayerStatus.error;
3212
3213
  return jsx(MissingData, {
3213
3214
  layerIsInsideAcceptanceTime: layerIsMissingOnServer ? 'outside' : layerIsInsideAcceptanceTime
3214
3215
  });
@@ -3285,7 +3286,8 @@ var LayerInfoButtonConnect = function LayerInfoButtonConnect(_ref) {
3285
3286
  });
3286
3287
  };
3287
3288
 
3288
- var LayerInfoDialogConnect = function LayerInfoDialogConnect() {
3289
+ var LayerInfoDialogConnect = function LayerInfoDialogConnect(_ref) {
3290
+ var source = _ref.source;
3289
3291
  var layerInfo = useSelector(function (store) {
3290
3292
  return layerSelectors.getActiveLayerInfo(store);
3291
3293
  });
@@ -3299,7 +3301,6 @@ var LayerInfoDialogConnect = function LayerInfoDialogConnect() {
3299
3301
  dialogOrder = _useSetupDialog.dialogOrder,
3300
3302
  onCloseDialog = _useSetupDialog.onCloseDialog,
3301
3303
  setDialogOrder = _useSetupDialog.setDialogOrder,
3302
- uiSource = _useSetupDialog.uiSource,
3303
3304
  isDialogOpen = _useSetupDialog.isDialogOpen;
3304
3305
  if (!layer) {
3305
3306
  return null;
@@ -3309,7 +3310,7 @@ var LayerInfoDialogConnect = function LayerInfoDialogConnect() {
3309
3310
  onClose: onCloseDialog,
3310
3311
  onMouseDown: setDialogOrder,
3311
3312
  order: dialogOrder,
3312
- source: uiSource,
3313
+ source: source,
3313
3314
  layer: layer,
3314
3315
  serviceName: currentService == null ? void 0 : currentService.name
3315
3316
  });
@@ -3341,6 +3342,9 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
3341
3342
  var serviceLayer = useSelector(function (store) {
3342
3343
  return serviceSelectors.getLayerFromService(store, layerServiceUrl, layerName);
3343
3344
  });
3345
+ var layerStatus = useSelector(function (store) {
3346
+ return layerSelectors.getLayerStatus(store, layerId);
3347
+ });
3344
3348
  var currentlySelectedLayer = useSelector(function (store) {
3345
3349
  return layerSelectors.getLayerByIdWithoutTimeDimension(store, layerId);
3346
3350
  });
@@ -3356,7 +3360,7 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
3356
3360
  isEnabled: isEnabled,
3357
3361
  mapId: mapId,
3358
3362
  layerId: layerId,
3359
- isLayerMissing: !serviceLayer,
3363
+ isLayerMissing: !serviceLayer || layerStatus === layerTypes.LayerStatus.error,
3360
3364
  layerName: fullLayerName || layerName,
3361
3365
  layerEnableLayout: jsx(EnableLayerConnect, {
3362
3366
  layerId: layerId,
@@ -3579,7 +3583,7 @@ var LayerContainerRow = /*#__PURE__*/React.memo(function (_ref) {
3579
3583
  });
3580
3584
  }
3581
3585
  }, [layerLength, rowsToDisplay]);
3582
- return jsx(Grid2, Object.assign({
3586
+ return jsx(Grid, Object.assign({
3583
3587
  container: true,
3584
3588
  "data-testid": "layerContainerRow",
3585
3589
  className: "layerContainerRow",
@@ -3779,7 +3783,7 @@ var WMSServerList = function WMSServerList(_ref) {
3779
3783
  return a.name.localeCompare(b.name);
3780
3784
  });
3781
3785
  return jsxs(Fragment, {
3782
- children: [jsx(Grid2, {
3786
+ children: [jsx(Grid, {
3783
3787
  container: true,
3784
3788
  direction: "row",
3785
3789
  style: {
@@ -3819,12 +3823,12 @@ var WMSLayerTreeHeader = function WMSLayerTreeHeader(_ref) {
3819
3823
  onClickReload = _ref.onClickReload;
3820
3824
  var _useCoreTranslation = useCoreTranslation(),
3821
3825
  t = _useCoreTranslation.t;
3822
- return jsxs(Grid2, {
3826
+ return jsxs(Grid, {
3823
3827
  container: true,
3824
3828
  direction: "row",
3825
3829
  spacing: 1,
3826
3830
  justifyContent: "space-between",
3827
- children: [jsx(Grid2, {
3831
+ children: [jsx(Grid, {
3828
3832
  children: jsx(InputLabel, {
3829
3833
  shrink: true,
3830
3834
  htmlFor: "select-multiple-native",
@@ -3832,11 +3836,14 @@ var WMSLayerTreeHeader = function WMSLayerTreeHeader(_ref) {
3832
3836
  serviceName: serviceName
3833
3837
  })
3834
3838
  })
3835
- }), onClickReload && jsx(Grid2, {
3839
+ }), onClickReload && jsx(Grid, {
3836
3840
  children: jsx(CustomIconButton, {
3837
3841
  tooltipTitle: t('add-layer-popup-reload-layers'),
3838
3842
  "data-testid": "reloadLayers",
3839
3843
  onClick: onClickReload,
3844
+ style: {
3845
+ top: -6
3846
+ },
3840
3847
  children: jsx(Cached, {})
3841
3848
  })
3842
3849
  })]
@@ -4115,7 +4122,8 @@ var filterMapPresets = function filterMapPresets(initialAppPreset) {
4115
4122
  var layers = preset.layers,
4116
4123
  services = preset.services,
4117
4124
  baseServices = preset.baseServices,
4118
- timeSeriesServices = preset.timeSeriesServices;
4125
+ timeSeriesServices = preset.timeSeriesServices,
4126
+ soundingsCollections = preset.soundingsCollections;
4119
4127
  var _ref = layers ? filterLayers.filterLayers(layers, filterLayers.parseLayer) : filterLayers.createEmtpyFilteredList(undefined),
4120
4128
  baseLayers = _ref.baseLayers,
4121
4129
  mapLayers = _ref.mapLayers;
@@ -4126,6 +4134,7 @@ var filterMapPresets = function filterMapPresets(initialAppPreset) {
4126
4134
  services: filterredServices,
4127
4135
  baseServices: filteredBaseServices,
4128
4136
  timeSeriesServices: filteredTimeSeriesServices,
4137
+ soundingsCollections: soundingsCollections,
4129
4138
  baseLayers: baseLayers,
4130
4139
  mapLayers: mapLayers
4131
4140
  };
@@ -4375,115 +4384,106 @@ var AddLayersPopup = function AddLayersPopup(_ref) {
4375
4384
  }
4376
4385
  // eslint-disable-next-line react-hooks/exhaustive-deps
4377
4386
  }, [preloadedServices]);
4378
- return jsxs(Dialog, {
4387
+ return jsx(CustomDialog, {
4379
4388
  fullWidth: true,
4380
4389
  maxWidth: "md",
4381
4390
  open: open,
4382
- onClose: handleClose,
4391
+ onClose: function onClose() {
4392
+ return handleClose && handleClose();
4393
+ },
4383
4394
  "aria-labelledby": "form-dialog-title",
4384
4395
  "data-testid": "addLayersPopup",
4385
- children: [jsx(DialogTitle, {
4386
- id: "form-dialog-title",
4387
- children: t('add-layer-popup-title')
4388
- }), jsxs(DialogContent, {
4396
+ title: t('add-layer-popup-title'),
4397
+ actions: jsx(Button, {
4398
+ onClick: handleClose,
4399
+ variant: "tertiary",
4400
+ sx: {
4401
+ width: {
4402
+ xs: '100%',
4403
+ sm: 'auto'
4404
+ }
4405
+ },
4406
+ children: t('actions-close')
4407
+ }),
4408
+ children: jsxs(Fragment, {
4389
4409
  children: [jsx(DialogContentText, {
4390
4410
  children: t('wms-loader-description')
4391
- }), jsx(Box, {
4392
- m: 2,
4393
- children: jsx(Grid2, {
4394
- container: true,
4395
- direction: "row",
4396
- alignItems: "center",
4397
- children: jsx(Grid2, {
4398
- size: 12,
4399
- children: jsx(TextField, {
4400
- margin: "dense",
4401
- id: "serviceurl",
4402
- label: t('add-layer-popup-service-url'),
4403
- value: serviceURL,
4404
- type: "url",
4405
- onChange: function onChange(event) {
4406
- var url = event.target.value.trim();
4407
- setServiceURL(url);
4408
- // No error message until new check
4409
- setUrlError('');
4410
- },
4411
- onKeyPress: function onKeyPress(event) {
4412
- if (event.key === 'Enter') {
4413
- handleAddServiceURL();
4414
- }
4415
- },
4416
- fullWidth: true,
4417
- disabled: loading,
4418
- error: urlError !== '',
4419
- helperText: urlError,
4420
- variant: "filled",
4421
- slotProps: {
4422
- input: {
4423
- endAdornment: jsx(InputAdornment, {
4424
- position: "end",
4425
- children: loading ? jsx(CircularProgress, {
4426
- size: 24,
4427
- sx: {
4428
- zIndex: 1
4429
- }
4430
- }) : jsx(CustomIconButton, {
4431
- "data-testid": "add-service",
4432
- onClick: handleAddServiceURL,
4433
- disabled: loading,
4434
- size: "large",
4435
- children: jsx(Add, {})
4436
- })
4411
+ }), jsx(Grid, {
4412
+ container: true,
4413
+ direction: "row",
4414
+ alignItems: "center",
4415
+ mb: 1,
4416
+ children: jsx(Grid, {
4417
+ size: 12,
4418
+ children: jsx(TextField, {
4419
+ margin: "dense",
4420
+ id: "serviceurl",
4421
+ label: t('add-layer-popup-service-url'),
4422
+ value: serviceURL,
4423
+ type: "url",
4424
+ onChange: function onChange(event) {
4425
+ var url = event.target.value.trim();
4426
+ setServiceURL(url);
4427
+ // No error message until new check
4428
+ setUrlError('');
4429
+ },
4430
+ onKeyPress: function onKeyPress(event) {
4431
+ if (event.key === 'Enter') {
4432
+ handleAddServiceURL();
4433
+ }
4434
+ },
4435
+ fullWidth: true,
4436
+ disabled: loading,
4437
+ error: urlError !== '',
4438
+ helperText: urlError,
4439
+ variant: "filled",
4440
+ slotProps: {
4441
+ input: {
4442
+ endAdornment: jsx(InputAdornment, {
4443
+ position: "end",
4444
+ children: loading ? jsx(CircularProgress, {
4445
+ size: 24,
4446
+ sx: {
4447
+ zIndex: 1
4448
+ }
4449
+ }) : jsx(CustomIconButton, {
4450
+ "data-testid": "add-service",
4451
+ onClick: handleAddServiceURL,
4452
+ disabled: loading,
4453
+ size: "large",
4454
+ children: jsx(Add, {})
4437
4455
  })
4438
- }
4456
+ })
4439
4457
  }
4440
- })
4458
+ }
4441
4459
  })
4442
4460
  })
4443
- }), jsx(Box, {
4444
- m: 2,
4445
- children: jsxs(Grid2, {
4446
- container: true,
4447
- direction: "row",
4448
- alignItems: "center",
4449
- spacing: 3,
4450
- children: [jsx(Grid2, {
4451
- size: 4,
4452
- children: jsx(WMSServerList, {
4453
- availableServices: services,
4454
- service: activeService,
4455
- handleChangeService: handleChangeService
4456
- })
4457
- }), jsx(Grid2, {
4458
- size: 8,
4459
- children: onRenderTree ? onRenderTree(activeService) : jsx(WMSLayerTreeConnect, {
4460
- mapId: "",
4461
- service: activeService,
4462
- layerType: layerType
4463
- })
4464
- })]
4465
- })
4461
+ }), jsxs(Grid, {
4462
+ container: true,
4463
+ direction: "row",
4464
+ alignItems: "center",
4465
+ spacing: 3,
4466
+ children: [jsx(Grid, {
4467
+ size: 4,
4468
+ children: jsx(WMSServerList, {
4469
+ availableServices: services,
4470
+ service: activeService,
4471
+ handleChangeService: handleChangeService
4472
+ })
4473
+ }), jsx(Grid, {
4474
+ size: 8,
4475
+ children: onRenderTree ? onRenderTree(activeService) : jsx(WMSLayerTreeConnect, {
4476
+ mapId: "",
4477
+ service: activeService,
4478
+ layerType: layerType
4479
+ })
4480
+ })]
4466
4481
  })]
4467
- }), jsx(DialogActions, {
4468
- children: jsx(Button, {
4469
- onClick: handleClose,
4470
- color: "primary",
4471
- children: t('actions-close')
4472
- })
4473
- })]
4482
+ })
4474
4483
  });
4475
4484
  };
4476
4485
 
4477
4486
  var styles$2 = {
4478
- buttonDiv: {
4479
- position: 'relative'
4480
- },
4481
- loadingButton: {
4482
- position: 'absolute',
4483
- top: 7,
4484
- left: 7,
4485
- zIndex: 1
4486
- },
4487
4487
  button: {
4488
4488
  margin: 'auto 0px auto 32px'
4489
4489
  }
@@ -4553,7 +4553,7 @@ var BaseLayerRow = function BaseLayerRow(_ref2) {
4553
4553
  settings = _ref2.settings,
4554
4554
  gridProps = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
4555
4555
  var theme = useTheme();
4556
- return jsxs(Grid2, Object.assign({
4556
+ return jsxs(Grid, Object.assign({
4557
4557
  container: true,
4558
4558
  "data-testid": "baseLayerRow",
4559
4559
  className: "addLayer-column",
@@ -4562,7 +4562,7 @@ var BaseLayerRow = function BaseLayerRow(_ref2) {
4562
4562
  height: '36px'
4563
4563
  }, theme.palette.geowebColors.layerManager.baseLayerRow.root)
4564
4564
  }, gridProps, {
4565
- children: [jsxs(Grid2, {
4565
+ children: [jsxs(Grid, {
4566
4566
  sx: [{
4567
4567
  marginTop: '-2px'
4568
4568
  }, leftButtonsStyle],
@@ -4577,7 +4577,7 @@ var BaseLayerRow = function BaseLayerRow(_ref2) {
4577
4577
  });
4578
4578
  }
4579
4579
  }), settings == null || (_settings$baseLayerRo2 = settings.baseLayerRow) == null ? void 0 : _settings$baseLayerRo2.title]
4580
- }), jsx(Grid2, {
4580
+ }), jsx(Grid, {
4581
4581
  className: columnClasses.baseLayer,
4582
4582
  children: jsx(BaseLayersConnect, {
4583
4583
  mapId: mapId,
@@ -4671,7 +4671,7 @@ var availableProjections = [Object.assign({}, PROJECTION.EPSG_3857, {
4671
4671
  }
4672
4672
  }), Object.assign({}, PROJECTION.EPSG_3067, {
4673
4673
  bbox: {
4674
- left: -1197402.0,
4674
+ left: -1197402,
4675
4675
  bottom: 6439686.0,
4676
4676
  right: 2090705,
4677
4677
  top: 7975202
@@ -4695,14 +4695,14 @@ var ProjectionSelect = function ProjectionSelect(_ref) {
4695
4695
  return projection.value === currentProjection;
4696
4696
  });
4697
4697
  var title = t('projection-title');
4698
- return jsxs(Grid2, {
4698
+ return jsxs(Grid, {
4699
4699
  container: true,
4700
4700
  className: "setProjection-column",
4701
4701
  sx: {
4702
4702
  width: '100%',
4703
4703
  height: '36px'
4704
4704
  },
4705
- children: [jsx(Grid2, {
4705
+ children: [jsx(Grid, {
4706
4706
  sx: [{
4707
4707
  marginTop: '-2px'
4708
4708
  }, leftButtonsStyle],
@@ -4714,7 +4714,7 @@ var ProjectionSelect = function ProjectionSelect(_ref) {
4714
4714
  disabled: true,
4715
4715
  children: jsx(WorldMapProjection, {})
4716
4716
  })
4717
- }), jsx(Grid2, {
4717
+ }), jsx(Grid, {
4718
4718
  className: columnClasses.baseLayer,
4719
4719
  children: jsx(FormControl, {
4720
4720
  style: {
@@ -4783,14 +4783,7 @@ var styles$1 = {
4783
4783
  height: 'calc(100% - 59px)',
4784
4784
  display: 'inline-block',
4785
4785
  padding: '0 6px'
4786
- },
4787
- layerManagerContainer: {
4788
- position: 'absolute',
4789
- height: '100%',
4790
- width: '100%',
4791
- boxSizing: 'border-box'
4792
- }
4793
- };
4786
+ }};
4794
4787
  var getLayerManagerSizeValue = function getLayerManagerSizeValue(size) {
4795
4788
  if (!size.width || typeof size.width !== 'number') {
4796
4789
  return 'sizeLarge';
@@ -4922,7 +4915,7 @@ var LayerManager = function LayerManager(_ref) {
4922
4915
  title: error,
4923
4916
  shouldClose: true
4924
4917
  })
4925
- }), jsxs(Grid2, {
4918
+ }), jsxs(Grid, {
4926
4919
  container: true,
4927
4920
  "data-testid": "layerManagerRowContainer",
4928
4921
  sx: styles$1.layerRowContainer,
@@ -5134,12 +5127,14 @@ var LayerManagerConnect = function LayerManagerConnect(_ref) {
5134
5127
  },
5135
5128
  addLayerComponent: jsx(LayerSelectButtonConnect, {
5136
5129
  mapId: mapId,
5137
- source: source,
5130
+ source: uiSource,
5138
5131
  isMultiMap: isMultiMap
5139
5132
  })
5140
- }), !isDocked && jsx(LayerInfoDialogConnect, {}), !isDocked && jsx(LayerSelectConnect, {})]
5133
+ }), !isDocked && jsx(LayerInfoDialogConnect, {
5134
+ source: uiSource
5135
+ }), !isDocked && jsx(LayerSelectConnect, {})]
5141
5136
  });
5142
- }, [bounds, dialogOrder, dockedLayerManagerSize, initialMapId, isDialogOpen, isDocked, isMultiMap, mapId, onCloseDialog, onToggleDock, preloadedAvailableBaseLayers, preloadedBaseServices, setDialogOrder, showMapIdInTitle, nonEmptyTitle, uiError, uiIsLoading, uiSource, source]);
5137
+ }, [bounds, dialogOrder, dockedLayerManagerSize, initialMapId, isDialogOpen, isDocked, isMultiMap, mapId, onCloseDialog, onToggleDock, preloadedAvailableBaseLayers, preloadedBaseServices, setDialogOrder, showMapIdInTitle, nonEmptyTitle, uiError, uiIsLoading, uiSource]);
5143
5138
  };
5144
5139
 
5145
5140
  var LayerManagerMapButtonConnect = function LayerManagerMapButtonConnect(_ref) {
@@ -5749,7 +5744,7 @@ var MyMapLocation = function MyMapLocation(_ref) {
5749
5744
  * Copyright 2025 - Finnish Meteorological Institute (FMI)
5750
5745
  * Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
5751
5746
  * */
5752
- var config = getConfig();
5747
+ var config = sessionStorageProvider.getConfig();
5753
5748
  var locationBaseUrl = config.GW_LOCATION_BASE_URL || '';
5754
5749
  var getLocationList = function getLocationList(search) {
5755
5750
  return fetch(locationBaseUrl + "/locations?search=" + search).then(handleResponse);
@@ -5805,7 +5800,7 @@ var useLocationDetail = function useLocationDetail(id, source) {
5805
5800
  });
5806
5801
  };
5807
5802
 
5808
- var SearchDialog = function SearchDialog(_ref) {
5803
+ var LocationSearch = function LocationSearch(_ref) {
5809
5804
  var isOpen = _ref.isOpen,
5810
5805
  _ref$mapId = _ref.mapId,
5811
5806
  mapId = _ref$mapId === void 0 ? '' : _ref$mapId,
@@ -5998,25 +5993,29 @@ var geometryStyling = {
5998
5993
  'stroke-opacity': 1,
5999
5994
  'stroke-width': 4
6000
5995
  };
6001
- var makeGeoJSONFeatureFromLocation = function makeGeoJSONFeatureFromLocation(location, drawFunctionId, hoverDrawFunctionId, mapFeatureClass) {
5996
+ var makeGeoJSONFeatureFromLocation = function makeGeoJSONFeatureFromLocation(location, drawFunctionId, hoverDrawFunctionId, mapFeatureClass, t) {
6002
5997
  var _location$geometry;
6003
5998
  var collection = {
6004
5999
  type: 'FeatureCollection',
6005
6000
  features: []
6006
6001
  };
6002
+ var name = mapFeatureClass === MapFeatureClass.MyLocation ? t('my-location') : location.name;
6007
6003
  var geometry = Object.assign({}, location.geometry, {
6008
6004
  properties: Object.assign({}, geometryStyling, {
6009
- name: location.name,
6010
- hoverDrawFunctionId: hoverDrawFunctionId
6005
+ name: name,
6006
+ hoverDrawFunctionId: hoverDrawFunctionId,
6007
+ mapFeatureClass: mapFeatureClass,
6008
+ showNameOnHover: true
6011
6009
  })
6012
6010
  });
6013
6011
  var marker = {
6014
6012
  type: 'Feature',
6015
6013
  properties: {
6016
- name: location.name,
6014
+ name: name,
6017
6015
  drawFunctionId: drawFunctionId,
6018
6016
  hoverDrawFunctionId: hoverDrawFunctionId,
6019
- mapFeatureClass: mapFeatureClass
6017
+ mapFeatureClass: mapFeatureClass,
6018
+ showNameOnHover: true
6020
6019
  },
6021
6020
  geometry: {
6022
6021
  type: 'Point',
@@ -6025,7 +6024,6 @@ var makeGeoJSONFeatureFromLocation = function makeGeoJSONFeatureFromLocation(loc
6025
6024
  };
6026
6025
  switch ((_location$geometry = location.geometry) == null ? void 0 : _location$geometry.geometry.type) {
6027
6026
  case 'Point':
6028
- case 'MultiLineString':
6029
6027
  case undefined:
6030
6028
  collection.features.push(marker);
6031
6029
  break;
@@ -6082,6 +6080,8 @@ var hoverDrawFunction = function hoverDrawFunction(args) {
6082
6080
  };
6083
6081
  var useDrawOnMap = function useDrawOnMap(mapId, drawFunction) {
6084
6082
  var dispatch = useDispatch();
6083
+ var _useCoreTranslation = useCoreTranslation(),
6084
+ t = _useCoreTranslation.t;
6085
6085
  var _useContext = useContext(MapContext),
6086
6086
  map = _useContext.map;
6087
6087
  var layerIdRef = React__default.useRef();
@@ -6105,7 +6105,7 @@ var useDrawOnMap = function useDrawOnMap(mapId, drawFunction) {
6105
6105
  geojson: emptyGeoJSON,
6106
6106
  layerType: LayerType.featureLayer
6107
6107
  },
6108
- origin: 'SearchDialogConnect'
6108
+ origin: 'LocationSearchConnect'
6109
6109
  }));
6110
6110
  }
6111
6111
  }, [dispatch, layerId, mapId, shouldAddLayer]);
@@ -6113,12 +6113,12 @@ var useDrawOnMap = function useDrawOnMap(mapId, drawFunction) {
6113
6113
  var hoverDrawFunctionId = React__default.useRef(registerDrawFunction(hoverDrawFunction)).current;
6114
6114
  var updateGeoJSON = React__default.useCallback(function (location) {
6115
6115
  var mapFeatureClass = (location == null ? void 0 : location.source) === 'MyMapLocation' ? MapFeatureClass.MyLocation : MapFeatureClass.GenericMarker;
6116
- var geojson = location ? makeGeoJSONFeatureFromLocation(location, drawFunctionId, hoverDrawFunctionId, mapFeatureClass) : emptyGeoJSON;
6116
+ var geojson = location ? makeGeoJSONFeatureFromLocation(location, drawFunctionId, hoverDrawFunctionId, mapFeatureClass, t) : emptyGeoJSON;
6117
6117
  dispatch(layerActions.updateFeature({
6118
6118
  layerId: layerId,
6119
6119
  geojson: geojson
6120
6120
  }));
6121
- }, [dispatch, drawFunctionId, hoverDrawFunctionId, layerId]);
6121
+ }, [dispatch, drawFunctionId, hoverDrawFunctionId, layerId, t]);
6122
6122
  var zoomToFeature = React__default.useCallback(function (location) {
6123
6123
  var webMap = getWMJSMapById(mapId);
6124
6124
  if (webMap) {
@@ -6136,7 +6136,7 @@ var useDrawOnMap = function useDrawOnMap(mapId, drawFunction) {
6136
6136
  return [onUpdateLocation];
6137
6137
  };
6138
6138
 
6139
- var SearchDialogConnect = function SearchDialogConnect(_ref) {
6139
+ var LocationSearchConnect = function LocationSearchConnect(_ref) {
6140
6140
  var _ref$mapId = _ref.mapId,
6141
6141
  mapId = _ref$mapId === void 0 ? '' : _ref$mapId;
6142
6142
  var dialogType = uiTypes.DialogTypes.Search + "-" + mapId;
@@ -6159,7 +6159,7 @@ var SearchDialogConnect = function SearchDialogConnect(_ref) {
6159
6159
  return false;
6160
6160
  });
6161
6161
  var isMyLocationSelected = !!myLocationLayer;
6162
- return jsx(SearchDialog, {
6162
+ return jsx(LocationSearch, {
6163
6163
  isOpen: isDialogOpen,
6164
6164
  mapId: mapId,
6165
6165
  onSelectLocation: updateMapPin,
@@ -6529,7 +6529,7 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
6529
6529
  if (!result) {
6530
6530
  return null;
6531
6531
  }
6532
- return jsxs(Grid2, {
6532
+ return jsxs(Grid, {
6533
6533
  sx: {
6534
6534
  margin: '4px 6px 4px 6px',
6535
6535
  padding: '6px',
@@ -7089,7 +7089,7 @@ var MapViewConnect = function MapViewConnect(_ref) {
7089
7089
  showMapId: true,
7090
7090
  mapId: mapId,
7091
7091
  multiLegend: controls == null ? void 0 : controls.multiLegend
7092
- }), (controls == null ? void 0 : controls.search) && jsx(SearchDialogConnect, {
7092
+ }), (controls == null ? void 0 : controls.search) && jsx(LocationSearchConnect, {
7093
7093
  mapId: mapId
7094
7094
  }), (controls == null ? void 0 : controls.getFeatureInfo) && jsx(GetFeatureInfoConnect, {
7095
7095
  showMapId: true,
@@ -7102,58 +7102,59 @@ var MapViewConnect = function MapViewConnect(_ref) {
7102
7102
  });
7103
7103
  };
7104
7104
 
7105
- /* *
7106
- * Licensed under the Apache License, Version 2.0 (the "License");
7107
- * you may not use this file except in compliance with the License.
7108
- * You may obtain a copy of the License at
7109
- *
7110
- * http://www.apache.org/licenses/LICENSE-2.0
7111
- *
7112
- * Unless required by applicable law or agreed to in writing, software
7113
- * distributed under the License is distributed on an "AS IS" BASIS,
7114
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7115
- * See the License for the specific language governing permissions and
7116
- * limitations under the License.
7117
- *
7118
- * Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
7119
- * Copyright 2024 - Finnish Meteorological Institute (FMI)
7120
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
7121
- * */
7122
- var useGetOpenLayersView = function useGetOpenLayersView(mapId, store) {
7123
- var _useState = useState(),
7124
- view = _useState[0],
7125
- setView = _useState[1];
7126
- var _useState2 = useState(),
7127
- name = _useState2[0],
7128
- setName = _useState2[1];
7129
- var syncGroupState = syncGroupsSelectors.getSynchronizationGroupState(store.getState());
7130
- var syncGroupView = useMemo(function () {
7131
- var thisAreaSyncGroupId = syncGroupState.groups.allIds.find(function (id) {
7132
- var group = syncGroupState.groups.byId[id];
7133
- return group.type === syncConstants.SYNCGROUPS_TYPE_SETBBOX && group.targets.allIds.indexOf(mapId) !== -1;
7134
- });
7135
- return thisAreaSyncGroupId ? getViewObjectForSyncGroup(thisAreaSyncGroupId) : null;
7136
- }, [mapId, syncGroupState.groups]);
7137
- useEffect(function () {
7138
- var mapBbox = mapSelectors.getBbox(store.getState(), mapId);
7139
- var storedView = syncGroupView || getViewObjectForMapId(mapId);
7140
- if (storedView.view.getCenter() === undefined && mapBbox.left !== undefined) {
7141
- storedView.view.fit([mapBbox.left, mapBbox.bottom, mapBbox.right, mapBbox.top]);
7105
+ var OpenLayersFeatureLayerConnect = function OpenLayersFeatureLayerConnect(_ref) {
7106
+ var layer = _ref.layer,
7107
+ layerId = _ref.layerId,
7108
+ zIndex = _ref.zIndex,
7109
+ style = _ref.style,
7110
+ hoverSelect = _ref.hoverSelect;
7111
+ var store = useStore();
7112
+ var dispatch = useDispatch();
7113
+ var updateFeature = React__default.useCallback(function (geojson, reason) {
7114
+ if (!layerId) {
7115
+ window.console.error('updateFeature without layerId');
7116
+ return;
7142
7117
  }
7143
- setName(storedView.name);
7144
- var setViewFromStoredView = function setViewFromStoredView() {
7145
- setView(storedView.view);
7146
- };
7147
- setViewFromStoredView();
7148
- var eventKey = storedView.on('change', setViewFromStoredView);
7149
- return function () {
7150
- unByKey(eventKey);
7151
- };
7152
- }, [syncGroupView, mapId, store]);
7153
- return {
7154
- view: view,
7155
- name: name
7156
- };
7118
+ var activeDrawToolId = drawingToolSelectors.getActiveDrawToolId(store.getState());
7119
+ var activeDrawMode = drawingToolSelectors.getActiveDrawMode(store.getState(), activeDrawToolId);
7120
+ dispatch(layerActions.updateFeature({
7121
+ geojson: geojson,
7122
+ reason: reason,
7123
+ layerId: layerId,
7124
+ shouldAllowMultipleShapes: drawingToolSelectors.getShouldAllowMultipleShapes(store.getState(), activeDrawToolId),
7125
+ geoJSONIntersectionLayerId: drawingToolSelectors.getGeoJSONIntersectionLayerId(store.getState(), activeDrawToolId),
7126
+ geoJSONIntersectionBoundsLayerId: drawingToolSelectors.getGeoJSONIntersectionBoundsLayerId(store.getState(), activeDrawToolId),
7127
+ selectionType: activeDrawMode == null ? void 0 : activeDrawMode.selectionType
7128
+ }));
7129
+ }, [dispatch, store, layerId]);
7130
+ var exitFeatureDrawMode = React__default.useCallback(function (reason) {
7131
+ if (!layerId) {
7132
+ window.console.error('exitFeatureDrawMode without layerId');
7133
+ return;
7134
+ }
7135
+ var activeDrawToolId = drawingToolSelectors.getActiveDrawToolId(store.getState());
7136
+ dispatch(layerActions.exitFeatureDrawMode({
7137
+ reason: reason,
7138
+ layerId: layerId,
7139
+ shouldAllowMultipleShapes: drawingToolSelectors.getShouldAllowMultipleShapes(store.getState(), activeDrawToolId)
7140
+ }));
7141
+ }, [dispatch, store, layerId]);
7142
+ return jsxs(Fragment, {
7143
+ children: [jsx(OpenLayersFeatureLayer, {
7144
+ featureCollection: !layer.isInEditMode ? layer.geojson : undefined,
7145
+ zIndex: zIndex,
7146
+ style: style,
7147
+ hoverSelect: hoverSelect
7148
+ }), jsx(OpenLayersMapDraw, {
7149
+ drawMode: layer.drawMode,
7150
+ viewOnlyStyle: style,
7151
+ exitDrawModeCallback: exitFeatureDrawMode,
7152
+ geojson: layer.geojson,
7153
+ isInEditMode: layer.isInEditMode || false,
7154
+ selectedFeatureIndex: layer.selectedFeatureIndex || 0,
7155
+ updateGeojson: updateFeature
7156
+ })]
7157
+ });
7157
7158
  };
7158
7159
 
7159
7160
  /* *
@@ -7204,10 +7205,10 @@ var makePrefetchTimeSpan = function makePrefetchTimeSpan(timeSliderStartCenterEn
7204
7205
  var makeLayerInfoPayload = function makeLayerInfoPayload(payload, mapDimensions, mapId) {
7205
7206
  // During intialization, try to base the layer dimension on the current map dimension value.
7206
7207
  var updatedPayLoad = {
7207
- origin: 'OnInitializeLayerProps in MapViewConnect',
7208
+ origin: 'onInitializeLayer in OlMapViewLayerConnect',
7208
7209
  layerDimensions: {
7209
7210
  layerId: payload.layerId,
7210
- origin: 'OnInitializeLayerProps in MapViewConnect',
7211
+ origin: 'onInitializeLayer in OlMapViewLayerConnect',
7211
7212
  dimensions: (payload.dimensions || []).map(function (layerDim) {
7212
7213
  var _find;
7213
7214
  var currentMapDim = ((_find = (mapDimensions || []).find(function (mapDim) {
@@ -7221,7 +7222,7 @@ var makeLayerInfoPayload = function makeLayerInfoPayload(payload, mapDimensions,
7221
7222
  },
7222
7223
  mapDimensions: {
7223
7224
  mapId: mapId,
7224
- origin: 'OnInitializeLayerProps in MapViewConnect',
7225
+ origin: 'onInitializeLayer in OlMapViewLayerConnect',
7225
7226
  dimensions: (payload.dimensions || []).map(function (layerDim) {
7226
7227
  var _find2;
7227
7228
  var currentMapDim = ((_find2 = (mapDimensions || []).find(function (mapDim) {
@@ -7254,61 +7255,6 @@ var getCenterOfLinkedFeature = function getCenterOfLinkedFeature(feature, srs) {
7254
7255
  return null;
7255
7256
  };
7256
7257
 
7257
- var OpenLayersFeatureLayerConnect = function OpenLayersFeatureLayerConnect(_ref) {
7258
- var layer = _ref.layer,
7259
- layerId = _ref.layerId,
7260
- zIndex = _ref.zIndex,
7261
- style = _ref.style,
7262
- hoverSelect = _ref.hoverSelect;
7263
- var store = useStore();
7264
- var dispatch = useDispatch();
7265
- var updateFeature = React__default.useCallback(function (geojson, reason) {
7266
- if (!layerId) {
7267
- window.console.error('updateFeature without layerId');
7268
- return;
7269
- }
7270
- var activeDrawToolId = drawingToolSelectors.getActiveDrawToolId(store.getState());
7271
- var activeDrawMode = drawingToolSelectors.getActiveDrawMode(store.getState(), activeDrawToolId);
7272
- dispatch(layerActions.updateFeature({
7273
- geojson: geojson,
7274
- reason: reason,
7275
- layerId: layerId,
7276
- shouldAllowMultipleShapes: drawingToolSelectors.getShouldAllowMultipleShapes(store.getState(), activeDrawToolId),
7277
- geoJSONIntersectionLayerId: drawingToolSelectors.getGeoJSONIntersectionLayerId(store.getState(), activeDrawToolId),
7278
- geoJSONIntersectionBoundsLayerId: drawingToolSelectors.getGeoJSONIntersectionBoundsLayerId(store.getState(), activeDrawToolId),
7279
- selectionType: activeDrawMode == null ? void 0 : activeDrawMode.selectionType
7280
- }));
7281
- }, [dispatch, store, layerId]);
7282
- var exitFeatureDrawMode = React__default.useCallback(function (reason) {
7283
- if (!layerId) {
7284
- window.console.error('exitFeatureDrawMode without layerId');
7285
- return;
7286
- }
7287
- var activeDrawToolId = drawingToolSelectors.getActiveDrawToolId(store.getState());
7288
- dispatch(layerActions.exitFeatureDrawMode({
7289
- reason: reason,
7290
- layerId: layerId,
7291
- shouldAllowMultipleShapes: drawingToolSelectors.getShouldAllowMultipleShapes(store.getState(), activeDrawToolId)
7292
- }));
7293
- }, [dispatch, store, layerId]);
7294
- return jsxs(Fragment, {
7295
- children: [jsx(OpenLayersFeatureLayer, {
7296
- featureCollection: !layer.isInEditMode ? layer.geojson : undefined,
7297
- zIndex: zIndex,
7298
- style: style,
7299
- hoverSelect: hoverSelect
7300
- }), jsx(OpenLayersMapDraw, {
7301
- drawMode: layer.drawMode,
7302
- viewOnlyStyle: style,
7303
- exitDrawModeCallback: exitFeatureDrawMode,
7304
- geojson: layer.geojson,
7305
- isInEditMode: layer.isInEditMode || false,
7306
- selectedFeatureIndex: layer.selectedFeatureIndex || 0,
7307
- updateGeojson: updateFeature
7308
- })]
7309
- });
7310
- };
7311
-
7312
7258
  var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
7313
7259
  var layerId = layerProps.layerId,
7314
7260
  mapId = layerProps.mapId,
@@ -7339,6 +7285,60 @@ var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
7339
7285
  }), "layer-" + (layer == null ? void 0 : layer.id));
7340
7286
  };
7341
7287
 
7288
+ /* *
7289
+ * Licensed under the Apache License, Version 2.0 (the "License");
7290
+ * you may not use this file except in compliance with the License.
7291
+ * You may obtain a copy of the License at
7292
+ *
7293
+ * http://www.apache.org/licenses/LICENSE-2.0
7294
+ *
7295
+ * Unless required by applicable law or agreed to in writing, software
7296
+ * distributed under the License is distributed on an "AS IS" BASIS,
7297
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
7298
+ * See the License for the specific language governing permissions and
7299
+ * limitations under the License.
7300
+ *
7301
+ * Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
7302
+ * Copyright 2024 - Finnish Meteorological Institute (FMI)
7303
+ * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
7304
+ * */
7305
+ var useGetOpenLayersView = function useGetOpenLayersView(mapId, store) {
7306
+ var _useState = useState(),
7307
+ view = _useState[0],
7308
+ setView = _useState[1];
7309
+ var _useState2 = useState(),
7310
+ name = _useState2[0],
7311
+ setName = _useState2[1];
7312
+ var syncGroupState = syncGroupsSelectors.getSynchronizationGroupState(store.getState());
7313
+ var syncGroupView = useMemo(function () {
7314
+ var thisAreaSyncGroupId = syncGroupState.groups.allIds.find(function (id) {
7315
+ var group = syncGroupState.groups.byId[id];
7316
+ return group.type === syncConstants.SYNCGROUPS_TYPE_SETBBOX && group.targets.allIds.indexOf(mapId) !== -1;
7317
+ });
7318
+ return thisAreaSyncGroupId ? getViewObjectForSyncGroup(thisAreaSyncGroupId) : null;
7319
+ }, [mapId, syncGroupState.groups]);
7320
+ useEffect(function () {
7321
+ var mapBbox = mapSelectors.getBbox(store.getState(), mapId);
7322
+ var storedView = syncGroupView || getViewObjectForMapId(mapId);
7323
+ if (storedView.view.getCenter() === undefined && mapBbox.left !== undefined) {
7324
+ storedView.view.fit([mapBbox.left, mapBbox.bottom, mapBbox.right, mapBbox.top]);
7325
+ }
7326
+ setName(storedView.name);
7327
+ var setViewFromStoredView = function setViewFromStoredView() {
7328
+ setView(storedView.view);
7329
+ };
7330
+ setViewFromStoredView();
7331
+ var eventKey = storedView.on('change', setViewFromStoredView);
7332
+ return function () {
7333
+ unByKey(eventKey);
7334
+ };
7335
+ }, [syncGroupView, mapId, store]);
7336
+ return {
7337
+ view: view,
7338
+ name: name
7339
+ };
7340
+ };
7341
+
7342
7342
  /**
7343
7343
  * Connected component used to display the map and selected layers.
7344
7344
  * Includes options to disable the map controls and legend.
@@ -7346,21 +7346,19 @@ var OlMapViewLayerConnect = function OlMapViewLayerConnect(layerProps) {
7346
7346
  * Expects the following props:
7347
7347
  * @param {string} mapId mapId: string - Id of the map
7348
7348
  * @param {object} [controls.zoomControls] **optional** controls: object - toggle the map controls, zoomControls defaults to true
7349
- * @param {boolean} [displayTimeInMap] **optional** displayTimeInMap: boolean, toggles the mapTime, defaults to true
7350
- * @param {boolean} [showScaleBar] **optional** showScaleBar: boolean, toggles the scaleBar, defaults to true
7351
- * @example
7352
- * ```<MapViewConnect mapId={mapId} controls={{ zoomControls: false }} displayTimeInMap={false} showScaleBar={false}/>```
7353
7349
  */
7354
7350
  var OlMapViewConnect = function OlMapViewConnect(_ref) {
7351
+ var _featureProperties$va;
7355
7352
  var mapId = _ref.mapId,
7353
+ children = _ref.children,
7356
7354
  _ref$controls = _ref.controls,
7357
7355
  controls = _ref$controls === void 0 ? {
7358
7356
  mapControlsPositionTop: 0,
7359
7357
  zoomControls: true
7360
7358
  } : _ref$controls,
7361
7359
  initialBbox = _ref.initialBbox,
7362
- children = _ref.children,
7363
- holdShiftToScroll = _ref.holdShiftToScroll;
7360
+ holdShiftToScroll = _ref.holdShiftToScroll,
7361
+ source = _ref.source;
7364
7362
  var store = useStore();
7365
7363
  var mapRef = React.useRef(null);
7366
7364
  var _useGetOpenLayersView = useGetOpenLayersView(mapId, store),
@@ -7387,14 +7385,32 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7387
7385
  var _store$syncGroups;
7388
7386
  return genericSelectors.selectLinkedFeatures((_store$syncGroups = store.syncGroups) == null ? void 0 : _store$syncGroups.linkedState, mapId);
7389
7387
  });
7388
+ var linkedFormFeaturesFromState = useSelector(function (store) {
7389
+ var _store$syncGroups2;
7390
+ return genericSelectors.selectLinkedFormFeatures((_store$syncGroups2 = store.syncGroups) == null ? void 0 : _store$syncGroups2.linkedState, mapId);
7391
+ });
7390
7392
  var linkedFeatures = React.useMemo(function () {
7391
7393
  return {
7392
7394
  type: 'FeatureCollection',
7393
7395
  features: linkedFeaturesFromState.flatMap(function (feature) {
7394
- return feature.geoJSON.features;
7396
+ return feature.geoJSON.features.map(function (geoFeature) {
7397
+ return Object.assign({}, geoFeature, {
7398
+ properties: Object.assign({}, geoFeature.properties, {
7399
+ originalId: feature.originalId
7400
+ })
7401
+ });
7402
+ });
7395
7403
  })
7396
7404
  };
7397
7405
  }, [linkedFeaturesFromState]);
7406
+ var linkedFormFeatures = React.useMemo(function () {
7407
+ return {
7408
+ type: 'FeatureCollection',
7409
+ features: linkedFormFeaturesFromState.flatMap(function (feature) {
7410
+ return feature.geoJSON.features;
7411
+ })
7412
+ };
7413
+ }, [linkedFormFeaturesFromState]);
7398
7414
  var srs = useSelector(function (store) {
7399
7415
  return mapSelectors.getSrs(store, mapId);
7400
7416
  });
@@ -7415,10 +7431,10 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7415
7431
  var updateLayerInformation = React.useCallback(function (payload) {
7416
7432
  var _payload$layerDimensi, _payload$layerDimensi2;
7417
7433
  var updatedPayLoad = Object.assign({}, payload, {
7418
- origin: 'OnInitializeLayerProps in MapViewConnect',
7434
+ origin: 'updateLayerInformation in OlMapViewConnect',
7419
7435
  layerDimensions: {
7420
7436
  layerId: ((_payload$layerDimensi = payload.layerDimensions) == null ? void 0 : _payload$layerDimensi.layerId) || '',
7421
- origin: 'OnInitializeLayerProps in MapViewConnect',
7437
+ origin: 'updateLayerInformation in OlMapViewConnect',
7422
7438
  dimensions: (((_payload$layerDimensi2 = payload.layerDimensions) == null ? void 0 : _payload$layerDimensi2.dimensions) || []).map(function (layerDim) {
7423
7439
  return Object.assign({}, layerDim);
7424
7440
  })
@@ -7527,13 +7543,44 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7527
7543
  top: extent[3]
7528
7544
  },
7529
7545
  sourceId: mapId,
7530
- srs: srs
7546
+ srs: srs,
7547
+ mapId: mapId,
7548
+ origin: mapEnums.MapActionOrigin.map
7531
7549
  }));
7532
7550
  });
7533
7551
  return function () {
7534
7552
  unByKey(eventKey);
7535
7553
  };
7536
7554
  }, [view, mapId, srs, dispatch]);
7555
+ var featureProperties = hoverLinkedFeature == null || hoverLinkedFeature.getProperties == null ? void 0 : hoverLinkedFeature.getProperties();
7556
+ var hoverId = (featureProperties == null || (_featureProperties$va = featureProperties.values_) == null ? void 0 : _featureProperties$va.originalId) || (featureProperties == null ? void 0 : featureProperties.originalId);
7557
+ var previousHoverId = usePrevious(hoverId);
7558
+ React.useEffect(function () {
7559
+ var _featureProperties$st;
7560
+ if (!linkedPanelId || hoverId === previousHoverId) {
7561
+ return;
7562
+ }
7563
+ if (!hoverLinkedFeature) {
7564
+ dispatch(genericActions.addSharedData({
7565
+ panelId: linkedPanelId,
7566
+ data: {
7567
+ hoverId: undefined
7568
+ }
7569
+ }));
7570
+ return;
7571
+ }
7572
+ var currentOpacity = (_featureProperties$st = featureProperties == null ? void 0 : featureProperties['stroke-width']) != null ? _featureProperties$st : 1;
7573
+ var increasedOpacity = Math.min(currentOpacity + 0.2, 1);
7574
+ hoverLinkedFeature.setProperties(Object.assign({}, featureProperties, {
7575
+ 'stroke-opacity': increasedOpacity
7576
+ }));
7577
+ dispatch(genericActions.addSharedData({
7578
+ panelId: linkedPanelId,
7579
+ data: {
7580
+ hoverId: hoverId
7581
+ }
7582
+ }));
7583
+ }, [hoverId, previousHoverId, hoverLinkedFeature, featureProperties, linkedPanelId, dispatch]);
7537
7584
  var prefetchTimespan = makePrefetchTimeSpan(timeSliderStartCenterEndTime, animationStartTime, animationEndTime, isAnimating);
7538
7585
  var layerIds = mapLayerIds.join();
7539
7586
  var refetchLayers = React.useCallback(function () {
@@ -7544,35 +7591,38 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7544
7591
  while (1) switch (_context.prev = _context.next) {
7545
7592
  case 0:
7546
7593
  if (!layerId) {
7547
- _context.next = 15;
7594
+ _context.next = 17;
7548
7595
  break;
7549
7596
  }
7550
- _context.prev = 1;
7551
7597
  wmLayer = getWMLayerById(layerId);
7552
7598
  if (!wmLayer) {
7553
7599
  console.warn('No wmLayer exists for layer id', layerId);
7554
7600
  }
7601
+ _context.prev = 3;
7555
7602
  _context.next = 6;
7556
7603
  return wmLayer.parseLayer(true);
7557
7604
  case 6:
7558
- layerInfo = getLayerUpdateInfo(wmLayer, mapId);
7559
- updateLayerInformation && updateLayerInformation(layerInfo);
7560
- _context.next = 13;
7605
+ _context.next = 11;
7561
7606
  break;
7562
- case 10:
7563
- _context.prev = 10;
7564
- _context.t0 = _context["catch"](1);
7607
+ case 8:
7608
+ _context.prev = 8;
7609
+ _context.t0 = _context["catch"](3);
7565
7610
  window.console.error(_context.t0);
7566
- case 13:
7567
- _context.next = 16;
7568
- break;
7611
+ case 11:
7612
+ _context.prev = 11;
7613
+ layerInfo = getLayerUpdateInfo(wmLayer, mapId);
7614
+ updateLayerInformation && updateLayerInformation(layerInfo);
7615
+ return _context.finish(11);
7569
7616
  case 15:
7617
+ _context.next = 18;
7618
+ break;
7619
+ case 17:
7570
7620
  console.warn('Not updating layer, something is wrong.', layerId);
7571
- case 16:
7621
+ case 18:
7572
7622
  case "end":
7573
7623
  return _context.stop();
7574
7624
  }
7575
- }, _callee, null, [[1, 10]]);
7625
+ }, _callee, null, [[3, 8, 11, 15]]);
7576
7626
  }));
7577
7627
  return function (_x) {
7578
7628
  return _ref2.apply(this, arguments);
@@ -7631,6 +7681,12 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7631
7681
  }
7632
7682
  return style;
7633
7683
  }, [isSearchDialogOpen]);
7684
+ var combinedLinkedFeatures = React.useMemo(function () {
7685
+ return {
7686
+ type: 'FeatureCollection',
7687
+ features: [].concat(linkedFeatures.features, linkedFormFeatures.features)
7688
+ };
7689
+ }, [linkedFeatures, linkedFormFeatures]);
7634
7690
  return jsx(TimeContext.Provider, {
7635
7691
  value: prefetchTimespan,
7636
7692
  children: jsxs(OpenLayersMapView, {
@@ -7638,6 +7694,7 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7638
7694
  isFocused: isActiveWindowId,
7639
7695
  isMouseWheelZoomEnabled: !isTimeScrollingEnabled,
7640
7696
  holdShiftToScroll: holdShiftToScroll,
7697
+ mapId: mapId,
7641
7698
  children: [jsxs("div", {
7642
7699
  style: layerDivStyle,
7643
7700
  children: [baseLayers.map(function (layer, zIndex) {
@@ -7673,7 +7730,7 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7673
7730
  }, "featurelayer-" + (layer == null ? void 0 : layer.id));
7674
7731
  }), jsx(OpenLayersFeatureLayer, {
7675
7732
  style: genericOpenLayersFeatureStyle,
7676
- featureCollection: linkedFeatures,
7733
+ featureCollection: combinedLinkedFeatures,
7677
7734
  zIndex: 4000,
7678
7735
  hoverSelect: hoverSelect
7679
7736
  }), jsx(OpenLayersGetFeatureInfo, {
@@ -7692,10 +7749,12 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7692
7749
  homeExtent: homeExtent
7693
7750
  }), (controls == null ? void 0 : controls.layerManagerAndLegend) && jsxs(Fragment, {
7694
7751
  children: [jsx(LayerManagerMapButtonConnect, {
7695
- mapId: mapId
7752
+ mapId: mapId,
7753
+ source: source
7696
7754
  }), jsx(LegendMapButtonConnect, {
7697
7755
  mapId: mapId,
7698
- multiLegend: controls == null ? void 0 : controls.multiLegend
7756
+ multiLegend: controls == null ? void 0 : controls.multiLegend,
7757
+ source: source
7699
7758
  })]
7700
7759
  }), (controls == null ? void 0 : controls.dimensionSelect) && jsx(MultiDimensionSelectMapButtonsConnect, {
7701
7760
  mapId: mapId
@@ -7706,7 +7765,7 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
7706
7765
  showMapId: true,
7707
7766
  mapId: mapId,
7708
7767
  multiLegend: controls == null ? void 0 : controls.multiLegend
7709
- }), (controls == null ? void 0 : controls.search) && jsx(SearchDialogConnect, {
7768
+ }), (controls == null ? void 0 : controls.search) && jsx(LocationSearchConnect, {
7710
7769
  mapId: mapId
7711
7770
  }), (controls == null ? void 0 : controls.getFeatureInfo) && jsx(GetFeatureInfoConnect, {
7712
7771
  showMapId: true,
@@ -9252,13 +9311,14 @@ var componentsLookUp = function componentsLookUp(_ref) {
9252
9311
  switch (componentType) {
9253
9312
  case 'Map':
9254
9313
  {
9255
- var _mapPreset$proj;
9314
+ var _mapPreset$proj, _mapPreset$proj2;
9256
9315
  var mapPreset = initialProps.mapPreset,
9257
9316
  mapControls = initialProps.mapControls,
9258
9317
  shouldDisplayDrawControls = initialProps.shouldDisplayDrawControls,
9259
9318
  displaySearchButtonInMap = initialProps.displaySearchButtonInMap;
9260
9319
  return jsx(ConfigurableMapConnect, Object.assign({}, mapPreset, {
9261
9320
  initialBbox: mapPreset == null || (_mapPreset$proj = mapPreset.proj) == null ? void 0 : _mapPreset$proj.bbox,
9321
+ srs: mapPreset == null || (_mapPreset$proj2 = mapPreset.proj) == null ? void 0 : _mapPreset$proj2.srs,
9262
9322
  id: id,
9263
9323
  "data-testid": "coreConfigurableMapConnect",
9264
9324
  displayGetFeatureInfoButtonInMap: true,
@@ -10063,4 +10123,4 @@ var LanguageSelect = function LanguageSelect(_ref) {
10063
10123
  });
10064
10124
  };
10065
10125
 
10066
- export { CORE_NAMESPACE, ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, MapViewConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SearchDialog, SearchDialogConnect, SentryRecordButton, SyncGroupViewerConnect, TimeSliderConnect, ZoomControlConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getLanguageFromLocalStorage, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, testLayers, useFetchServices, useUpdateTimeSpan, useUpdateTimestep };
10126
+ export { CORE_NAMESPACE, ConfigurableMapConnect, CoreI18nProvider, CoreStoreProvider, CoreThemeProvider, CoreThemeStoreProvider, DemoWrapper, DemoWrapperConnect, HarmonieTempAndPrecipPreset, LanguageSelect, LayerInfoButtonConnect, LayerInfoDialogConnect, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LegendConnect, LegendMapButtonConnect, LocationSearch, LocationSearchConnect, MapViewConnect, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, MyMapLocation, OlMapViewConnect, RouterWrapperConnect, SearchControlButtonConnect, SentryRecordButton, SyncGroupViewerConnect, TimeSliderConnect, ZoomControlConnect, componentsLookUp, coreTranslations, defaultBbox, defaultConfigurations, filterMapPresets, filterServices, filterTimeSeriesServices, getCenterOfLinkedFeature, getLanguageFromLocalStorage, languageLocalStorageKey, makeLayerInfoPayload, makePrefetchTimeSpan, saveLanguageToLocalStorage, testLayers, useFetchServices, useUpdateTimeSpan, useUpdateTimestep };