@opengeoweb/core 12.12.0 → 12.13.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 +222 -56
- package/package.json +11 -11
- package/src/lib/components/ConfigurableMapConnect/ConfigurableMapConnect.d.ts +2 -0
- package/src/lib/components/EDR/EDRLayerMultiParam.stories.d.ts +15 -0
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/LayerRow.d.ts +1 -0
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderEDRLayers.d.ts +16 -0
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderEDRLayers.spec.d.ts +1 -0
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderLayers.d.ts +2 -0
- package/src/lib/components/MapViewConnect/MapViewConnect.Features.stories.d.ts +8 -0
- package/src/lib/components/MapViewConnect/OlMapViewConnect.d.ts +2 -0
package/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { useState, useCallback, useEffect, useContext, useMemo } from 'react';
|
|
4
|
-
import { Grid, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, DialogContentText, TextField, InputAdornment, Button, Autocomplete, ListItemIcon,
|
|
4
|
+
import { Grid, Box, MenuItem, Typography, useTheme, Popper, Fade, Tooltip, styled, Checkbox, LinearProgress, FormControl, InputLabel, Paper, List, ListItemButton, ListItemText, CircularProgress, ListSubheader, DialogContentText, TextField, InputAdornment, Button, Autocomplete, ListItemIcon, Switch, Select } from '@mui/material';
|
|
5
5
|
import { safelyInitI18nForTestsAndStories, sharedTranslations, SHARED_NAMESPACE, CustomIconButton, CustomTooltip, TooltipSelect, AlertIcon, useScrollingInIsolation, sliderHeaderStyle, CustomSlider, ToggleMenu, tooltipContainerStyles, renderCounter, AlertBanner, CustomAccordion, CustomDialog, PROJECTION, calculateStartSize, useWheelStopPropagation, ToolContainerDraggable, dateUtils, useDebounce, sessionStorageProvider, usePrevious, ErrorBoundary } from '@opengeoweb/shared';
|
|
6
6
|
import { CollapseSmall, CollapseMedium, CollapseLarge, CollapseWindow, ExpandWindow, LayersAdd, CloudLoading, ColumnCollapsed, ColumnCollapse, Copy, None, FastForward, AutoUpdateActive, Both, Delete, Visibility, VisibilityOff, DragHandle as DragHandle$1, Cached, Add, MapAdd, WorldMapProjection, Overlayers, Layers, ExitDomain, Info, Search, Exclamation, MyLocation, Close, ThemeWrapper, lightTheme, FlagBritain, FlagNetherlands, FlagFinland, FlagNorway } from '@opengeoweb/theme';
|
|
7
7
|
import i18n from 'i18next';
|
|
@@ -12,7 +12,7 @@ import { useDispatch, useSelector, connect, useStore, Provider } from 'react-red
|
|
|
12
12
|
import { ReactSortable } from 'react-sortablejs';
|
|
13
13
|
import Sortable from 'sortablejs';
|
|
14
14
|
import { layerTypes, layerUtils, mapSelectors, layerActions, layerSelectors, serviceSelectors, serviceActions, mapActions, mapEnums, uiSelectors, uiTypes, useSetupDialog, filterLayers, getUserAddedServices, uiActions, genericActions, syncGroupsSelectors, drawingToolSelectors, syncConstants, getViewObjectForSyncGroup, getViewObjectForMapId, genericSelectors, loadingIndicatorActions, defaultLayers, getSingularDrawtoolDrawLayerId, syncGroupsSelector, syncGroupsActions, routerUtils, mapUtils } from '@opengeoweb/store';
|
|
15
|
-
import { webmapUtils, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities,
|
|
15
|
+
import { webmapUtils, LayerType, queryWMSServiceInfo, queryWMSLayers, queryWMSLayersTree, invalidateWMSGetCapabilities, getWMSServiceId, handleDateUtilsISOString, getMapDimURL, generateLayerId, WMJSDimension, getWMLayerById, WMLayer } from '@opengeoweb/webmap';
|
|
16
16
|
import _, { isArray, isEqual, range } from 'lodash';
|
|
17
17
|
import { Box as Box$1, styled as styled$1 } from '@mui/system';
|
|
18
18
|
import { LayerSelectButtonConnect, LayerSelectConnect, DataExplorerButtonConnect } from '@opengeoweb/layer-select';
|
|
@@ -58,6 +58,7 @@ var en = {
|
|
|
58
58
|
"layermanager-style-title": "Style",
|
|
59
59
|
"layermanager-layer-error": "This layer could not be loaded: does not exist on the server.",
|
|
60
60
|
"layermanager-layer": "Layer",
|
|
61
|
+
"layermanager-layer-multi": "Layers",
|
|
61
62
|
"layermanager-layer-toggle": "Toggle visibility",
|
|
62
63
|
"layermanager-layer-select": "Open the layer selector",
|
|
63
64
|
"layermanager-layer-drag": "Drag",
|
|
@@ -75,6 +76,7 @@ var en = {
|
|
|
75
76
|
"layermanager-header-button-large": "large",
|
|
76
77
|
"layermanager-header-button-dock": "Dock",
|
|
77
78
|
"layermanager-header-button-undock": "Undock",
|
|
79
|
+
"layermanager-EDR-multiparam": "Multi params",
|
|
78
80
|
"projection-title": "Projection",
|
|
79
81
|
"wms-loader-description": "Please enter a wms server, or select one from the list.",
|
|
80
82
|
"wms-loader-no-data": "No data",
|
|
@@ -1387,6 +1389,27 @@ var DimensionSelect = function DimensionSelect(_ref) {
|
|
|
1387
1389
|
});
|
|
1388
1390
|
};
|
|
1389
1391
|
|
|
1392
|
+
var showNoLayers = function showNoLayers(t) {
|
|
1393
|
+
return jsx(Box, {
|
|
1394
|
+
sx: {
|
|
1395
|
+
paddingLeft: 1,
|
|
1396
|
+
height: '32px',
|
|
1397
|
+
display: 'inline-flex',
|
|
1398
|
+
alignItems: 'center'
|
|
1399
|
+
},
|
|
1400
|
+
children: jsx(Typography, {
|
|
1401
|
+
variant: "body1",
|
|
1402
|
+
sx: {
|
|
1403
|
+
fontSize: function fontSize(theme) {
|
|
1404
|
+
return theme.palette.geowebColors.layerManager.tableRowDefaultText.fontSize;
|
|
1405
|
+
},
|
|
1406
|
+
color: 'geowebColors.layerManager.tableRowDefaultText.rgba',
|
|
1407
|
+
fontWeight: 500
|
|
1408
|
+
},
|
|
1409
|
+
children: t('layermanager-baselayers-no-available')
|
|
1410
|
+
})
|
|
1411
|
+
});
|
|
1412
|
+
};
|
|
1390
1413
|
var getRenderLayersValues = function getRenderLayersValues(layerName, layers) {
|
|
1391
1414
|
var serviceLayer = layers.find(function (layer) {
|
|
1392
1415
|
return layer.name === layerName;
|
|
@@ -1425,25 +1448,7 @@ var RenderLayers = function RenderLayers(_ref) {
|
|
|
1425
1448
|
t = _useCoreTranslation.t;
|
|
1426
1449
|
var nonEmptyTooltipPrefix = tooltipPrefix != null ? tooltipPrefix : t('layermanager-layer') + ": ";
|
|
1427
1450
|
if (!layers || !layers.length) {
|
|
1428
|
-
return
|
|
1429
|
-
sx: {
|
|
1430
|
-
paddingLeft: 1,
|
|
1431
|
-
height: '32px',
|
|
1432
|
-
display: 'inline-flex',
|
|
1433
|
-
alignItems: 'center'
|
|
1434
|
-
},
|
|
1435
|
-
children: jsx(Typography, {
|
|
1436
|
-
variant: "body1",
|
|
1437
|
-
sx: {
|
|
1438
|
-
fontSize: function fontSize(theme) {
|
|
1439
|
-
return theme.palette.geowebColors.layerManager.tableRowDefaultText.fontSize;
|
|
1440
|
-
},
|
|
1441
|
-
color: 'geowebColors.layerManager.tableRowDefaultText.rgba',
|
|
1442
|
-
fontWeight: 500
|
|
1443
|
-
},
|
|
1444
|
-
children: t('layermanager-baselayers-no-available')
|
|
1445
|
-
})
|
|
1446
|
-
});
|
|
1451
|
+
return showNoLayers(t);
|
|
1447
1452
|
}
|
|
1448
1453
|
var selectLayer = function selectLayer(event) {
|
|
1449
1454
|
event.stopPropagation();
|
|
@@ -2212,6 +2217,8 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
|
|
|
2212
2217
|
layerName = _ref8.layerName,
|
|
2213
2218
|
services = _ref8.services,
|
|
2214
2219
|
mapId = _ref8.mapId,
|
|
2220
|
+
_ref8$isEDRLayer = _ref8.isEDRLayer,
|
|
2221
|
+
isEDRLayer = _ref8$isEDRLayer === void 0 ? false : _ref8$isEDRLayer,
|
|
2215
2222
|
_ref8$onLayerRowClick = _ref8.onLayerRowClick,
|
|
2216
2223
|
onLayerRowClick = _ref8$onLayerRowClick === void 0 ? function () {} : _ref8$onLayerRowClick,
|
|
2217
2224
|
_ref8$isEnabled = _ref8.isEnabled,
|
|
@@ -2303,6 +2310,7 @@ var LayerRowUnstyled = function LayerRowUnstyled(_ref8) {
|
|
|
2303
2310
|
onChangeActive: onClickRow
|
|
2304
2311
|
}),
|
|
2305
2312
|
layerName: layerName,
|
|
2313
|
+
isEDRLayer: isEDRLayer,
|
|
2306
2314
|
Styles: layerStylesLayout || jsx(Styles, {
|
|
2307
2315
|
style: layer.style,
|
|
2308
2316
|
onChangeStyle: changeStyle
|
|
@@ -2448,9 +2456,12 @@ var Accordion = function Accordion(_ref0) {
|
|
|
2448
2456
|
Opacity = _ref0.Opacity,
|
|
2449
2457
|
layerName = _ref0.layerName,
|
|
2450
2458
|
LeftButtons = _ref0.LeftButtons,
|
|
2451
|
-
LoadDuration = _ref0.LoadDuration
|
|
2459
|
+
LoadDuration = _ref0.LoadDuration,
|
|
2460
|
+
_ref0$isEDRLayer = _ref0.isEDRLayer,
|
|
2461
|
+
isEDRLayer = _ref0$isEDRLayer === void 0 ? false : _ref0$isEDRLayer;
|
|
2452
2462
|
var _useCoreTranslation3 = useCoreTranslation(),
|
|
2453
2463
|
t = _useCoreTranslation3.t;
|
|
2464
|
+
var displayLayerName = isEDRLayer && layerName != null && layerName.includes(',') ? t('layermanager-EDR-multiparam') : layerName;
|
|
2454
2465
|
return jsx(CustomAccordion, {
|
|
2455
2466
|
className: "medium-layermanager",
|
|
2456
2467
|
defaultExpanded: false,
|
|
@@ -2473,7 +2484,7 @@ var Accordion = function Accordion(_ref0) {
|
|
|
2473
2484
|
display: 'flex',
|
|
2474
2485
|
alignItems: 'center'
|
|
2475
2486
|
},
|
|
2476
|
-
children:
|
|
2487
|
+
children: displayLayerName
|
|
2477
2488
|
})]
|
|
2478
2489
|
}),
|
|
2479
2490
|
children: jsxs(Grid, {
|
|
@@ -2785,6 +2796,128 @@ var RenderStylesConnect = function RenderStylesConnect(_ref) {
|
|
|
2785
2796
|
});
|
|
2786
2797
|
};
|
|
2787
2798
|
|
|
2799
|
+
var getRenderEDRLayersValues = function getRenderEDRLayersValues(selectedParams, layers) {
|
|
2800
|
+
var paramArray = selectedParams.reduce(function (obj, param) {
|
|
2801
|
+
var serviceLayer = layers.find(function (layer) {
|
|
2802
|
+
return layer.name === param;
|
|
2803
|
+
});
|
|
2804
|
+
if (!serviceLayer) {
|
|
2805
|
+
return {
|
|
2806
|
+
notFound: obj.notFound.concat([param]),
|
|
2807
|
+
found: [].concat(obj.found)
|
|
2808
|
+
};
|
|
2809
|
+
}
|
|
2810
|
+
return {
|
|
2811
|
+
found: obj.found.concat([param]),
|
|
2812
|
+
notFound: [].concat(obj.notFound)
|
|
2813
|
+
};
|
|
2814
|
+
}, {
|
|
2815
|
+
found: [],
|
|
2816
|
+
notFound: []
|
|
2817
|
+
});
|
|
2818
|
+
if (paramArray.notFound.length > 0) {
|
|
2819
|
+
return {
|
|
2820
|
+
currentValues: [].concat(paramArray.found, [paramArray.notFound.join(',')]),
|
|
2821
|
+
extendedLayers: [].concat(layers, [{
|
|
2822
|
+
name: paramArray.notFound.join(','),
|
|
2823
|
+
title: paramArray.notFound.join(','),
|
|
2824
|
+
leaf: true,
|
|
2825
|
+
path: []
|
|
2826
|
+
}])
|
|
2827
|
+
};
|
|
2828
|
+
}
|
|
2829
|
+
return {
|
|
2830
|
+
currentValues: selectedParams,
|
|
2831
|
+
extendedLayers: layers
|
|
2832
|
+
};
|
|
2833
|
+
};
|
|
2834
|
+
var RenderEDRLayers = function RenderEDRLayers(_ref) {
|
|
2835
|
+
var onChangeLayerName = _ref.onChangeLayerName,
|
|
2836
|
+
selectedParams = _ref.selectedParams,
|
|
2837
|
+
_ref$layers = _ref.layers,
|
|
2838
|
+
layers = _ref$layers === void 0 ? [] : _ref$layers,
|
|
2839
|
+
_ref$isEnabled = _ref.isEnabled,
|
|
2840
|
+
isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,
|
|
2841
|
+
tooltipPrefix = _ref.tooltipPrefix,
|
|
2842
|
+
skipLocalStyling = _ref.skipLocalStyling;
|
|
2843
|
+
var _useCoreTranslation = useCoreTranslation(),
|
|
2844
|
+
t = _useCoreTranslation.t;
|
|
2845
|
+
var nonEmptyTooltipPrefix = tooltipPrefix != null ? tooltipPrefix : selectedParams.length === 1 ? t('layermanager-layer') + ": " : t('layermanager-layer-multi') + ": ";
|
|
2846
|
+
if (!layers || !layers.length) {
|
|
2847
|
+
return showNoLayers(t);
|
|
2848
|
+
}
|
|
2849
|
+
var selectLayer = function selectLayer(event) {
|
|
2850
|
+
event.stopPropagation();
|
|
2851
|
+
// Ensure after deselecting all, the empty value gets removed
|
|
2852
|
+
var params = event.target.value.filter(function (param) {
|
|
2853
|
+
return param !== '';
|
|
2854
|
+
});
|
|
2855
|
+
onChangeLayerName(params.join(','));
|
|
2856
|
+
};
|
|
2857
|
+
var _getRenderEDRLayersVa = getRenderEDRLayersValues(selectedParams, layers),
|
|
2858
|
+
currentValues = _getRenderEDRLayersVa.currentValues,
|
|
2859
|
+
extendedLayers = _getRenderEDRLayersVa.extendedLayers;
|
|
2860
|
+
var list = extendedLayers.map(function (layer) {
|
|
2861
|
+
return {
|
|
2862
|
+
value: layer.name
|
|
2863
|
+
};
|
|
2864
|
+
});
|
|
2865
|
+
var multiParamText = t('layermanager-EDR-multiparam');
|
|
2866
|
+
var tooltipNames = currentValues.map(function (value) {
|
|
2867
|
+
var layer = extendedLayers.find(function (layer) {
|
|
2868
|
+
return value === layer.name;
|
|
2869
|
+
});
|
|
2870
|
+
return (layer == null ? void 0 : layer.title) || (layer == null ? void 0 : layer.name);
|
|
2871
|
+
});
|
|
2872
|
+
var tooltip = nonEmptyTooltipPrefix + " " + tooltipNames.sort(function (paramA, paramB) {
|
|
2873
|
+
return (paramA != null ? paramA : '').localeCompare(paramB != null ? paramB : '');
|
|
2874
|
+
}).join(', ');
|
|
2875
|
+
return jsxs(TooltipSelect, {
|
|
2876
|
+
disableUnderline: true,
|
|
2877
|
+
tooltip: tooltip,
|
|
2878
|
+
inputProps: {
|
|
2879
|
+
SelectDisplayProps: {
|
|
2880
|
+
'data-testid': 'selectEDRLayer'
|
|
2881
|
+
}
|
|
2882
|
+
},
|
|
2883
|
+
isEnabled: isEnabled,
|
|
2884
|
+
value: currentValues,
|
|
2885
|
+
list: list,
|
|
2886
|
+
onChange: selectLayer,
|
|
2887
|
+
skipLocalStyling: skipLocalStyling,
|
|
2888
|
+
multiple: true,
|
|
2889
|
+
renderValue: function renderValue(values) {
|
|
2890
|
+
if (values.length === 1) {
|
|
2891
|
+
var layer = extendedLayers.find(function (layer) {
|
|
2892
|
+
return layer.name === currentValues[0];
|
|
2893
|
+
});
|
|
2894
|
+
return (layer == null ? void 0 : layer.title) || (layer == null ? void 0 : layer.name) || 'Param';
|
|
2895
|
+
}
|
|
2896
|
+
return multiParamText;
|
|
2897
|
+
},
|
|
2898
|
+
children: [jsx(MenuItem, {
|
|
2899
|
+
disabled: true,
|
|
2900
|
+
children: t('layermanager-layer')
|
|
2901
|
+
}), extendedLayers.map(function (layerFromServiceLayers, currentIndex) {
|
|
2902
|
+
return jsxs(MenuItem, {
|
|
2903
|
+
value: layerFromServiceLayers.name,
|
|
2904
|
+
disabled: !layerFromServiceLayers.leaf,
|
|
2905
|
+
sx: {
|
|
2906
|
+
'&.MuiMenuItem-root.Mui-selected': {
|
|
2907
|
+
background: 'none',
|
|
2908
|
+
color: 'geowebColors.typographyAndIcons.text'
|
|
2909
|
+
}
|
|
2910
|
+
},
|
|
2911
|
+
children: [jsx(Checkbox, {
|
|
2912
|
+
checked: currentValues.includes(layerFromServiceLayers.name)
|
|
2913
|
+
}), layerFromServiceLayers.title, currentIndex === layers.length && jsx(AlertIcon, {
|
|
2914
|
+
severity: "error"
|
|
2915
|
+
})]
|
|
2916
|
+
}, layerFromServiceLayers.name);
|
|
2917
|
+
})]
|
|
2918
|
+
});
|
|
2919
|
+
};
|
|
2920
|
+
|
|
2788
2921
|
var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
2789
2922
|
var layerId = _ref.layerId,
|
|
2790
2923
|
mapId = _ref.mapId,
|
|
@@ -2794,6 +2927,9 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
2794
2927
|
var layerName = useSelector(function (store) {
|
|
2795
2928
|
return layerSelectors.getLayerName(store, layerId);
|
|
2796
2929
|
});
|
|
2930
|
+
var layerType = useSelector(function (store) {
|
|
2931
|
+
return layerSelectors.getLayerType(store, layerId);
|
|
2932
|
+
});
|
|
2797
2933
|
var layerService = useSelector(function (store) {
|
|
2798
2934
|
return layerSelectors.getLayerService(store, layerId);
|
|
2799
2935
|
});
|
|
@@ -2861,6 +2997,22 @@ var RenderLayersConnect = function RenderLayersConnect(_ref) {
|
|
|
2861
2997
|
origin: layerTypes.LayerActionOrigin.layerManager
|
|
2862
2998
|
}));
|
|
2863
2999
|
}, [dispatch, mapId]);
|
|
3000
|
+
if (layerType === LayerType.edrLayer) {
|
|
3001
|
+
var selectedParams = layerName.split(',');
|
|
3002
|
+
return jsx(RenderEDRLayers, {
|
|
3003
|
+
layers: layers,
|
|
3004
|
+
selectedParams: selectedParams,
|
|
3005
|
+
onChangeLayerName: function onChangeLayerName(name) {
|
|
3006
|
+
layerChangeName({
|
|
3007
|
+
layerId: layerId,
|
|
3008
|
+
name: name
|
|
3009
|
+
});
|
|
3010
|
+
},
|
|
3011
|
+
isEnabled: isLayerEnabled,
|
|
3012
|
+
tooltipPrefix: tooltipPrefix,
|
|
3013
|
+
skipLocalStyling: skipLocalStyling
|
|
3014
|
+
});
|
|
3015
|
+
}
|
|
2864
3016
|
return jsx(RenderLayers, {
|
|
2865
3017
|
layers: layers,
|
|
2866
3018
|
layerName: layerName,
|
|
@@ -3154,11 +3306,14 @@ var MissingDataConnect = function MissingDataConnect(_ref) {
|
|
|
3154
3306
|
var layerName = useSelector(function (store) {
|
|
3155
3307
|
return layerSelectors.getLayerName(store, layerId);
|
|
3156
3308
|
});
|
|
3309
|
+
var layerType = useSelector(function (store) {
|
|
3310
|
+
return layerSelectors.getLayerType(store, layerId);
|
|
3311
|
+
});
|
|
3157
3312
|
var layerService = useSelector(function (store) {
|
|
3158
3313
|
return layerSelectors.getLayerService(store, layerId);
|
|
3159
3314
|
});
|
|
3160
3315
|
var serviceLayer = useSelector(function (store) {
|
|
3161
|
-
return serviceSelectors.getLayerFromService(store, layerService, layerName);
|
|
3316
|
+
return serviceSelectors.getLayerFromService(store, layerService, layerName, layerType === LayerType.edrLayer);
|
|
3162
3317
|
});
|
|
3163
3318
|
var layerStatus = useSelector(function (store) {
|
|
3164
3319
|
return layerSelectors.getLayerStatus(store, layerId);
|
|
@@ -3290,11 +3445,15 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
3290
3445
|
var layerName = useSelector(function (store) {
|
|
3291
3446
|
return layerSelectors.getLayerName(store, layerId);
|
|
3292
3447
|
});
|
|
3448
|
+
var layerType = useSelector(function (store) {
|
|
3449
|
+
return layerSelectors.getLayerType(store, layerId);
|
|
3450
|
+
});
|
|
3451
|
+
var isEDRLayer = layerType === LayerType.edrLayer;
|
|
3293
3452
|
var layerServiceUrl = useSelector(function (store) {
|
|
3294
3453
|
return layerSelectors.getLayerService(store, layerId);
|
|
3295
3454
|
});
|
|
3296
3455
|
var serviceLayer = useSelector(function (store) {
|
|
3297
|
-
return serviceSelectors.getLayerFromService(store, layerServiceUrl, layerName);
|
|
3456
|
+
return serviceSelectors.getLayerFromService(store, layerServiceUrl, layerName, isEDRLayer);
|
|
3298
3457
|
});
|
|
3299
3458
|
var layerStatus = useSelector(function (store) {
|
|
3300
3459
|
return layerSelectors.getLayerStatus(store, layerId);
|
|
@@ -3308,7 +3467,10 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
3308
3467
|
var currentService = useSelector(function (store) {
|
|
3309
3468
|
return serviceSelectors.getServiceByUrl(store, layerServiceUrl);
|
|
3310
3469
|
});
|
|
3311
|
-
|
|
3470
|
+
// Ensure that for an EDR layer, we send over the entire layerName if there are multiple params selected
|
|
3471
|
+
// If only one param selected, send over the title from the service
|
|
3472
|
+
var layerNameForEDRLayer = layerName != null && layerName.includes(',') ? layerName : serviceLayer == null ? void 0 : serviceLayer.title;
|
|
3473
|
+
var fullLayerName = isEDRLayer ? layerNameForEDRLayer : serviceLayer == null ? void 0 : serviceLayer.title;
|
|
3312
3474
|
renderCounter.count(LayerRowConnect.name);
|
|
3313
3475
|
return jsx(LayerRow, {
|
|
3314
3476
|
isEnabled: isEnabled,
|
|
@@ -3316,6 +3478,7 @@ var LayerRowConnect = /*#__PURE__*/React.memo(function (_ref) {
|
|
|
3316
3478
|
layerId: layerId,
|
|
3317
3479
|
isLayerMissing: !serviceLayer || layerStatus === layerTypes.LayerStatus.error,
|
|
3318
3480
|
layerName: fullLayerName || layerName,
|
|
3481
|
+
isEDRLayer: isEDRLayer,
|
|
3319
3482
|
layerEnableLayout: jsx(EnableLayerConnect, {
|
|
3320
3483
|
layerId: layerId,
|
|
3321
3484
|
mapId: mapId,
|
|
@@ -4802,7 +4965,8 @@ var OverlayersSelectConnect = function OverlayersSelectConnect(_ref) {
|
|
|
4802
4965
|
var changeOverlayer = React__default.useCallback(function (mapId, selectedOverlayer) {
|
|
4803
4966
|
dispatch(mapActions.changeOverlayer({
|
|
4804
4967
|
mapId: mapId || '',
|
|
4805
|
-
selectedOverlayer: selectedOverlayer.id
|
|
4968
|
+
selectedOverlayer: selectedOverlayer.id,
|
|
4969
|
+
origin: 'map'
|
|
4806
4970
|
}));
|
|
4807
4971
|
}, [dispatch]);
|
|
4808
4972
|
return jsx(OverlayersSelect, {
|
|
@@ -5219,6 +5383,9 @@ var DimensionSelectSliderConnect = function DimensionSelectSliderConnect(_ref) {
|
|
|
5219
5383
|
var layerDimension = useSelector(function (store) {
|
|
5220
5384
|
return layerSelectors.getLayerDimension(store, layerId, dimensionName);
|
|
5221
5385
|
});
|
|
5386
|
+
var layerName = useSelector(function (store) {
|
|
5387
|
+
return layerSelectors.getLayerName(store, layerId);
|
|
5388
|
+
});
|
|
5222
5389
|
var _useLayerDimensions = useLayerDimensions(layerId, mapId),
|
|
5223
5390
|
isLayerEnabled = _useLayerDimensions.isLayerEnabled;
|
|
5224
5391
|
if (!layerDimension || !isLayerEnabled) {
|
|
@@ -5229,7 +5396,8 @@ var DimensionSelectSliderConnect = function DimensionSelectSliderConnect(_ref) {
|
|
|
5229
5396
|
dimensionName: dimensionName,
|
|
5230
5397
|
handleDimensionValueChanged: handleDimensionValueChanged,
|
|
5231
5398
|
handleSyncChanged: handleSyncChanged,
|
|
5232
|
-
layerDimension: layerDimension
|
|
5399
|
+
layerDimension: layerDimension,
|
|
5400
|
+
layerName: layerName
|
|
5233
5401
|
});
|
|
5234
5402
|
};
|
|
5235
5403
|
|
|
@@ -7448,35 +7616,28 @@ var makePrefetchTimeSpan = function makePrefetchTimeSpan(timeSliderStartCenterEn
|
|
|
7448
7616
|
};
|
|
7449
7617
|
var makeLayerInfoPayload = function makeLayerInfoPayload(payload, mapDimensions, mapId) {
|
|
7450
7618
|
// During intialization, try to base the layer dimension on the current map dimension value.
|
|
7619
|
+
var origin = 'onInitializeLayer in OlMapViewLayerConnect';
|
|
7620
|
+
var dimensions = (payload.dimensions || []).map(function (layerDim) {
|
|
7621
|
+
var _find;
|
|
7622
|
+
var currentMapDim = ((_find = (mapDimensions || []).find(function (mapDim) {
|
|
7623
|
+
return mapDim.name === layerDim.name;
|
|
7624
|
+
})) == null ? void 0 : _find.currentValue) || layerDim.currentValue;
|
|
7625
|
+
var wmDim = new WMJSDimension(layerDim);
|
|
7626
|
+
return Object.assign({}, layerDim, {
|
|
7627
|
+
currentValue: wmDim.getClosestValue(currentMapDim, true)
|
|
7628
|
+
});
|
|
7629
|
+
});
|
|
7451
7630
|
var updatedPayLoad = {
|
|
7452
|
-
origin:
|
|
7631
|
+
origin: origin,
|
|
7453
7632
|
layerDimensions: {
|
|
7454
7633
|
layerId: payload.layerId,
|
|
7455
|
-
origin:
|
|
7456
|
-
dimensions:
|
|
7457
|
-
var _find;
|
|
7458
|
-
var currentMapDim = ((_find = (mapDimensions || []).find(function (mapDim) {
|
|
7459
|
-
return mapDim.name === layerDim.name;
|
|
7460
|
-
})) == null ? void 0 : _find.currentValue) || layerDim.currentValue;
|
|
7461
|
-
var wmDim = new WMJSDimension(layerDim);
|
|
7462
|
-
return Object.assign({}, layerDim, {
|
|
7463
|
-
currentValue: wmDim.getClosestValue(currentMapDim)
|
|
7464
|
-
});
|
|
7465
|
-
})
|
|
7634
|
+
origin: origin,
|
|
7635
|
+
dimensions: dimensions
|
|
7466
7636
|
},
|
|
7467
7637
|
mapDimensions: {
|
|
7468
7638
|
mapId: mapId,
|
|
7469
|
-
origin:
|
|
7470
|
-
dimensions:
|
|
7471
|
-
var _find2;
|
|
7472
|
-
var currentMapDim = ((_find2 = (mapDimensions || []).find(function (mapDim) {
|
|
7473
|
-
return mapDim.name === layerDim.name;
|
|
7474
|
-
})) == null ? void 0 : _find2.currentValue) || layerDim.currentValue;
|
|
7475
|
-
var wmDim = new WMJSDimension(layerDim);
|
|
7476
|
-
return Object.assign({}, layerDim, {
|
|
7477
|
-
currentValue: wmDim.getClosestValue(currentMapDim)
|
|
7478
|
-
});
|
|
7479
|
-
})
|
|
7639
|
+
origin: origin,
|
|
7640
|
+
dimensions: dimensions
|
|
7480
7641
|
}
|
|
7481
7642
|
};
|
|
7482
7643
|
return updatedPayLoad;
|
|
@@ -7670,7 +7831,9 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
|
|
|
7670
7831
|
initialBbox = _ref.initialBbox,
|
|
7671
7832
|
holdShiftToScroll = _ref.holdShiftToScroll,
|
|
7672
7833
|
source = _ref.source,
|
|
7673
|
-
tileServerSettings = _ref.tileServerSettings
|
|
7834
|
+
tileServerSettings = _ref.tileServerSettings,
|
|
7835
|
+
_ref$featureStyle = _ref.featureStyle,
|
|
7836
|
+
featureStyle = _ref$featureStyle === void 0 ? genericOpenLayersFeatureStyle : _ref$featureStyle;
|
|
7674
7837
|
var store = useStore();
|
|
7675
7838
|
var _useGetOpenLayersView = useGetOpenLayersView(mapId, store),
|
|
7676
7839
|
view = _useGetOpenLayersView.view;
|
|
@@ -8072,13 +8235,13 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
|
|
|
8072
8235
|
layerId: layer == null ? void 0 : layer.id,
|
|
8073
8236
|
layer: layer,
|
|
8074
8237
|
zIndex: featureLayers.length - zIndex + 3000,
|
|
8075
|
-
style:
|
|
8238
|
+
style: featureStyle,
|
|
8076
8239
|
hoverSelect: {
|
|
8077
8240
|
active: true
|
|
8078
8241
|
}
|
|
8079
8242
|
}, "featurelayer-" + (layer == null ? void 0 : layer.id));
|
|
8080
8243
|
}), jsx(OpenLayersFeatureLayer, {
|
|
8081
|
-
style:
|
|
8244
|
+
style: featureStyle,
|
|
8082
8245
|
featureCollection: combinedLinkedFeatures,
|
|
8083
8246
|
zIndex: 4000,
|
|
8084
8247
|
hoverSelect: hoverSelect
|
|
@@ -8131,7 +8294,7 @@ var OlMapViewConnect = function OlMapViewConnect(_ref) {
|
|
|
8131
8294
|
});
|
|
8132
8295
|
};
|
|
8133
8296
|
|
|
8134
|
-
var _excluded = ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "shouldAutoFetch", "initialBbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "displayDataExplorerButtonOnMap", "mapControls", "children", "shouldDisablePrefetching", "tileServerSettings"];
|
|
8297
|
+
var _excluded = ["id", "dockedLayerManagerSize", "title", "layers", "dimensions", "shouldAutoUpdate", "shouldAnimate", "shouldAutoFetch", "initialBbox", "srs", "shouldShowZoomControls", "displayMapPin", "showTimeSlider", "disableTimeSlider", "displayTimeInMap", "displayLayerManagerAndLegendButtonInMap", "displayDimensionSelectButtonInMap", "multiLegend", "shouldShowLayerManager", "shouldShowDockedLayerManager", "showClock", "displayGetFeatureInfoButtonInMap", "shouldDisplayDrawControls", "displaySearchButtonInMap", "displayDataExplorerButtonOnMap", "mapControls", "children", "shouldDisablePrefetching", "tileServerSettings", "featureStyle"];
|
|
8135
8298
|
var titleStyle = function titleStyle(theme) {
|
|
8136
8299
|
return {
|
|
8137
8300
|
position: 'absolute',
|
|
@@ -8202,6 +8365,8 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_ref) {
|
|
|
8202
8365
|
children = _ref.children,
|
|
8203
8366
|
shouldDisablePrefetching = _ref.shouldDisablePrefetching,
|
|
8204
8367
|
tileServerSettings = _ref.tileServerSettings,
|
|
8368
|
+
_ref$featureStyle = _ref.featureStyle,
|
|
8369
|
+
featureStyle = _ref$featureStyle === void 0 ? genericOpenLayersFeatureStyle : _ref$featureStyle,
|
|
8205
8370
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
8206
8371
|
var dispatch = useDispatch();
|
|
8207
8372
|
var mapId = React__default.useRef(id || webmapUtils.generateMapId()).current;
|
|
@@ -8334,12 +8499,13 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_ref) {
|
|
|
8334
8499
|
initialBbox: initialBbox,
|
|
8335
8500
|
shouldDisablePrefetching: shouldDisablePrefetching,
|
|
8336
8501
|
tileServerSettings: tileServerSettings,
|
|
8502
|
+
featureStyle: featureStyle,
|
|
8337
8503
|
children: children
|
|
8338
8504
|
}), showClock && jsx(TimeSliderClockConnect, {
|
|
8339
8505
|
mapId: mapId
|
|
8340
8506
|
})]
|
|
8341
8507
|
});
|
|
8342
|
-
}, [mapId, title, id, initialBbox, mapControlConfig, tileServerSettings, disableTimeSlider, displayTimeInMap, shouldAutoFetch, shouldDisablePrefetching, children, showClock]);
|
|
8508
|
+
}, [mapId, title, id, initialBbox, mapControlConfig, tileServerSettings, disableTimeSlider, displayTimeInMap, shouldAutoFetch, shouldDisablePrefetching, children, showClock, featureStyle]);
|
|
8343
8509
|
};
|
|
8344
8510
|
|
|
8345
8511
|
var mapBoxStyle = function mapBoxStyle(theme) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeoweb/core",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.13.0",
|
|
4
4
|
"description": "GeoWeb Core library for the opengeoweb project",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,22 +8,22 @@
|
|
|
8
8
|
"url": "git@gitlab.com:opengeoweb/opengeoweb.git"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@opengeoweb/shared": "12.
|
|
11
|
+
"@opengeoweb/shared": "12.13.0",
|
|
12
12
|
"react-redux": "^9.2.0",
|
|
13
|
-
"@opengeoweb/store": "12.
|
|
14
|
-
"@opengeoweb/timeslider": "12.
|
|
13
|
+
"@opengeoweb/store": "12.13.0",
|
|
14
|
+
"@opengeoweb/timeslider": "12.13.0",
|
|
15
15
|
"@reduxjs/toolkit": "^2.6.1",
|
|
16
|
-
"@opengeoweb/webmap-react": "12.
|
|
17
|
-
"@opengeoweb/webmap": "12.
|
|
18
|
-
"@opengeoweb/theme": "12.
|
|
16
|
+
"@opengeoweb/webmap-react": "12.13.0",
|
|
17
|
+
"@opengeoweb/webmap": "12.13.0",
|
|
18
|
+
"@opengeoweb/theme": "12.13.0",
|
|
19
19
|
"axios": "^1.7.7",
|
|
20
|
-
"@opengeoweb/layer-select": "12.
|
|
20
|
+
"@opengeoweb/layer-select": "12.13.0",
|
|
21
21
|
"lodash": "^4.17.21",
|
|
22
22
|
"ol": "^10.4.0",
|
|
23
23
|
"react-sortablejs": "^6.1.4",
|
|
24
24
|
"sortablejs": "^1.15.1",
|
|
25
|
-
"@mui/system": "^7.
|
|
26
|
-
"@opengeoweb/snackbar": "12.
|
|
25
|
+
"@mui/system": "^7.3.1",
|
|
26
|
+
"@opengeoweb/snackbar": "12.13.0",
|
|
27
27
|
"react-router-dom": "^6.21.0",
|
|
28
28
|
"react-draggable": "^4.4.6",
|
|
29
29
|
"i18next": "^25.0.1",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@mui/material": "^7.0.1",
|
|
33
33
|
"@sentry/react": "^8.34.0",
|
|
34
34
|
"@tanstack/react-query": "^5.69.2",
|
|
35
|
-
"@opengeoweb/api": "12.
|
|
35
|
+
"@opengeoweb/api": "12.13.0",
|
|
36
36
|
"@types/geojson": "^7946.0.14"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { mapTypes, layerTypes } from '@opengeoweb/store';
|
|
3
3
|
import { TileServerSettings } from '@opengeoweb/webmap';
|
|
4
|
+
import { StyleLike } from 'ol/style/Style';
|
|
4
5
|
export declare const defaultBbox: {
|
|
5
6
|
srs: "EPSG:3857";
|
|
6
7
|
bbox: {
|
|
@@ -44,5 +45,6 @@ export interface ConfigurableMapConnectProps {
|
|
|
44
45
|
children?: React.ReactNode;
|
|
45
46
|
mapControls?: React.ReactNode;
|
|
46
47
|
shouldDisablePrefetching?: boolean;
|
|
48
|
+
featureStyle?: StyleLike;
|
|
47
49
|
}
|
|
48
50
|
export declare const ConfigurableMapConnect: React.FC<ConfigurableMapConnectProps>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { TimeAwareEDRLocationLayer } from '@opengeoweb/webmap-react';
|
|
3
|
+
import type { Meta } from '@storybook/react-webpack5';
|
|
4
|
+
declare const meta: Meta<typeof TimeAwareEDRLocationLayer>;
|
|
5
|
+
export default meta;
|
|
6
|
+
export declare const EDRLayerMultiParam: {
|
|
7
|
+
(): React.ReactElement;
|
|
8
|
+
parameters: {
|
|
9
|
+
msw: {
|
|
10
|
+
handlers: {
|
|
11
|
+
locations: import("msw").HttpHandler[];
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderEDRLayers.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { LayerProps } from '@opengeoweb/webmap';
|
|
3
|
+
export interface RenderEDRLayersProps {
|
|
4
|
+
onChangeLayerName: (name: string) => void;
|
|
5
|
+
selectedParams: string[];
|
|
6
|
+
layers: LayerProps[];
|
|
7
|
+
isEnabled?: boolean;
|
|
8
|
+
tooltipPrefix?: string;
|
|
9
|
+
skipLocalStyling?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const getRenderEDRLayersValues: (selectedParams: string[], layers: LayerProps[]) => {
|
|
12
|
+
currentValues: string[];
|
|
13
|
+
extendedLayers: LayerProps[];
|
|
14
|
+
};
|
|
15
|
+
declare const RenderEDRLayers: React.FC<RenderEDRLayersProps>;
|
|
16
|
+
export default RenderEDRLayers;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/RenderLayers/RenderLayers.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { LayerProps } from '@opengeoweb/webmap';
|
|
3
|
+
import { i18n, TFunction } from 'i18next';
|
|
4
|
+
export declare const showNoLayers: (t: TFunction<"core", i18n>) => React.ReactElement;
|
|
3
5
|
export interface RenderLayersProps {
|
|
4
6
|
onChangeLayerName: (name: string) => void;
|
|
5
7
|
layerName: string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare const _default: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: React.FC<import("./OlMapViewConnect").OlMapViewConnectProps>;
|
|
5
|
+
tags: string[];
|
|
6
|
+
};
|
|
7
|
+
export default _default;
|
|
8
|
+
export declare const ToggleStyleAction: () => React.ReactElement;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Bbox, TileServerSettings } from '@opengeoweb/webmap';
|
|
3
3
|
import { Source } from '@opengeoweb/shared';
|
|
4
|
+
import { StyleLike } from 'ol/style/Style';
|
|
4
5
|
export interface MapControlsProps {
|
|
5
6
|
mapControlsPositionTop?: number;
|
|
6
7
|
search?: boolean;
|
|
@@ -24,6 +25,7 @@ export interface OlMapViewConnectProps {
|
|
|
24
25
|
shouldDisablePrefetching?: boolean;
|
|
25
26
|
tileServerSettings?: TileServerSettings;
|
|
26
27
|
source?: Source;
|
|
28
|
+
featureStyle?: StyleLike;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Connected component used to display the map and selected layers.
|