@opengeoweb/core 4.18.0 → 4.19.1

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 (33) hide show
  1. package/index.esm.js +777 -542
  2. package/index.umd.js +733 -499
  3. package/lib/components/LayerManager/BaseLayerRow/BaseLayerRow.d.ts +2 -0
  4. package/lib/components/LayerManager/BaseLayerRow/BaseLayers/BaseLayers.d.ts +2 -0
  5. package/lib/components/LayerManager/BaseLayerRow/BaseLayers/BaseLayersConnect.d.ts +2 -0
  6. package/lib/components/LayerManager/DescriptionRow/DescriptionRow.d.ts +2 -0
  7. package/lib/components/LayerManager/LayerContainerRow/LayerContainerRow.d.ts +2 -0
  8. package/lib/components/LayerManager/LayerContainerRow/LayerRow/ActivateLayer/ActivateLayer.d.ts +8 -2
  9. package/lib/components/LayerManager/LayerContainerRow/LayerRow/DeleteLayer/DeleteLayerConnect.d.ts +2 -0
  10. package/lib/components/LayerManager/LayerContainerRow/LayerRow/DragHandle/DragHandle.d.ts +3 -1
  11. package/lib/components/LayerManager/LayerContainerRow/LayerRow/EnableLayer/EnableLayerConnect.d.ts +2 -0
  12. package/lib/components/LayerManager/LayerContainerRow/LayerRow/LayerRowConnect.d.ts +2 -0
  13. package/lib/components/LayerManager/LayerContainerRow/LayerRow/Menubutton/MenuButton.d.ts +2 -0
  14. package/lib/components/LayerManager/LayerContainerRow/LayerRow/Menubutton/MenuButtonConnect.d.ts +2 -0
  15. package/lib/components/LayerManager/LayerContainerRow/LayerRow/OpacitySelect/OpacitySelect.d.ts +1 -0
  16. package/lib/components/LayerManager/LayerContainerRow/LayerRow/OpacitySelect/OpacitySelectConnect.d.ts +1 -0
  17. package/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderLayers.d.ts +1 -0
  18. package/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderLayersConnect.d.ts +1 -0
  19. package/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderStyles/RenderStyles.d.ts +2 -0
  20. package/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderStyles/RenderStylesConnect.d.ts +2 -0
  21. package/lib/components/LayerManager/LayerManager.d.ts +2 -0
  22. package/lib/components/LayerManager/LayerManagerUtils.d.ts +60 -0
  23. package/lib/components/LayerManager/LayerSelect/LayerSelectButtonConnect.d.ts +2 -0
  24. package/lib/components/TimeSlider/TimeSliderButtons/PlayButton/PlayButtonConnect.d.ts +8 -2
  25. package/lib/index.d.ts +10 -2
  26. package/lib/store/generic/index.d.ts +2 -0
  27. package/lib/store/generic/synchronizationGroups/index.d.ts +1 -0
  28. package/lib/store/generic/synchronizationGroups/selectors.d.ts +1 -0
  29. package/lib/store/generic/synchronizationGroups/types.d.ts +5 -1
  30. package/lib/store/mapStore/map/reducer.d.ts +22 -0
  31. package/lib/store/mapStore/map/sagas.d.ts +2 -1
  32. package/lib/store/router/utils.d.ts +1 -1
  33. package/package.json +11 -10
package/index.esm.js CHANGED
@@ -6,9 +6,9 @@ import React__default, { Component, useRef, useState, useEffect, useCallback } f
6
6
  import _, { debounce, isEqual, compact, escapeRegExp, groupBy, throttle, range } from 'lodash';
7
7
  import { takeLatest, put, select, call, takeEvery, all, delay } from 'redux-saga/effects';
8
8
  import { connect, useDispatch, useSelector, Provider } from 'react-redux';
9
- import { CustomTooltip, ToolButton, ToolContainerDraggable, TooltipSelect, AlertIcon, useControlledTooltip, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, CustomAccordion, ManagerButton, AlertBanner, calculateDialogSizeAndPosition, CustomToggleButton, useMakeSureContainerStaysInsideWindow, withEggs } from '@opengeoweb/shared';
10
- import { Pause, Play, CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, Add, Copy, None, Both, Visibility, VisibilityOff, Delete, DragHandle as DragHandle$1, Cached, Filter, Search, Clear, Info, DimensionsOther, DimensionsElevation, DimensionsRefTime, DimensionsTime, Edit, Close, Home, Minus, Layers, Equalizer, Link, LinkOff, AutoUpdateActive, AutoUpdateInActive, Speed, FastForward, Clock, Now, Animation, Options, StepForward, StepBackward, dragHandlePath, ChevronDown, ChevronUp, List as List$1, ChevronRight, ChevronLeft, Resize, ExitDomain, ThemeWrapper, lightTheme } from '@opengeoweb/theme';
11
- import { Paper, Box, Typography, IconButton, Grid, MenuItem, Button, Popper, ListItemText, ListItemIcon, FormControl, InputLabel, List, ListItem, CircularProgress, ListSubheader, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, DialogActions, LinearProgress, InputAdornment, Backdrop, ListItemSecondaryAction, Checkbox, Switch, styled, Slider, Menu, useTheme, Snackbar } from '@mui/material';
9
+ import { CustomTooltip, ToolButton, ToolContainerDraggable, CustomIconButton, TooltipSelect, AlertIcon, useControlledTooltip, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, CustomAccordion, AlertBanner, calculateDialogSizeAndPosition, CustomToggleButton, useMakeSureContainerStaysInsideWindow, withEggs } from '@opengeoweb/shared';
10
+ import { Pause, Play, CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, Add, Copy, None, FastForward, AutoUpdateActive, Both, Visibility, VisibilityOff, Delete, DragHandle as DragHandle$1, Cached, Filter, Search, Clear, Info, DimensionsOther, DimensionsElevation, DimensionsRefTime, DimensionsTime, Edit, Close, Home, Minus, Layers, Equalizer, Link, LinkOff, AutoUpdateInActive, Speed, Clock, Now, Animation, Options, StepForward, StepBackward, dragHandlePath, ChevronDown, ChevronUp, List as List$1, ChevronRight, ChevronLeft, Resize, ExitDomain, ThemeWrapper, lightTheme } from '@opengeoweb/theme';
11
+ import { Paper, Box, Typography, Grid, MenuItem, Button, Popper, ListItemText, ListItemIcon, FormControl, InputLabel, List, ListItemButton, CircularProgress, ListSubheader, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, InputAdornment, DialogActions, LinearProgress, Backdrop, ListItem, ListItemSecondaryAction, Checkbox, Switch, styled, Slider, Menu, useTheme, Snackbar } from '@mui/material';
12
12
  import { legendImageStore, WMImageEventType, getLegendGraphicURLForLayer, WMGetServiceFromStore, LayerType as LayerType$1, clearImageCache, getMapImageStore, WMBBOX, debug, DebugType, WMJSMap, WMLayer } from '@opengeoweb/webmap';
13
13
  import { ReactSortable } from 'react-sortablejs';
14
14
  import Sortable from 'sortablejs';
@@ -19,6 +19,7 @@ import Grid$1 from '@mui/material/Grid';
19
19
  import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
20
20
  import { useFormContext } from 'react-hook-form';
21
21
  import { Box as Box$2 } from '@mui/system';
22
+ import { useResizeDetector } from 'react-resize-detector';
22
23
  import { debounce as debounce$1 } from 'throttle-debounce';
23
24
  import cloneDeep from 'lodash.clonedeep';
24
25
  import proj4 from 'proj4';
@@ -513,8 +514,10 @@ var unRegisterWMJSMap = function unRegisterWMJSMap(wmjsMapId) {
513
514
  wmjsMap.getListener().suspendEvents();
514
515
 
515
516
  try {
516
- wmjsMap.stopAnimating && wmjsMap.stopAnimating(); // eslint-disable-next-line no-empty
517
- } catch (e) {}
517
+ wmjsMap.stopAnimating && wmjsMap.stopAnimating();
518
+ } catch (e) {
519
+ console.warn(e);
520
+ }
518
521
 
519
522
  Object.keys(registeredWMLayersForReactLayerId).forEach(function (layerId) {
520
523
  var wmLayer = getWMLayerById(layerId);
@@ -967,8 +970,8 @@ var useCanvasTarget = function useCanvasTarget(eventType) {
967
970
  setTargetNode = _React$useState2[1]; // Check if pointer event targets current node element
968
971
 
969
972
 
970
- var pointerEventListener = React__default.useCallback(function (e) {
971
- setTargetNode(nodeRef.current.canvas ? nodeRef.current.canvas.isEqualNode(e.target) : false);
973
+ var pointerEventListener = React__default.useCallback(function (event) {
974
+ setTargetNode(nodeRef.current.canvas ? nodeRef.current.canvas.isEqualNode(event.target) : false);
972
975
  }, [nodeRef]);
973
976
  React__default.useEffect(function () {
974
977
  document.addEventListener(eventType, pointerEventListener);
@@ -2646,10 +2649,34 @@ var slice$5 = createSlice({
2646
2649
  map.autoUpdateLayerId = undefined;
2647
2650
  }
2648
2651
  },
2649
- setTimeSliderCenterTime: function setTimeSliderCenterTime(draft, action) {
2652
+ setAutoTimestepLayerId: function setAutoTimestepLayerId(draft, action) {
2650
2653
  var _action$payload10 = action.payload,
2651
2654
  mapId = _action$payload10.mapId,
2652
- timeSliderCenterTime = _action$payload10.timeSliderCenterTime;
2655
+ autoTimestepLayerId = _action$payload10.autoTimestepLayerId;
2656
+ var map = draft.byId[mapId];
2657
+
2658
+ if (!map) {
2659
+ return;
2660
+ }
2661
+
2662
+ map.autoTimeStepLayerId = autoTimestepLayerId;
2663
+ },
2664
+ setAutoUpdateLayerId: function setAutoUpdateLayerId(draft, action) {
2665
+ var _action$payload11 = action.payload,
2666
+ mapId = _action$payload11.mapId,
2667
+ autoUpdateLayerId = _action$payload11.autoUpdateLayerId;
2668
+ var map = draft.byId[mapId];
2669
+
2670
+ if (!map) {
2671
+ return;
2672
+ }
2673
+
2674
+ map.autoUpdateLayerId = autoUpdateLayerId;
2675
+ },
2676
+ setTimeSliderCenterTime: function setTimeSliderCenterTime(draft, action) {
2677
+ var _action$payload12 = action.payload,
2678
+ mapId = _action$payload12.mapId,
2679
+ timeSliderCenterTime = _action$payload12.timeSliderCenterTime;
2653
2680
 
2654
2681
  if (!draft.byId[mapId]) {
2655
2682
  return;
@@ -2658,9 +2685,9 @@ var slice$5 = createSlice({
2658
2685
  draft.byId[mapId].timeSliderCenterTime = timeSliderCenterTime;
2659
2686
  },
2660
2687
  setTimeSliderUnfilteredSelectedTime: function setTimeSliderUnfilteredSelectedTime(draft, action) {
2661
- var _action$payload11 = action.payload,
2662
- mapId = _action$payload11.mapId,
2663
- timeSliderUnfilteredSelectedTime = _action$payload11.timeSliderUnfilteredSelectedTime;
2688
+ var _action$payload13 = action.payload,
2689
+ mapId = _action$payload13.mapId,
2690
+ timeSliderUnfilteredSelectedTime = _action$payload13.timeSliderUnfilteredSelectedTime;
2664
2691
 
2665
2692
  if (!draft.byId[mapId]) {
2666
2693
  return;
@@ -2669,9 +2696,9 @@ var slice$5 = createSlice({
2669
2696
  draft.byId[mapId].timeSliderUnfilteredSelectedTime = timeSliderUnfilteredSelectedTime;
2670
2697
  },
2671
2698
  setTimeSliderSecondsPerPx: function setTimeSliderSecondsPerPx(draft, action) {
2672
- var _action$payload12 = action.payload,
2673
- mapId = _action$payload12.mapId,
2674
- timeSliderSecondsPerPx = _action$payload12.timeSliderSecondsPerPx;
2699
+ var _action$payload14 = action.payload,
2700
+ mapId = _action$payload14.mapId,
2701
+ timeSliderSecondsPerPx = _action$payload14.timeSliderSecondsPerPx;
2675
2702
 
2676
2703
  if (!draft.byId[mapId]) {
2677
2704
  return;
@@ -2683,9 +2710,9 @@ var slice$5 = createSlice({
2683
2710
  draft.byId[mapId].timeSliderScale = scale;
2684
2711
  },
2685
2712
  setTimeSliderDataScaleToSecondsPerPx: function setTimeSliderDataScaleToSecondsPerPx(draft, action) {
2686
- var _action$payload13 = action.payload,
2687
- mapId = _action$payload13.mapId,
2688
- timeSliderDataScaleToSecondsPerPx = _action$payload13.timeSliderDataScaleToSecondsPerPx;
2713
+ var _action$payload15 = action.payload,
2714
+ mapId = _action$payload15.mapId,
2715
+ timeSliderDataScaleToSecondsPerPx = _action$payload15.timeSliderDataScaleToSecondsPerPx;
2689
2716
 
2690
2717
  if (!draft.byId[mapId]) {
2691
2718
  return;
@@ -2694,9 +2721,9 @@ var slice$5 = createSlice({
2694
2721
  draft.byId[mapId].timeSliderDataScaleToSecondsPerPx = timeSliderDataScaleToSecondsPerPx;
2695
2722
  },
2696
2723
  toggleAutoUpdate: function toggleAutoUpdate(draft, action) {
2697
- var _action$payload14 = action.payload,
2698
- mapId = _action$payload14.mapId,
2699
- shouldAutoUpdate = _action$payload14.shouldAutoUpdate;
2724
+ var _action$payload16 = action.payload,
2725
+ mapId = _action$payload16.mapId,
2726
+ shouldAutoUpdate = _action$payload16.shouldAutoUpdate;
2700
2727
 
2701
2728
  if (!draft.byId[mapId]) {
2702
2729
  return;
@@ -2705,9 +2732,9 @@ var slice$5 = createSlice({
2705
2732
  draft.byId[mapId].isAutoUpdating = shouldAutoUpdate;
2706
2733
  },
2707
2734
  setEndTimeOverriding: function setEndTimeOverriding(draft, action) {
2708
- var _action$payload15 = action.payload,
2709
- mapId = _action$payload15.mapId,
2710
- shouldEndtimeOverride = _action$payload15.shouldEndtimeOverride;
2735
+ var _action$payload17 = action.payload,
2736
+ mapId = _action$payload17.mapId,
2737
+ shouldEndtimeOverride = _action$payload17.shouldEndtimeOverride;
2711
2738
 
2712
2739
  if (!draft.byId[mapId]) {
2713
2740
  return;
@@ -2716,9 +2743,9 @@ var slice$5 = createSlice({
2716
2743
  draft.byId[mapId].isEndTimeOverriding = shouldEndtimeOverride;
2717
2744
  },
2718
2745
  toggleTimestepAuto: function toggleTimestepAuto(draft, action) {
2719
- var _action$payload16 = action.payload,
2720
- mapId = _action$payload16.mapId,
2721
- timestepAuto = _action$payload16.timestepAuto;
2746
+ var _action$payload18 = action.payload,
2747
+ mapId = _action$payload18.mapId,
2748
+ timestepAuto = _action$payload18.timestepAuto;
2722
2749
 
2723
2750
  if (!draft.byId[mapId]) {
2724
2751
  return;
@@ -2727,9 +2754,9 @@ var slice$5 = createSlice({
2727
2754
  draft.byId[mapId].isTimestepAuto = timestepAuto;
2728
2755
  },
2729
2756
  toggleTimeSliderHover: function toggleTimeSliderHover(draft, action) {
2730
- var _action$payload17 = action.payload,
2731
- mapId = _action$payload17.mapId,
2732
- isTimeSliderHoverOn = _action$payload17.isTimeSliderHoverOn;
2757
+ var _action$payload19 = action.payload,
2758
+ mapId = _action$payload19.mapId,
2759
+ isTimeSliderHoverOn = _action$payload19.isTimeSliderHoverOn;
2733
2760
 
2734
2761
  if (!draft.byId[mapId]) {
2735
2762
  return;
@@ -2738,9 +2765,9 @@ var slice$5 = createSlice({
2738
2765
  draft.byId[mapId].isTimeSliderHoverOn = isTimeSliderHoverOn;
2739
2766
  },
2740
2767
  toggleTimeSliderIsVisible: function toggleTimeSliderIsVisible(draft, action) {
2741
- var _action$payload18 = action.payload,
2742
- mapId = _action$payload18.mapId,
2743
- isTimeSliderVisible = _action$payload18.isTimeSliderVisible;
2768
+ var _action$payload20 = action.payload,
2769
+ mapId = _action$payload20.mapId,
2770
+ isTimeSliderVisible = _action$payload20.isTimeSliderVisible;
2744
2771
 
2745
2772
  if (!draft.byId[mapId]) {
2746
2773
  return;
@@ -2749,9 +2776,9 @@ var slice$5 = createSlice({
2749
2776
  draft.byId[mapId].isTimeSliderVisible = isTimeSliderVisible;
2750
2777
  },
2751
2778
  toggleZoomControls: function toggleZoomControls(draft, action) {
2752
- var _action$payload19 = action.payload,
2753
- mapId = _action$payload19.mapId,
2754
- shouldShowZoomControls = _action$payload19.shouldShowZoomControls;
2779
+ var _action$payload21 = action.payload,
2780
+ mapId = _action$payload21.mapId,
2781
+ shouldShowZoomControls = _action$payload21.shouldShowZoomControls;
2755
2782
 
2756
2783
  if (!draft.byId[mapId]) {
2757
2784
  return;
@@ -2760,9 +2787,9 @@ var slice$5 = createSlice({
2760
2787
  draft.byId[mapId].shouldShowZoomControls = shouldShowZoomControls;
2761
2788
  },
2762
2789
  setMapPinLocation: function setMapPinLocation(draft, action) {
2763
- var _action$payload20 = action.payload,
2764
- mapId = _action$payload20.mapId,
2765
- mapPinLocation = _action$payload20.mapPinLocation;
2790
+ var _action$payload22 = action.payload,
2791
+ mapId = _action$payload22.mapId,
2792
+ mapPinLocation = _action$payload22.mapPinLocation;
2766
2793
 
2767
2794
  if (!draft.byId[mapId]) {
2768
2795
  return;
@@ -2771,9 +2798,9 @@ var slice$5 = createSlice({
2771
2798
  draft.byId[mapId].mapPinLocation = mapPinLocation;
2772
2799
  },
2773
2800
  setDisableMapPin: function setDisableMapPin(draft, action) {
2774
- var _action$payload21 = action.payload,
2775
- mapId = _action$payload21.mapId,
2776
- disableMapPin = _action$payload21.disableMapPin;
2801
+ var _action$payload23 = action.payload,
2802
+ mapId = _action$payload23.mapId,
2803
+ disableMapPin = _action$payload23.disableMapPin;
2777
2804
 
2778
2805
  if (!draft.byId[mapId]) {
2779
2806
  return;
@@ -2782,9 +2809,9 @@ var slice$5 = createSlice({
2782
2809
  draft.byId[mapId].disableMapPin = disableMapPin;
2783
2810
  },
2784
2811
  toggleMapPinIsVisible: function toggleMapPinIsVisible(draft, action) {
2785
- var _action$payload22 = action.payload,
2786
- mapId = _action$payload22.mapId,
2787
- displayMapPin = _action$payload22.displayMapPin;
2812
+ var _action$payload24 = action.payload,
2813
+ mapId = _action$payload24.mapId,
2814
+ displayMapPin = _action$payload24.displayMapPin;
2788
2815
 
2789
2816
  if (!draft.byId[mapId]) {
2790
2817
  return;
@@ -2793,9 +2820,9 @@ var slice$5 = createSlice({
2793
2820
  draft.byId[mapId].displayMapPin = displayMapPin;
2794
2821
  },
2795
2822
  setDockedLayerManagerSize: function setDockedLayerManagerSize(draft, action) {
2796
- var _action$payload23 = action.payload,
2797
- mapId = _action$payload23.mapId,
2798
- dockedLayerManagerSize = _action$payload23.dockedLayerManagerSize;
2823
+ var _action$payload25 = action.payload,
2824
+ mapId = _action$payload25.mapId,
2825
+ dockedLayerManagerSize = _action$payload25.dockedLayerManagerSize;
2799
2826
 
2800
2827
  if (!draft.byId[mapId]) {
2801
2828
  return;
@@ -2806,9 +2833,9 @@ var slice$5 = createSlice({
2806
2833
  },
2807
2834
  extraReducers: function extraReducers(builder) {
2808
2835
  builder.addCase(addLayer$1, function (draft, action) {
2809
- var _action$payload24 = action.payload,
2810
- layerId = _action$payload24.layerId,
2811
- mapId = _action$payload24.mapId;
2836
+ var _action$payload26 = action.payload,
2837
+ layerId = _action$payload26.layerId,
2838
+ mapId = _action$payload26.mapId;
2812
2839
 
2813
2840
  if (!draft.byId[mapId]) {
2814
2841
  return;
@@ -2826,10 +2853,10 @@ var slice$5 = createSlice({
2826
2853
 
2827
2854
  draft.byId[mapId].mapLayers.unshift(layerId);
2828
2855
  }).addCase(addBaseLayer, function (draft, action) {
2829
- var _action$payload25 = action.payload,
2830
- layer = _action$payload25.layer,
2831
- layerId = _action$payload25.layerId,
2832
- mapId = _action$payload25.mapId;
2856
+ var _action$payload27 = action.payload,
2857
+ layer = _action$payload27.layer,
2858
+ layerId = _action$payload27.layerId,
2859
+ mapId = _action$payload27.mapId;
2833
2860
 
2834
2861
  if (!draft.byId[mapId]) {
2835
2862
  return;
@@ -2896,9 +2923,9 @@ var slice$5 = createSlice({
2896
2923
  }
2897
2924
  }
2898
2925
  }).addCase(setBaseLayers$1, function (draft, action) {
2899
- var _action$payload26 = action.payload,
2900
- layers = _action$payload26.layers,
2901
- mapId = _action$payload26.mapId; // Split into base and overlayers
2926
+ var _action$payload28 = action.payload,
2927
+ layers = _action$payload28.layers,
2928
+ mapId = _action$payload28.mapId; // Split into base and overlayers
2902
2929
 
2903
2930
  var baseLayers = [];
2904
2931
  var overLayers = [];
@@ -2930,9 +2957,9 @@ var slice$5 = createSlice({
2930
2957
  }
2931
2958
  }
2932
2959
  }).addCase(layerDelete$1, function (draft, action) {
2933
- var _action$payload27 = action.payload,
2934
- mapId = _action$payload27.mapId,
2935
- layerId = _action$payload27.layerId;
2960
+ var _action$payload29 = action.payload,
2961
+ mapId = _action$payload29.mapId,
2962
+ layerId = _action$payload29.layerId;
2936
2963
  var map = draft.byId[mapId];
2937
2964
 
2938
2965
  if (!map) {
@@ -2960,9 +2987,9 @@ var slice$5 = createSlice({
2960
2987
  map.autoTimeStepLayerId = activeLayerId;
2961
2988
  }
2962
2989
  }).addCase(baseLayerDelete, function (draft, action) {
2963
- var _action$payload28 = action.payload,
2964
- mapId = _action$payload28.mapId,
2965
- layerId = _action$payload28.layerId;
2990
+ var _action$payload30 = action.payload,
2991
+ mapId = _action$payload30.mapId,
2992
+ layerId = _action$payload30.layerId;
2966
2993
 
2967
2994
  if (!draft.byId[mapId]) {
2968
2995
  return;
@@ -2975,14 +3002,14 @@ var slice$5 = createSlice({
2975
3002
  return id !== layerId;
2976
3003
  });
2977
3004
  }).addCase(layerChangeDimension$1, function (draft, action) {
2978
- var _action$payload29 = action.payload,
2979
- layerId = _action$payload29.layerId,
2980
- dimension = _action$payload29.dimension;
3005
+ var _action$payload31 = action.payload,
3006
+ layerId = _action$payload31.layerId,
3007
+ dimension = _action$payload31.dimension;
2981
3008
  produceDraftStateSetMapDimensionFromLayerChangeDimension(draft, layerId, dimension);
2982
3009
  }).addCase(setTimeSync, function (draft, action) {
2983
- var _action$payload30 = action.payload,
2984
- targetsFromAction = _action$payload30.targets,
2985
- source = _action$payload30.source;
3010
+ var _action$payload32 = action.payload,
3011
+ targetsFromAction = _action$payload32.targets,
3012
+ source = _action$payload32.source;
2986
3013
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
2987
3014
 
2988
3015
  var targets = [{
@@ -3006,9 +3033,9 @@ var slice$5 = createSlice({
3006
3033
  }
3007
3034
  });
3008
3035
  }).addCase(setBboxSync, function (draft, action) {
3009
- var _action$payload31 = action.payload,
3010
- targetsFromAction = _action$payload31.targets,
3011
- source = _action$payload31.source;
3036
+ var _action$payload33 = action.payload,
3037
+ targetsFromAction = _action$payload33.targets,
3038
+ source = _action$payload33.source;
3012
3039
  /* Because we want backwards compatibility with the previous code, we also need to listen to the original source action */
3013
3040
 
3014
3041
  var targets = [{
@@ -3041,9 +3068,9 @@ var slice$5 = createSlice({
3041
3068
  * These targets can be used as payloads in new Layer actions.
3042
3069
  * These actions are here handled via the layer reducer, as it is the same logic
3043
3070
  */
3044
- var _action$payload32 = action.payload,
3045
- targets = _action$payload32.targets,
3046
- source = _action$payload32.source;
3071
+ var _action$payload34 = action.payload,
3072
+ targets = _action$payload34.targets,
3073
+ source = _action$payload34.source;
3047
3074
  return targets.reduce(function (prevState, target) {
3048
3075
  var action = {
3049
3076
  payload: target,
@@ -3063,9 +3090,9 @@ var slice$5 = createSlice({
3063
3090
  var mapAction = mapActions$1.mapUpdateAllMapDimensions(mapDimensions);
3064
3091
  return reducer$5(draft, mapAction);
3065
3092
  }).addCase(mapChangeDimension, function (draft, action) {
3066
- var _action$payload33 = action.payload,
3067
- mapId = _action$payload33.mapId,
3068
- dimensionFromAction = _action$payload33.dimension;
3093
+ var _action$payload35 = action.payload,
3094
+ mapId = _action$payload35.mapId,
3095
+ dimensionFromAction = _action$payload35.dimension;
3069
3096
  produceDraftStateSetWebMapDimension(draft, mapId, dimensionFromAction, true);
3070
3097
  }).addCase(setMapPreset, function (draft, action) {
3071
3098
  var mapId = action.payload.mapId;
@@ -3087,9 +3114,9 @@ var slice$5 = createSlice({
3087
3114
  draft.byId[mapId].animationDelay = defaultAnimationDelayAtStart;
3088
3115
  draft.byId[mapId].dockedLayerManagerSize = '';
3089
3116
  }).addCase(uiActions.registerDialog, function (draft, action) {
3090
- var _action$payload34 = action.payload,
3091
- mapId = _action$payload34.mapId,
3092
- type = _action$payload34.type;
3117
+ var _action$payload36 = action.payload,
3118
+ mapId = _action$payload36.mapId,
3119
+ type = _action$payload36.type;
3093
3120
 
3094
3121
  if (!draft.byId[mapId]) {
3095
3122
  return;
@@ -3424,7 +3451,7 @@ var getDimensionLayerIds = createSelector(getLayersIds, getLayersById, function
3424
3451
  }, []);
3425
3452
  }, selectorMemoizationOptions);
3426
3453
 
3427
- var selectors$3 = /*#__PURE__*/Object.freeze({
3454
+ var selectors$4 = /*#__PURE__*/Object.freeze({
3428
3455
  __proto__: null,
3429
3456
  getLayerById: getLayerById,
3430
3457
  getLayersById: getLayersById,
@@ -3592,7 +3619,7 @@ var getDialogFocused = createSelector(getDialogDetailsByType, function (details)
3592
3619
  return details && details.focused || false;
3593
3620
  });
3594
3621
 
3595
- var selectors$2 = /*#__PURE__*/Object.freeze({
3622
+ var selectors$3 = /*#__PURE__*/Object.freeze({
3596
3623
  __proto__: null,
3597
3624
  getUiStore: getUiStore,
3598
3625
  getDialogDetailsByType: getDialogDetailsByType,
@@ -3989,6 +4016,154 @@ var types$1 = /*#__PURE__*/Object.freeze({
3989
4016
  get SyncGroupActionOrigin () { return SyncGroupActionOrigin; }
3990
4017
  });
3991
4018
 
4019
+ /* *
4020
+ * Licensed under the Apache License, Version 2.0 (the "License");
4021
+ * you may not use this file except in compliance with the License.
4022
+ * You may obtain a copy of the License at
4023
+ *
4024
+ * http://www.apache.org/licenses/LICENSE-2.0
4025
+ *
4026
+ * Unless required by applicable law or agreed to in writing, software
4027
+ * distributed under the License is distributed on an "AS IS" BASIS,
4028
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4029
+ * See the License for the specific language governing permissions and
4030
+ * limitations under the License.
4031
+ *
4032
+ * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
4033
+ * Copyright 2020 - Finnish Meteorological Institute (FMI)
4034
+ * */
4035
+ var syncGroupStore = function syncGroupStore(store) {
4036
+ return store.syncronizationGroupStore || null;
4037
+ };
4038
+ /**
4039
+ * Gets synchronization group state
4040
+ *
4041
+ * Example: synchronizationGroupState = getSynchronizationGroupState(store)
4042
+ * @param {object} store store: object - Store object
4043
+ * @returns {object} returnType: SynchronizationGroupState
4044
+ */
4045
+
4046
+ var getSynchronizationGroupState = createSelector(syncGroupStore, function (store) {
4047
+ return store || null;
4048
+ });
4049
+ var getSynchronizationGroup = function getSynchronizationGroup(state, id) {
4050
+ return syncGroupStore(state).groups.byId[id];
4051
+ };
4052
+ var getSynchronizationGroupSource = function getSynchronizationGroupSource(state, id) {
4053
+ return syncGroupStore(state).sources.byId[id];
4054
+ };
4055
+ var getTargets = function getTargets(state, payload, actionType) {
4056
+ var actionPayloads = [];
4057
+ var targetsInActionPayload = {};
4058
+ var syncronizationGroupStore = syncGroupStore(state);
4059
+ /* All the groups the source is member of */
4060
+
4061
+ if (syncronizationGroupStore && payload) {
4062
+ /* Backwards compatibility, if there are no groups, connect everything */
4063
+ if (syncronizationGroupStore.groups.allIds.length === 0) {
4064
+ syncronizationGroupStore.sources.allIds.forEach(function (targetId) {
4065
+ // Only add if should react to this action
4066
+ if (syncronizationGroupStore.sources.byId[targetId].types.includes(actionType)) {
4067
+ /* Remember that we have already added this target in the action payloads, prevents adding it twice */
4068
+ targetsInActionPayload[targetId] = true;
4069
+ /* Compose the payload */
4070
+
4071
+ var newPayload = Object.assign({
4072
+ targetId: targetId
4073
+ }, payload);
4074
+ actionPayloads.push(newPayload);
4075
+ }
4076
+ });
4077
+ }
4078
+
4079
+ syncronizationGroupStore.groups.allIds.forEach(function (id) {
4080
+ var syncronizationGroup = syncronizationGroupStore.groups.byId[id];
4081
+
4082
+ if (actionType === syncronizationGroup.type) {
4083
+ /* Check if the source is in the target list of the synchonizationGroup */
4084
+ var source = syncronizationGroup.targets.byId[payload.sourceId];
4085
+ /* If the source is part of the target list, and is linked, continue syncing the other targets */
4086
+
4087
+ if (source && source.linked) {
4088
+ syncronizationGroup.targets.allIds.forEach(function (targetId) {
4089
+ var target = syncronizationGroup.targets.byId[targetId];
4090
+
4091
+ if (target.linked && !targetsInActionPayload[targetId]) {
4092
+ /* Remember that we have already added this target in the action payloads, prevents adding it twice */
4093
+ targetsInActionPayload[targetId] = true;
4094
+ /* Compose the payload */
4095
+
4096
+ var newPayload = Object.assign({
4097
+ targetId: targetId
4098
+ }, payload);
4099
+ actionPayloads.push(newPayload);
4100
+ }
4101
+ });
4102
+ }
4103
+ }
4104
+ });
4105
+ }
4106
+
4107
+ return actionPayloads;
4108
+ };
4109
+ var getTargetGroups = function getTargetGroups(state, payload, actionType) {
4110
+ var syncronizationGroupStore = syncGroupStore(state);
4111
+ var groups = syncronizationGroupStore.groups.allIds.reduce(function (list, groupId) {
4112
+ var syncronizationGroup = syncronizationGroupStore.groups.byId[groupId];
4113
+
4114
+ if (actionType === syncronizationGroup.type) {
4115
+ /* Check if the source is in the target list of the synchronizationGroup */
4116
+ var source = syncronizationGroup.targets.byId[payload.sourceId];
4117
+ /* If the source is part of the target list, and is linked, continue syncin the other targets */
4118
+
4119
+ if (source && source.linked) {
4120
+ return list.concat(groupId);
4121
+ }
4122
+ }
4123
+
4124
+ return list;
4125
+ }, []);
4126
+ return groups;
4127
+ };
4128
+ var getAllTargetGroupsForSource = function getAllTargetGroupsForSource(state, sourceId) {
4129
+ var syncronizationGroupStore = syncGroupStore(state);
4130
+
4131
+ if (syncronizationGroupStore === null || syncronizationGroupStore === void 0 ? void 0 : syncronizationGroupStore.groups) {
4132
+ return syncronizationGroupStore.groups.allIds.reduce(function (linkedSyncGroupIds, groupId) {
4133
+ var syncronizationGroup = syncronizationGroupStore.groups.byId[groupId];
4134
+ var source = syncronizationGroup.targets.byId[sourceId];
4135
+ /* If the source is part of the target list, and is linked, continue syncin the other targets */
4136
+
4137
+ if (source && source.linked) {
4138
+ return linkedSyncGroupIds.concat(groupId);
4139
+ }
4140
+
4141
+ return linkedSyncGroupIds;
4142
+ }, []);
4143
+ }
4144
+
4145
+ return [];
4146
+ };
4147
+ var syncGroupGetViewState = createSelector(syncGroupStore, function (store) {
4148
+ return store.viewState;
4149
+ });
4150
+ var getSyncedMapIdsForTimeslider = createSelector(syncGroupStore, function (store) {
4151
+ return store.viewState.timeslider.groups[0].selected;
4152
+ }, selectorMemoizationOptions);
4153
+
4154
+ var selectors$2 = /*#__PURE__*/Object.freeze({
4155
+ __proto__: null,
4156
+ syncGroupStore: syncGroupStore,
4157
+ getSynchronizationGroupState: getSynchronizationGroupState,
4158
+ getSynchronizationGroup: getSynchronizationGroup,
4159
+ getSynchronizationGroupSource: getSynchronizationGroupSource,
4160
+ getTargets: getTargets,
4161
+ getTargetGroups: getTargetGroups,
4162
+ getAllTargetGroupsForSource: getAllTargetGroupsForSource,
4163
+ syncGroupGetViewState: syncGroupGetViewState,
4164
+ getSyncedMapIdsForTimeslider: getSyncedMapIdsForTimeslider
4165
+ });
4166
+
3992
4167
  /* *
3993
4168
  * Licensed under the Apache License, Version 2.0 (the "License");
3994
4169
  * you may not use this file except in compliance with the License.
@@ -4011,7 +4186,8 @@ var index = /*#__PURE__*/Object.freeze({
4011
4186
  actions: actions,
4012
4187
  constants: constants,
4013
4188
  types: types$1,
4014
- initialState: initialState$4
4189
+ initialState: initialState$4,
4190
+ syncGroupsSelectors: selectors$2
4015
4191
  });
4016
4192
 
4017
4193
  /* *
@@ -5582,119 +5758,6 @@ var slice = createSlice({
5582
5758
  var reducer = slice.reducer;
5583
5759
  var appActions = slice.actions;
5584
5760
 
5585
- /* *
5586
- * Licensed under the Apache License, Version 2.0 (the "License");
5587
- * you may not use this file except in compliance with the License.
5588
- * You may obtain a copy of the License at
5589
- *
5590
- * http://www.apache.org/licenses/LICENSE-2.0
5591
- *
5592
- * Unless required by applicable law or agreed to in writing, software
5593
- * distributed under the License is distributed on an "AS IS" BASIS,
5594
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5595
- * See the License for the specific language governing permissions and
5596
- * limitations under the License.
5597
- *
5598
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
5599
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
5600
- * */
5601
- var syncGroupStore = function syncGroupStore(store) {
5602
- return store.syncronizationGroupStore || null;
5603
- };
5604
- /**
5605
- * Gets synchronization group state
5606
- *
5607
- * Example: synchronizationGroupState = getSynchronizationGroupState(store)
5608
- * @param {object} store store: object - Store object
5609
- * @returns {object} returnType: SynchronizationGroupState
5610
- */
5611
-
5612
- var getSynchronizationGroupState = createSelector(syncGroupStore, function (store) {
5613
- return store || null;
5614
- });
5615
- var getSynchronizationGroup = function getSynchronizationGroup(state, id) {
5616
- return syncGroupStore(state).groups.byId[id];
5617
- };
5618
- var getTargets = function getTargets(state, payload, actionType) {
5619
- var actionPayloads = [];
5620
- var targetsInActionPayload = {};
5621
- var syncronizationGroupStore = syncGroupStore(state);
5622
- /* All the groups the source is member of */
5623
-
5624
- if (syncronizationGroupStore && payload) {
5625
- /* Backwards compatibility, if there are no groups, connect everything */
5626
- if (syncronizationGroupStore.groups.allIds.length === 0) {
5627
- syncronizationGroupStore.sources.allIds.forEach(function (targetId) {
5628
- // Only add if should react to this action
5629
- if (syncronizationGroupStore.sources.byId[targetId].types.includes(actionType)) {
5630
- /* Remember that we have already added this target in the action payloads, prevents adding it twice */
5631
- targetsInActionPayload[targetId] = true;
5632
- /* Compose the payload */
5633
-
5634
- var newPayload = Object.assign({
5635
- targetId: targetId
5636
- }, payload);
5637
- actionPayloads.push(newPayload);
5638
- }
5639
- });
5640
- }
5641
-
5642
- syncronizationGroupStore.groups.allIds.forEach(function (id) {
5643
- var syncronizationGroup = syncronizationGroupStore.groups.byId[id];
5644
-
5645
- if (actionType === syncronizationGroup.type) {
5646
- /* Check if the source is in the target list of the synchonizationGroup */
5647
- var source = syncronizationGroup.targets.byId[payload.sourceId];
5648
- /* If the source is part of the target list, and is linked, continue syncing the other targets */
5649
-
5650
- if (source && source.linked) {
5651
- syncronizationGroup.targets.allIds.forEach(function (targetId) {
5652
- var target = syncronizationGroup.targets.byId[targetId];
5653
-
5654
- if (target.linked && !targetsInActionPayload[targetId]) {
5655
- /* Remember that we have already added this target in the action payloads, prevents adding it twice */
5656
- targetsInActionPayload[targetId] = true;
5657
- /* Compose the payload */
5658
-
5659
- var newPayload = Object.assign({
5660
- targetId: targetId
5661
- }, payload);
5662
- actionPayloads.push(newPayload);
5663
- }
5664
- });
5665
- }
5666
- }
5667
- });
5668
- }
5669
-
5670
- return actionPayloads;
5671
- };
5672
- var getTargetGroups = function getTargetGroups(state, payload, actionType) {
5673
- var syncronizationGroupStore = syncGroupStore(state);
5674
- var groups = syncronizationGroupStore.groups.allIds.reduce(function (list, groupId) {
5675
- var syncronizationGroup = syncronizationGroupStore.groups.byId[groupId];
5676
-
5677
- if (actionType === syncronizationGroup.type) {
5678
- /* Check if the source is in the target list of the synchronizationGroup */
5679
- var source = syncronizationGroup.targets.byId[payload.sourceId];
5680
- /* If the source is part of the target list, and it linked, continue syncin the other targets */
5681
-
5682
- if (source && source.linked) {
5683
- return list.concat(groupId);
5684
- }
5685
- }
5686
-
5687
- return list;
5688
- }, []);
5689
- return groups;
5690
- };
5691
- var syncGroupGetViewState = createSelector(syncGroupStore, function (store) {
5692
- return store.viewState;
5693
- });
5694
- var getSyncedMapIdsForTimeslider = createSelector(syncGroupStore, function (store) {
5695
- return store.viewState.timeslider.groups[0].selected;
5696
- }, selectorMemoizationOptions);
5697
-
5698
5761
  /* *
5699
5762
  * Licensed under the Apache License, Version 2.0 (the "License");
5700
5763
  * you may not use this file except in compliance with the License.
@@ -7944,7 +8007,7 @@ var CanvasComponent = /*#__PURE__*/function (_Component) {
7944
8007
  }]);
7945
8008
 
7946
8009
  return CanvasComponent;
7947
- }(Component); // eslint-disable-next-line react/static-property-placement
8010
+ }(Component);
7948
8011
  CanvasComponent.defaultProps = {
7949
8012
  onRenderCanvas: function onRenderCanvas() {
7950
8013
  /* intentionally left blank */
@@ -9909,10 +9972,6 @@ var coreModuleConfig = [moduleConfig, synchronizationGroupConfig, uiModuleConfig
9909
9972
  * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
9910
9973
  * Copyright 2023 - Finnish Meteorological Institute (FMI)
9911
9974
  * */
9912
- var iconStyle = {
9913
- height: 24,
9914
- width: 24
9915
- };
9916
9975
  var sizeSmall = {
9917
9976
  width: 100,
9918
9977
  height: 300
@@ -9949,43 +10008,31 @@ var HeaderOptions = function HeaderOptions(_ref) {
9949
10008
  document.removeEventListener('keydown', handleKeyDown);
9950
10009
  };
9951
10010
  }, [onChangeSize, shortcutsEnabled]);
9952
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomTooltip, {
9953
- title: "small"
9954
- }, /*#__PURE__*/React.createElement(IconButton, {
10011
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomIconButton, {
10012
+ tooltipTitle: "small",
9955
10013
  "data-testid": "collapseSmall-btn",
9956
- size: "small",
9957
10014
  onClick: function onClick() {
9958
10015
  return onChangeSize(sizeSmall);
9959
10016
  },
9960
- sx: iconStyle,
9961
10017
  className: "collapseSmall-btn"
9962
- }, /*#__PURE__*/React.createElement(CollapseSmall, null))), /*#__PURE__*/React.createElement(CustomTooltip, {
9963
- title: "medium"
9964
- }, /*#__PURE__*/React.createElement(IconButton, {
10018
+ }, /*#__PURE__*/React.createElement(CollapseSmall, null)), /*#__PURE__*/React.createElement(CustomIconButton, {
10019
+ tooltipTitle: "medium",
9965
10020
  "data-testid": "collapseMedium-btn",
9966
- size: "small",
9967
10021
  onClick: function onClick() {
9968
10022
  return onChangeSize(sizeMedium);
9969
10023
  },
9970
- sx: iconStyle,
9971
10024
  className: "collapseMedium-btn"
9972
- }, /*#__PURE__*/React.createElement(CollapseMedium, null))), /*#__PURE__*/React.createElement(CustomTooltip, {
9973
- title: "large"
9974
- }, /*#__PURE__*/React.createElement(IconButton, {
10025
+ }, /*#__PURE__*/React.createElement(CollapseMedium, null)), /*#__PURE__*/React.createElement(CustomIconButton, {
10026
+ tooltipTitle: "large",
9975
10027
  "data-testid": "collapseLarge-btn",
9976
- size: "small",
9977
10028
  onClick: function onClick() {
9978
10029
  return onChangeSize(sizeLarge);
9979
10030
  },
9980
- sx: iconStyle,
9981
10031
  className: "collapseLarge-btn"
9982
- }, /*#__PURE__*/React.createElement(CollapseLarge, null))), /*#__PURE__*/React.createElement(CustomTooltip, {
9983
- title: isDockedLayerManager ? 'Undock' : 'Dock'
9984
- }, /*#__PURE__*/React.createElement(IconButton, {
10032
+ }, /*#__PURE__*/React.createElement(CollapseLarge, null)), /*#__PURE__*/React.createElement(CustomIconButton, {
10033
+ tooltipTitle: isDockedLayerManager ? 'Undock' : 'Dock',
9985
10034
  "data-testid": "dockedBtn",
9986
10035
  disableRipple: true,
9987
- size: "small",
9988
- sx: iconStyle,
9989
10036
  onClick: function onClick() {
9990
10037
  return onClickDockButton();
9991
10038
  }
@@ -9993,7 +10040,7 @@ var HeaderOptions = function HeaderOptions(_ref) {
9993
10040
  "data-testid": "dockedLayerManager-collapse"
9994
10041
  }) : /*#__PURE__*/React.createElement(ExpandWindow, {
9995
10042
  "data-testid": "dockedLayerManager-uncollapse"
9996
- }))));
10043
+ })));
9997
10044
  };
9998
10045
 
9999
10046
  /* *
@@ -10200,20 +10247,24 @@ var returnCorrectSize = function returnCorrectSize(sizeResult) {
10200
10247
  * See the License for the specific language governing permissions and
10201
10248
  * limitations under the License.
10202
10249
  *
10203
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
10204
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
10250
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
10251
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
10205
10252
  * */
10206
10253
  var style$2 = {
10207
- width: '24px',
10208
- height: '24px',
10209
- margin: 'auto 0px auto 32px',
10210
- borderRadius: '15%'
10254
+ padding: 0,
10255
+ margin: 'auto 0px auto 32px'
10211
10256
  };
10212
10257
 
10213
10258
  var LayerSelectButtonConnect = function LayerSelectButtonConnect(_ref) {
10214
10259
  var mapId = _ref.mapId,
10215
10260
  _ref$source = _ref.source,
10216
- source = _ref$source === void 0 ? 'app' : _ref$source;
10261
+ source = _ref$source === void 0 ? 'app' : _ref$source,
10262
+ _ref$tooltipTitle = _ref.tooltipTitle,
10263
+ tooltipTitle = _ref$tooltipTitle === void 0 ? 'Open the layer selector' : _ref$tooltipTitle,
10264
+ _ref$icon = _ref.icon,
10265
+ icon = _ref$icon === void 0 ? /*#__PURE__*/React.createElement(Add, {
10266
+ "data-testid": "layerSelectButtonConnectIcon"
10267
+ }) : _ref$icon;
10217
10268
  var dispatch = useDispatch();
10218
10269
  var currentActiveMapId = useSelector(function (store) {
10219
10270
  return getDialogMapId(store, DialogTypes.LayerSelect);
@@ -10229,16 +10280,13 @@ var LayerSelectButtonConnect = function LayerSelectButtonConnect(_ref) {
10229
10280
  source: source
10230
10281
  }));
10231
10282
  }, [currentActiveMapId, dispatch, isOpenInStore, mapId, source]);
10232
- return /*#__PURE__*/React.createElement(CustomTooltip, {
10233
- title: "Open the layer selector"
10234
- }, /*#__PURE__*/React.createElement(IconButton, {
10283
+ return /*#__PURE__*/React.createElement(CustomIconButton, {
10235
10284
  onClick: openLayerSelectDialog,
10236
10285
  sx: style$2,
10237
10286
  id: "layerSelectButton",
10238
10287
  "data-testid": "layerSelectButton",
10239
- disableRipple: true,
10240
- size: "large"
10241
- }, /*#__PURE__*/React.createElement(Add, null)));
10288
+ tooltipTitle: tooltipTitle
10289
+ }, icon);
10242
10290
  };
10243
10291
 
10244
10292
  var styles$4 = {
@@ -10254,7 +10302,10 @@ var DescriptionRow = function DescriptionRow(_ref) {
10254
10302
  var mapId = _ref.mapId,
10255
10303
  mapPresetsModule = _ref.mapPresetsModule,
10256
10304
  _ref$source = _ref.source,
10257
- source = _ref$source === void 0 ? 'app' : _ref$source;
10305
+ source = _ref$source === void 0 ? 'app' : _ref$source,
10306
+ settings = _ref.settings;
10307
+
10308
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
10258
10309
 
10259
10310
  var _React$useState = React.useState(mapPresetsModule ? Object.assign(Object.assign({}, mapPresetsModule), {
10260
10311
  props: Object.assign(Object.assign({}, mapPresetsModule.props), {
@@ -10279,13 +10330,15 @@ var DescriptionRow = function DescriptionRow(_ref) {
10279
10330
  className: columnClasses.column1
10280
10331
  }, /*#__PURE__*/React.createElement(LayerSelectButtonConnect, {
10281
10332
  mapId: mapId,
10282
- source: source
10333
+ source: source,
10334
+ tooltipTitle: (_a = settings === null || settings === void 0 ? void 0 : settings.addLayer) === null || _a === void 0 ? void 0 : _a.tooltipTitle,
10335
+ icon: (_b = settings === null || settings === void 0 ? void 0 : settings.addLayer) === null || _b === void 0 ? void 0 : _b.icon
10283
10336
  })), /*#__PURE__*/React.createElement(Grid, {
10284
10337
  className: columnClasses.column2
10285
10338
  }, /*#__PURE__*/React.createElement(Box, {
10286
10339
  className: "header-layer ".concat(hasMapPresetsModule ? 'mappresetsModule-enabled' : ''),
10287
10340
  sx: styles$4.text
10288
- }, "Layer"), /*#__PURE__*/React.createElement(Box, {
10341
+ }, (_d = (_c = settings === null || settings === void 0 ? void 0 : settings.layerName) === null || _c === void 0 ? void 0 : _c.title) !== null && _d !== void 0 ? _d : 'Layer'), /*#__PURE__*/React.createElement(Box, {
10289
10342
  className: "header-mapPresets",
10290
10343
  sx: {
10291
10344
  marginRight: 4
@@ -10294,15 +10347,15 @@ var DescriptionRow = function DescriptionRow(_ref) {
10294
10347
  className: columnClasses.column3
10295
10348
  }, /*#__PURE__*/React.createElement(Box, {
10296
10349
  sx: styles$4.text
10297
- }, "Style")), /*#__PURE__*/React.createElement(Grid, {
10350
+ }, (_f = (_e = settings === null || settings === void 0 ? void 0 : settings.layerStyle) === null || _e === void 0 ? void 0 : _e.title) !== null && _f !== void 0 ? _f : 'Style')), /*#__PURE__*/React.createElement(Grid, {
10298
10351
  className: columnClasses.column4
10299
10352
  }, /*#__PURE__*/React.createElement(Box, {
10300
10353
  sx: styles$4.text
10301
- }, "Opacity")), /*#__PURE__*/React.createElement(Grid, {
10354
+ }, (_h = (_g = settings === null || settings === void 0 ? void 0 : settings.opacity) === null || _g === void 0 ? void 0 : _g.title) !== null && _h !== void 0 ? _h : 'Opacity')), /*#__PURE__*/React.createElement(Grid, {
10302
10355
  className: columnClasses.column5
10303
10356
  }, /*#__PURE__*/React.createElement(Box, {
10304
10357
  sx: styles$4.text
10305
- }, "Dimensions")), /*#__PURE__*/React.createElement(Grid, {
10358
+ }, (_k = (_j = settings === null || settings === void 0 ? void 0 : settings.dimensions) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : 'Dimensions')), /*#__PURE__*/React.createElement(Grid, {
10306
10359
  className: columnClasses.column6
10307
10360
  }));
10308
10361
  };
@@ -10506,7 +10559,9 @@ var RenderLayers = function RenderLayers(_ref) {
10506
10559
  _ref$layers = _ref.layers,
10507
10560
  layers = _ref$layers === void 0 ? [] : _ref$layers,
10508
10561
  _ref$isEnabled = _ref.isEnabled,
10509
- isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled;
10562
+ isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,
10563
+ _ref$tooltipPrefix = _ref.tooltipPrefix,
10564
+ tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Layer: ' : _ref$tooltipPrefix;
10510
10565
 
10511
10566
  var _a;
10512
10567
 
@@ -10547,7 +10602,7 @@ var RenderLayers = function RenderLayers(_ref) {
10547
10602
  });
10548
10603
  return /*#__PURE__*/React.createElement(TooltipSelect, {
10549
10604
  disableUnderline: true,
10550
- tooltip: "Layer: ".concat((_a = extendedLayers[currentIndex]) === null || _a === void 0 ? void 0 : _a.title),
10605
+ tooltip: "".concat(tooltipPrefix).concat((_a = extendedLayers[currentIndex]) === null || _a === void 0 ? void 0 : _a.title),
10551
10606
  inputProps: {
10552
10607
  SelectDisplayProps: {
10553
10608
  'data-testid': 'selectLayer'
@@ -10616,7 +10671,9 @@ var OpacitySelect = function OpacitySelect(_ref) {
10616
10671
  var currentOpacity = _ref.currentOpacity,
10617
10672
  onLayerChangeOpacity = _ref.onLayerChangeOpacity,
10618
10673
  _ref$isEnabled = _ref.isEnabled,
10619
- isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled;
10674
+ isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,
10675
+ _ref$tooltipPrefix = _ref.tooltipPrefix,
10676
+ tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Opacity: ' : _ref$tooltipPrefix;
10620
10677
 
10621
10678
  var _useControlledTooltip = useControlledTooltip(),
10622
10679
  _useControlledTooltip2 = _slicedToArray(_useControlledTooltip, 2),
@@ -10681,7 +10738,7 @@ var OpacitySelect = function OpacitySelect(_ref) {
10681
10738
  height: 32
10682
10739
  }
10683
10740
  }, /*#__PURE__*/React.createElement(CustomTooltip, {
10684
- title: "Opacity: ".concat(currentOpacityText),
10741
+ title: "".concat(tooltipPrefix).concat(currentOpacityText),
10685
10742
  sx: tooltipContainerStyles(isEnabled),
10686
10743
  placement: "top",
10687
10744
  open: tooltipOpen
@@ -10764,7 +10821,10 @@ var OpacitySelect = function OpacitySelect(_ref) {
10764
10821
  var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
10765
10822
  var mapId = _ref.mapId,
10766
10823
  layerId = _ref.layerId,
10767
- onLayerDuplicate = _ref.onLayerDuplicate;
10824
+ onLayerDuplicate = _ref.onLayerDuplicate,
10825
+ _ref$tooltipTitle = _ref.tooltipTitle,
10826
+ tooltipTitle = _ref$tooltipTitle === void 0 ? 'Options' : _ref$tooltipTitle,
10827
+ icon = _ref.icon;
10768
10828
 
10769
10829
  var onClickDuplicate = function onClickDuplicate() {
10770
10830
  onLayerDuplicate({
@@ -10788,7 +10848,8 @@ var LayerManagerMenuButton = function LayerManagerMenuButton(_ref) {
10788
10848
  action: onClickDuplicate,
10789
10849
  icon: /*#__PURE__*/React.createElement(Copy, null)
10790
10850
  }],
10791
- tooltipTitle: "Options"
10851
+ tooltipTitle: tooltipTitle,
10852
+ buttonIcon: icon
10792
10853
  });
10793
10854
  };
10794
10855
 
@@ -10797,7 +10858,10 @@ var RenderStyles = function RenderStyles(_ref) {
10797
10858
  currentLayerStyle = _ref.currentLayerStyle,
10798
10859
  onChangeLayerStyle = _ref.onChangeLayerStyle,
10799
10860
  _ref$isEnabled = _ref.isEnabled,
10800
- isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled;
10861
+ isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,
10862
+ icon = _ref.icon,
10863
+ _ref$tooltipPrefix = _ref.tooltipPrefix,
10864
+ tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Style: ' : _ref$tooltipPrefix;
10801
10865
 
10802
10866
  var _a;
10803
10867
 
@@ -10828,7 +10892,7 @@ var RenderStyles = function RenderStyles(_ref) {
10828
10892
  return currentStyle === style.name;
10829
10893
  });
10830
10894
  return /*#__PURE__*/React.createElement(TooltipSelect, {
10831
- tooltip: "Style: ".concat((_a = styles[currentIndex]) === null || _a === void 0 ? void 0 : _a.title),
10895
+ tooltip: "".concat(tooltipPrefix).concat((_a = styles[currentIndex]) === null || _a === void 0 ? void 0 : _a.title),
10832
10896
  inputProps: {
10833
10897
  SelectDisplayProps: {
10834
10898
  'data-testid': 'selectStyle'
@@ -10842,7 +10906,8 @@ var RenderStyles = function RenderStyles(_ref) {
10842
10906
  onChangeMouseWheel: function onChangeMouseWheel(e) {
10843
10907
  return onChangeLayerStyle(e.value);
10844
10908
  },
10845
- requiresCtrlToChange: true
10909
+ requiresCtrlToChange: true,
10910
+ IconComponent: icon
10846
10911
  }, /*#__PURE__*/React.createElement(MenuItem, {
10847
10912
  disabled: true
10848
10913
  }, "Style"), styles.map(function (styleFromlayer) {
@@ -10882,13 +10947,22 @@ var getIconColor = function getIconColor(isActive, isEnabled) {
10882
10947
  return 'geowebColors.buttons.flat.disabled.color';
10883
10948
  };
10884
10949
 
10950
+ var AutoOptions;
10951
+
10952
+ (function (AutoOptions) {
10953
+ AutoOptions["BOTH"] = "Auto both";
10954
+ AutoOptions["NONE"] = "Auto none";
10955
+ AutoOptions["TIMESTEP"] = "Auto-timestep";
10956
+ AutoOptions["UPDATE"] = "Auto-update";
10957
+ })(AutoOptions || (AutoOptions = {}));
10958
+
10885
10959
  var ActivateLayer = function ActivateLayer(_ref) {
10886
10960
  var _onChange = _ref.onChange,
10887
- isActive = _ref.isActive,
10888
- isEnabled = _ref.isEnabled;
10961
+ isEnabled = _ref.isEnabled,
10962
+ current = _ref.current;
10889
10963
  return /*#__PURE__*/React.createElement(TooltipSelect, {
10890
10964
  variant: "standard",
10891
- tooltip: "Auto update",
10965
+ tooltip: "Leading layer",
10892
10966
  // Don't show arrow https://stackoverflow.com/questions/69085735/how-to-remove-arrow-from-react-textfield-select
10893
10967
  inputProps: {
10894
10968
  IconComponent: function IconComponent() {
@@ -10896,7 +10970,7 @@ var ActivateLayer = function ActivateLayer(_ref) {
10896
10970
  },
10897
10971
  tabIndex: -1
10898
10972
  },
10899
- value: isActive ? 'Both' : 'None',
10973
+ value: current,
10900
10974
  sx: {
10901
10975
  '&& .MuiInput-input': {
10902
10976
  paddingRight: '2px',
@@ -10904,30 +10978,39 @@ var ActivateLayer = function ActivateLayer(_ref) {
10904
10978
  backgroundColor: 'inherit'
10905
10979
  }
10906
10980
  },
10907
- renderValue: function renderValue(optionSelected) {
10981
+ renderValue: function renderValue(current) {
10908
10982
  return /*#__PURE__*/React.createElement(AutoUpdateButton$1, {
10909
- optionSelected: optionSelected,
10910
- isActive: isActive,
10983
+ current: current,
10911
10984
  isEnabled: isEnabled
10912
10985
  });
10913
10986
  },
10914
10987
  onChange: function onChange(event) {
10915
10988
  event.stopPropagation();
10916
10989
 
10917
- _onChange(event.target.value === 'Both');
10990
+ _onChange(event.target.value);
10918
10991
  },
10919
10992
  onClose: function onClose(event) {
10920
10993
  event.stopPropagation();
10921
10994
  }
10922
10995
  }, /*#__PURE__*/React.createElement(MenuItem, {
10923
10996
  disabled: true
10924
- }, "Auto-update"), /*#__PURE__*/React.createElement(MenuItem, {
10925
- value: "None"
10997
+ }, "Leading layer"), /*#__PURE__*/React.createElement(MenuItem, {
10998
+ value: AutoOptions.NONE
10926
10999
  }, /*#__PURE__*/React.createElement(AutoOption, {
10927
11000
  icon: /*#__PURE__*/React.createElement(None, null),
10928
11001
  text: "None"
10929
11002
  })), /*#__PURE__*/React.createElement(MenuItem, {
10930
- value: "Both"
11003
+ value: AutoOptions.TIMESTEP
11004
+ }, /*#__PURE__*/React.createElement(AutoOption, {
11005
+ icon: /*#__PURE__*/React.createElement(FastForward, null),
11006
+ text: "Auto-timestep"
11007
+ })), /*#__PURE__*/React.createElement(MenuItem, {
11008
+ value: AutoOptions.UPDATE
11009
+ }, /*#__PURE__*/React.createElement(AutoOption, {
11010
+ icon: /*#__PURE__*/React.createElement(AutoUpdateActive, null),
11011
+ text: "Auto-update"
11012
+ })), /*#__PURE__*/React.createElement(MenuItem, {
11013
+ value: AutoOptions.BOTH
10931
11014
  }, /*#__PURE__*/React.createElement(AutoOption, {
10932
11015
  icon: /*#__PURE__*/React.createElement(Both, null),
10933
11016
  text: "Both"
@@ -10935,20 +11018,13 @@ var ActivateLayer = function ActivateLayer(_ref) {
10935
11018
  };
10936
11019
 
10937
11020
  var AutoUpdateButton$1 = function AutoUpdateButton(_ref2) {
10938
- var optionSelected = _ref2.optionSelected,
10939
- isActive = _ref2.isActive,
11021
+ var current = _ref2.current,
10940
11022
  isEnabled = _ref2.isEnabled;
10941
- var style = {
10942
- color: getIconColor(isActive, isEnabled)
10943
- };
10944
- var Icon = isActive ? /*#__PURE__*/React.createElement(Both, {
10945
- sx: style
10946
- }) : /*#__PURE__*/React.createElement(None, {
10947
- sx: style
10948
- });
11023
+ var isActive = current !== AutoOptions.NONE;
11024
+ var Icon = getIcon(isActive, isEnabled, current);
10949
11025
  return /*#__PURE__*/React.createElement(ToolButton, {
11026
+ "aria-label": current,
10950
11027
  "data-testid": "activateLayer-btn",
10951
- "aria-label": "Auto update ".concat(optionSelected),
10952
11028
  sx: {
10953
11029
  '&.MuiButtonBase-root': {
10954
11030
  backgroundColor: 'inherit'
@@ -10973,6 +11049,34 @@ var AutoOption = function AutoOption(_ref3) {
10973
11049
  }, text), /*#__PURE__*/React.createElement(ListItemIcon, null, icon));
10974
11050
  };
10975
11051
 
11052
+ function getIcon(isActive, isEnabled, current) {
11053
+ var style = {
11054
+ color: getIconColor(isActive, isEnabled)
11055
+ };
11056
+
11057
+ if (current === AutoOptions.BOTH) {
11058
+ return /*#__PURE__*/React.createElement(Both, {
11059
+ sx: style
11060
+ });
11061
+ }
11062
+
11063
+ if (current === AutoOptions.TIMESTEP) {
11064
+ return /*#__PURE__*/React.createElement(FastForward, {
11065
+ sx: style
11066
+ });
11067
+ }
11068
+
11069
+ if (current === AutoOptions.UPDATE) {
11070
+ return /*#__PURE__*/React.createElement(AutoUpdateActive, {
11071
+ sx: style
11072
+ });
11073
+ }
11074
+
11075
+ return /*#__PURE__*/React.createElement(None, {
11076
+ sx: style
11077
+ });
11078
+ }
11079
+
10976
11080
  /* *
10977
11081
  * Licensed under the Apache License, Version 2.0 (the "License");
10978
11082
  * you may not use this file except in compliance with the License.
@@ -10986,8 +11090,8 @@ var AutoOption = function AutoOption(_ref3) {
10986
11090
  * See the License for the specific language governing permissions and
10987
11091
  * limitations under the License.
10988
11092
  *
10989
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
10990
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
11093
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
11094
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
10991
11095
  * */
10992
11096
 
10993
11097
  var LayerRow = function LayerRow(_ref) {
@@ -11040,9 +11144,9 @@ var LayerRow = function LayerRow(_ref) {
11040
11144
  },
11041
11145
  '&.sortable-ghost': {
11042
11146
  opacity: 0.5
11043
- },
11044
- alignItems: 'center'
11045
- }
11147
+ }
11148
+ },
11149
+ alignItems: "center"
11046
11150
  }, /*#__PURE__*/React__default.createElement(CustomAccordion, {
11047
11151
  className: "medium-layermanager",
11048
11152
  defaultExpanded: false,
@@ -11057,8 +11161,8 @@ var LayerRow = function LayerRow(_ref) {
11057
11161
  padding: 0
11058
11162
  }
11059
11163
  },
11060
- title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, dragHandle, layerEnableLayout || /*#__PURE__*/React__default.createElement(ManagerButton, {
11061
- isEnabled: layer.enabled,
11164
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, dragHandle, layerEnableLayout || /*#__PURE__*/React__default.createElement(CustomIconButton, {
11165
+ shouldShowAsDisabled: !layer.enabled,
11062
11166
  tooltipTitle: layer.name,
11063
11167
  onClick: function onClick(event) {
11064
11168
  event.stopPropagation();
@@ -11067,11 +11171,10 @@ var LayerRow = function LayerRow(_ref) {
11067
11171
  enabled: !layer.enabled
11068
11172
  });
11069
11173
  },
11070
- "data-testid": "enableButton-medium",
11071
- icon: isEnabled ? /*#__PURE__*/React__default.createElement(Visibility, null) : /*#__PURE__*/React__default.createElement(VisibilityOff, null)
11072
- }), layerActiveLayout || /*#__PURE__*/React__default.createElement(ActivateLayer, {
11174
+ "data-testid": "enableButton-medium"
11175
+ }, isEnabled ? /*#__PURE__*/React__default.createElement(Visibility, null) : /*#__PURE__*/React__default.createElement(VisibilityOff, null)), layerActiveLayout || /*#__PURE__*/React__default.createElement(ActivateLayer, {
11176
+ current: AutoOptions.BOTH,
11073
11177
  onChange: onClickRow,
11074
- isActive: false,
11075
11178
  isEnabled: true
11076
11179
  }), /*#__PURE__*/React__default.createElement(Typography, {
11077
11180
  sx: {
@@ -11130,7 +11233,7 @@ var LayerRow = function LayerRow(_ref) {
11130
11233
  }, /*#__PURE__*/React__default.createElement(Grid, {
11131
11234
  item: true,
11132
11235
  sx: {}
11133
- }, layerDeleteLayout || /*#__PURE__*/React__default.createElement(ManagerButton, {
11236
+ }, layerDeleteLayout || /*#__PURE__*/React__default.createElement(CustomIconButton, {
11134
11237
  tooltipTitle: "Delete",
11135
11238
  onClick: function onClick() {
11136
11239
  onLayerDelete({
@@ -11138,13 +11241,13 @@ var LayerRow = function LayerRow(_ref) {
11138
11241
  layerId: layerId
11139
11242
  });
11140
11243
  },
11141
- icon: /*#__PURE__*/React__default.createElement(Delete, null),
11142
11244
  "data-testid": "deleteButton"
11143
- }))))), /*#__PURE__*/React__default.createElement(Grid, {
11245
+ }, /*#__PURE__*/React__default.createElement(Delete, null)))))), /*#__PURE__*/React__default.createElement(Grid, {
11144
11246
  item: true,
11145
- className: columnClasses.column1
11146
- }, dragHandle, layerEnableLayout || /*#__PURE__*/React__default.createElement(ManagerButton, {
11147
- isEnabled: layer.enabled,
11247
+ className: columnClasses.column1,
11248
+ alignItems: "center"
11249
+ }, dragHandle, layerEnableLayout || /*#__PURE__*/React__default.createElement(CustomIconButton, {
11250
+ shouldShowAsDisabled: !layer.enabled,
11148
11251
  tooltipTitle: layer.name,
11149
11252
  onClick: function onClick(event) {
11150
11253
  event.stopPropagation();
@@ -11153,11 +11256,10 @@ var LayerRow = function LayerRow(_ref) {
11153
11256
  enabled: !layer.enabled
11154
11257
  });
11155
11258
  },
11156
- icon: layer.enabled ? /*#__PURE__*/React__default.createElement(Visibility, null) : /*#__PURE__*/React__default.createElement(VisibilityOff, null),
11157
11259
  "data-testid": "enableButton"
11158
- }), layerActiveLayout || /*#__PURE__*/React__default.createElement(ActivateLayer, {
11260
+ }, layer.enabled ? /*#__PURE__*/React__default.createElement(Visibility, null) : /*#__PURE__*/React__default.createElement(VisibilityOff, null)), layerActiveLayout || /*#__PURE__*/React__default.createElement(ActivateLayer, {
11159
11261
  onChange: onClickRow,
11160
- isActive: false,
11262
+ current: AutoOptions.BOTH,
11161
11263
  isEnabled: true
11162
11264
  })), /*#__PURE__*/React__default.createElement(Grid, {
11163
11265
  item: true,
@@ -11220,8 +11322,9 @@ var LayerRow = function LayerRow(_ref) {
11220
11322
  }
11221
11323
  }))), /*#__PURE__*/React__default.createElement(Grid, {
11222
11324
  item: true,
11223
- className: columnClasses.column6
11224
- }, layerDeleteLayout || /*#__PURE__*/React__default.createElement(ManagerButton, {
11325
+ className: columnClasses.column6,
11326
+ alignItems: "center"
11327
+ }, layerDeleteLayout || /*#__PURE__*/React__default.createElement(CustomIconButton, {
11225
11328
  tooltipTitle: "Delete",
11226
11329
  onClick: function onClick() {
11227
11330
  onLayerDelete({
@@ -11229,9 +11332,8 @@ var LayerRow = function LayerRow(_ref) {
11229
11332
  layerId: layerId
11230
11333
  });
11231
11334
  },
11232
- icon: /*#__PURE__*/React__default.createElement(Delete, null),
11233
11335
  "data-testid": "deleteButton"
11234
- }), layerMenuLayout || /*#__PURE__*/React__default.createElement(LayerManagerMenuButton, {
11336
+ }, /*#__PURE__*/React__default.createElement(Delete, null)), layerMenuLayout || /*#__PURE__*/React__default.createElement(LayerManagerMenuButton, {
11235
11337
  mapId: mapId,
11236
11338
  layerId: layerId,
11237
11339
  onLayerDuplicate: onLayerDuplicate
@@ -11251,14 +11353,18 @@ var LayerRow = function LayerRow(_ref) {
11251
11353
  * See the License for the specific language governing permissions and
11252
11354
  * limitations under the License.
11253
11355
  *
11254
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
11255
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
11356
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
11357
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
11256
11358
  * */
11257
11359
 
11258
11360
  var DeleteLayerConnect = function DeleteLayerConnect(_ref) {
11259
11361
  var layerId = _ref.layerId,
11260
11362
  mapId = _ref.mapId,
11261
- layerIndex = _ref.layerIndex;
11363
+ layerIndex = _ref.layerIndex,
11364
+ _ref$tooltipTitle = _ref.tooltipTitle,
11365
+ tooltipTitle = _ref$tooltipTitle === void 0 ? 'Delete' : _ref$tooltipTitle,
11366
+ _ref$icon = _ref.icon,
11367
+ icon = _ref$icon === void 0 ? /*#__PURE__*/React.createElement(Delete, null) : _ref$icon;
11262
11368
  var dispatch = useDispatch();
11263
11369
  var layerDelete = React.useCallback(function (_ref2) {
11264
11370
  var mapId = _ref2.mapId,
@@ -11274,8 +11380,8 @@ var DeleteLayerConnect = function DeleteLayerConnect(_ref) {
11274
11380
  var isLayerEnabled = useSelector(function (store) {
11275
11381
  return getLayerEnabled(store, layerId);
11276
11382
  });
11277
- return /*#__PURE__*/React.createElement(ManagerButton, {
11278
- tooltipTitle: "Delete",
11383
+ return /*#__PURE__*/React.createElement(CustomIconButton, {
11384
+ tooltipTitle: tooltipTitle,
11279
11385
  onClick: function onClick() {
11280
11386
  layerDelete({
11281
11387
  mapId: mapId,
@@ -11283,10 +11389,9 @@ var DeleteLayerConnect = function DeleteLayerConnect(_ref) {
11283
11389
  layerIndex: layerIndex
11284
11390
  });
11285
11391
  },
11286
- isEnabled: isLayerEnabled,
11287
- icon: /*#__PURE__*/React.createElement(Delete, null),
11392
+ shouldShowAsDisabled: !isLayerEnabled,
11288
11393
  "data-testid": "deleteButton"
11289
- });
11394
+ }, icon);
11290
11395
  };
11291
11396
 
11292
11397
  /* *
@@ -11302,8 +11407,8 @@ var DeleteLayerConnect = function DeleteLayerConnect(_ref) {
11302
11407
  * See the License for the specific language governing permissions and
11303
11408
  * limitations under the License.
11304
11409
  *
11305
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
11306
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
11410
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
11411
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
11307
11412
  * */
11308
11413
 
11309
11414
  var EnableLayerConnect = function EnableLayerConnect(_ref) {
@@ -11312,7 +11417,10 @@ var EnableLayerConnect = function EnableLayerConnect(_ref) {
11312
11417
  _ref$isEnabled = _ref.isEnabled,
11313
11418
  isEnabled = _ref$isEnabled === void 0 ? false : _ref$isEnabled,
11314
11419
  _ref$layerName = _ref.layerName,
11315
- layerName = _ref$layerName === void 0 ? '' : _ref$layerName;
11420
+ layerName = _ref$layerName === void 0 ? '' : _ref$layerName,
11421
+ _ref$icon = _ref.icon,
11422
+ icon = _ref$icon === void 0 ? isEnabled ? /*#__PURE__*/React.createElement(Visibility, null) : /*#__PURE__*/React.createElement(VisibilityOff, null) : _ref$icon,
11423
+ tooltipTitle = _ref.tooltipTitle;
11316
11424
  var dispatch = useDispatch();
11317
11425
  var layerChangeEnabled = React.useCallback(function (_ref2) {
11318
11426
  var layerId = _ref2.layerId,
@@ -11324,9 +11432,11 @@ var EnableLayerConnect = function EnableLayerConnect(_ref) {
11324
11432
  origin: LayerActionOrigin.layerManager
11325
11433
  }));
11326
11434
  }, [dispatch, mapId]);
11327
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ManagerButton, {
11328
- isEnabled: isEnabled,
11329
- tooltipTitle: "Toggle visibility",
11435
+ var normalTooltip = tooltipTitle !== null && tooltipTitle !== void 0 ? tooltipTitle : 'Toggle visibility';
11436
+ var miniTooltip = tooltipTitle !== null && tooltipTitle !== void 0 ? tooltipTitle : layerName;
11437
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomIconButton, {
11438
+ shouldShowAsDisabled: !isEnabled,
11439
+ tooltipTitle: normalTooltip,
11330
11440
  onClick: function onClick(event) {
11331
11441
  event.stopPropagation();
11332
11442
  layerChangeEnabled({
@@ -11335,11 +11445,13 @@ var EnableLayerConnect = function EnableLayerConnect(_ref) {
11335
11445
  });
11336
11446
  },
11337
11447
  className: "enable-btn",
11338
- icon: isEnabled ? /*#__PURE__*/React.createElement(Visibility, null) : /*#__PURE__*/React.createElement(VisibilityOff, null),
11339
- "data-testid": "enableButton"
11340
- }), /*#__PURE__*/React.createElement(ManagerButton, {
11341
- isEnabled: isEnabled,
11342
- tooltipTitle: layerName,
11448
+ "data-testid": "enableButton",
11449
+ sx: {
11450
+ margin: 'auto 0px'
11451
+ }
11452
+ }, icon), /*#__PURE__*/React.createElement(CustomIconButton, {
11453
+ shouldShowAsDisabled: !isEnabled,
11454
+ tooltipTitle: miniTooltip,
11343
11455
  onClick: function onClick(event) {
11344
11456
  event.stopPropagation();
11345
11457
  layerChangeEnabled({
@@ -11348,9 +11460,11 @@ var EnableLayerConnect = function EnableLayerConnect(_ref) {
11348
11460
  });
11349
11461
  },
11350
11462
  className: "enable-btn-mini",
11351
- icon: isEnabled ? /*#__PURE__*/React.createElement(Visibility, null) : /*#__PURE__*/React.createElement(VisibilityOff, null),
11352
- "data-testid": "enableButton"
11353
- }));
11463
+ "data-testid": "enableButton",
11464
+ sx: {
11465
+ margin: 'auto 0px'
11466
+ }
11467
+ }, icon));
11354
11468
  };
11355
11469
 
11356
11470
  /* *
@@ -11372,7 +11486,8 @@ var EnableLayerConnect = function EnableLayerConnect(_ref) {
11372
11486
 
11373
11487
  var OpacitySelectConnect = function OpacitySelectConnect(_ref) {
11374
11488
  var layerId = _ref.layerId,
11375
- mapId = _ref.mapId;
11489
+ mapId = _ref.mapId,
11490
+ tooltipPrefix = _ref.tooltipPrefix;
11376
11491
  var dispatch = useDispatch();
11377
11492
  var opacity = useSelector(function (store) {
11378
11493
  return getLayerOpacity(store, layerId);
@@ -11390,7 +11505,8 @@ var OpacitySelectConnect = function OpacitySelectConnect(_ref) {
11390
11505
  origin: LayerActionOrigin.layerManager
11391
11506
  }));
11392
11507
  },
11393
- isEnabled: isLayerEnabled
11508
+ isEnabled: isLayerEnabled,
11509
+ tooltipPrefix: tooltipPrefix
11394
11510
  });
11395
11511
  };
11396
11512
 
@@ -11467,7 +11583,9 @@ var DimensionSelectConnect = function DimensionSelectConnect(_ref) {
11467
11583
 
11468
11584
  var RenderStylesConnect = function RenderStylesConnect(_ref) {
11469
11585
  var layerId = _ref.layerId,
11470
- mapId = _ref.mapId;
11586
+ mapId = _ref.mapId,
11587
+ icon = _ref.icon,
11588
+ tooltipPrefix = _ref.tooltipPrefix;
11471
11589
  var dispatch = useDispatch();
11472
11590
  var layerService = useSelector(function (store) {
11473
11591
  return getLayerService(store, layerId);
@@ -11496,7 +11614,9 @@ var RenderStylesConnect = function RenderStylesConnect(_ref) {
11496
11614
  layerStyles: layerStyles,
11497
11615
  currentLayerStyle: currentLayerStyle,
11498
11616
  onChangeLayerStyle: layerChangeStyle,
11499
- isEnabled: isLayerEnabled
11617
+ isEnabled: isLayerEnabled,
11618
+ icon: icon,
11619
+ tooltipPrefix: tooltipPrefix
11500
11620
  });
11501
11621
  };
11502
11622
 
@@ -11519,7 +11639,8 @@ var RenderStylesConnect = function RenderStylesConnect(_ref) {
11519
11639
 
11520
11640
  var RenderLayersConnect = function RenderLayersConnect(_ref) {
11521
11641
  var layerId = _ref.layerId,
11522
- mapId = _ref.mapId;
11642
+ mapId = _ref.mapId,
11643
+ tooltipPrefix = _ref.tooltipPrefix;
11523
11644
  var dispatch = useDispatch();
11524
11645
  var layerName = useSelector(function (store) {
11525
11646
  return getLayerName(store, layerId);
@@ -11603,7 +11724,8 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
11603
11724
  name: name
11604
11725
  });
11605
11726
  },
11606
- isEnabled: isLayerEnabled
11727
+ isEnabled: isLayerEnabled,
11728
+ tooltipPrefix: tooltipPrefix
11607
11729
  });
11608
11730
  };
11609
11731
 
@@ -11626,7 +11748,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
11626
11748
 
11627
11749
  var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref) {
11628
11750
  var layerId = _ref.layerId,
11629
- mapId = _ref.mapId;
11751
+ mapId = _ref.mapId,
11752
+ tooltipTitle = _ref.tooltipTitle,
11753
+ icon = _ref.icon;
11630
11754
  var dispatch = useDispatch();
11631
11755
  var layer = useSelector(function (store) {
11632
11756
  return getLayerById(store, layerId);
@@ -11651,7 +11775,9 @@ var LayerManagerMenuButtonConnect = function LayerManagerMenuButtonConnect(_ref)
11651
11775
  mapId: mapId,
11652
11776
  layer: layer
11653
11777
  });
11654
- }
11778
+ },
11779
+ tooltipTitle: tooltipTitle,
11780
+ icon: icon
11655
11781
  });
11656
11782
  };
11657
11783
 
@@ -11676,49 +11802,127 @@ var ActivateLayerConnect = function ActivateLayerConnect(_ref) {
11676
11802
  var layerId = _ref.layerId,
11677
11803
  mapId = _ref.mapId;
11678
11804
  var dispatch = useDispatch();
11679
- var activeLayerId = useSelector(function (store) {
11680
- return getActiveLayerId(store, mapId);
11805
+ var autoUpdateLayerId = useSelector(function (store) {
11806
+ return getAutoUpdateLayerId(store, mapId);
11807
+ });
11808
+ var autoTimestepLayerId = useSelector(function (store) {
11809
+ return getAutoTimeStepLayerId(store, mapId);
11681
11810
  });
11682
11811
  var isLayerEnabled = useSelector(function (store) {
11683
11812
  return getLayerEnabled(store, layerId);
11684
11813
  });
11685
- var setActiveLayerId = React.useCallback(function (_ref2) {
11686
- var layerId = _ref2.layerId,
11687
- mapId = _ref2.mapId;
11688
- return dispatch(mapActions$1.setAutoLayerId({
11814
+ var isAutoUpdating$1 = useSelector(function (store) {
11815
+ return isAutoUpdating(store, mapId);
11816
+ });
11817
+
11818
+ var goToLastAvailableTimeForLayerIfAutoUpdateIsOn = function goToLastAvailableTimeForLayerIfAutoUpdateIsOn() {
11819
+ if (isAutoUpdating$1) {
11820
+ dispatch(mapActions$1.toggleAutoUpdate({
11821
+ mapId: mapId,
11822
+ shouldAutoUpdate: true
11823
+ }));
11824
+ }
11825
+ };
11826
+
11827
+ var thisLayerHasAutoUpdate = layerId === autoUpdateLayerId;
11828
+ var thisLayerHasAutoTimestep = layerId === autoTimestepLayerId;
11829
+ var thisLayerHasBoth = thisLayerHasAutoTimestep && thisLayerHasAutoUpdate;
11830
+
11831
+ function handleNoneClick() {
11832
+ if (thisLayerHasBoth) {
11833
+ dispatch(mapActions$1.setAutoLayerId({
11834
+ autoTimeStepLayerId: undefined,
11835
+ autoUpdateLayerId: undefined,
11836
+ mapId: mapId,
11837
+ origin: LayerActionOrigin.layerManager
11838
+ }));
11839
+ } else if (thisLayerHasAutoTimestep) {
11840
+ dispatch(mapActions$1.setAutoTimestepLayerId({
11841
+ mapId: mapId,
11842
+ autoTimestepLayerId: undefined
11843
+ }));
11844
+ } else if (thisLayerHasAutoUpdate) {
11845
+ dispatch(mapActions$1.setAutoUpdateLayerId({
11846
+ mapId: mapId,
11847
+ autoUpdateLayerId: undefined
11848
+ }));
11849
+ }
11850
+ }
11851
+
11852
+ function handleBothClick() {
11853
+ dispatch(mapActions$1.setAutoLayerId({
11689
11854
  autoTimeStepLayerId: layerId,
11690
11855
  autoUpdateLayerId: layerId,
11691
11856
  mapId: mapId,
11692
11857
  origin: LayerActionOrigin.layerManager
11693
11858
  }));
11694
- }, [dispatch]);
11695
- var isAutoUpdating$1 = useSelector(function (store) {
11696
- return isAutoUpdating(store, mapId);
11697
- });
11698
- var setAutoUpdateOn = React.useCallback(function (mapId) {
11699
- return dispatch(mapActions$1.toggleAutoUpdate({
11859
+ goToLastAvailableTimeForLayerIfAutoUpdateIsOn();
11860
+ }
11861
+
11862
+ function handleAutoUpdateClick() {
11863
+ dispatch(mapActions$1.setAutoUpdateLayerId({
11700
11864
  mapId: mapId,
11701
- shouldAutoUpdate: true
11865
+ autoUpdateLayerId: layerId
11702
11866
  }));
11703
- }, [dispatch]);
11704
- var isActive = activeLayerId === layerId;
11705
- return /*#__PURE__*/React.createElement(ActivateLayer, {
11706
- onChange: function onChange(isActive) {
11707
- setActiveLayerId({
11867
+
11868
+ if (thisLayerHasAutoTimestep) {
11869
+ dispatch(mapActions$1.setAutoTimestepLayerId({
11708
11870
  mapId: mapId,
11709
- layerId: isActive ? layerId : undefined
11710
- });
11871
+ autoTimestepLayerId: undefined
11872
+ }));
11873
+ }
11874
+
11875
+ goToLastAvailableTimeForLayerIfAutoUpdateIsOn();
11876
+ }
11877
+
11878
+ function handleAutoTimestepClick() {
11879
+ dispatch(mapActions$1.setAutoTimestepLayerId({
11880
+ mapId: mapId,
11881
+ autoTimestepLayerId: layerId
11882
+ }));
11883
+
11884
+ if (thisLayerHasAutoUpdate) {
11885
+ dispatch(mapActions$1.setAutoUpdateLayerId({
11886
+ mapId: mapId,
11887
+ autoUpdateLayerId: undefined
11888
+ }));
11889
+ }
11890
+ }
11711
11891
 
11712
- if (isAutoUpdating$1) {
11713
- // Layer is now set active *and* autoupdate is currently on => autoupdate is desired to be set on.
11714
- setAutoUpdateOn(mapId);
11892
+ var current = getCurrentOptionForLayer(thisLayerHasBoth, thisLayerHasAutoTimestep, thisLayerHasAutoUpdate);
11893
+ return /*#__PURE__*/React.createElement(ActivateLayer, {
11894
+ current: current,
11895
+ onChange: function onChange(autoOption) {
11896
+ if (autoOption === AutoOptions.BOTH) {
11897
+ handleBothClick();
11898
+ } else if (autoOption === AutoOptions.NONE) {
11899
+ handleNoneClick();
11900
+ } else if (autoOption === AutoOptions.TIMESTEP) {
11901
+ handleAutoTimestepClick();
11902
+ } else if (autoOption === AutoOptions.UPDATE) {
11903
+ handleAutoUpdateClick();
11715
11904
  }
11716
11905
  },
11717
- isActive: isActive,
11718
11906
  isEnabled: isLayerEnabled
11719
11907
  });
11720
11908
  };
11721
11909
 
11910
+ function getCurrentOptionForLayer(thisLayerHasBoth, thisLayerHasAutoTimestep, thisLayerHasAutoUpdate) {
11911
+ if (thisLayerHasBoth) {
11912
+ return AutoOptions.BOTH;
11913
+ }
11914
+
11915
+ if (thisLayerHasAutoTimestep) {
11916
+ return AutoOptions.TIMESTEP;
11917
+ }
11918
+
11919
+ if (thisLayerHasAutoUpdate) {
11920
+ return AutoOptions.UPDATE;
11921
+ }
11922
+
11923
+ return AutoOptions.NONE;
11924
+ }
11925
+
11722
11926
  /* *
11723
11927
  * Licensed under the Apache License, Version 2.0 (the "License");
11724
11928
  * you may not use this file except in compliance with the License.
@@ -11740,9 +11944,10 @@ var LayerRowConnect = function LayerRowConnect(_ref) {
11740
11944
  var layerId = _ref.layerId,
11741
11945
  mapId = _ref.mapId,
11742
11946
  dragHandle = _ref.dragHandle,
11743
- layerIndex = _ref.layerIndex;
11947
+ layerIndex = _ref.layerIndex,
11948
+ settings = _ref.settings;
11744
11949
 
11745
- var _a;
11950
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
11746
11951
 
11747
11952
  var isEnabled = useSelector(function (store) {
11748
11953
  return getLayerEnabled(store, layerId);
@@ -11772,15 +11977,19 @@ var LayerRowConnect = function LayerRowConnect(_ref) {
11772
11977
  layerId: layerId,
11773
11978
  mapId: mapId,
11774
11979
  isEnabled: isEnabled,
11775
- layerName: fullLayerName || layerName
11980
+ layerName: fullLayerName || layerName,
11981
+ icon: isEnabled ? (_b = settings === null || settings === void 0 ? void 0 : settings.enableLayer) === null || _b === void 0 ? void 0 : _b.enabledIcon : (_c = settings === null || settings === void 0 ? void 0 : settings.enableLayer) === null || _c === void 0 ? void 0 : _c.disabledIcon,
11982
+ tooltipTitle: isEnabled ? (_d = settings === null || settings === void 0 ? void 0 : settings.enableLayer) === null || _d === void 0 ? void 0 : _d.enabledTooltipTitle : (_e = settings === null || settings === void 0 ? void 0 : settings.enableLayer) === null || _e === void 0 ? void 0 : _e.disabledTooltipTitle
11776
11983
  }),
11777
11984
  layerOpacityLayout: /*#__PURE__*/React.createElement(OpacitySelectConnect, {
11778
11985
  layerId: layerId,
11779
- mapId: mapId
11986
+ mapId: mapId,
11987
+ tooltipPrefix: (_f = settings === null || settings === void 0 ? void 0 : settings.opacity) === null || _f === void 0 ? void 0 : _f.tooltipPrefix
11780
11988
  }),
11781
11989
  layerServicesLayout: /*#__PURE__*/React.createElement(RenderLayersConnect, {
11782
11990
  layerId: layerId,
11783
- mapId: mapId
11991
+ mapId: mapId,
11992
+ tooltipPrefix: (_g = settings === null || settings === void 0 ? void 0 : settings.renderLayer) === null || _g === void 0 ? void 0 : _g.tooltipPrefix
11784
11993
  }),
11785
11994
  layerDimensionLayout: /*#__PURE__*/React.createElement(DimensionSelectConnect, {
11786
11995
  layerId: layerId,
@@ -11788,16 +11997,22 @@ var LayerRowConnect = function LayerRowConnect(_ref) {
11788
11997
  }),
11789
11998
  layerStylesLayout: /*#__PURE__*/React.createElement(RenderStylesConnect, {
11790
11999
  layerId: layerId,
11791
- mapId: mapId
12000
+ mapId: mapId,
12001
+ tooltipPrefix: (_h = settings === null || settings === void 0 ? void 0 : settings.layerStyle) === null || _h === void 0 ? void 0 : _h.tooltipPrefix,
12002
+ icon: (_j = settings === null || settings === void 0 ? void 0 : settings.layerStyle) === null || _j === void 0 ? void 0 : _j.icon
11792
12003
  }),
11793
12004
  layerDeleteLayout: /*#__PURE__*/React.createElement(DeleteLayerConnect, {
11794
12005
  mapId: mapId,
11795
12006
  layerId: layerId,
11796
- layerIndex: layerIndex
12007
+ layerIndex: layerIndex,
12008
+ tooltipTitle: (_k = settings === null || settings === void 0 ? void 0 : settings.deleteLayer) === null || _k === void 0 ? void 0 : _k.tooltipTitle,
12009
+ icon: (_l = settings === null || settings === void 0 ? void 0 : settings.deleteLayer) === null || _l === void 0 ? void 0 : _l.icon
11797
12010
  }),
11798
12011
  layerMenuLayout: /*#__PURE__*/React.createElement(LayerManagerMenuButtonConnect, {
11799
12012
  mapId: mapId,
11800
- layerId: layerId
12013
+ layerId: layerId,
12014
+ tooltipTitle: (_m = settings === null || settings === void 0 ? void 0 : settings.menu) === null || _m === void 0 ? void 0 : _m.tooltipTitle,
12015
+ icon: (_o = settings === null || settings === void 0 ? void 0 : settings.menu) === null || _o === void 0 ? void 0 : _o.icon
11801
12016
  }),
11802
12017
  layerActiveLayout: /*#__PURE__*/React.createElement(ActivateLayerConnect, {
11803
12018
  mapId: mapId,
@@ -11820,8 +12035,8 @@ var LayerRowConnect = function LayerRowConnect(_ref) {
11820
12035
  * See the License for the specific language governing permissions and
11821
12036
  * limitations under the License.
11822
12037
  *
11823
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
11824
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
12038
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
12039
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
11825
12040
  * */
11826
12041
  var TOOLTIP_TITLE = 'Drag';
11827
12042
 
@@ -11831,20 +12046,23 @@ var DragHandle = function DragHandle(_ref) {
11831
12046
  _ref$index = _ref.index,
11832
12047
  index = _ref$index === void 0 ? undefined : _ref$index,
11833
12048
  _ref$hideTooltip = _ref.hideTooltip,
11834
- hideTooltip = _ref$hideTooltip === void 0 ? false : _ref$hideTooltip,
12049
+ hideTooltip = _ref$hideTooltip === void 0 ? true : _ref$hideTooltip,
11835
12050
  _ref$isSorting = _ref.isSorting,
11836
- isSorting = _ref$isSorting === void 0 ? false : _ref$isSorting;
11837
- var tooltipTitle = hideTooltip ? '' : TOOLTIP_TITLE;
11838
- return /*#__PURE__*/React__default.createElement(ManagerButton, {
11839
- tooltipTitle: tooltipTitle,
11840
- icon: /*#__PURE__*/React__default.createElement(DragHandle$1, null),
12051
+ isSorting = _ref$isSorting === void 0 ? false : _ref$isSorting,
12052
+ _ref$icon = _ref.icon,
12053
+ icon = _ref$icon === void 0 ? /*#__PURE__*/React__default.createElement(DragHandle$1, {
12054
+ "data-testid": "dragHandleIcon"
12055
+ }) : _ref$icon,
12056
+ _ref$tooltipTitle = _ref.tooltipTitle,
12057
+ tooltipTitle = _ref$tooltipTitle === void 0 ? TOOLTIP_TITLE : _ref$tooltipTitle;
12058
+ var usedTooltipTitle = hideTooltip ? '' : tooltipTitle;
12059
+ return /*#__PURE__*/React__default.createElement(CustomIconButton, {
12060
+ tooltipTitle: usedTooltipTitle,
11841
12061
  "data-testid": "dragHandle".concat(index !== undefined ? "-".concat(index) : ''),
11842
12062
  className: "handle",
11843
12063
  tabIndex: -1,
11844
- isEnabled: !isDisabled,
11845
12064
  disableTouchRipple: true,
11846
12065
  disabled: isDisabled,
11847
- isAccessible: true,
11848
12066
  sx: {
11849
12067
  cursor: isSorting ? 'grabbing' : 'grab',
11850
12068
  '&:hover': {
@@ -11853,13 +12071,17 @@ var DragHandle = function DragHandle(_ref) {
11853
12071
  marginLeft: '3px',
11854
12072
  marginRight: '3px',
11855
12073
  marginTop: 'auto',
11856
- marginBottom: 'auto'
12074
+ marginBottom: 'auto',
12075
+ '&.MuiIconButton-root': {
12076
+ color: 'geowebColors.greys.accessible'
12077
+ }
11857
12078
  }
11858
- });
12079
+ }, icon);
11859
12080
  };
11860
12081
 
11861
12082
  var LayerContainerRow = function LayerContainerRow(_ref) {
11862
- var mapId = _ref.mapId;
12083
+ var mapId = _ref.mapId,
12084
+ settings = _ref.settings;
11863
12085
  var dispatch = useDispatch();
11864
12086
 
11865
12087
  var _React$useState = React.useState(false),
@@ -11983,6 +12205,8 @@ var LayerContainerRow = function LayerContainerRow(_ref) {
11983
12205
  width: '100%'
11984
12206
  }
11985
12207
  }, layerIds.map(function (layerId, index) {
12208
+ var _a, _b;
12209
+
11986
12210
  return /*#__PURE__*/React.createElement(LayerRowConnect, {
11987
12211
  mapId: mapId,
11988
12212
  layerId: layerId,
@@ -11992,8 +12216,11 @@ var LayerContainerRow = function LayerContainerRow(_ref) {
11992
12216
  isDisabled: isDragDisabled,
11993
12217
  index: index,
11994
12218
  hideTooltip: isSorting || isDragDisabled,
11995
- isSorting: isSorting
11996
- })
12219
+ isSorting: isSorting,
12220
+ icon: (_a = settings === null || settings === void 0 ? void 0 : settings.dragHandle) === null || _a === void 0 ? void 0 : _a.icon,
12221
+ tooltipTitle: (_b = settings === null || settings === void 0 ? void 0 : settings.dragHandle) === null || _b === void 0 ? void 0 : _b.tooltipTitle
12222
+ }),
12223
+ settings: settings
11997
12224
  });
11998
12225
  })));
11999
12226
  };
@@ -12018,7 +12245,10 @@ var LayerContainerRow = function LayerContainerRow(_ref) {
12018
12245
  var BaseLayers = function BaseLayers(_ref) {
12019
12246
  var selectedBaseLayers = _ref.selectedBaseLayers,
12020
12247
  availableBaseLayers = _ref.availableBaseLayers,
12021
- onChangeBaseLayers = _ref.onChangeBaseLayers;
12248
+ onChangeBaseLayers = _ref.onChangeBaseLayers,
12249
+ icon = _ref.icon,
12250
+ _ref$tooltipPrefix = _ref.tooltipPrefix,
12251
+ tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Layer: ' : _ref$tooltipPrefix;
12022
12252
 
12023
12253
  var _a;
12024
12254
 
@@ -12041,7 +12271,7 @@ var BaseLayers = function BaseLayers(_ref) {
12041
12271
  }
12042
12272
  }, /*#__PURE__*/React.createElement(TooltipSelect, {
12043
12273
  disableUnderline: true,
12044
- tooltip: "Base layer: ".concat((_a = availableBaseLayers[currentIndex]) === null || _a === void 0 ? void 0 : _a.name),
12274
+ tooltip: "".concat(tooltipPrefix).concat((_a = availableBaseLayers[currentIndex]) === null || _a === void 0 ? void 0 : _a.name),
12045
12275
  inputProps: {
12046
12276
  SelectDisplayProps: {
12047
12277
  'data-testid': 'selectBaseLayer'
@@ -12059,7 +12289,8 @@ var BaseLayers = function BaseLayers(_ref) {
12059
12289
  },
12060
12290
  onChangeMouseWheel: function onChangeMouseWheel(e) {
12061
12291
  return onChangeBaseLayers(e.value);
12062
- }
12292
+ },
12293
+ IconComponent: icon
12063
12294
  }, /*#__PURE__*/React.createElement(MenuItem, {
12064
12295
  disabled: true
12065
12296
  }, "Base layer"), availableBaseLayers.map(function (baseLayer) {
@@ -12131,7 +12362,9 @@ var areAvailableBaseLayersSame = function areAvailableBaseLayersSame(availableBa
12131
12362
 
12132
12363
  var BaseLayersConnect = function BaseLayersConnect(_ref) {
12133
12364
  var mapId = _ref.mapId,
12134
- preloadedAvailableBaseLayers = _ref.preloadedAvailableBaseLayers;
12365
+ preloadedAvailableBaseLayers = _ref.preloadedAvailableBaseLayers,
12366
+ tooltipPrefix = _ref.tooltipPrefix,
12367
+ icon = _ref.icon;
12135
12368
  var dispatch = useDispatch();
12136
12369
  var selectedBaseLayers = useSelector(function (store) {
12137
12370
  return getMapBaseLayers(store, mapId);
@@ -12166,7 +12399,9 @@ var BaseLayersConnect = function BaseLayersConnect(_ref) {
12166
12399
  return /*#__PURE__*/React.createElement(BaseLayers, {
12167
12400
  selectedBaseLayers: selectedBaseLayers,
12168
12401
  availableBaseLayers: currentAvailableBaseLayers,
12169
- onChangeBaseLayers: onChangeBaseLayers
12402
+ onChangeBaseLayers: onChangeBaseLayers,
12403
+ tooltipPrefix: tooltipPrefix,
12404
+ icon: icon
12170
12405
  });
12171
12406
  };
12172
12407
 
@@ -12203,11 +12438,10 @@ var WMSServerList = function WMSServerList(_ref) {
12203
12438
  }, /*#__PURE__*/React.createElement(List, {
12204
12439
  dense: true
12205
12440
  }, sortedServices.map(function (service) {
12206
- return /*#__PURE__*/React.createElement(ListItem, {
12441
+ return /*#__PURE__*/React.createElement(ListItemButton, {
12207
12442
  "data-testid": "service-item",
12208
12443
  key: service.url,
12209
12444
  selected: service === activeService,
12210
- button: true,
12211
12445
  onClick: function onClick(event) {
12212
12446
  handleListItemClick(event, service);
12213
12447
  }
@@ -12230,8 +12464,8 @@ var WMSServerList = function WMSServerList(_ref) {
12230
12464
  * See the License for the specific language governing permissions and
12231
12465
  * limitations under the License.
12232
12466
  *
12233
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
12234
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
12467
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
12468
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
12235
12469
  * */
12236
12470
 
12237
12471
  var WMSLayerTreeHeader = function WMSLayerTreeHeader(_ref) {
@@ -12249,18 +12483,11 @@ var WMSLayerTreeHeader = function WMSLayerTreeHeader(_ref) {
12249
12483
  htmlFor: "select-multiple-native"
12250
12484
  }, "Available layers for ", serviceName)), onClickReload && /*#__PURE__*/React.createElement(Grid, {
12251
12485
  item: true
12252
- }, /*#__PURE__*/React.createElement(CustomTooltip, {
12253
- title: "Reload layers from service",
12254
- placement: "top"
12255
- }, /*#__PURE__*/React.createElement(IconButton, {
12486
+ }, /*#__PURE__*/React.createElement(CustomIconButton, {
12487
+ tooltipTitle: "Reload layers from service",
12256
12488
  "data-testid": "reloadLayers",
12257
- color: "primary",
12258
- style: {
12259
- padding: 3
12260
- },
12261
- onClick: onClickReload,
12262
- size: "large"
12263
- }, /*#__PURE__*/React.createElement(Cached, null)))));
12489
+ onClick: onClickReload
12490
+ }, /*#__PURE__*/React.createElement(Cached, null))));
12264
12491
  };
12265
12492
 
12266
12493
  var WMSLayerTree = function WMSLayerTree(_ref) {
@@ -12396,10 +12623,9 @@ var WMSLayerTree = function WMSLayerTree(_ref) {
12396
12623
  textOverflow: 'ellipsis'
12397
12624
  }
12398
12625
  }, category)), layerMap[category].map(function (layer) {
12399
- return layer.leaf ? /*#__PURE__*/React.createElement(ListItem, {
12626
+ return layer.leaf ? /*#__PURE__*/React.createElement(ListItemButton, {
12400
12627
  "data-testid": "selectableLayer",
12401
12628
  key: layer.name,
12402
- button: true,
12403
12629
  selected: processedOK.indexOf(layer.name) !== -1 || layerExists(layer, highlightedLayers),
12404
12630
  onClick: function onClick() {
12405
12631
  return handleInternalSelect(layer.name);
@@ -12739,7 +12965,7 @@ var AddLayersPopup = function AddLayersPopup(_ref) {
12739
12965
  alignItems: "center"
12740
12966
  }, /*#__PURE__*/React.createElement(Grid, {
12741
12967
  item: true,
12742
- xs: 10
12968
+ xs: 12
12743
12969
  }, /*#__PURE__*/React.createElement(TextField, {
12744
12970
  margin: "dense",
12745
12971
  id: "serviceurl",
@@ -12761,25 +12987,21 @@ var AddLayersPopup = function AddLayersPopup(_ref) {
12761
12987
  disabled: loading,
12762
12988
  error: urlError !== '',
12763
12989
  helperText: urlError,
12764
- variant: "standard"
12765
- })), /*#__PURE__*/React.createElement(Grid, {
12766
- item: true,
12767
- xs: 2,
12768
- sx: {
12769
- position: 'relative'
12770
- }
12771
- }, /*#__PURE__*/React.createElement(IconButton, {
12772
- "data-testid": "add-service",
12773
- onClick: handleAddServiceURL,
12774
- disabled: loading,
12775
- size: "large"
12776
- }, /*#__PURE__*/React.createElement(Add, null)), loading && /*#__PURE__*/React.createElement(CircularProgress, {
12777
- size: 35,
12778
- sx: {
12779
- position: 'absolute',
12780
- top: '7px',
12781
- left: '7px',
12782
- zIndex: 1
12990
+ variant: "filled",
12991
+ InputProps: {
12992
+ endAdornment: /*#__PURE__*/React.createElement(InputAdornment, {
12993
+ position: "end"
12994
+ }, loading ? /*#__PURE__*/React.createElement(CircularProgress, {
12995
+ size: 24,
12996
+ sx: {
12997
+ zIndex: 1
12998
+ }
12999
+ }) : /*#__PURE__*/React.createElement(CustomIconButton, {
13000
+ "data-testid": "add-service",
13001
+ onClick: handleAddServiceURL,
13002
+ disabled: loading,
13003
+ size: "large"
13004
+ }, /*#__PURE__*/React.createElement(Add, null)))
12783
13005
  }
12784
13006
  })))), /*#__PURE__*/React.createElement(Box, {
12785
13007
  m: 2
@@ -12819,10 +13041,7 @@ var styles$3 = {
12819
13041
  zIndex: 1
12820
13042
  },
12821
13043
  button: {
12822
- width: '24px',
12823
- height: '24px',
12824
- margin: 'auto 0px auto 32px',
12825
- borderRadius: '15%'
13044
+ margin: 'auto 0px auto 32px'
12826
13045
  }
12827
13046
  };
12828
13047
 
@@ -12843,40 +13062,24 @@ var AddLayersButton = function AddLayersButton(_ref) {
12843
13062
  open = _React$useState2[0],
12844
13063
  setOpen = _React$useState2[1];
12845
13064
 
12846
- var _React$useState3 = React.useState(shouldFocus),
12847
- _React$useState4 = _slicedToArray(_React$useState3, 2),
12848
- isTooltipDisabled = _React$useState4[0],
12849
- setTooltipDisabled = _React$useState4[1];
12850
-
12851
13065
  var handleClose = function handleClose() {
12852
13066
  setOpen(!open);
12853
13067
  };
12854
13068
 
12855
- var onBlurTooltip = function onBlurTooltip(event) {
12856
- // enable tooltip again after user blurs
12857
- if (event.relatedTarget) {
12858
- setTooltipDisabled(false);
12859
- }
12860
- };
12861
-
12862
13069
  React.useEffect(function () {
12863
13070
  if (shouldFocus && ref.current) {
12864
13071
  ref.current.focus();
12865
13072
  } // eslint-disable-next-line react-hooks/exhaustive-deps
12866
13073
 
12867
13074
  }, []);
12868
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomTooltip, {
12869
- title: tooltip,
12870
- disableFocusListener: isTooltipDisabled,
12871
- onBlur: onBlurTooltip
12872
- }, /*#__PURE__*/React.createElement(IconButton, {
13075
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomIconButton, {
12873
13076
  onClick: handleClose,
12874
13077
  sx: styles$3.button,
12875
13078
  disableRipple: true,
12876
13079
  "data-testid": "addLayersButton",
12877
13080
  ref: ref,
12878
- size: "large"
12879
- }, /*#__PURE__*/React.createElement(Add, null))), /*#__PURE__*/React.createElement(AddLayersPopup, {
13081
+ tooltipTitle: tooltip
13082
+ }, /*#__PURE__*/React.createElement(Add, null)), /*#__PURE__*/React.createElement(AddLayersPopup, {
12880
13083
  open: open,
12881
13084
  handleClose: handleClose,
12882
13085
  onRenderTree: onRenderTree,
@@ -12909,7 +13112,11 @@ var BaseLayerRow = function BaseLayerRow(_ref) {
12909
13112
  _ref$preloadedService = _ref.preloadedServices,
12910
13113
  preloadedServices = _ref$preloadedService === void 0 ? preloadedDefaultBaseServices : _ref$preloadedService,
12911
13114
  _ref$tooltip = _ref.tooltip,
12912
- tooltip = _ref$tooltip === void 0 ? '' : _ref$tooltip;
13115
+ tooltip = _ref$tooltip === void 0 ? '' : _ref$tooltip,
13116
+ settings = _ref.settings;
13117
+
13118
+ var _a, _b, _c;
13119
+
12913
13120
  return /*#__PURE__*/React.createElement(Grid, {
12914
13121
  container: true,
12915
13122
  item: true,
@@ -12935,12 +13142,14 @@ var BaseLayerRow = function BaseLayerRow(_ref) {
12935
13142
  layerType: LayerType.baseLayer
12936
13143
  });
12937
13144
  }
12938
- })), /*#__PURE__*/React.createElement(Grid, {
13145
+ })), (_a = settings === null || settings === void 0 ? void 0 : settings.baseLayerRow) === null || _a === void 0 ? void 0 : _a.title, /*#__PURE__*/React.createElement(Grid, {
12939
13146
  item: true,
12940
13147
  className: columnClasses.column2
12941
13148
  }, /*#__PURE__*/React.createElement(BaseLayersConnect, {
12942
13149
  mapId: mapId,
12943
- preloadedAvailableBaseLayers: preloadedAvailableBaseLayers
13150
+ preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
13151
+ tooltipPrefix: (_b = settings === null || settings === void 0 ? void 0 : settings.baseLayerDropdown) === null || _b === void 0 ? void 0 : _b.tooltipPrefix,
13152
+ icon: (_c = settings === null || settings === void 0 ? void 0 : settings.baseLayerDropdown) === null || _c === void 0 ? void 0 : _c.icon
12944
13153
  })));
12945
13154
  };
12946
13155
 
@@ -13049,7 +13258,8 @@ var LayerManager = function LayerManager(_ref) {
13049
13258
  left: 50
13050
13259
  } : _ref$startPosition,
13051
13260
  _ref$setFocused = _ref.setFocused,
13052
- setFocused = _ref$setFocused === void 0 ? function () {} : _ref$setFocused;
13261
+ setFocused = _ref$setFocused === void 0 ? function () {} : _ref$setFocused,
13262
+ settings = _ref.settings;
13053
13263
  var minSize = {
13054
13264
  width: 100,
13055
13265
  height: 126
@@ -13141,14 +13351,17 @@ var LayerManager = function LayerManager(_ref) {
13141
13351
  }, /*#__PURE__*/React.createElement(DescriptionRow, {
13142
13352
  mapPresetsModule: leftHeaderComponent,
13143
13353
  mapId: mapId,
13144
- source: source
13354
+ source: source,
13355
+ settings: settings === null || settings === void 0 ? void 0 : settings.header
13145
13356
  }), /*#__PURE__*/React.createElement(LayerContainerRow, {
13146
- mapId: mapId
13357
+ mapId: mapId,
13358
+ settings: settings === null || settings === void 0 ? void 0 : settings.content
13147
13359
  }), /*#__PURE__*/React.createElement(BaseLayerRow, {
13148
13360
  mapId: mapId,
13149
13361
  tooltip: "Add base layers",
13150
13362
  preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
13151
- preloadedServices: preloadedBaseServices
13363
+ preloadedServices: preloadedBaseServices,
13364
+ settings: settings === null || settings === void 0 ? void 0 : settings.footer
13152
13365
  })))));
13153
13366
  };
13154
13367
 
@@ -13522,12 +13735,19 @@ var KeywordFilterButtonConnect = function KeywordFilterButtonConnect(_ref) {
13522
13735
  * See the License for the specific language governing permissions and
13523
13736
  * limitations under the License.
13524
13737
  *
13525
- * Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
13526
- * Copyright 2021 - Finnish Meteorological Institute (FMI)
13738
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
13739
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
13527
13740
  * */
13528
13741
  var isURL = function isURL(string) {
13529
13742
  return /^https?:\/\//.test(string);
13530
13743
  };
13744
+ var buttonStyle = {
13745
+ '&.MuiButtonBase-root.MuiIconButton-root': {
13746
+ width: 48,
13747
+ height: 48,
13748
+ marginRight: '-12px'
13749
+ }
13750
+ };
13531
13751
 
13532
13752
  var SearchFieldButtonContainer = function SearchFieldButtonContainer(_ref) {
13533
13753
  var localSearchString = _ref.localSearchString,
@@ -13535,16 +13755,13 @@ var SearchFieldButtonContainer = function SearchFieldButtonContainer(_ref) {
13535
13755
  setPopupIsOpen = _ref.setPopupIsOpen;
13536
13756
 
13537
13757
  var ClearButton = function ClearButton() {
13538
- return /*#__PURE__*/React__default.createElement(CustomTooltip, {
13539
- title: "Clear",
13540
- placement: "top"
13541
- }, /*#__PURE__*/React__default.createElement(IconButton, {
13542
- edge: "end",
13758
+ return /*#__PURE__*/React__default.createElement(CustomIconButton, {
13759
+ tooltipTitle: "Clear",
13760
+ sx: buttonStyle,
13543
13761
  onClick: function onClick() {
13544
13762
  onClickClear();
13545
- },
13546
- size: "large"
13547
- }, /*#__PURE__*/React__default.createElement(Clear, null)));
13763
+ }
13764
+ }, /*#__PURE__*/React__default.createElement(Clear, null));
13548
13765
  };
13549
13766
 
13550
13767
  if (isURL(localSearchString)) {
@@ -13564,13 +13781,10 @@ var SearchFieldButtonContainer = function SearchFieldButtonContainer(_ref) {
13564
13781
  return /*#__PURE__*/React__default.createElement(ClearButton, null);
13565
13782
  }
13566
13783
 
13567
- return /*#__PURE__*/React__default.createElement(CustomTooltip, {
13568
- title: "Search",
13569
- placement: "top"
13570
- }, /*#__PURE__*/React__default.createElement(IconButton, {
13571
- edge: "end",
13572
- size: "large"
13573
- }, /*#__PURE__*/React__default.createElement(Search, null)));
13784
+ return /*#__PURE__*/React__default.createElement(CustomIconButton, {
13785
+ tooltipTitle: "Search",
13786
+ sx: buttonStyle
13787
+ }, /*#__PURE__*/React__default.createElement(Search, null));
13574
13788
  };
13575
13789
 
13576
13790
  var SearchField = function SearchField(_ref) {
@@ -14732,7 +14946,7 @@ var ServiceChipConnect = function ServiceChipConnect(_ref) {
14732
14946
  }));
14733
14947
  };
14734
14948
 
14735
- var hasSelectedStyle = !isAllSelected && isSelected || isAllSelected && service === 'all';
14949
+ var hasSelectedStyle = !isAllSelected && isSelected || isAllSelected && (service === null || service === void 0 ? void 0 : service.serviceName) === 'all';
14736
14950
 
14737
14951
  var toggleChip = function toggleChip(service) {
14738
14952
  if (service === 'all') {
@@ -14906,8 +15120,8 @@ var ServiceListConnect = function ServiceListConnect(_ref) {
14906
15120
  * See the License for the specific language governing permissions and
14907
15121
  * limitations under the License.
14908
15122
  *
14909
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
14910
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
15123
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
15124
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
14911
15125
  * */
14912
15126
  var styles$1 = {
14913
15127
  servicesContainer: {
@@ -15073,39 +15287,35 @@ var Rows = function Rows(_ref2) {
15073
15287
  paddingRight: '70px'
15074
15288
  }
15075
15289
  }, serviceName)), /*#__PURE__*/React.createElement(ListItemSecondaryAction, {
15076
- style: {
15290
+ sx: {
15077
15291
  marginRight: '0px',
15078
- width: 100
15292
+ width: 96,
15293
+ button: {
15294
+ marginLeft: 1
15295
+ }
15079
15296
  }
15080
15297
  }, /*#__PURE__*/React.createElement(Grid, {
15081
- container: true
15082
- }, /*#__PURE__*/React.createElement(Grid, {
15083
- item: true,
15084
- xs: 4
15298
+ container: true,
15299
+ justifyContent: "left"
15085
15300
  }, /*#__PURE__*/React.createElement(CustomTooltip, {
15086
15301
  "data-testid": "updateServiceTooltip",
15087
15302
  title: updateServiceTitle,
15088
15303
  placement: tooltipPlacement(),
15089
15304
  PopperProps: tooltipPopperProps
15090
- }, /*#__PURE__*/React.createElement(IconButton, {
15305
+ }, /*#__PURE__*/React.createElement(CustomIconButton, {
15091
15306
  "data-testid": "updateServiceButton",
15092
15307
  "aria-label": "Update layers from WMS service",
15093
- size: "large",
15094
15308
  onKeyDown: stopTabPropagation,
15095
15309
  onClick: function onClick() {
15096
15310
  layerSelectReloadService(serviceUrl);
15097
15311
  }
15098
- }, /*#__PURE__*/React.createElement(Cached, null)))), /*#__PURE__*/React.createElement(Grid, {
15099
- item: true,
15100
- xs: 4
15101
- }, userAddedService ? /*#__PURE__*/React.createElement(CustomTooltip, {
15312
+ }, /*#__PURE__*/React.createElement(Cached, null))), userAddedService ? /*#__PURE__*/React.createElement(CustomTooltip, {
15102
15313
  title: editServiceTitle,
15103
15314
  placement: tooltipPlacement(),
15104
15315
  PopperProps: tooltipPopperProps
15105
- }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
15316
+ }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(CustomIconButton, {
15106
15317
  "aria-label": "edit service",
15107
15318
  "data-testid": "openEditServiceButton",
15108
- size: "large",
15109
15319
  onKeyDown: stopTabPropagation,
15110
15320
  onClick: function onClick() {
15111
15321
  setServicePopupInfo({
@@ -15119,10 +15329,9 @@ var Rows = function Rows(_ref2) {
15119
15329
  title: showServiceTitle,
15120
15330
  placement: tooltipPlacement(),
15121
15331
  PopperProps: tooltipPopperProps
15122
- }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
15332
+ }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(CustomIconButton, {
15123
15333
  "aria-label": "show service",
15124
15334
  "data-testid": "openShowServiceButton",
15125
- size: "large",
15126
15335
  onKeyDown: stopTabPropagation,
15127
15336
  onClick: function onClick() {
15128
15337
  setServicePopupInfo({
@@ -15132,24 +15341,20 @@ var Rows = function Rows(_ref2) {
15132
15341
  variant: 'show'
15133
15342
  });
15134
15343
  }
15135
- }, /*#__PURE__*/React.createElement(Visibility, null))))), /*#__PURE__*/React.createElement(Grid, {
15136
- item: true,
15137
- xs: 4
15138
- }, userAddedService && /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(CustomTooltip, {
15344
+ }, /*#__PURE__*/React.createElement(Visibility, null)))), userAddedService && /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(CustomTooltip, {
15139
15345
  title: deleteServiceTitle(serviceHasActiveLayers),
15140
15346
  PopperProps: tooltipPopperProps,
15141
15347
  placement: tooltipPlacement(),
15142
15348
  "data-testid": "removeServiceTooltip"
15143
- }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
15349
+ }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(CustomIconButton, {
15144
15350
  "data-testid": "removeServiceButton",
15145
15351
  "aria-label": "delete service",
15146
- size: "large",
15147
15352
  disabled: serviceHasActiveLayers,
15148
15353
  onKeyDown: stopTabPropagation,
15149
15354
  onClick: function onClick() {
15150
15355
  return layerSelectRemoveService(serviceId, serviceUrl, serviceName);
15151
15356
  }
15152
- }, /*#__PURE__*/React.createElement(Delete, null)))))))));
15357
+ }, /*#__PURE__*/React.createElement(Delete, null))))))));
15153
15358
  }));
15154
15359
  };
15155
15360
 
@@ -15609,12 +15814,12 @@ var FilterListItem = function FilterListItem(_ref) {
15609
15814
  whiteSpace: 'nowrap',
15610
15815
  overflow: 'hidden'
15611
15816
  }
15612
- }, filter.name, " (", filter.amountVisible, ")"), isHovering ? /*#__PURE__*/React.createElement(ListItemSecondaryAction, null, /*#__PURE__*/React.createElement(IconButton, {
15817
+ }, filter.name, " (", filter.amountVisible, ")"), isHovering ? /*#__PURE__*/React.createElement(ListItemSecondaryAction, null, /*#__PURE__*/React.createElement(CustomIconButton, {
15613
15818
  style: {
15614
- backgroundColor: 'transparent'
15819
+ backgroundColor: 'transparent',
15820
+ width: 'auto'
15615
15821
  },
15616
15822
  edge: "end",
15617
- size: "small",
15618
15823
  onClick: function onClick() {
15619
15824
  return selectOnlyOne(filter.id);
15620
15825
  },
@@ -16166,15 +16371,16 @@ var ServicePopup = function ServicePopup(_ref2) {
16166
16371
  }, /*#__PURE__*/React.createElement(Typography, {
16167
16372
  variant: "h5",
16168
16373
  component: "span"
16169
- }, getTitleForVariant(servicePopupVariant)), /*#__PURE__*/React.createElement(IconButton, {
16374
+ }, getTitleForVariant(servicePopupVariant)), /*#__PURE__*/React.createElement(CustomIconButton, {
16170
16375
  "aria-label": "close",
16171
- size: "small",
16172
16376
  onClick: closePopup,
16173
16377
  "data-testid": "closePopupButtonCross",
16174
16378
  sx: {
16175
- color: 'geowebColors.captions.captionDisabled.color',
16176
16379
  marginTop: 'auto',
16177
- marginBottom: 'auto'
16380
+ marginBottom: 'auto',
16381
+ '&.MuiButtonBase-root': {
16382
+ color: 'geowebColors.greys.accessible'
16383
+ }
16178
16384
  }
16179
16385
  }, /*#__PURE__*/React.createElement(Close, null))), isLoading && /*#__PURE__*/React.createElement(Box, {
16180
16386
  sx: {
@@ -16212,11 +16418,14 @@ var ServicePopup = function ServicePopup(_ref2) {
16212
16418
  disableUnderline: isShowPopup,
16213
16419
  endAdornment: isShowPopup && /*#__PURE__*/React.createElement(InputAdornment, {
16214
16420
  position: "end"
16215
- }, /*#__PURE__*/React.createElement(IconButton, {
16421
+ }, /*#__PURE__*/React.createElement(CustomIconButton, {
16216
16422
  "aria-label": "copy url",
16217
16423
  onClick: function onClick() {
16218
16424
  navigator.clipboard.writeText(serviceUrl);
16219
16425
  showSnackbar(COPY_URL_MESSAGE);
16426
+ },
16427
+ sx: {
16428
+ marginTop: 0.5
16220
16429
  }
16221
16430
  }, /*#__PURE__*/React.createElement(Copy, null)))
16222
16431
  },
@@ -16909,8 +17118,8 @@ var handleMomentISOString = function handleMomentISOString(dateIn) {
16909
17118
  * See the License for the specific language governing permissions and
16910
17119
  * limitations under the License.
16911
17120
  *
16912
- * Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
16913
- * Copyright 2020 - Finnish Meteorological Institute (FMI)
17121
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
17122
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
16914
17123
  * */
16915
17124
 
16916
17125
  var DimensionSelectSliderConnect = function DimensionSelectSliderConnect(_ref) {
@@ -16951,16 +17160,16 @@ var DimensionSelectSliderConnect = function DimensionSelectSliderConnect(_ref) {
16951
17160
  key: layerId,
16952
17161
  item: true,
16953
17162
  xs: "auto"
16954
- }, /*#__PURE__*/React.createElement(CustomTooltip, {
16955
- title: tooltipTitle,
16956
- placement: "top"
16957
- }, /*#__PURE__*/React.createElement(IconButton, {
17163
+ }, /*#__PURE__*/React.createElement(CustomIconButton, {
17164
+ tooltipTitle: tooltipTitle,
16958
17165
  "data-testid": "syncButton",
16959
- size: "small",
16960
17166
  onClick: function onClick() {
16961
17167
  return handleSyncChanged(layerId, dimensionName, layerDimension.currentValue, !layerDimension.synced);
17168
+ },
17169
+ sx: {
17170
+ margin: '5px'
16962
17171
  }
16963
- }, /*#__PURE__*/React.createElement(Icon, null))), /*#__PURE__*/React.createElement(DimensionSelectSlider, {
17172
+ }, /*#__PURE__*/React.createElement(Icon, null)), /*#__PURE__*/React.createElement(DimensionSelectSlider, {
16964
17173
  marks: marks,
16965
17174
  layerTitle: layerTitle,
16966
17175
  reverse: dimConfig ? dimConfig.reversed : false,
@@ -21105,7 +21314,6 @@ var setServiceMetadata = function setServiceMetadata(wmLayer, mapId, mapProperti
21105
21314
  * Copyright 2020 - Finnish Meteorological Institute (FMI)
21106
21315
  * */
21107
21316
  /* Function which calculates the distance between two points */
21108
- // eslint-disable-next-line class-methods-use-this
21109
21317
 
21110
21318
  var distance = function distance(a, b) {
21111
21319
  return Math.sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
@@ -21184,9 +21392,10 @@ var checkHoverVertice = function checkHoverVertice(feature, mouseX, mouseY, conv
21184
21392
  return {
21185
21393
  coordinateIndexInFeature: _polygonIndex
21186
21394
  };
21187
- } // eslint-disable-next-line no-empty
21188
-
21189
- } catch (e) {}
21395
+ }
21396
+ } catch (e) {
21397
+ console.warn(e);
21398
+ }
21190
21399
  }
21191
21400
  }
21192
21401
 
@@ -21212,9 +21421,10 @@ var checkHoverVertice = function checkHoverVertice(feature, mouseX, mouseY, conv
21212
21421
  return {
21213
21422
  coordinateIndexInFeature: _polygonIndex2
21214
21423
  };
21215
- } // eslint-disable-next-line no-empty
21216
-
21217
- } catch (e) {}
21424
+ }
21425
+ } catch (e) {
21426
+ console.warn(e);
21427
+ }
21218
21428
  }
21219
21429
  }
21220
21430
 
@@ -21428,7 +21638,7 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
21428
21638
  if (feature.geometry) {
21429
21639
  var coordinates = feature.geometry.coordinates;
21430
21640
 
21431
- if (_this.snappedPolygonIndex > coordinates.length - 1) {
21641
+ if (Number(_this.snappedPolygonIndex) > coordinates.length - 1) {
21432
21642
  _this.snappedPolygonIndex = coordinates.length - 1;
21433
21643
  }
21434
21644
  }
@@ -24655,7 +24865,26 @@ var MapView = function MapView(_a) {
24655
24865
 
24656
24866
  var dimensions = props.dimensions,
24657
24867
  mapId = props.mapId;
24868
+ var wmjsMapRef = React.useRef(null);
24869
+
24870
+ var _useResizeDetector = useResizeDetector(),
24871
+ ref = _useResizeDetector.ref,
24872
+ height = _useResizeDetector.height,
24873
+ width = _useResizeDetector.width;
24874
+
24875
+ React.useEffect(function () {
24876
+ if (wmjsMapRef.current && !!width && !!height) {
24877
+ var _wmjsMapRef$current$g = wmjsMapRef.current.getSize(),
24878
+ mapHeight = _wmjsMapRef$current$g.height,
24879
+ mapWidth = _wmjsMapRef$current$g.width;
24880
+
24881
+ if (width !== mapWidth || height !== mapHeight) {
24882
+ wmjsMapRef.current.setSize(Math.ceil(width), Math.ceil(height));
24883
+ }
24884
+ }
24885
+ }, [width, height]);
24658
24886
  return /*#__PURE__*/React.createElement(Box, {
24887
+ ref: ref,
24659
24888
  sx: {
24660
24889
  display: 'grid',
24661
24890
  width: '100%',
@@ -24688,7 +24917,10 @@ var MapView = function MapView(_a) {
24688
24917
  }
24689
24918
  }, /*#__PURE__*/React.createElement(ReactMapView, Object.assign({}, props, {
24690
24919
  showLegend: false,
24691
- displayTimeInMap: false
24920
+ displayTimeInMap: false,
24921
+ onWMJSMount: function onWMJSMount(id) {
24922
+ wmjsMapRef.current = getWMJSMapById(id);
24923
+ }
24692
24924
  }), children)), displayTimeInMap && dimensions && /*#__PURE__*/React.createElement(MapTime, {
24693
24925
  dimensions: dimensions
24694
24926
  }));
@@ -25939,11 +26171,10 @@ var GetFeatureInfoDialog = function GetFeatureInfoDialog(_ref) {
25939
26171
  }
25940
26172
  }, /*#__PURE__*/React__default.createElement(Typography, {
25941
26173
  variant: "subtitle1"
25942
- }, title, "\xA0", /*#__PURE__*/React__default.createElement(IconButton, {
26174
+ }, title, "\xA0", /*#__PURE__*/React__default.createElement(CustomIconButton, {
25943
26175
  sx: {
25944
26176
  "float": 'right'
25945
26177
  },
25946
- size: "small",
25947
26178
  "aria-label": "Open layer featureinfo in another page",
25948
26179
  onClick: function onClick() {
25949
26180
  window.open(url);
@@ -26324,8 +26555,7 @@ var MultiMapViewConnect = function MultiMapViewConnect(_ref) {
26324
26555
  syncGroupAddTarget({
26325
26556
  groupId: syncGroupsId,
26326
26557
  targetId: map.id,
26327
- linked: true,
26328
- origin: 'system'
26558
+ linked: true
26329
26559
  });
26330
26560
  });
26331
26561
  });
@@ -26735,10 +26965,9 @@ var SyncGroupListItem = function SyncGroupListItem(_ref) {
26735
26965
  var isNotCheckedElseWhere = viewStateData.groups.every(function (group) {
26736
26966
  return !(group.id !== groupId && group.selected.includes(source.id));
26737
26967
  });
26738
- return /*#__PURE__*/React.createElement(ListItem, {
26968
+ return /*#__PURE__*/React.createElement(ListItemButton, {
26739
26969
  key: source.id,
26740
26970
  dense: true,
26741
- button: true,
26742
26971
  onClick: function onClick() {
26743
26972
  return handleToggle(source.id);
26744
26973
  },
@@ -26772,8 +27001,8 @@ var SyncGroupListItem = function SyncGroupListItem(_ref) {
26772
27001
  * See the License for the specific language governing permissions and
26773
27002
  * limitations under the License.
26774
27003
  *
26775
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
26776
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
27004
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
27005
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
26777
27006
  * */
26778
27007
  var SyncGroupList = function SyncGroupList(_ref) {
26779
27008
  var viewStateData = _ref.viewStateData,
@@ -26801,9 +27030,8 @@ var SyncGroupList = function SyncGroupList(_ref) {
26801
27030
  paddingLeft: '15px',
26802
27031
  paddingTop: '10px'
26803
27032
  }
26804
- }, /*#__PURE__*/React.createElement(Typography, null, title), /*#__PURE__*/React.createElement(CustomTooltip, {
26805
- title: index === 0 ? 'Add new group to list' : 'Remove group from list'
26806
- }, /*#__PURE__*/React.createElement(IconButton, {
27033
+ }, /*#__PURE__*/React.createElement(Typography, null, title), /*#__PURE__*/React.createElement(CustomIconButton, {
27034
+ tooltipTitle: index === 0 ? 'Add new group to list' : 'Remove group from list',
26807
27035
  style: {
26808
27036
  right: '10px'
26809
27037
  },
@@ -26812,9 +27040,8 @@ var SyncGroupList = function SyncGroupList(_ref) {
26812
27040
  return addNewGroup(groupObject.id);
26813
27041
  } : function () {
26814
27042
  return removeGroup(groupObject.id);
26815
- },
26816
- size: "large"
26817
- }, index === 0 ? /*#__PURE__*/React.createElement(Add, null) : /*#__PURE__*/React.createElement(Delete, null)))), /*#__PURE__*/React.createElement(SyncGroupListItem, {
27043
+ }
27044
+ }, index === 0 ? /*#__PURE__*/React.createElement(Add, null) : /*#__PURE__*/React.createElement(Delete, null))), /*#__PURE__*/React.createElement(SyncGroupListItem, {
26818
27045
  viewStateData: viewStateData,
26819
27046
  groupId: groupObject.id,
26820
27047
  selected: groupObject.selected,
@@ -26855,7 +27082,8 @@ var SyncGroupViewer = function SyncGroupViewer(_ref) {
26855
27082
  if (isChecked) {
26856
27083
  syncGroupRemoveTarget({
26857
27084
  groupId: String(groupId),
26858
- targetId: String(sourceId)
27085
+ targetId: String(sourceId),
27086
+ origin: 'user'
26859
27087
  });
26860
27088
  } else {
26861
27089
  var groups = syncGroupViewState[groupCategory].groups; // Check all other groups and if checkmark is found -> uncheck it
@@ -26870,7 +27098,8 @@ var SyncGroupViewer = function SyncGroupViewer(_ref) {
26870
27098
  if (group.id !== groupId && group.selected.includes(sourceId)) {
26871
27099
  syncGroupRemoveTarget({
26872
27100
  groupId: String(group.id),
26873
- targetId: String(sourceId)
27101
+ targetId: String(sourceId),
27102
+ origin: 'user'
26874
27103
  });
26875
27104
  }
26876
27105
  } // Add new checkmark
@@ -26883,7 +27112,8 @@ var SyncGroupViewer = function SyncGroupViewer(_ref) {
26883
27112
 
26884
27113
  syncGroupAddTarget({
26885
27114
  groupId: String(groupId),
26886
- targetId: String(sourceId)
27115
+ targetId: String(sourceId),
27116
+ origin: 'user'
26887
27117
  });
26888
27118
  }
26889
27119
  };
@@ -26904,7 +27134,8 @@ var SyncGroupViewer = function SyncGroupViewer(_ref) {
26904
27134
  syncGroupAddGroup({
26905
27135
  groupId: String(groupId + Math.floor(Math.random() * 1000)),
26906
27136
  title: title,
26907
- type: syncType
27137
+ type: syncType,
27138
+ origin: 'user'
26908
27139
  });
26909
27140
  }
26910
27141
  });
@@ -27182,8 +27413,8 @@ var testLayers = /*#__PURE__*/Object.freeze({
27182
27413
  * See the License for the specific language governing permissions and
27183
27414
  * limitations under the License.
27184
27415
  *
27185
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
27186
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
27416
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
27417
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
27187
27418
  * */
27188
27419
  var SnackbarWrapper = function SnackbarWrapper(_a) {
27189
27420
  var children = _a.children,
@@ -27201,14 +27432,19 @@ var SnackbarWrapper = function SnackbarWrapper(_a) {
27201
27432
  ClickAwayListenerProps: {
27202
27433
  mouseEvent: false
27203
27434
  },
27204
- action: /*#__PURE__*/React.createElement(IconButton, {
27435
+ action: /*#__PURE__*/React.createElement(CustomIconButton, {
27205
27436
  "aria-label": "close",
27206
27437
  "data-testid": "snackbarCloseButton",
27207
27438
  onClick: onCloseSnackbar,
27439
+ size: "large",
27208
27440
  sx: {
27209
- color: 'geowebColors.snackbar.action',
27210
- '&:hover': {
27211
- backgroundColor: 'geowebColors.snackbar.actionHover.rgba'
27441
+ '&.MuiButtonBase-root': {
27442
+ borderRadius: 20,
27443
+ color: 'geowebColors.snackbar.action',
27444
+ '&:hover': {
27445
+ color: 'geowebColors.snackbar.action',
27446
+ backgroundColor: 'geowebColors.snackbar.actionHover.rgba'
27447
+ }
27212
27448
  }
27213
27449
  }
27214
27450
  }, /*#__PURE__*/React.createElement(Close, null))
@@ -27323,6 +27559,7 @@ var CoreThemeStoreProvider = function CoreThemeStoreProvider(_ref3) {
27323
27559
  * */
27324
27560
  // stores navigate hook method to object, so it can be used outside components
27325
27561
  var historyDict = {
27562
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27326
27563
  navigate: null
27327
27564
  };
27328
27565
 
@@ -27403,8 +27640,6 @@ var routerModuleConfig = {
27403
27640
  * */
27404
27641
  var NavigateSetter = function NavigateSetter() {
27405
27642
  // stores navigate hook method to historyDict, so it can be used outside components
27406
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27407
- // @ts-ignore
27408
27643
  historyDict.navigate = useNavigate();
27409
27644
  return null;
27410
27645
  };
@@ -27556,4 +27791,4 @@ var MapWarningProperties = function MapWarningProperties(_ref) {
27556
27791
  * */
27557
27792
  var mapActions = Object.assign(Object.assign(Object.assign({}, layerActions), mapActions$1), serviceActions);
27558
27793
 
27559
- export { AppWrapperConnect, ConfigurableMapConnect, CoreThemeProvider, CoreThemeStoreProvider, DockedLayerManagerConnect, HarmonieTempAndPrecipPreset, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LayerSelectConnect, Legend, LegendConnect, LegendMapButtonConnect, MapControls, MapView, MapViewConnect, MapViewLayer, MapWarningProperties, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, ReactMapView, ReactMapViewLayer, RouterWrapperConnect, SnackbarWrapperConnect, SyncGroupViewerConnect, index as SyncGroups, TimeSlider, BackwardForwardStepButtonConnect as TimeSliderBackwardForwardStepButtonConnect, TimeSliderButtonsConnect, TimeSliderConnect, OptionsMenuButtonConnect as TimeSliderOptionsMenuButtonConnect, PlayButtonConnect as TimeSliderPlayButtonConnect, ZoomControlConnect, ZoomControls, appActions, componentsLookUp, coreModuleConfig, dateFormat, defaultBbox, defaultConfigurations, filterLayers, filterMapPresets, filterNonTimeDimensions, filterServices, generateLayerId, generateMapId, generateTimesliderId, selectors$1 as genericSelectors, getDrawFunctionFromStore, getFirstTimeStepForLayerId, getInitialAppPresets, getLastTimeStepForLayerId, getNextTimeStepForLayerId, getPreviousTimeStepForLayerId, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSTimeDimensionForLayerId, getWMLayerById, layerActions, reducer$8 as layerReducer, selectors$3 as layerSelectors, types$3 as layerTypes, mapActions, moduleConfig as mapModuleConfig, selectors as mapSelectors, types$2 as mapTypes, utils as mapUtils, parseBoolean, parseLayer, publicLayers, publicServices, registerDrawFunction, registerWMJSMap, registerWMLayer, routerActions, snackbarActions, store, genericActions as syncGroupActions, synchronizationGroupConfig as synchronizationGroupModuleConfig, synchronizationGroupConfig as synchronizationGroupsConfig, testLayers, timeSliderUtils, uiActions, uiModuleConfig, selectors$2 as uiSelectors, types as uiTypes, unRegisterWMJSLayer, unRegisterWMJSMap, useSetupDialog };
27794
+ export { AppWrapperConnect, ConfigurableMapConnect, CoreThemeProvider, CoreThemeStoreProvider, DockedLayerManagerConnect, HarmonieTempAndPrecipPreset, LayerManager, BaseLayerRow as LayerManagerBaseLayerRow, LayerManagerConnect, DescriptionRow as LayerManagerDescriptionRow, HeaderOptions as LayerManagerHeaderOptions, LayerContainerRow as LayerManagerLayerContainerRow, LayerManagerMapButtonConnect, LayerSelectConnect, Legend, LegendConnect, LegendMapButtonConnect, MapControls, MapView, MapViewConnect, MapViewLayer, MapWarningProperties, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, ReactMapView, ReactMapViewLayer, RouterWrapperConnect, SnackbarWrapperConnect, SyncGroupViewerConnect, index as SyncGroups, TimeSlider, BackwardForwardStepButtonConnect as TimeSliderBackwardForwardStepButtonConnect, TimeSliderButtonsConnect, TimeSliderConnect, OptionsMenuButtonConnect as TimeSliderOptionsMenuButtonConnect, PlayButtonConnect as TimeSliderPlayButtonConnect, ZoomControlConnect, ZoomControls, appActions, componentsLookUp, coreModuleConfig, dateFormat, defaultBbox, defaultConfigurations, filterLayers, filterMapPresets, filterNonTimeDimensions, filterServices, generateLayerId, generateMapId, generateTimesliderId, selectors$1 as genericSelectors, getDrawFunctionFromStore, getFirstTimeStepForLayerId, getInitialAppPresets, getLastTimeStepForLayerId, getNextTimeStepForLayerId, getPreviousTimeStepForLayerId, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSTimeDimensionForLayerId, getWMLayerById, layerActions, reducer$8 as layerReducer, selectors$4 as layerSelectors, types$3 as layerTypes, mapActions, moduleConfig as mapModuleConfig, selectors as mapSelectors, types$2 as mapTypes, utils as mapUtils, parseBoolean, parseLayer, publicLayers, publicServices, registerDrawFunction, registerWMJSMap, registerWMLayer, routerActions, snackbarActions, store, genericActions as syncGroupActions, selectors$2 as syncGroupsSelectors, synchronizationGroupConfig as synchronizationGroupModuleConfig, synchronizationGroupConfig as synchronizationGroupsConfig, testLayers, timeSliderUtils, uiActions, uiModuleConfig, selectors$3 as uiSelectors, types as uiTypes, unRegisterWMJSLayer, unRegisterWMJSMap, useSetupDialog };