@opengeoweb/core 8.3.1 → 8.4.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.
package/index.esm.js CHANGED
@@ -1,17 +1,17 @@
1
1
  import * as React from 'react';
2
- import React__default, { forwardRef, useContext, useCallback, useEffect, createElement, PureComponent, useState, useRef, useLayoutEffect } from 'react';
2
+ import React__default, { useState, forwardRef, useContext, useCallback, useEffect, createElement, PureComponent, useRef, useLayoutEffect } from 'react';
3
3
  import { Grid, Box as Box$2, MenuItem, Typography, useTheme as useTheme$2, Button, Popper, ListItemText, ListItemIcon, FormControl, InputLabel, Paper, List, ListItemButton, CircularProgress, ListSubheader, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, InputAdornment, DialogActions, LinearProgress, Backdrop, ListItem, ListItemSecondaryAction, Checkbox, Switch, styled as styled$1, Slider, Menu, Card, IconButton, Select, CardContent, RadioGroup, FormControlLabel, Radio, ToggleButtonGroup, ToggleButton, Divider, Tooltip, ButtonGroup, Snackbar } from '@mui/material';
4
4
  import { CustomIconButton, TooltipSelect, AlertIcon, useControlledTooltip, CustomTooltip, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, AlertBanner, CustomAccordion, ToolContainerDraggable, calculateStartSize, CustomToggleButton, SearchHighlight, dateUtils, useMakeSureContainerStaysInsideWindow, withEggs } from '@opengeoweb/shared';
5
5
  import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, Copy, None, FastForward, AutoUpdateActive, Both, Info, Visibility, VisibilityOff, Delete, DimensionsOther, DimensionsElevation, DimensionsRefTime, DimensionsTime, DragHandle as DragHandle$1, Cached, Add, MapAdd, Filter, Search, Clear, Edit, Close, Layers, Equalizer, Link, LinkOff, AutoUpdateInActive, Speed, Clock, Now, Animation, Options, Pause, Play, StepForward, StepBackward, dragHandlePath, ChevronDown, ChevronUp, List as List$1, ChevronRight, ChevronLeft, Resize, ExitDomain, ThemeWrapper, lightTheme } from '@opengeoweb/theme';
6
6
  import { useDispatch, useSelector, connect, Provider } from 'react-redux';
7
7
  import { uiTypes, uiSelectors, uiActions, layerTypes, layerUtils, layerActions, layerSelectors, serviceSelectors, serviceActions, mapSelectors, mapActions, mapEnums, mapConstants, layerSelectSelectors, layerSelectActions, filterLayers, getUserAddedServices, storeUtils, snackbarActions, layerSelectTypes, mapUtils, genericActions, syncConstants, defaultLayers, mapStoreActions, getSingularDrawtoolDrawLayerId, syncGroupsSelectors, syncGroupsSelector, snackbarModuleConfig, snackbarSelectors, coreModuleConfig, routerUtils, routerModuleConfig, appModuleConfig, appActions } from '@opengeoweb/store';
8
8
  import { ReactSortable } from 'react-sortablejs';
9
- import { webmapUtils, WMGetServiceFromStore, getCapabilities, LayerType, clearImageCache, WMLayer } from '@opengeoweb/webmap';
9
+ import { WMGetServiceFromStore, getCapabilities, webmapUtils, LayerType, clearImageCache, WMLayer } from '@opengeoweb/webmap';
10
10
  import { jsx } from 'react/jsx-runtime';
11
11
  import Box$3 from '@mui/material/Box';
12
12
  import Typography$1 from '@mui/material/Typography';
13
13
  import Grid$1 from '@mui/material/Grid';
14
- import { LegendLayout, MapControlButton, ZoomControls, CanvasComponent, MapView, MapViewLayer, LegendDialog, emptyGeoJSON, MapControls, publicLayers } from '@opengeoweb/webmap-react';
14
+ import { LegendLayout, MapControlButton, ZoomControls, CanvasComponent, MapView, MapViewLayer, LegendDialog, SearchDialog, emptyGeoJSON, MapControls, publicLayers } from '@opengeoweb/webmap-react';
15
15
  import _, { isEqual as isEqual$1, debounce, groupBy, throttle as throttle$1, range } from 'lodash';
16
16
  import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
17
17
  import { useFormContext } from 'react-hook-form';
@@ -3914,93 +3914,40 @@ Sortable.mount(new AutoScrollPlugin());
3914
3914
  Sortable.mount(Remove, Revert);
3915
3915
 
3916
3916
  var DimensionSelect = function DimensionSelect(_ref) {
3917
- var layerId = _ref.layerId,
3918
- onLayerChangeDimension = _ref.onLayerChangeDimension,
3917
+ var onLayerChangeDimension = _ref.onLayerChangeDimension,
3919
3918
  _ref$layerDimensions = _ref.layerDimensions,
3920
3919
  layerDimensions = _ref$layerDimensions === void 0 ? [] : _ref$layerDimensions,
3921
- isEnabled = _ref.isEnabled,
3920
+ _ref$isEnabled = _ref.isEnabled,
3921
+ isEnabled = _ref$isEnabled === void 0 ? false : _ref$isEnabled,
3922
3922
  icon = _ref.icon,
3923
3923
  nameMappings = _ref.nameMappings,
3924
3924
  valueMappings = _ref.valueMappings,
3925
3925
  _ref$tooltipPrefix = _ref.tooltipPrefix,
3926
- tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Dimensions: ' : _ref$tooltipPrefix;
3927
- var _React$useState = React.useState(layerDimensions.length ? layerDimensions[0].name : ''),
3928
- _React$useState2 = _slicedToArray(_React$useState, 2),
3929
- activeDimName = _React$useState2[0],
3930
- setActiveDimName = _React$useState2[1];
3931
- React.useEffect(function () {
3932
- var activeDim = layerDimensions.find(function (d) {
3933
- return d.name === activeDimName;
3934
- });
3935
- if (!activeDim) {
3936
- setActiveDimName(layerDimensions.length ? layerDimensions[0].name : '');
3937
- }
3938
- }, [layerDimensions, activeDimName]);
3939
- React.useEffect(function () {
3940
- var activeDim = layerDimensions.find(function (d) {
3941
- return d.name === activeDimName;
3942
- });
3943
- if (activeDim) {
3944
- onLayerChangeDimension(activeDim.name, activeDim.currentValue);
3945
- }
3946
- // eslint-disable-next-line react-hooks/exhaustive-deps
3947
- }, []);
3948
- if (!layerDimensions.length || !layerId) {
3949
- return null;
3950
- }
3951
- var getValuesToDisplay = function getValuesToDisplay() {
3952
- var activeWMJSDim = webmapUtils.getWMJSDimensionForLayerAndDimension(layerId, activeDimName) || webmapUtils.getWMJSDimensionForLayerAndDimension(layerId, layerDimensions[0].name);
3953
- if (!activeWMJSDim) {
3954
- return null;
3955
- }
3956
- var availableDimValues = [];
3957
- for (var j = 0; j < activeWMJSDim.size(); j += 1) {
3958
- availableDimValues.push(activeWMJSDim.getValueForIndex(j));
3959
- }
3960
- availableDimValues.reverse();
3961
- // Only display last 100 values, to avoid performance issues
3962
- // TODO: (2020-06-29 Tineke van Rijn) replace this with lazy loading
3963
- return availableDimValues.slice(0, 100);
3964
- };
3965
- var valuesToDisplay = getValuesToDisplay();
3966
- if (valuesToDisplay === null) {
3967
- return null;
3968
- }
3969
- var activeDim = layerDimensions.find(function (dim) {
3970
- return dim.name === activeDimName;
3971
- });
3972
- if (!activeDim) {
3973
- return null;
3974
- }
3975
- var selectDimensionValue = function selectDimensionValue(event) {
3976
- event.stopPropagation();
3977
- if (activeDim) {
3978
- onLayerChangeDimension(activeDim.name, event.target.value, layerTypes.LayerActionOrigin.layerManager);
3979
- }
3980
- };
3981
- var onChangeActiveDimensionName = function onChangeActiveDimensionName(event) {
3982
- event.stopPropagation();
3983
- setActiveDimName(event.target.value);
3984
- };
3985
- var dimNameList = layerDimensions.map(function (dimension) {
3986
- return {
3987
- value: dimension.name
3988
- };
3989
- });
3990
- var dimNameCurrentIndex = layerDimensions.findIndex(function (value) {
3991
- return value.name === activeDim.name;
3992
- });
3993
- var dimValueList = valuesToDisplay.map(function (value) {
3994
- return {
3995
- value: value
3996
- };
3926
+ tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Dimensions: ' : _ref$tooltipPrefix,
3927
+ SingleValueComponent = _ref.SingleValueComponent;
3928
+ var _a, _b;
3929
+ var _useState = useState((_a = layerDimensions === null || layerDimensions === void 0 ? void 0 : layerDimensions[0]) === null || _a === void 0 ? void 0 : _a.name),
3930
+ _useState2 = _slicedToArray(_useState, 2),
3931
+ selectedDimensionName = _useState2[0],
3932
+ setSelectedDimensionName = _useState2[1];
3933
+ var selectedDimension = layerDimensions.find(function (dimension) {
3934
+ return dimension.name === selectedDimensionName;
3997
3935
  });
3998
- var dimValueCurrentIndex = valuesToDisplay.findIndex(function (value) {
3999
- return value === activeDim.currentValue;
3936
+ var dimensionNames = layerDimensions.map(function (dimension) {
3937
+ return dimension.name;
4000
3938
  });
4001
- if (dimValueCurrentIndex === -1) {
3939
+ var selectedDimensionDoesntExist = !dimensionNames.includes(selectedDimensionName);
3940
+ React.useEffect(function () {
3941
+ var _a, _b;
3942
+ if (selectedDimensionDoesntExist) {
3943
+ setSelectedDimensionName((_b = (_a = layerDimensions === null || layerDimensions === void 0 ? void 0 : layerDimensions[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '');
3944
+ }
3945
+ }, [layerDimensions, selectedDimensionDoesntExist]);
3946
+ if (selectedDimensionDoesntExist) {
4002
3947
  return null;
4003
3948
  }
3949
+ var collapseDimensionDropdown = SingleValueComponent && layerDimensions.length === 1;
3950
+ var collapseValueDropdown = SingleValueComponent && ((_b = selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.values) === null || _b === void 0 ? void 0 : _b.length) === 1;
4004
3951
  return /*#__PURE__*/React.createElement(Grid, {
4005
3952
  container: true,
4006
3953
  direction: "row",
@@ -4009,21 +3956,63 @@ var DimensionSelect = function DimensionSelect(_ref) {
4009
3956
  }, /*#__PURE__*/React.createElement(Grid, {
4010
3957
  item: true,
4011
3958
  xs: 12
4012
- }, /*#__PURE__*/React.createElement(TooltipSelect, {
3959
+ }, collapseDimensionDropdown ? /*#__PURE__*/React.createElement(SingleValueComponent, Object.assign({}, layerDimensions[0], {
3960
+ nameMappings: nameMappings,
3961
+ valueMappings: valueMappings,
3962
+ position: "dimension"
3963
+ })) : /*#__PURE__*/React.createElement(SelectDimension, {
3964
+ selectedDimensionName: selectedDimensionName,
3965
+ setSelectedDimensionName: setSelectedDimensionName,
3966
+ dimensionNames: dimensionNames,
3967
+ tooltipPrefix: tooltipPrefix,
3968
+ isEnabled: isEnabled,
3969
+ icon: icon,
3970
+ nameMappings: nameMappings
3971
+ }), collapseValueDropdown ? /*#__PURE__*/React.createElement(SingleValueComponent, Object.assign({}, layerDimensions[0], {
3972
+ nameMappings: nameMappings,
3973
+ valueMappings: valueMappings,
3974
+ position: "value"
3975
+ })) : /*#__PURE__*/React.createElement(SelectDimensionValue, {
3976
+ selectedDimension: selectedDimension,
3977
+ onLayerChangeDimension: onLayerChangeDimension,
3978
+ tooltipPrefix: tooltipPrefix,
3979
+ isEnabled: isEnabled,
3980
+ icon: icon,
3981
+ valueMappings: valueMappings
3982
+ })));
3983
+ };
3984
+ var SelectDimension = function SelectDimension(_ref2) {
3985
+ var selectedDimensionName = _ref2.selectedDimensionName,
3986
+ setSelectedDimensionName = _ref2.setSelectedDimensionName,
3987
+ icon = _ref2.icon,
3988
+ nameMappings = _ref2.nameMappings,
3989
+ tooltipPrefix = _ref2.tooltipPrefix,
3990
+ isEnabled = _ref2.isEnabled,
3991
+ dimensionNames = _ref2.dimensionNames;
3992
+ return /*#__PURE__*/React.createElement(TooltipSelect, {
4013
3993
  disableUnderline: true,
4014
- tooltip: "".concat(tooltipPrefix).concat(activeDimName),
3994
+ tooltip: "".concat(tooltipPrefix).concat(selectedDimensionName),
4015
3995
  inputProps: {
4016
3996
  SelectDisplayProps: {
4017
3997
  'data-testid': 'selectDimension'
4018
3998
  }
4019
3999
  },
4020
4000
  isEnabled: isEnabled,
4021
- value: activeDimName,
4022
- list: dimNameList,
4023
- currentIndex: dimNameCurrentIndex,
4024
- onChange: onChangeActiveDimensionName,
4025
- onChangeMouseWheel: function onChangeMouseWheel(e) {
4026
- return setActiveDimName(e.value);
4001
+ value: selectedDimensionName,
4002
+ list: dimensionNames.map(function (name) {
4003
+ return {
4004
+ value: name
4005
+ };
4006
+ }),
4007
+ currentIndex: dimensionNames.findIndex(function (name) {
4008
+ return name === selectedDimensionName;
4009
+ }),
4010
+ onChange: function onChange(event) {
4011
+ event.stopPropagation();
4012
+ setSelectedDimensionName(event.target.value);
4013
+ },
4014
+ onChangeMouseWheel: function onChangeMouseWheel(event) {
4015
+ setSelectedDimensionName(event.value);
4027
4016
  },
4028
4017
  style: {
4029
4018
  maxWidth: '50%'
@@ -4031,14 +4020,31 @@ var DimensionSelect = function DimensionSelect(_ref) {
4031
4020
  IconComponent: icon
4032
4021
  }, /*#__PURE__*/React.createElement(MenuItem, {
4033
4022
  disabled: true
4034
- }, "Dimension"), layerDimensions.map(function (dimension) {
4023
+ }, "Dimension"), dimensionNames.map(function (name) {
4035
4024
  return /*#__PURE__*/React.createElement(MenuItem, {
4036
- key: dimension.name,
4037
- value: dimension.name
4038
- }, nameMappings && dimension.name && nameMappings[dimension.name] || dimension.name);
4039
- })), /*#__PURE__*/React.createElement(TooltipSelect, {
4025
+ key: name,
4026
+ value: name
4027
+ }, (nameMappings === null || nameMappings === void 0 ? void 0 : nameMappings[name]) || name);
4028
+ }));
4029
+ };
4030
+ var SelectDimensionValue = function SelectDimensionValue(_ref3) {
4031
+ var isEnabled = _ref3.isEnabled,
4032
+ tooltipPrefix = _ref3.tooltipPrefix,
4033
+ selectedDimension = _ref3.selectedDimension,
4034
+ icon = _ref3.icon,
4035
+ onLayerChangeDimension = _ref3.onLayerChangeDimension,
4036
+ valueMappings = _ref3.valueMappings;
4037
+ var _a;
4038
+ var dimensionValues = (_a = selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.values) === null || _a === void 0 ? void 0 : _a.split(',').slice(0, 100).reverse();
4039
+ if (!(selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.name) || !(dimensionValues === null || dimensionValues === void 0 ? void 0 : dimensionValues.length)) {
4040
+ return null;
4041
+ }
4042
+ var setDimensionValue = function setDimensionValue(dimensionValue) {
4043
+ onLayerChangeDimension(selectedDimension.name, dimensionValue, layerTypes.LayerActionOrigin.layerManager);
4044
+ };
4045
+ return /*#__PURE__*/React.createElement(TooltipSelect, {
4040
4046
  disableUnderline: true,
4041
- tooltip: "".concat(tooltipPrefix).concat(activeDimName, " ").concat(activeDim.currentValue, " ").concat(activeDim.units),
4047
+ tooltip: "".concat(tooltipPrefix).concat(selectedDimension.name, " ").concat(selectedDimension.currentValue, " ").concat(selectedDimension.units),
4042
4048
  inputProps: {
4043
4049
  SelectDisplayProps: {
4044
4050
  'data-testid': 'selectDimensionValue'
@@ -4046,12 +4052,21 @@ var DimensionSelect = function DimensionSelect(_ref) {
4046
4052
  'data-testid': 'selectDimensionValue-input'
4047
4053
  },
4048
4054
  isEnabled: isEnabled,
4049
- value: activeDim && activeDim.currentValue,
4050
- list: dimValueList,
4051
- currentIndex: dimValueCurrentIndex,
4052
- onChange: selectDimensionValue,
4053
- onChangeMouseWheel: function onChangeMouseWheel(e) {
4054
- return onLayerChangeDimension(activeDim.name, e.value, layerTypes.LayerActionOrigin.layerManager);
4055
+ value: selectedDimension.currentValue,
4056
+ list: dimensionValues.map(function (dimensionValue) {
4057
+ return {
4058
+ value: dimensionValue
4059
+ };
4060
+ }),
4061
+ currentIndex: dimensionValues.findIndex(function (dimensionValue) {
4062
+ return dimensionValue === selectedDimension.currentValue;
4063
+ }),
4064
+ onChange: function onChange(event) {
4065
+ event.stopPropagation();
4066
+ setDimensionValue(event.target.value);
4067
+ },
4068
+ onChangeMouseWheel: function onChangeMouseWheel(event) {
4069
+ setDimensionValue(event.value);
4055
4070
  },
4056
4071
  style: {
4057
4072
  maxWidth: '50%'
@@ -4059,12 +4074,13 @@ var DimensionSelect = function DimensionSelect(_ref) {
4059
4074
  IconComponent: icon
4060
4075
  }, /*#__PURE__*/React.createElement(MenuItem, {
4061
4076
  disabled: true
4062
- }, "Dimension value (", valuesToDisplay.length, " options)"), valuesToDisplay.map(function (dimValue) {
4077
+ }, "Dimension value (", dimensionValues.length, " options)"), dimensionValues.map(function (dimensionValue) {
4078
+ var _a;
4063
4079
  return /*#__PURE__*/React.createElement(MenuItem, {
4064
- key: dimValue,
4065
- value: dimValue
4066
- }, valueMappings && activeDim.name && valueMappings[activeDim.name] && valueMappings[activeDim.name](dimValue) || /*#__PURE__*/React.createElement(React.Fragment, null, "".concat(dimValue), "\xA0", /*#__PURE__*/React.createElement("i", null, "".concat(activeDim.units))));
4067
- }))));
4080
+ key: dimensionValue,
4081
+ value: dimensionValue
4082
+ }, ((_a = valueMappings === null || valueMappings === void 0 ? void 0 : valueMappings[selectedDimension.name]) === null || _a === void 0 ? void 0 : _a.call(valueMappings, dimensionValue)) || /*#__PURE__*/React.createElement(React.Fragment, null, "".concat(dimensionValue), "\xA0", /*#__PURE__*/React.createElement("i", null, "".concat(selectedDimension.units))));
4083
+ }));
4068
4084
  };
4069
4085
 
4070
4086
  var getRenderLayersValues = function getRenderLayersValues(layerName, layers) {
@@ -4402,7 +4418,11 @@ var RenderStyles = function RenderStyles(_ref) {
4402
4418
  if (layerStyles && layerStyles.length > 0) {
4403
4419
  styles.push.apply(styles, _toConsumableArray(layerStyles));
4404
4420
  }
4405
- var currentStyle = currentLayerStyle !== '' ? currentLayerStyle : styles[0].name;
4421
+ var layerStyleNames = layerStyles.map(function (style) {
4422
+ return style.name;
4423
+ });
4424
+ var layerStyleExists = layerStyleNames.includes(currentLayerStyle);
4425
+ var currentStyle = layerStyleExists ? currentLayerStyle : styles[0].name;
4406
4426
  var selectStyle = function selectStyle(event) {
4407
4427
  event.stopPropagation();
4408
4428
  onChangeLayerStyle(event.target.value);
@@ -5026,7 +5046,6 @@ var LayerRow = function LayerRow(_ref7) {
5026
5046
  item: true,
5027
5047
  className: columnClasses.column5
5028
5048
  }, layerDimensionLayout || /*#__PURE__*/React__default.createElement(DimensionSelect, {
5029
- layerId: layerId,
5030
5049
  layerDimensions: layerUtils.filterNonTimeDimensions(layer.dimensions),
5031
5050
  onLayerChangeDimension: function onLayerChangeDimension(dimensionName, dimensionValue) {
5032
5051
  var dimension = {
@@ -5346,8 +5365,10 @@ var DimensionSelectConnect = function DimensionSelectConnect(_ref2) {
5346
5365
  layerDimensions = _useLayerDimensions.layerDimensions,
5347
5366
  isLayerEnabled = _useLayerDimensions.isLayerEnabled,
5348
5367
  layerChangeDimension = _useLayerDimensions.layerChangeDimension;
5368
+ if (!layerDimensions.length || !layerId) {
5369
+ return null;
5370
+ }
5349
5371
  return /*#__PURE__*/React.createElement(DimensionSelect, {
5350
- layerId: layerId,
5351
5372
  layerDimensions: layerDimensions,
5352
5373
  onLayerChangeDimension: function onLayerChangeDimension(dimensionName, dimensionValue, origin) {
5353
5374
  var dimension = {
@@ -10592,25 +10613,14 @@ var CustomDimensionSelectConnect = function CustomDimensionSelectConnect(_a) {
10592
10613
  layerDimensions = _useLayerDimensions.layerDimensions,
10593
10614
  isLayerEnabled = _useLayerDimensions.isLayerEnabled,
10594
10615
  layerChangeDimension = _useLayerDimensions.layerChangeDimension;
10595
- var filteredDimensions = dimensionsToShow ? layerDimensions.filter(function (dimension) {
10596
- var _a;
10597
- return dimensionsToShow.includes((_a = dimension.name) !== null && _a !== void 0 ? _a : '');
10598
- }) : layerDimensions;
10599
- if (dimensionsToShow) {
10600
- // also sort according to the filter array
10601
- filteredDimensions.sort(function (a, b) {
10602
- return dimensionsToShow.indexOf(a.name) - dimensionsToShow.indexOf(b.name);
10616
+ var filteredDimensions = dimensionsToShow ? dimensionsToShow.map(function (dimensionName) {
10617
+ return layerDimensions.find(function (dimension) {
10618
+ return dimension.name === dimensionName;
10603
10619
  });
10604
- }
10605
- var singleValue = filteredDimensions.length === 1 && SingleValueComponent;
10606
- if (singleValue) {
10607
- return /*#__PURE__*/React.createElement(SingleValueComponent, Object.assign({
10608
- value: filteredDimensions[0].currentValue
10609
- }, props));
10610
- }
10620
+ }).filter(Boolean) : layerDimensions;
10611
10621
  return /*#__PURE__*/React.createElement(DimensionSelect, Object.assign({
10612
- layerId: layerId,
10613
10622
  layerDimensions: filteredDimensions,
10623
+ SingleValueComponent: SingleValueComponent,
10614
10624
  onLayerChangeDimension: function onLayerChangeDimension(dimensionName, dimensionValue, origin) {
10615
10625
  var dimension = {
10616
10626
  name: dimensionName,
@@ -14267,7 +14277,7 @@ var ServiceChip = function ServiceChip(_ref) {
14267
14277
  title: (service === null || service === void 0 ? void 0 : service["abstract"]) ? "Abstract: ".concat(service["abstract"]) : ''
14268
14278
  }, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(CustomToggleButton, {
14269
14279
  variant: "boxed",
14270
- selected: isSelected,
14280
+ selected: Boolean(isSelected),
14271
14281
  tabIndex: 0,
14272
14282
  "data-testid": all ? 'serviceChipAll' : 'serviceChip',
14273
14283
  onClick: function onClick() {
@@ -14281,92 +14291,66 @@ var ServiceChip = function ServiceChip(_ref) {
14281
14291
  }, service ? service.serviceName : 'All')));
14282
14292
  };
14283
14293
 
14294
+ /* *
14295
+ * Licensed under the Apache License, Version 2.0 (the "License");
14296
+ * you may not use this file except in compliance with the License.
14297
+ * You may obtain a copy of the License at
14298
+ *
14299
+ * http://www.apache.org/licenses/LICENSE-2.0
14300
+ *
14301
+ * Unless required by applicable law or agreed to in writing, software
14302
+ * distributed under the License is distributed on an "AS IS" BASIS,
14303
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14304
+ * See the License for the specific language governing permissions and
14305
+ * limitations under the License.
14306
+ *
14307
+ * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
14308
+ * Copyright 2022 - Finnish Meteorological Institute (FMI)
14309
+ * */
14284
14310
  var ServiceChipConnect = function ServiceChipConnect(_ref) {
14285
- var _ref$all = _ref.all,
14286
- all = _ref$all === void 0 ? false : _ref$all,
14287
- serviceId = _ref.serviceId,
14288
- service = _ref.service,
14289
- isSelected = _ref.isSelected,
14290
- isAllSelected = _ref.isAllSelected,
14291
- isDisabled = _ref.isDisabled;
14311
+ var service = _ref.service,
14312
+ isAllSelected = _ref.isAllSelected;
14292
14313
  var dispatch = useDispatch();
14293
- var activeServices = useSelector(function (store) {
14294
- return layerSelectSelectors.getActiveServices(store);
14295
- });
14296
- var setAllServicesEnabled = function setAllServicesEnabled(allServicesEnabled) {
14297
- dispatch(layerSelectActions.setAllServicesEnabled({
14298
- allServicesEnabled: allServicesEnabled
14299
- }));
14300
- };
14301
- var hasSelectedStyle = !isAllSelected && isSelected || isAllSelected && (service === null || service === void 0 ? void 0 : service.serviceName) === 'all';
14302
- var toggleChip = function toggleChip(service) {
14303
- if (service === 'all') {
14304
- if (isSelected) {
14305
- setAllServicesEnabled(false);
14306
- Object.entries(activeServices).forEach(function (_ref2) {
14307
- var _ref3 = _slicedToArray(_ref2, 2),
14308
- serviceID = _ref3[0],
14309
- service = _ref3[1];
14310
- if (service.enabled) {
14311
- dispatch(layerSelectActions.disableActiveService({
14312
- serviceId: serviceID,
14313
- filters: service.filterIds
14314
- }));
14315
- }
14316
- });
14317
- } else {
14318
- setAllServicesEnabled(true);
14319
- Object.entries(activeServices).forEach(function (_ref4) {
14320
- var _ref5 = _slicedToArray(_ref4, 2),
14321
- serviceID = _ref5[0],
14322
- service = _ref5[1];
14323
- if (!service.enabled) {
14324
- dispatch(layerSelectActions.enableActiveService({
14325
- serviceId: serviceID,
14326
- filters: service.filterIds
14327
- }));
14328
- }
14329
- });
14330
- }
14331
- } else if (isSelected) {
14314
+ var serviceId = service.serviceId;
14315
+ var toggleChip = function toggleChip() {
14316
+ if (service.enabled) {
14332
14317
  if (isAllSelected) {
14333
- setAllServicesEnabled(false);
14334
- Object.entries(activeServices).forEach(function (_ref6) {
14335
- var _ref7 = _slicedToArray(_ref6, 2),
14336
- serviceID = _ref7[0],
14337
- service = _ref7[1];
14338
- var shouldDisable = service.enabled && serviceID !== serviceId;
14339
- if (shouldDisable) {
14340
- dispatch(layerSelectActions.disableActiveService({
14341
- serviceId: serviceID,
14342
- filters: service.filterIds
14343
- }));
14344
- }
14345
- });
14346
- } else {
14347
- dispatch(layerSelectActions.disableActiveService({
14348
- serviceId: serviceId,
14349
- filters: activeServices[serviceId].filterIds
14318
+ dispatch(layerSelectActions.onlyThisServiceEnabled({
14319
+ serviceId: serviceId
14350
14320
  }));
14321
+ return;
14351
14322
  }
14352
- } else {
14353
- dispatch(layerSelectActions.enableActiveService({
14354
- serviceId: serviceId,
14355
- filters: activeServices[serviceId].filterIds
14323
+ dispatch(layerSelectActions.disableActiveService({
14324
+ serviceId: serviceId
14356
14325
  }));
14326
+ return;
14357
14327
  }
14328
+ dispatch(layerSelectActions.enableActiveService({
14329
+ serviceId: serviceId
14330
+ }));
14358
14331
  };
14359
14332
  return /*#__PURE__*/React.createElement(ServiceChip, {
14360
14333
  service: service,
14361
- all: all,
14362
14334
  toggleChip: toggleChip,
14363
- isSelected: hasSelectedStyle,
14364
- isDisabled: isDisabled
14335
+ isSelected: isAllSelected ? false : service.enabled,
14336
+ isDisabled: service.isLoading
14337
+ });
14338
+ };
14339
+ var AllChipConnect = function AllChipConnect(_ref2) {
14340
+ var isAllSelected = _ref2.isAllSelected;
14341
+ var dispatch = useDispatch();
14342
+ return /*#__PURE__*/React.createElement(ServiceChip, {
14343
+ toggleChip: function toggleChip() {
14344
+ if (!isAllSelected) {
14345
+ dispatch(layerSelectActions.enableAllActiveServices());
14346
+ }
14347
+ },
14348
+ isSelected: isAllSelected
14365
14349
  });
14366
14350
  };
14367
14351
 
14368
14352
  var ServiceList = function ServiceList(_ref) {
14369
- var activeServices = _ref.activeServices,
14353
+ var activeServicesById = _ref.activeServicesById,
14370
14354
  setHeight = _ref.setHeight;
14371
14355
  var ref = React.useRef(null);
14372
14356
  var _React$useState = React.useState(0),
@@ -14378,11 +14362,13 @@ var ServiceList = function ServiceList(_ref) {
14378
14362
  if (ref && ref.current && ref.current.clientHeight) {
14379
14363
  setServiceListHeight(ref.current.clientHeight);
14380
14364
  }
14381
- }, [activeServices, clientHeight]);
14365
+ }, [activeServicesById, clientHeight]);
14382
14366
  React.useEffect(function () {
14383
14367
  setHeight(serviceListHeight);
14384
14368
  }, [serviceListHeight, setHeight]);
14385
- var isAllSelected = Object.values(activeServices).every(function (activeService) {
14369
+ var activeServicesIds = Object.keys(activeServicesById);
14370
+ var activeServices = Object.values(activeServicesById);
14371
+ var isAllSelected = activeServices.every(function (activeService) {
14386
14372
  return activeService.enabled;
14387
14373
  });
14388
14374
  return /*#__PURE__*/React.createElement(Box$2, {
@@ -14404,20 +14390,13 @@ var ServiceList = function ServiceList(_ref) {
14404
14390
  fontSize: '0.875rem'
14405
14391
  },
14406
14392
  ref: ref
14407
- }, activeServices && Object.keys(activeServices) && Object.keys(activeServices).length > 0 && /*#__PURE__*/React.createElement(ServiceChipConnect, {
14408
- key: "All",
14409
- all: true,
14410
- isSelected: isAllSelected
14411
- }), Object.keys(activeServices).map(function (serviceId) {
14412
- var _a, _b;
14413
- var service = activeServices[serviceId];
14393
+ }, (activeServicesIds === null || activeServicesIds === void 0 ? void 0 : activeServicesIds.length) && /*#__PURE__*/React.createElement(AllChipConnect, {
14394
+ isAllSelected: isAllSelected
14395
+ }), activeServices.map(function (service) {
14414
14396
  return /*#__PURE__*/React.createElement(ServiceChipConnect, {
14415
- key: serviceId,
14416
- serviceId: serviceId,
14397
+ key: service.serviceUrl,
14417
14398
  service: service,
14418
- isSelected: (_a = activeServices[serviceId]) === null || _a === void 0 ? void 0 : _a.enabled,
14419
- isAllSelected: isAllSelected,
14420
- isDisabled: activeServices[serviceId] === undefined || ((_b = activeServices[serviceId]) === null || _b === void 0 ? void 0 : _b.isLoading) === true
14399
+ isAllSelected: isAllSelected
14421
14400
  });
14422
14401
  })));
14423
14402
  };
@@ -14445,7 +14424,7 @@ var ServiceListConnect = function ServiceListConnect(_ref) {
14445
14424
  });
14446
14425
  return /*#__PURE__*/React.createElement(ServiceList, {
14447
14426
  setHeight: setHeight,
14448
- activeServices: sortByService(activeServices)
14427
+ activeServicesById: sortByService(activeServices)
14449
14428
  });
14450
14429
  };
14451
14430
 
@@ -24059,6 +24038,77 @@ var GetFeatureInfoButtonConnect = function GetFeatureInfoButtonConnect(_ref) {
24059
24038
  }, /*#__PURE__*/React.createElement(Info, null));
24060
24039
  };
24061
24040
 
24041
+ /* *
24042
+ * Licensed under the Apache License, Version 2.0 (the "License");
24043
+ * you may not use this file except in compliance with the License.
24044
+ * You may obtain a copy of the License at
24045
+ *
24046
+ * http://www.apache.org/licenses/LICENSE-2.0
24047
+ *
24048
+ * Unless required by applicable law or agreed to in writing, software
24049
+ * distributed under the License is distributed on an "AS IS" BASIS,
24050
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24051
+ * See the License for the specific language governing permissions and
24052
+ * limitations under the License.
24053
+ *
24054
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
24055
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
24056
+ * */
24057
+ var SearchControlButtonConnect = function SearchControlButtonConnect(_ref) {
24058
+ var mapId = _ref.mapId,
24059
+ _ref$source = _ref.source,
24060
+ source = _ref$source === void 0 ? 'app' : _ref$source;
24061
+ var dispatch = useDispatch();
24062
+ var dialogType = "".concat(uiTypes.DialogTypes.Search, "-").concat(mapId);
24063
+ var currentActiveMapId = useSelector(function (store) {
24064
+ return uiSelectors.getDialogMapId(store, dialogType);
24065
+ });
24066
+ var isOpenInStore = useSelector(function (store) {
24067
+ return uiSelectors.getisDialogOpen(store, dialogType);
24068
+ });
24069
+ var openSearchDialog = React__default.useCallback(function () {
24070
+ dispatch(uiActions.setActiveMapIdForDialog({
24071
+ type: dialogType,
24072
+ mapId: mapId,
24073
+ setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
24074
+ source: source
24075
+ }));
24076
+ }, [currentActiveMapId, dialogType, dispatch, isOpenInStore, mapId, source]);
24077
+ return /*#__PURE__*/React__default.createElement(MapControlButton, {
24078
+ onClick: openSearchDialog,
24079
+ title: "Search",
24080
+ "aria-label": "Map search"
24081
+ }, /*#__PURE__*/React__default.createElement(Search, null));
24082
+ };
24083
+
24084
+ /* *
24085
+ * Licensed under the Apache License, Version 2.0 (the "License");
24086
+ * you may not use this file except in compliance with the License.
24087
+ * You may obtain a copy of the License at
24088
+ *
24089
+ * http://www.apache.org/licenses/LICENSE-2.0
24090
+ *
24091
+ * Unless required by applicable law or agreed to in writing, software
24092
+ * distributed under the License is distributed on an "AS IS" BASIS,
24093
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24094
+ * See the License for the specific language governing permissions and
24095
+ * limitations under the License.
24096
+ *
24097
+ * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
24098
+ * Copyright 2023 - Finnish Meteorological Institute (FMI)
24099
+ * */
24100
+ var SearchControlConnect = function SearchControlConnect(_ref) {
24101
+ var mapId = _ref.mapId;
24102
+ var dialogType = "".concat(uiTypes.DialogTypes.Search, "-").concat(mapId);
24103
+ var _useSetupDialog = useSetupDialog(dialogType),
24104
+ isDialogOpen = _useSetupDialog.isDialogOpen,
24105
+ onCloseDialog = _useSetupDialog.onCloseDialog;
24106
+ return /*#__PURE__*/React__default.createElement(SearchDialog, {
24107
+ isOpen: isDialogOpen,
24108
+ onClose: onCloseDialog
24109
+ });
24110
+ };
24111
+
24062
24112
  var titleStyle = function titleStyle(theme) {
24063
24113
  return {
24064
24114
  position: 'absolute',
@@ -24118,9 +24168,11 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_a) {
24118
24168
  displayGetFeatureInfoButtonInMap = _a$displayGetFeatureI === void 0 ? false : _a$displayGetFeatureI,
24119
24169
  _a$shouldDisplayDrawC = _a.shouldDisplayDrawControls,
24120
24170
  shouldDisplayDrawControls = _a$shouldDisplayDrawC === void 0 ? false : _a$shouldDisplayDrawC,
24171
+ _a$displaySearchButto = _a.displaySearchButtonInMap,
24172
+ displaySearchButtonInMap = _a$displaySearchButto === void 0 ? false : _a$displaySearchButto,
24121
24173
  mapControls = _a.mapControls,
24122
24174
  children = _a.children,
24123
- props = __rest(_a, ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "bbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "mapControls", "children"]);
24175
+ props = __rest(_a, ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "bbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "mapControls", "children"]);
24124
24176
  var dispatch = useDispatch();
24125
24177
  var mapId = React__default.useRef(id || webmapUtils.generateMapId()).current;
24126
24178
  React__default.useEffect(function () {
@@ -24201,7 +24253,9 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_a) {
24201
24253
  style: {
24202
24254
  top: mapControlsPositionTop
24203
24255
  }
24204
- }, /*#__PURE__*/React__default.createElement(ZoomControlConnect, {
24256
+ }, displaySearchButtonInMap && /*#__PURE__*/React__default.createElement(SearchControlButtonConnect, {
24257
+ mapId: mapId
24258
+ }), /*#__PURE__*/React__default.createElement(ZoomControlConnect, {
24205
24259
  mapId: id
24206
24260
  }), displayLayerManagerAndLegendButtonInMap && /*#__PURE__*/React__default.createElement(LayerManagerMapButtonConnect, {
24207
24261
  mapId: mapId
@@ -24232,6 +24286,8 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_a) {
24232
24286
  showMapId: true,
24233
24287
  mapId: mapId,
24234
24288
  multiLegend: multiLegend
24289
+ }), /*#__PURE__*/React__default.createElement(SearchControlConnect, {
24290
+ mapId: mapId
24235
24291
  }), showClock && /*#__PURE__*/React__default.createElement(TimeSliderClockConnect, {
24236
24292
  mapId: mapId
24237
24293
  }), displayGetFeatureInfoButtonInMap && /*#__PURE__*/React__default.createElement(GetFeatureInfoConnect, {
@@ -24572,12 +24628,14 @@ var componentsLookUp = function componentsLookUp(_ref) {
24572
24628
  {
24573
24629
  var mapPreset = initialProps.mapPreset,
24574
24630
  mapControls = initialProps.mapControls,
24575
- shouldDisplayDrawControls = initialProps.shouldDisplayDrawControls;
24631
+ shouldDisplayDrawControls = initialProps.shouldDisplayDrawControls,
24632
+ displaySearchButtonInMap = initialProps.displaySearchButtonInMap;
24576
24633
  return /*#__PURE__*/React__default.createElement(ConfigurableMapConnect, Object.assign({}, mapPreset, {
24577
24634
  id: id,
24578
24635
  "data-testid": "coreConfigurableMapConnect",
24579
24636
  displayGetFeatureInfoButtonInMap: true,
24580
24637
  shouldDisplayDrawControls: shouldDisplayDrawControls,
24638
+ displaySearchButtonInMap: displaySearchButtonInMap,
24581
24639
  mapControls: mapControls
24582
24640
  }));
24583
24641
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/core",
3
- "version": "8.3.1",
3
+ "version": "8.4.1",
4
4
  "description": "GeoWeb Core library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -14,13 +14,13 @@
14
14
  "peerDependencies": {
15
15
  "@mui/material": "5.12.0",
16
16
  "@mui/system": "5.14.14",
17
- "@opengeoweb/api": "8.3.1",
18
- "@opengeoweb/form-fields": "8.3.1",
19
- "@opengeoweb/shared": "8.3.1",
20
- "@opengeoweb/store": "8.3.1",
21
- "@opengeoweb/theme": "8.3.1",
22
- "@opengeoweb/webmap": "8.3.1",
23
- "@opengeoweb/webmap-react": "8.3.1",
17
+ "@opengeoweb/api": "8.4.1",
18
+ "@opengeoweb/form-fields": "8.4.1",
19
+ "@opengeoweb/shared": "8.4.1",
20
+ "@opengeoweb/store": "8.4.1",
21
+ "@opengeoweb/theme": "8.4.1",
22
+ "@opengeoweb/webmap": "8.4.1",
23
+ "@opengeoweb/webmap-react": "8.4.1",
24
24
  "@redux-eggs/redux-toolkit": "2.2.0",
25
25
  "@redux-eggs/saga-extension": "2.2.0",
26
26
  "@reduxjs/toolkit": "1.9.7",
@@ -12,6 +12,7 @@ export interface InitialMapProps {
12
12
  syncGroupsIds: string[];
13
13
  mapControls?: React.ReactNode;
14
14
  shouldDisplayDrawControls?: boolean;
15
+ displaySearchButtonInMap?: boolean;
15
16
  }
16
17
  interface InitialSliderProps {
17
18
  sliderPreset: {
@@ -36,6 +36,7 @@ export interface ConfigurableMapConnectProps {
36
36
  showClock?: boolean;
37
37
  displayGetFeatureInfoButtonInMap?: boolean;
38
38
  shouldDisplayDrawControls?: boolean;
39
+ displaySearchButtonInMap?: boolean;
39
40
  children?: React.ReactNode;
40
41
  mapControls?: React.ReactNode;
41
42
  }
@@ -1,11 +1,20 @@
1
1
  import * as React from 'react';
2
2
  import { mapTypes, layerTypes } from '@opengeoweb/store';
3
- interface DimensionSelectProps {
4
- layerId: string;
3
+ import { ElementType, FC } from 'react';
4
+ export interface SingleValueComponentProps extends mapTypes.Dimension {
5
+ position: 'dimension' | 'value';
6
+ nameMappings?: {
7
+ [dimensionName: string]: string;
8
+ };
9
+ valueMappings?: {
10
+ [dimensionName: string]: (value: string) => string;
11
+ };
12
+ }
13
+ export interface DimensionSelectProps {
5
14
  layerDimensions?: mapTypes.Dimension[];
6
15
  onLayerChangeDimension: (dimensionName: string, dimensionValue: string, origin?: layerTypes.LayerActionOrigin.layerManager) => void;
7
16
  isEnabled?: boolean;
8
- icon?: React.ElementType;
17
+ icon?: ElementType;
9
18
  nameMappings?: {
10
19
  [dimensionName: string]: string;
11
20
  };
@@ -13,6 +22,7 @@ interface DimensionSelectProps {
13
22
  [dimensionName: string]: (value: string) => string;
14
23
  };
15
24
  tooltipPrefix?: string;
25
+ SingleValueComponent?: React.FC<SingleValueComponentProps>;
16
26
  }
17
- declare const DimensionSelect: React.FC<DimensionSelectProps>;
27
+ declare const DimensionSelect: FC<DimensionSelectProps>;
18
28
  export default DimensionSelect;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { mapTypes } from '@opengeoweb/store';
3
+ import { SingleValueComponentProps } from './LayerContainerRow/LayerRow/DimensionSelect/DimensionSelect';
3
4
  import { Size, ToolbarButtonSettings } from './LayerManagerHeaderOptions';
4
5
  export declare const columnClasses: {
5
6
  column1: string;
@@ -223,9 +224,7 @@ export interface LayerManagerCustomSettings {
223
224
  };
224
225
  dimensions?: {
225
226
  dimensionsToShow?: string[];
226
- SingleValueComponent?: React.FC<{
227
- value: string;
228
- }>;
227
+ SingleValueComponent?: React.FC<SingleValueComponentProps>;
229
228
  icon?: React.ElementType;
230
229
  tooltipPrefix?: string;
231
230
  nameMappings?: {
@@ -1,12 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { layerSelectTypes } from '@opengeoweb/store';
3
3
  export interface ServiceChipConnectProps {
4
- all?: boolean;
5
- serviceId?: string;
6
- service?: layerSelectTypes.ActiveServiceObject;
7
- isSelected?: boolean;
8
- isAllSelected?: boolean;
9
- isDisabled?: boolean;
4
+ service: layerSelectTypes.ActiveServiceObject;
5
+ isAllSelected: boolean;
10
6
  }
11
- declare const ServiceChipConnect: React.FC<ServiceChipConnectProps>;
12
- export default ServiceChipConnect;
7
+ export declare const ServiceChipConnect: React.FC<ServiceChipConnectProps>;
8
+ export declare const AllChipConnect: React.FC<{
9
+ isAllSelected: boolean;
10
+ }>;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { layerSelectTypes } from '@opengeoweb/store';
3
3
  interface ServiceListProps {
4
- activeServices: layerSelectTypes.ActiveServiceObjectEntities;
4
+ activeServicesById: layerSelectTypes.ActiveServiceObjectEntities;
5
5
  setHeight: (height: number) => void;
6
6
  }
7
7
  declare const ServiceList: React.FC<ServiceListProps>;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ };
5
+ export default _default;
6
+ export declare const SearchControlConnectStoryLight: {
7
+ (): React.ReactElement;
8
+ storyName: string;
9
+ };
10
+ export declare const SearchControlConnectStoryDark: {
11
+ (): React.ReactElement;
12
+ storyName: string;
13
+ };
@@ -0,0 +1,8 @@
1
+ import { CustomIconProps } from '@opengeoweb/shared';
2
+ import { uiTypes } from '@opengeoweb/store';
3
+ import React from 'react';
4
+ export interface SearchControlButtonConnectProps extends CustomIconProps {
5
+ mapId: string;
6
+ source?: uiTypes.Source;
7
+ }
8
+ export declare const SearchControlButtonConnect: React.FC<SearchControlButtonConnectProps>;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export interface SearchControlConnectProps {
3
+ mapId?: string;
4
+ }
5
+ export declare const SearchControlConnect: React.FC<SearchControlConnectProps>;
@@ -0,0 +1,2 @@
1
+ export { SearchControlButtonConnect } from './SearchControlButtonConnect';
2
+ export { SearchControlConnect } from './SearchControlConnect';