@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,
|
|
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
|
|
1388
|
-
|
|
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
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
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
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
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 -
|
|
1612
|
+
width: "calc(100% - " + buttonLarge + "px - 32px)"
|
|
1484
1613
|
},
|
|
1485
1614
|
column9: {
|
|
1486
|
-
width: "calc(" + buttonLarge + "px +
|
|
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 -
|
|
1647
|
+
width: "calc(100% - " + buttonSmall + "px - 50px)"
|
|
1519
1648
|
},
|
|
1520
1649
|
column9: {
|
|
1521
|
-
width: "calc(" + buttonSmall + "px +
|
|
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
|
|
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
|
|
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
|
|
1790
|
-
var
|
|
1791
|
-
var
|
|
1792
|
-
|
|
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 (
|
|
1813
|
-
var serviceUrl =
|
|
1814
|
-
layerName =
|
|
1815
|
-
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.
|
|
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.
|
|
12
|
-
"@opengeoweb/store": "14.
|
|
11
|
+
"@opengeoweb/shared": "14.4.0",
|
|
12
|
+
"@opengeoweb/store": "14.4.0",
|
|
13
13
|
"react-redux": "^9.2.0",
|
|
14
|
-
"@opengeoweb/theme": "14.
|
|
15
|
-
"@opengeoweb/webmap-react": "14.
|
|
16
|
-
"@opengeoweb/webmap": "14.
|
|
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.
|
|
19
|
-
"@opengeoweb/form-fields": "14.
|
|
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;
|
package/src/lib/utils/i18n.d.ts
CHANGED
|
@@ -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
|
|
6
|
+
export declare const translateInTestsAndStories: (key: string, params?: Record<string, string | number> | undefined) => string;
|
|
7
7
|
export { i18n };
|