@opengeoweb/core 9.4.1 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.esm.js +104 -96
  2. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { useState, useCallback, useRef, useEffect, useLayoutEffect } from 'react';
3
3
  import { Grid, Box, MenuItem, Typography, useTheme, Button, Popper, ListItemText, ListItemIcon, FormControl, InputLabel, Paper, List, ListItemButton, CircularProgress, ListSubheader, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, InputAdornment, DialogActions, LinearProgress, styled, Slider, Checkbox, Card, IconButton, Select, CardContent, RadioGroup, FormControlLabel, Radio, ToggleButtonGroup, ToggleButton, Divider, Tooltip, ButtonGroup } from '@mui/material';
4
- import { CustomIconButton, TooltipSelect, AlertIcon, useControlledTooltip, CustomTooltip, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, AlertBanner, CustomAccordion, calculateStartSize, ToolContainerDraggable, dateUtils, withEggs } from '@opengeoweb/shared';
4
+ import { CustomIconButton, TooltipSelect, AlertIcon, useControlledTooltip, CustomTooltip, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, renderCounter, AlertBanner, CustomAccordion, calculateStartSize, ToolContainerDraggable, dateUtils, withEggs } from '@opengeoweb/shared';
5
5
  import { LayerSelectButtonConnect, LayerInfoButton, LayerInfoButtonConnect, getUserAddedServices, layerSelectConfig } from '@opengeoweb/layer-select';
6
6
  import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, Copy, None, FastForward, AutoUpdateActive, Both, Visibility, VisibilityOff, Delete, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Layers, Equalizer, DimensionsElevation, Link, LinkOff, List as List$1, ExitDomain, Info, Search, MyLocation, Close, ChevronDown, ChevronUp, StepForward, StepBackward, Pause, Play, Options, ThemeWrapper, lightTheme } from '@opengeoweb/theme';
7
7
  import { useDispatch, useSelector, connect, Provider } from 'react-redux';
@@ -850,7 +850,7 @@ var DimensionSelectValue = function DimensionSelectValue(_ref) {
850
850
  return null;
851
851
  }
852
852
  var isReferenceTimeDimensionAndUseLatestIsAvailable = selectedDimension.name === 'reference_time' && useLatestReferenceTime !== undefined;
853
- var latestValue = hideLatestDuplicate && isReferenceTimeDimensionAndUseLatestIsAvailable ? dimensionValuesRaw.shift() : dimensionValuesRaw[0];
853
+ var latestValue = dimensionValuesRaw[0];
854
854
  var setDimensionValue = function setDimensionValue(dimensionValue) {
855
855
  if (isReferenceTimeDimensionAndUseLatestIsAvailable) {
856
856
  if (dimensionValue === 'Latest') {
@@ -862,7 +862,7 @@ var DimensionSelectValue = function DimensionSelectValue(_ref) {
862
862
  }
863
863
  onLayerChangeDimension(selectedDimension.name, dimensionValue, layerTypes.LayerActionOrigin.layerManager);
864
864
  };
865
- var dimensionValues = isReferenceTimeDimensionAndUseLatestIsAvailable ? ['Latest'].concat(_toConsumableArray(dimensionValuesRaw)) : dimensionValuesRaw.slice(0, 100).reverse();
865
+ var dimensionValues = isReferenceTimeDimensionAndUseLatestIsAvailable ? ['Latest'].concat(_toConsumableArray(dimensionValuesRaw.slice(hideLatestDuplicate ? 1 : 0, 100))) : dimensionValuesRaw.slice(0, 100).reverse();
866
866
  var isLatest = isReferenceTimeDimensionAndUseLatestIsAvailable && useLatestReferenceTime && selectedDimension.maxValue === selectedDimension.currentValue;
867
867
  return /*#__PURE__*/React__default.createElement(TooltipSelect, {
868
868
  disableUnderline: true,
@@ -1877,6 +1877,7 @@ var LayerRow = function LayerRow(_ref7) {
1877
1877
  layerId: layerId
1878
1878
  });
1879
1879
  };
1880
+ renderCounter.count(LayerRow.name);
1880
1881
  return /*#__PURE__*/React__default.createElement(Grid, {
1881
1882
  item: true,
1882
1883
  container: true,
@@ -2963,7 +2964,7 @@ var LayerRowConnect = function LayerRowConnect(_ref) {
2963
2964
  return serviceSelectors.getLayerFromService(store, layerServiceUrl, layerName);
2964
2965
  });
2965
2966
  var currentlySelectedLayer = useSelector(function (store) {
2966
- return layerSelectors.getLayerById(store, layerId);
2967
+ return layerSelectors.getLayerByIdWithoutTimeDimension(store, layerId);
2967
2968
  });
2968
2969
  var layerWithAllData = useSelector(function (store) {
2969
2970
  return serviceSelectors.getLayerFromService(store, currentlySelectedLayer === null || currentlySelectedLayer === void 0 ? void 0 : currentlySelectedLayer.service, currentlySelectedLayer === null || currentlySelectedLayer === void 0 ? void 0 : currentlySelectedLayer.name);
@@ -2975,6 +2976,7 @@ var LayerRowConnect = function LayerRowConnect(_ref) {
2975
2976
  serviceName: currentService === null || currentService === void 0 ? void 0 : currentService.name
2976
2977
  });
2977
2978
  var fullLayerName = serviceLayer === null || serviceLayer === void 0 ? void 0 : serviceLayer.title;
2979
+ renderCounter.count(LayerRowConnect.name);
2978
2980
  return /*#__PURE__*/React.createElement(LayerRow, {
2979
2981
  isEnabled: isEnabled,
2980
2982
  mapId: mapId,
@@ -4505,6 +4507,7 @@ var LayerManager = function LayerManager(_ref) {
4505
4507
  sizeInState = _React$useState2[0],
4506
4508
  setSizeInState = _React$useState2[1];
4507
4509
  var theme = useTheme();
4510
+ renderCounter.count(LayerManager.name);
4508
4511
  return /*#__PURE__*/React.createElement(ToolContainerDraggable, {
4509
4512
  title: title,
4510
4513
  startSize: sizeInState,
@@ -4718,7 +4721,7 @@ var LayerManagerConnect = function LayerManagerConnect(_ref) {
4718
4721
  setFocused = _useSetupDialog.setFocused;
4719
4722
  // Only fetch services for floating layer manager, not for docked!
4720
4723
  useFetchServices(dialogType, preloadedMapServices, isDocked);
4721
- var onToggleDock = function onToggleDock() {
4724
+ var onToggleDock = React.useCallback(function () {
4722
4725
  onCloseDialog();
4723
4726
  if (isDocked) {
4724
4727
  // Close docked layer manager and open the floating layer manager
@@ -4735,36 +4738,38 @@ var LayerManagerConnect = function LayerManagerConnect(_ref) {
4735
4738
  setOpen: true
4736
4739
  }));
4737
4740
  }
4738
- };
4739
- var shownTitle = showMapIdInTitle ? "".concat(title, " ").concat(mapId) : title;
4740
- return /*#__PURE__*/React.createElement(LayerManager, {
4741
- mapId: mapId || initialMapId,
4742
- preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
4743
- preloadedBaseServices: preloadedBaseServices,
4744
- bounds: bounds,
4745
- isOpen: isDialogOpen,
4746
- onClose: onCloseDialog,
4747
- title: shownTitle,
4748
- onMouseDown: setDialogOrder,
4749
- order: dialogOrder,
4750
- source: uiSource,
4751
- size: isDocked ? returnCorrectSize(dockedLayerManagerSize) : sizeLarge,
4752
- leftHeaderComponent: leftHeaderComponent,
4753
- isLoading: uiIsLoading,
4754
- error: uiError,
4755
- onToggleDock: onToggleDock,
4756
- setFocused: setFocused,
4757
- headerSize: "xs",
4758
- isMultiMap: isMultiMap,
4759
- isDockedLayerManager: isDocked,
4760
- startPosition: isDocked ? {
4761
- top: 60,
4762
- right: 16
4763
- } : {
4764
- top: 85,
4765
- left: 50
4766
- }
4767
- });
4741
+ }, [dispatch, isDocked, mapId, onCloseDialog, source]);
4742
+ return React.useMemo(function () {
4743
+ var shownTitle = showMapIdInTitle ? "".concat(title, " ").concat(mapId) : title;
4744
+ return /*#__PURE__*/React.createElement(LayerManager, {
4745
+ mapId: mapId || initialMapId,
4746
+ preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
4747
+ preloadedBaseServices: preloadedBaseServices,
4748
+ bounds: bounds,
4749
+ isOpen: isDialogOpen,
4750
+ onClose: onCloseDialog,
4751
+ title: shownTitle,
4752
+ onMouseDown: setDialogOrder,
4753
+ order: dialogOrder,
4754
+ source: uiSource,
4755
+ size: isDocked ? returnCorrectSize(dockedLayerManagerSize) : sizeLarge,
4756
+ leftHeaderComponent: leftHeaderComponent,
4757
+ isLoading: uiIsLoading,
4758
+ error: uiError,
4759
+ onToggleDock: onToggleDock,
4760
+ setFocused: setFocused,
4761
+ headerSize: "xs",
4762
+ isMultiMap: isMultiMap,
4763
+ isDockedLayerManager: isDocked,
4764
+ startPosition: isDocked ? {
4765
+ top: 60,
4766
+ right: 16
4767
+ } : {
4768
+ top: 85,
4769
+ left: 50
4770
+ }
4771
+ });
4772
+ }, [bounds, dialogOrder, dockedLayerManagerSize, initialMapId, isDialogOpen, isDocked, isMultiMap, leftHeaderComponent, mapId, onCloseDialog, onToggleDock, preloadedAvailableBaseLayers, preloadedBaseServices, setDialogOrder, setFocused, showMapIdInTitle, title, uiError, uiIsLoading, uiSource]);
4768
4773
  };
4769
4774
 
4770
4775
  /* *
@@ -6779,67 +6784,70 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_a) {
6779
6784
  // eslint-disable-next-line react-hooks/exhaustive-deps
6780
6785
  }, []);
6781
6786
  var mapControlsPositionTop = title ? 24 : 8;
6782
- return /*#__PURE__*/React__default.createElement(Box, {
6783
- sx: {
6784
- width: '100%',
6785
- height: '100%',
6786
- position: 'relative',
6787
- overflow: 'hidden'
6788
- },
6789
- "data-testid": "ConfigurableMap"
6790
- }, title && ( /*#__PURE__*/React__default.createElement(Typography, {
6791
- "data-testid": "mapTitle",
6792
- sx: titleStyle
6793
- }, title)), /*#__PURE__*/React__default.createElement(MapControls, {
6794
- "data-testid": "mapControls",
6795
- style: {
6796
- top: mapControlsPositionTop
6797
- }
6798
- }, displaySearchButtonInMap && ( /*#__PURE__*/React__default.createElement(SearchControlButtonConnect, {
6799
- mapId: mapId
6800
- })), /*#__PURE__*/React__default.createElement(ZoomControlConnect, {
6801
- mapId: id
6802
- }), displayLayerManagerAndLegendButtonInMap && ( /*#__PURE__*/React__default.createElement(LayerManagerMapButtonConnect, {
6803
- mapId: mapId
6804
- })), displayLayerManagerAndLegendButtonInMap && ( /*#__PURE__*/React__default.createElement(LegendMapButtonConnect, {
6805
- mapId: mapId,
6806
- multiLegend: multiLegend
6807
- })), displayDimensionSelectButtonInMap && ( /*#__PURE__*/React__default.createElement(MultiDimensionSelectMapButtonsConnect, {
6808
- mapId: mapId
6809
- })), displayGetFeatureInfoButtonInMap && ( /*#__PURE__*/React__default.createElement(GetFeatureInfoButtonConnect, {
6810
- mapId: mapId
6811
- })), mapControls), !disableTimeSlider && ( /*#__PURE__*/React__default.createElement(Box, {
6812
- sx: {
6813
- position: 'absolute',
6814
- left: '0px',
6815
- bottom: '0px',
6816
- zIndex: 1000,
6817
- width: '100%'
6818
- }
6819
- }, /*#__PURE__*/React__default.createElement(TimeSliderConnect, {
6820
- mapId: id,
6821
- sourceId: id
6822
- }))), /*#__PURE__*/React__default.createElement(MapViewConnect, {
6823
- controls: {},
6824
- displayTimeInMap: displayTimeInMap,
6825
- showScaleBar: false,
6826
- mapId: mapId
6827
- }, children), multiLegend && ( /*#__PURE__*/React__default.createElement(LegendConnect, {
6828
- showMapId: true,
6829
- mapId: mapId,
6830
- multiLegend: multiLegend
6831
- })), /*#__PURE__*/React__default.createElement(SearchControlConnect, {
6832
- mapId: mapId
6833
- }), showClock && /*#__PURE__*/React__default.createElement(TimeSliderClockConnect, {
6834
- mapId: mapId
6835
- }), displayGetFeatureInfoButtonInMap && ( /*#__PURE__*/React__default.createElement(GetFeatureInfoConnect, {
6836
- showMapId: true,
6837
- mapId: mapId
6838
- })), /*#__PURE__*/React__default.createElement(LayerManagerConnect, {
6839
- mapId: mapId,
6840
- bounds: "parent",
6841
- isDocked: true
6842
- }));
6787
+ return React__default.useMemo(function () {
6788
+ renderCounter.count("".concat(ConfigurableMapConnect.name, "_").concat(mapId));
6789
+ return /*#__PURE__*/React__default.createElement(Box, {
6790
+ sx: {
6791
+ width: '100%',
6792
+ height: '100%',
6793
+ position: 'relative',
6794
+ overflow: 'hidden'
6795
+ },
6796
+ "data-testid": "ConfigurableMap"
6797
+ }, title && ( /*#__PURE__*/React__default.createElement(Typography, {
6798
+ "data-testid": "mapTitle",
6799
+ sx: titleStyle
6800
+ }, title)), /*#__PURE__*/React__default.createElement(MapControls, {
6801
+ "data-testid": "mapControls",
6802
+ style: {
6803
+ top: mapControlsPositionTop
6804
+ }
6805
+ }, displaySearchButtonInMap && ( /*#__PURE__*/React__default.createElement(SearchControlButtonConnect, {
6806
+ mapId: mapId
6807
+ })), /*#__PURE__*/React__default.createElement(ZoomControlConnect, {
6808
+ mapId: id
6809
+ }), displayLayerManagerAndLegendButtonInMap && ( /*#__PURE__*/React__default.createElement(LayerManagerMapButtonConnect, {
6810
+ mapId: mapId
6811
+ })), displayLayerManagerAndLegendButtonInMap && ( /*#__PURE__*/React__default.createElement(LegendMapButtonConnect, {
6812
+ mapId: mapId,
6813
+ multiLegend: multiLegend
6814
+ })), displayDimensionSelectButtonInMap && ( /*#__PURE__*/React__default.createElement(MultiDimensionSelectMapButtonsConnect, {
6815
+ mapId: mapId
6816
+ })), displayGetFeatureInfoButtonInMap && ( /*#__PURE__*/React__default.createElement(GetFeatureInfoButtonConnect, {
6817
+ mapId: mapId
6818
+ })), mapControls), !disableTimeSlider && ( /*#__PURE__*/React__default.createElement(Box, {
6819
+ sx: {
6820
+ position: 'absolute',
6821
+ left: '0px',
6822
+ bottom: '0px',
6823
+ zIndex: 1000,
6824
+ width: '100%'
6825
+ }
6826
+ }, /*#__PURE__*/React__default.createElement(TimeSliderConnect, {
6827
+ mapId: id,
6828
+ sourceId: id
6829
+ }))), /*#__PURE__*/React__default.createElement(MapViewConnect, {
6830
+ controls: {},
6831
+ displayTimeInMap: displayTimeInMap,
6832
+ showScaleBar: false,
6833
+ mapId: mapId
6834
+ }, children), multiLegend && ( /*#__PURE__*/React__default.createElement(LegendConnect, {
6835
+ showMapId: true,
6836
+ mapId: mapId,
6837
+ multiLegend: multiLegend
6838
+ })), /*#__PURE__*/React__default.createElement(SearchControlConnect, {
6839
+ mapId: mapId
6840
+ }), showClock && /*#__PURE__*/React__default.createElement(TimeSliderClockConnect, {
6841
+ mapId: mapId
6842
+ }), displayGetFeatureInfoButtonInMap && ( /*#__PURE__*/React__default.createElement(GetFeatureInfoConnect, {
6843
+ showMapId: true,
6844
+ mapId: mapId
6845
+ })), /*#__PURE__*/React__default.createElement(LayerManagerConnect, {
6846
+ mapId: mapId,
6847
+ bounds: "parent",
6848
+ isDocked: true
6849
+ }));
6850
+ }, [children, disableTimeSlider, displayDimensionSelectButtonInMap, displayGetFeatureInfoButtonInMap, displayLayerManagerAndLegendButtonInMap, displaySearchButtonInMap, displayTimeInMap, id, mapControls, mapControlsPositionTop, mapId, multiLegend, showClock, title]);
6843
6851
  };
6844
6852
 
6845
6853
  /* *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "9.4.1",
3
+ "version": "9.5.0",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {