@opengeoweb/layer-select 14.2.2 → 14.4.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.
package/index.esm.js CHANGED
@@ -2,13 +2,13 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default from 'react';
4
4
  import { useSelector, useDispatch } from 'react-redux';
5
- import { CustomIconButton, FilterOption, ToolContainerDraggable, CustomAccordion, CustomToggleButton, CustomTooltip, SearchHighlight, SearchField, AlertBanner, ToggleMenu, CustomDialog, sessionStorageProvider } from '@opengeoweb/shared';
6
- import { Filter, LayersAdd, Add, Cached, Edit, Visibility, Delete, MeteoGate, Copy } from '@opengeoweb/theme';
5
+ import { CustomIconButton, FilterOption, ToolContainerDraggable, CustomAccordion, CustomTooltip, SearchHighlight, SearchField, CustomToggleButton, AlertBanner, ToggleMenu, CustomDialog, sessionStorageProvider } from '@opengeoweb/shared';
6
+ import { Filter, ArrowDropDownDown, LayersAdd, Add, Cached, Edit, Visibility, Delete, MeteoGate, Copy } from '@opengeoweb/theme';
7
7
  import { uiTypes, serviceActions, selectorMemoizationOptions, serviceSelectors, uiActions, getUserAddedServices, setUserAddedServices, layerActions, uiSelectors, layerSelectors, mapListener, serviceListener, layersListener, openlayersListener, uiReducer, layerReducer, serviceReducer, mapReducer, useSetupDialog, mapSelectors, layerTypes, mapEnums } from '@opengeoweb/store';
8
8
  import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, isAnyOf, combineReducers, configureStore } from '@reduxjs/toolkit';
9
9
  import { compact, countBy, partition } from 'lodash';
10
10
  import { snackbarListener, snackbarReducer, snackbarTypes, snackbarActions } from '@opengeoweb/snackbar';
11
- import { Switch, Grid, List, Box, Typography, useTheme, Backdrop, CircularProgress, Button, ListItem, ListItemText, LinearProgress, InputAdornment } from '@mui/material';
11
+ import { Switch, Grid, List, ToggleButtonGroup, ToggleButton, Box, Popper, Grow, Paper, ClickAwayListener, MenuList, MenuItem, Typography, useTheme, Backdrop, CircularProgress, Button, ListItem, ListItemText, LinearProgress, InputAdornment } from '@mui/material';
12
12
  import 'i18next';
13
13
  import { useTranslation } from 'react-i18next';
14
14
  import { FixedSizeList } from 'react-window';
@@ -52,7 +52,9 @@ var en = {
52
52
  "service-abstracts-label": "Abstracts",
53
53
  "service-successfully-updated": "Service \"{{serviceName}}\" has been succesfully updated",
54
54
  "unable-to-update-service": "Unable to update service, reason: \"{{message}}\"",
55
- "service-has-been-deleted": "Service \"{{serviceName}}\" has been deleted"
55
+ "service-has-been-deleted": "Service \"{{serviceName}}\" has been deleted",
56
+ "add-to-all-maps": "Add to all maps",
57
+ "remove-from-all-maps": "Remove from all maps"
56
58
  };
57
59
  var fi = {
58
60
  "layer-select": "Layer Select",
@@ -89,7 +91,9 @@ var fi = {
89
91
  "service-abstracts-label": "Tiivistelmä",
90
92
  "service-successfully-updated": "Palvelu \"{{serviceName}}\" päivitetty onnistuneesti",
91
93
  "unable-to-update-service": "Palvelun päivitys epäonnistui. Syy: \"{{message}}\"",
92
- "service-has-been-deleted": "Palvelu \"{{serviceName}}\" poistettu"
94
+ "service-has-been-deleted": "Palvelu \"{{serviceName}}\" poistettu",
95
+ "add-to-all-maps": "Lisää kaikkiin karttoihin",
96
+ "remove-from-all-maps": "Poista kaikista kartoista"
93
97
  };
94
98
  var no = {
95
99
  "layer-select": "Datavelger",
@@ -126,7 +130,9 @@ var no = {
126
130
  "service-abstracts-label": "Sammendrag",
127
131
  "service-successfully-updated": "Tjeneste \"{{serviceName}}\" har blitt oppdatert",
128
132
  "unable-to-update-service": "Kan ikke oppdatere tjeneste, grunn: \"{{message}}\"",
129
- "service-has-been-deleted": "Tjeneste \"{{serviceName}}\" har blitt slettet"
133
+ "service-has-been-deleted": "Tjeneste \"{{serviceName}}\" har blitt slettet",
134
+ "add-to-all-maps": "Legg til i alle kart",
135
+ "remove-from-all-maps": "Fjern fra alle kart"
130
136
  };
131
137
  var nl = {
132
138
  "layer-select": "Layer Select",
@@ -163,7 +169,9 @@ var nl = {
163
169
  "service-abstracts-label": "Beschrijving",
164
170
  "service-successfully-updated": "Service \"{{serviceName}}\" is succesvol bijgewerkt",
165
171
  "unable-to-update-service": "Bijwerken service niet mogelijk, reden: \"{{message}}\"",
166
- "service-has-been-deleted": "Service \"{{serviceName}}\" is verwijderd"
172
+ "service-has-been-deleted": "Service \"{{serviceName}}\" is verwijderd",
173
+ "add-to-all-maps": "Toevoegen aan alle kaarten",
174
+ "remove-from-all-maps": "Verwijderen van alle kaarten"
167
175
  };
168
176
  var layerSelectTranslations = {
169
177
  en: en,
@@ -1379,34 +1387,155 @@ var KeywordFilterResultsConnect = function KeywordFilterResultsConnect(_ref) {
1379
1387
  var LayerAddRemoveButton = function LayerAddRemoveButton(_ref) {
1380
1388
  var layer = _ref.layer,
1381
1389
  serviceUrl = _ref.serviceUrl,
1390
+ allLayers = _ref.allLayers,
1391
+ allMapIds = _ref.allMapIds,
1382
1392
  addLayer = _ref.addLayer,
1393
+ addLayerToAllMaps = _ref.addLayerToAllMaps,
1383
1394
  deleteLayer = _ref.deleteLayer,
1395
+ removeLayerFromAllMaps = _ref.removeLayerFromAllMaps,
1384
1396
  mapLayers = _ref.mapLayers;
1385
1397
  var _useLayerSelectTransl = useLayerSelectTranslation(),
1386
1398
  t = _useLayerSelectTransl.t;
1387
- var foundLayerIndex = mapLayers.findIndex(function (lr) {
1388
- return lr.name === layer.name && lr.service === serviceUrl;
1389
- });
1399
+ var _React$useState = React.useState(false),
1400
+ open = _React$useState[0],
1401
+ setOpen = _React$useState[1];
1402
+ var anchorRef = React.useRef(null);
1403
+ var foundLayerIndex = React.useMemo(function () {
1404
+ return mapLayers.findIndex(function (lr) {
1405
+ return lr.name === layer.name && lr.service === serviceUrl;
1406
+ });
1407
+ }, [mapLayers, layer.name, serviceUrl]);
1390
1408
  var foundLayer = foundLayerIndex !== -1 && mapLayers[foundLayerIndex];
1391
- return jsx(CustomToggleButton, {
1392
- "data-testid": "layerAddRemoveButton-" + layer.name,
1393
- onClick: function onClick() {
1394
- !foundLayer ? addLayer({
1395
- serviceUrl: serviceUrl,
1396
- layerName: layer.name
1397
- }) : deleteLayer({
1398
- layerId: foundLayer.id,
1399
- layerIndex: foundLayerIndex
1409
+ var layerExistsInWorkspace = React.useMemo(function () {
1410
+ return allLayers.find(function (current) {
1411
+ return current.name === layer.name && current.service === serviceUrl;
1412
+ });
1413
+ }, [allLayers, layer.name, serviceUrl]);
1414
+ var existsInAllMaps = React.useMemo(function () {
1415
+ return allMapIds.every(function (mapId) {
1416
+ return allLayers.some(function (current) {
1417
+ return current.mapId === mapId && current.name === layer.name && current.service === serviceUrl;
1400
1418
  });
1401
- },
1402
- selected: !!foundLayer,
1403
- variant: "tool",
1404
- fullWidth: true,
1405
- sx: {
1406
- fontSize: '12px'
1407
- },
1408
- className: "layerAddRemoveButton",
1409
- children: !foundLayer ? t('add') : t('remove')
1419
+ });
1420
+ }, [allMapIds, allLayers, layer.name, serviceUrl]);
1421
+ var handleToggle = function handleToggle() {
1422
+ setOpen(function (prevOpen) {
1423
+ return !prevOpen;
1424
+ });
1425
+ };
1426
+ var handleClose = function handleClose(event) {
1427
+ if (anchorRef.current && anchorRef.current.contains(event.target)) {
1428
+ return;
1429
+ }
1430
+ setOpen(false);
1431
+ };
1432
+ var handleAddAll = function handleAddAll() {
1433
+ addLayerToAllMaps({
1434
+ serviceUrl: serviceUrl,
1435
+ layerName: layer.name
1436
+ });
1437
+ setOpen(false);
1438
+ };
1439
+ var handleRemoveAll = function handleRemoveAll(id) {
1440
+ removeLayerFromAllMaps(id);
1441
+ setOpen(false);
1442
+ };
1443
+ return jsxs(Fragment, {
1444
+ children: [jsxs(ToggleButtonGroup, {
1445
+ ref: anchorRef,
1446
+ fullWidth: true,
1447
+ style: {
1448
+ height: '32px'
1449
+ },
1450
+ children: [jsx(ToggleButton, {
1451
+ "data-testid": "layerAddRemoveButton-" + layer.name,
1452
+ value: "selected",
1453
+ selected: !!foundLayer,
1454
+ className: "tool",
1455
+ style: {
1456
+ borderRadius: '3px 0 0 3px',
1457
+ height: 'inherit',
1458
+ minWidth: '62px',
1459
+ fontSize: '12px'
1460
+ },
1461
+ onMouseDown: function onMouseDown(e) {
1462
+ e.stopPropagation();
1463
+ },
1464
+ onClick: function onClick() {
1465
+ !foundLayer ? addLayer({
1466
+ serviceUrl: serviceUrl,
1467
+ layerName: layer.name
1468
+ }) : deleteLayer({
1469
+ layerId: foundLayer.id,
1470
+ layerIndex: foundLayerIndex
1471
+ });
1472
+ },
1473
+ fullWidth: true,
1474
+ children: !foundLayer ? t('add') : t('remove')
1475
+ }), jsx(Box, {
1476
+ sx: {
1477
+ minWidth: '1px',
1478
+ backgroundColor: foundLayer || layerExistsInWorkspace ? 'geowebColors.buttons.primary.default.borderColor' : 'geowebColors.buttons.secondary.default.fill'
1479
+ }
1480
+ }), jsx(ToggleButton, {
1481
+ "data-testid": "layerAddRemoveButton-dropdown-" + layer.name,
1482
+ value: "dropdown",
1483
+ selected: !!layerExistsInWorkspace,
1484
+ onClick: handleToggle,
1485
+ className: "tool",
1486
+ onMouseDown: function onMouseDown(e) {
1487
+ e.stopPropagation();
1488
+ },
1489
+ style: {
1490
+ marginLeft: '0',
1491
+ minWidth: '32px',
1492
+ borderRadius: '0 3px 3px 0',
1493
+ height: 'inherit'
1494
+ },
1495
+ children: jsx(ArrowDropDownDown, {
1496
+ style: {
1497
+ marginRight: '1px'
1498
+ }
1499
+ })
1500
+ })]
1501
+ }), jsx(Popper, {
1502
+ open: open,
1503
+ anchorEl: anchorRef.current,
1504
+ role: undefined,
1505
+ transition: true,
1506
+ placement: "bottom-end",
1507
+ style: {
1508
+ zIndex: 1300
1509
+ },
1510
+ children: function children(_ref2) {
1511
+ var TransitionProps = _ref2.TransitionProps,
1512
+ placement = _ref2.placement;
1513
+ return jsx(Grow, Object.assign({}, TransitionProps, {
1514
+ style: {
1515
+ transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom'
1516
+ },
1517
+ children: jsx(Paper, {
1518
+ children: jsx(ClickAwayListener, {
1519
+ onClickAway: handleClose,
1520
+ children: jsxs(MenuList, {
1521
+ autoFocusItem: true,
1522
+ children: [jsx(MenuItem, {
1523
+ onClick: handleAddAll,
1524
+ disabled: existsInAllMaps,
1525
+ children: t('add-to-all-maps')
1526
+ }), jsx(MenuItem, {
1527
+ disabled: !layerExistsInWorkspace,
1528
+ onClick: function onClick() {
1529
+ layerExistsInWorkspace && handleRemoveAll(layerExistsInWorkspace.id);
1530
+ },
1531
+ children: t('remove-from-all-maps')
1532
+ })]
1533
+ })
1534
+ })
1535
+ })
1536
+ }));
1537
+ }
1538
+ })]
1410
1539
  });
1411
1540
  };
1412
1541
 
@@ -1480,10 +1609,10 @@ var layerSelectColumnsLarge = {
1480
1609
  marginLeft: 2
1481
1610
  },
1482
1611
  column8: {
1483
- width: "calc(100% - " + buttonLarge + "px - 24px)"
1612
+ width: "calc(100% - " + buttonLarge + "px - 32px)"
1484
1613
  },
1485
1614
  column9: {
1486
- width: "calc(" + buttonLarge + "px + 24px)"
1615
+ width: "calc(" + buttonLarge + "px + 32px)"
1487
1616
  }
1488
1617
  };
1489
1618
  var layerSelectColumnsSmall = {
@@ -1515,10 +1644,10 @@ var layerSelectColumnsSmall = {
1515
1644
  marginLeft: 1
1516
1645
  },
1517
1646
  column8: {
1518
- width: "calc(100% - " + buttonSmall + "px - 8px)"
1647
+ width: "calc(100% - " + buttonSmall + "px - 50px)"
1519
1648
  },
1520
1649
  column9: {
1521
- width: "calc(" + buttonSmall + "px + 8px)"
1650
+ width: "calc(" + buttonSmall + "px + 50px)"
1522
1651
  }
1523
1652
  };
1524
1653
  var breakpoint = 500;
@@ -1560,8 +1689,12 @@ var LayerListRow = function LayerListRow(_ref) {
1560
1689
  var _layer$keywords;
1561
1690
  var layer = _ref.layer,
1562
1691
  service = _ref.service,
1692
+ allLayers = _ref.allLayers,
1693
+ allMapIds = _ref.allMapIds,
1563
1694
  addLayer = _ref.addLayer,
1695
+ addLayerToAllMaps = _ref.addLayerToAllMaps,
1564
1696
  deleteLayer = _ref.deleteLayer,
1697
+ removeLayerFromAllMaps = _ref.removeLayerFromAllMaps,
1565
1698
  mapLayers = _ref.mapLayers,
1566
1699
  layerSelectWidth = _ref.layerSelectWidth,
1567
1700
  searchFilter = _ref.searchFilter,
@@ -1673,12 +1806,20 @@ var LayerListRow = function LayerListRow(_ref) {
1673
1806
  justifyContent: "flex-end",
1674
1807
  alignItems: "center",
1675
1808
  children: jsx(Box, {
1676
- sx: columns.column7,
1809
+ sx: (columns.column7, {
1810
+ width: '100%',
1811
+ paddingLeft: '16px'
1812
+ }),
1813
+ alignItems: "flex-start",
1677
1814
  children: jsx(LayerAddRemoveButton, {
1678
1815
  layer: layer,
1679
1816
  serviceUrl: service.serviceUrl,
1817
+ allMapIds: allMapIds,
1818
+ allLayers: allLayers,
1680
1819
  addLayer: addLayer,
1820
+ addLayerToAllMaps: addLayerToAllMaps,
1681
1821
  deleteLayer: deleteLayer,
1822
+ removeLayerFromAllMaps: removeLayerFromAllMaps,
1682
1823
  mapLayers: mapLayers
1683
1824
  })
1684
1825
  })
@@ -1692,8 +1833,12 @@ var LayerList = function LayerList(_ref) {
1692
1833
  layerSelectHeight = _ref.layerSelectHeight,
1693
1834
  serviceListHeight = _ref.serviceListHeight,
1694
1835
  layerSelectWidth = _ref.layerSelectWidth,
1836
+ allLayers = _ref.allLayers,
1837
+ allMapIds = _ref.allMapIds,
1695
1838
  addLayer = _ref.addLayer,
1839
+ addLayerToAllMaps = _ref.addLayerToAllMaps,
1696
1840
  deleteLayer = _ref.deleteLayer,
1841
+ removeLayerFromAllMaps = _ref.removeLayerFromAllMaps,
1697
1842
  mapLayers = _ref.mapLayers,
1698
1843
  searchFilter = _ref.searchFilter,
1699
1844
  isLayerInfoVisibleInStore = _ref.isLayerInfoVisibleInStore,
@@ -1729,8 +1874,12 @@ var LayerList = function LayerList(_ref) {
1729
1874
  children: service && jsx(LayerListRow, {
1730
1875
  layer: filter,
1731
1876
  service: service,
1877
+ allLayers: allLayers,
1878
+ allMapIds: allMapIds,
1732
1879
  addLayer: addLayer,
1880
+ addLayerToAllMaps: addLayerToAllMaps,
1733
1881
  deleteLayer: deleteLayer,
1882
+ removeLayerFromAllMaps: removeLayerFromAllMaps,
1734
1883
  mapLayers: mapLayers,
1735
1884
  layerSelectWidth: layerSelectWidth,
1736
1885
  searchFilter: searchFilter,
@@ -1761,7 +1910,13 @@ var LayerListConnect = function LayerListConnect(_ref) {
1761
1910
  var mapLayers = useAppSelector(function (store) {
1762
1911
  return mapSelectors.getMapLayersWithoutDimensionCurrentValue(store, mapId);
1763
1912
  });
1764
- var addLayer = function addLayer(_ref2) {
1913
+ var allLayers = useAppSelector(function (store) {
1914
+ return layerSelectors.getAllLayers(store);
1915
+ });
1916
+ var allMapIds = useAppSelector(function (store) {
1917
+ return mapSelectors.getAllMapIds(store);
1918
+ });
1919
+ var _addLayer = function addLayer(_ref2, mapId) {
1765
1920
  var serviceUrl = _ref2.serviceUrl,
1766
1921
  layerName = _ref2.layerName;
1767
1922
  var layer = {
@@ -1771,13 +1926,15 @@ var LayerListConnect = function LayerListConnect(_ref) {
1771
1926
  layerType: LayerType.mapLayer
1772
1927
  };
1773
1928
  addMapLayer({
1929
+ mapId: mapId,
1774
1930
  layerId: layer.id,
1775
1931
  layer: layer,
1776
1932
  origin: layerTypes.LayerActionOrigin.layerManager
1777
1933
  });
1778
1934
  };
1779
1935
  var addMapLayer = React.useCallback(function (_ref3) {
1780
- var layerId = _ref3.layerId,
1936
+ var mapId = _ref3.mapId,
1937
+ layerId = _ref3.layerId,
1781
1938
  layer = _ref3.layer,
1782
1939
  origin = _ref3.origin;
1783
1940
  return dispatch(layerActions.addLayer({
@@ -1786,10 +1943,25 @@ var LayerListConnect = function LayerListConnect(_ref) {
1786
1943
  layer: layer,
1787
1944
  origin: origin
1788
1945
  }));
1789
- }, [dispatch, mapId]);
1790
- var deleteLayer = React.useCallback(function (_ref4) {
1791
- var layerId = _ref4.layerId,
1792
- layerIndex = _ref4.layerIndex;
1946
+ }, [dispatch]);
1947
+ var addLayerToAllMaps = function addLayerToAllMaps(_ref4) {
1948
+ var serviceUrl = _ref4.serviceUrl,
1949
+ layerName = _ref4.layerName;
1950
+ allMapIds.forEach(function (mapId) {
1951
+ if (allLayers.find(function (layer) {
1952
+ return layer.name === layerName && layer.service === serviceUrl && layer.mapId === mapId;
1953
+ })) {
1954
+ return;
1955
+ }
1956
+ _addLayer({
1957
+ serviceUrl: serviceUrl,
1958
+ layerName: layerName
1959
+ }, mapId);
1960
+ });
1961
+ };
1962
+ var deleteLayer = React.useCallback(function (_ref5) {
1963
+ var layerId = _ref5.layerId,
1964
+ layerIndex = _ref5.layerIndex;
1793
1965
  return dispatch(layerActions.layerDelete({
1794
1966
  mapId: mapId,
1795
1967
  layerId: layerId,
@@ -1797,6 +1969,23 @@ var LayerListConnect = function LayerListConnect(_ref) {
1797
1969
  origin: layerTypes.LayerActionOrigin.layerManager
1798
1970
  }));
1799
1971
  }, [dispatch, mapId]);
1972
+ var removeLayerFromAllMaps = React.useCallback(function (layerId) {
1973
+ var _allLayers$find;
1974
+ if (!layerId) {
1975
+ return;
1976
+ }
1977
+ var layerName = (_allLayers$find = allLayers.find(function (layer) {
1978
+ return layer.id === layerId;
1979
+ })) == null ? void 0 : _allLayers$find.name;
1980
+ layerName && allLayers.filter(function (layer) {
1981
+ return layer.name === layerName;
1982
+ }).forEach(function (layer) {
1983
+ layer.mapId && layer.id && dispatch(layerActions.layerDelete({
1984
+ mapId: layer.mapId,
1985
+ layerId: layer.id
1986
+ }));
1987
+ });
1988
+ }, [dispatch, allLayers]);
1800
1989
  var filteredLayers = useAppSelector(function (store) {
1801
1990
  return getFilteredLayers(store);
1802
1991
  });
@@ -1809,10 +1998,10 @@ var LayerListConnect = function LayerListConnect(_ref) {
1809
1998
  var currentLayerInfo = useAppSelector(function (store) {
1810
1999
  return layerSelectors.getActiveLayerInfo(store);
1811
2000
  });
1812
- var onToggleActiveLayer = React.useCallback(function (_ref5) {
1813
- var serviceUrl = _ref5.serviceUrl,
1814
- layerName = _ref5.layerName,
1815
- isActiveLayer = _ref5.isActiveLayer;
2001
+ var onToggleActiveLayer = React.useCallback(function (_ref6) {
2002
+ var serviceUrl = _ref6.serviceUrl,
2003
+ layerName = _ref6.layerName,
2004
+ isActiveLayer = _ref6.isActiveLayer;
1816
2005
  if (!isActiveLayer) {
1817
2006
  dispatch(layerActions.showLayerInfo({
1818
2007
  layerName: layerName,
@@ -1826,11 +2015,17 @@ var LayerListConnect = function LayerListConnect(_ref) {
1826
2015
  return jsx(LayerList, {
1827
2016
  filteredLayers: filteredLayers,
1828
2017
  services: services,
2018
+ allLayers: allLayers,
2019
+ allMapIds: allMapIds,
1829
2020
  layerSelectHeight: layerSelectHeight,
1830
2021
  serviceListHeight: serviceListHeight,
1831
2022
  layerSelectWidth: layerSelectWidth,
1832
- addLayer: addLayer,
2023
+ addLayer: function addLayer(params) {
2024
+ return _addLayer(params, mapId);
2025
+ },
2026
+ addLayerToAllMaps: addLayerToAllMaps,
1833
2027
  deleteLayer: deleteLayer,
2028
+ removeLayerFromAllMaps: removeLayerFromAllMaps,
1834
2029
  mapLayers: mapLayers,
1835
2030
  searchFilter: searchFilter,
1836
2031
  isLayerInfoVisibleInStore: isLayerInfoVisibleInStore,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeoweb/layer-select",
3
- "version": "14.2.2",
3
+ "version": "14.4.0",
4
4
  "description": "GeoWeb layer select library for the opengeoweb project",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,15 +8,15 @@
8
8
  "url": "git@gitlab.com:opengeoweb/opengeoweb.git"
9
9
  },
10
10
  "dependencies": {
11
- "@opengeoweb/shared": "14.2.2",
12
- "@opengeoweb/store": "14.2.2",
11
+ "@opengeoweb/shared": "14.4.0",
12
+ "@opengeoweb/store": "14.4.0",
13
13
  "react-redux": "^9.2.0",
14
- "@opengeoweb/theme": "14.2.2",
15
- "@opengeoweb/webmap-react": "14.2.2",
16
- "@opengeoweb/webmap": "14.2.2",
14
+ "@opengeoweb/theme": "14.4.0",
15
+ "@opengeoweb/webmap-react": "14.4.0",
16
+ "@opengeoweb/webmap": "14.4.0",
17
17
  "react-window": "^1.8.10",
18
- "@opengeoweb/snackbar": "14.2.2",
19
- "@opengeoweb/form-fields": "14.2.2",
18
+ "@opengeoweb/snackbar": "14.4.0",
19
+ "@opengeoweb/form-fields": "14.4.0",
20
20
  "react-hook-form": "^7.50.1",
21
21
  "@reduxjs/toolkit": "^2.6.1",
22
22
  "lodash": "^4.17.21",
@@ -11,8 +11,12 @@ export interface DeleteLayerParams {
11
11
  interface LayerAddRemoveButtonProps {
12
12
  layer: layerTypes.ReduxLayer;
13
13
  serviceUrl: string;
14
+ allLayers: layerTypes.ReduxLayer[];
15
+ allMapIds: string[];
14
16
  addLayer: ({ serviceUrl, layerName }: AddLayerParams) => void;
17
+ addLayerToAllMaps: ({ serviceUrl, layerName }: AddLayerParams) => void;
15
18
  deleteLayer: ({ layerId, layerIndex }: DeleteLayerParams) => void;
19
+ removeLayerFromAllMaps: (layerId: string) => void;
16
20
  mapLayers: layerTypes.ReduxLayer[];
17
21
  }
18
22
  export declare const LayerAddRemoveButton: React.FC<LayerAddRemoveButtonProps>;
@@ -12,8 +12,12 @@ export interface LayerListProps {
12
12
  layerSelectHeight: number;
13
13
  serviceListHeight: number;
14
14
  layerSelectWidth: number;
15
+ allLayers: layerTypes.ReduxLayer[];
16
+ allMapIds: string[];
15
17
  addLayer: ({ serviceUrl, layerName }: AddLayerParams) => void;
18
+ addLayerToAllMaps: ({ serviceUrl, layerName }: AddLayerParams) => void;
16
19
  deleteLayer: ({ layerId }: DeleteLayerParams) => void;
20
+ removeLayerFromAllMaps: (layerId: string) => void;
17
21
  mapLayers: layerTypes.ReduxLayer[];
18
22
  searchFilter: string;
19
23
  isLayerInfoVisibleInStore: boolean;
@@ -9,8 +9,12 @@ interface AddLayerParams {
9
9
  interface LayerListRowProps {
10
10
  layer: LayerProps;
11
11
  service: serviceTypes.ReduxService;
12
+ allLayers: layerTypes.ReduxLayer[];
13
+ allMapIds: string[];
12
14
  addLayer: ({ serviceUrl, layerName }: AddLayerParams) => void;
15
+ addLayerToAllMaps: ({ serviceUrl, layerName }: AddLayerParams) => void;
13
16
  deleteLayer: ({ layerId, layerIndex }: DeleteLayerParams) => void;
17
+ removeLayerFromAllMaps: (layerId: string) => void;
14
18
  mapLayers: layerTypes.ReduxLayer[];
15
19
  layerSelectWidth: number;
16
20
  searchFilter: string;
@@ -3,5 +3,5 @@ import { UseTranslationResponse } from 'react-i18next';
3
3
  export declare const LAYER_SELECT_NAMESPACE = "layerselect";
4
4
  export declare const initLayerSelectI18n: () => typeof i18n;
5
5
  export declare const useLayerSelectTranslation: () => UseTranslationResponse<typeof LAYER_SELECT_NAMESPACE, typeof i18n>;
6
- export declare const translateKeyOutsideComponents: (key: string, params?: Record<string, string | number> | undefined) => string;
6
+ export declare const translateInTestsAndStories: (key: string, params?: Record<string, string | number> | undefined) => string;
7
7
  export { i18n };