@opengeoweb/core 9.1.0 → 9.3.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 +272 -176
- package/package.json +1 -1
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/DimensionSelect/DimensionSelect.d.ts +3 -2
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/DimensionSelect/DimensionSelectConnect.d.ts +0 -10
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/DimensionSelect/DimensionSelectName.d.ts +15 -0
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/DimensionSelect/DimensionSelectValue.d.ts +12 -0
- package/src/lib/components/LayerManager/LayerContainerRow/LayerRow/DimensionSelect/dimensionSelectHooks.d.ts +15 -0
- package/src/lib/components/LayerManager/LayerManagerUtils.d.ts +4 -3
- package/src/lib/components/TimeSliderLite/useOnToggleAnimation.d.ts +3 -0
- package/src/lib/components/TimeSliderLite/useOnToggleAnimation.spec.d.ts +1 -0
package/index.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import React__default, { useState, forwardRef, useContext, useRef, useEffect, useLayoutEffect } from 'react';
|
|
2
|
+
import React__default, { useState, useCallback, forwardRef, useContext, useRef, useEffect, 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, styled as styled$1, Slider, Checkbox, Card, IconButton, Select, CardContent, RadioGroup, FormControlLabel, Radio, ToggleButtonGroup, ToggleButton, Divider, Tooltip, ButtonGroup } from '@mui/material';
|
|
4
4
|
import { CustomIconButton, TooltipSelect, AlertIcon, useControlledTooltip, CustomTooltip, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, AlertBanner, CustomAccordion, calculateStartSize, ToolContainerDraggable, dateUtils, withEggs } from '@opengeoweb/shared';
|
|
5
5
|
import { LayerSelectButtonConnect, LayerInfoButton, LayerInfoButtonConnect, getUserAddedServices, layerSelectConfig } from '@opengeoweb/layer-select';
|
|
@@ -3851,6 +3851,139 @@ _extends$3(Remove, {
|
|
|
3851
3851
|
Sortable.mount(new AutoScrollPlugin());
|
|
3852
3852
|
Sortable.mount(Remove, Revert);
|
|
3853
3853
|
|
|
3854
|
+
var DimensionSelectValue = function DimensionSelectValue(_ref) {
|
|
3855
|
+
var isEnabled = _ref.isEnabled,
|
|
3856
|
+
tooltip = _ref.tooltip,
|
|
3857
|
+
selectedDimension = _ref.selectedDimension,
|
|
3858
|
+
icon = _ref.icon,
|
|
3859
|
+
onLayerChangeDimension = _ref.onLayerChangeDimension,
|
|
3860
|
+
valueMappings = _ref.valueMappings,
|
|
3861
|
+
hideLatestDuplicate = _ref.hideLatestDuplicate,
|
|
3862
|
+
setUseLatestReferenceTime = _ref.setUseLatestReferenceTime,
|
|
3863
|
+
useLatestReferenceTime = _ref.useLatestReferenceTime;
|
|
3864
|
+
var _a;
|
|
3865
|
+
var dimensionValuesRaw = (_a = selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.values) === null || _a === void 0 ? void 0 : _a.split(',').slice(0, 100).reverse();
|
|
3866
|
+
if (!(selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.name) || !(dimensionValuesRaw === null || dimensionValuesRaw === void 0 ? void 0 : dimensionValuesRaw.length)) {
|
|
3867
|
+
return null;
|
|
3868
|
+
}
|
|
3869
|
+
var isReferenceTimeDimensionAndUseLatestIsAvailable = selectedDimension.name === 'reference_time' && useLatestReferenceTime !== undefined;
|
|
3870
|
+
var latestValue = hideLatestDuplicate && isReferenceTimeDimensionAndUseLatestIsAvailable ? dimensionValuesRaw.shift() : dimensionValuesRaw[0];
|
|
3871
|
+
var setDimensionValue = function setDimensionValue(dimensionValue) {
|
|
3872
|
+
if (isReferenceTimeDimensionAndUseLatestIsAvailable) {
|
|
3873
|
+
if (dimensionValue === 'Latest') {
|
|
3874
|
+
setUseLatestReferenceTime === null || setUseLatestReferenceTime === void 0 ? void 0 : setUseLatestReferenceTime(true);
|
|
3875
|
+
onLayerChangeDimension(selectedDimension.name, dimensionValuesRaw[0], layerTypes.LayerActionOrigin.layerManager);
|
|
3876
|
+
return;
|
|
3877
|
+
}
|
|
3878
|
+
setUseLatestReferenceTime === null || setUseLatestReferenceTime === void 0 ? void 0 : setUseLatestReferenceTime(false);
|
|
3879
|
+
}
|
|
3880
|
+
onLayerChangeDimension(selectedDimension.name, dimensionValue, layerTypes.LayerActionOrigin.layerManager);
|
|
3881
|
+
};
|
|
3882
|
+
var dimensionValues = isReferenceTimeDimensionAndUseLatestIsAvailable ? ['Latest'].concat(_toConsumableArray(dimensionValuesRaw)) : dimensionValuesRaw.slice(0, 100).reverse();
|
|
3883
|
+
var isLatest = isReferenceTimeDimensionAndUseLatestIsAvailable && useLatestReferenceTime && selectedDimension.maxValue === selectedDimension.currentValue;
|
|
3884
|
+
return /*#__PURE__*/React__default.createElement(TooltipSelect, {
|
|
3885
|
+
disableUnderline: true,
|
|
3886
|
+
tooltip: tooltip,
|
|
3887
|
+
isEnabled: isEnabled,
|
|
3888
|
+
value: isLatest ? 'Latest' : selectedDimension.currentValue,
|
|
3889
|
+
list: dimensionValues.map(function (dimensionValue) {
|
|
3890
|
+
return {
|
|
3891
|
+
value: dimensionValue
|
|
3892
|
+
};
|
|
3893
|
+
}),
|
|
3894
|
+
currentIndex: isLatest ? 0 : dimensionValues.findIndex(function (dimensionValue) {
|
|
3895
|
+
return dimensionValue === selectedDimension.currentValue;
|
|
3896
|
+
}),
|
|
3897
|
+
onChange: function onChange(event) {
|
|
3898
|
+
event.stopPropagation();
|
|
3899
|
+
setDimensionValue(event.target.value);
|
|
3900
|
+
},
|
|
3901
|
+
onChangeMouseWheel: function onChangeMouseWheel(event) {
|
|
3902
|
+
setDimensionValue(event.value);
|
|
3903
|
+
},
|
|
3904
|
+
style: {
|
|
3905
|
+
maxWidth: '50%'
|
|
3906
|
+
},
|
|
3907
|
+
IconComponent: icon
|
|
3908
|
+
}, /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
3909
|
+
disabled: true
|
|
3910
|
+
}, "Dimension value (", dimensionValues.length, " options)"), dimensionValues.map(function (dimensionValue) {
|
|
3911
|
+
var _a;
|
|
3912
|
+
return /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
3913
|
+
key: dimensionValue,
|
|
3914
|
+
value: dimensionValue
|
|
3915
|
+
}, ((_a = valueMappings === null || valueMappings === void 0 ? void 0 : valueMappings[selectedDimension.name]) === null || _a === void 0 ? void 0 : _a.call(valueMappings, dimensionValue, isReferenceTimeDimensionAndUseLatestIsAvailable ? latestValue : undefined)) || /*#__PURE__*/React__default.createElement("span", {
|
|
3916
|
+
style: {
|
|
3917
|
+
whiteSpace: 'nowrap'
|
|
3918
|
+
}
|
|
3919
|
+
}, dimensionValue, dimensionValue !== 'Latest' && /*#__PURE__*/React__default.createElement("i", null, " ", selectedDimension.units)));
|
|
3920
|
+
}));
|
|
3921
|
+
};
|
|
3922
|
+
|
|
3923
|
+
/* *
|
|
3924
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3925
|
+
* you may not use this file except in compliance with the License.
|
|
3926
|
+
* You may obtain a copy of the License at
|
|
3927
|
+
*
|
|
3928
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3929
|
+
*
|
|
3930
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
3931
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3932
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3933
|
+
* See the License for the specific language governing permissions and
|
|
3934
|
+
* limitations under the License.
|
|
3935
|
+
*
|
|
3936
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3937
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
3938
|
+
* */
|
|
3939
|
+
var DimensionSelectName = function DimensionSelectName(_ref) {
|
|
3940
|
+
var selectedDimensionName = _ref.selectedDimensionName,
|
|
3941
|
+
setSelectedDimensionName = _ref.setSelectedDimensionName,
|
|
3942
|
+
icon = _ref.icon,
|
|
3943
|
+
nameMappings = _ref.nameMappings,
|
|
3944
|
+
tooltip = _ref.tooltip,
|
|
3945
|
+
isEnabled = _ref.isEnabled,
|
|
3946
|
+
dimensionNames = _ref.dimensionNames;
|
|
3947
|
+
return /*#__PURE__*/React__default.createElement(TooltipSelect, {
|
|
3948
|
+
disableUnderline: true,
|
|
3949
|
+
tooltip: tooltip,
|
|
3950
|
+
isEnabled: isEnabled,
|
|
3951
|
+
value: selectedDimensionName,
|
|
3952
|
+
list: dimensionNames.map(function (name) {
|
|
3953
|
+
return {
|
|
3954
|
+
value: name
|
|
3955
|
+
};
|
|
3956
|
+
}),
|
|
3957
|
+
currentIndex: dimensionNames.findIndex(function (name) {
|
|
3958
|
+
return name === selectedDimensionName;
|
|
3959
|
+
}),
|
|
3960
|
+
onChange: function onChange(event) {
|
|
3961
|
+
event.stopPropagation();
|
|
3962
|
+
setSelectedDimensionName(event.target.value);
|
|
3963
|
+
},
|
|
3964
|
+
onChangeMouseWheel: function onChangeMouseWheel(event) {
|
|
3965
|
+
setSelectedDimensionName(event.value);
|
|
3966
|
+
},
|
|
3967
|
+
style: {
|
|
3968
|
+
maxWidth: '50%'
|
|
3969
|
+
},
|
|
3970
|
+
IconComponent: icon
|
|
3971
|
+
}, /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
3972
|
+
disabled: true
|
|
3973
|
+
}, "Dimension"), dimensionNames.map(function (name) {
|
|
3974
|
+
return /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
3975
|
+
key: name,
|
|
3976
|
+
value: name
|
|
3977
|
+
}, (nameMappings === null || nameMappings === void 0 ? void 0 : nameMappings[name]) || name);
|
|
3978
|
+
}));
|
|
3979
|
+
};
|
|
3980
|
+
|
|
3981
|
+
var defaultDimensionNameTooltip = function defaultDimensionNameTooltip(selectedDimension) {
|
|
3982
|
+
return "Dimensions: ".concat(selectedDimension.name);
|
|
3983
|
+
};
|
|
3984
|
+
var defaultDimensionValueTooltip = function defaultDimensionValueTooltip(selectedDimension) {
|
|
3985
|
+
return "Dimensions: ".concat(selectedDimension.name, " ").concat(selectedDimension.currentValue, " ").concat(selectedDimension.units);
|
|
3986
|
+
};
|
|
3854
3987
|
var DimensionSelect = function DimensionSelect(_ref) {
|
|
3855
3988
|
var onLayerChangeDimension = _ref.onLayerChangeDimension,
|
|
3856
3989
|
_ref$layerDimensions = _ref.layerDimensions,
|
|
@@ -3860,13 +3993,12 @@ var DimensionSelect = function DimensionSelect(_ref) {
|
|
|
3860
3993
|
icon = _ref.icon,
|
|
3861
3994
|
nameMappings = _ref.nameMappings,
|
|
3862
3995
|
valueMappings = _ref.valueMappings,
|
|
3863
|
-
|
|
3864
|
-
tooltipPrefix = _ref$tooltipPrefix === void 0 ? 'Dimensions: ' : _ref$tooltipPrefix,
|
|
3996
|
+
tooltipGenerator = _ref.tooltipGenerator,
|
|
3865
3997
|
setUseLatestReferenceTime = _ref.setUseLatestReferenceTime,
|
|
3866
3998
|
useLatestReferenceTime = _ref.useLatestReferenceTime,
|
|
3867
3999
|
SingleValueComponent = _ref.SingleValueComponent,
|
|
3868
|
-
|
|
3869
|
-
var _a, _b;
|
|
4000
|
+
hideLatestDuplicate = _ref.hideLatestDuplicate;
|
|
4001
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3870
4002
|
var _useState = useState((_a = layerDimensions === null || layerDimensions === void 0 ? void 0 : layerDimensions[0]) === null || _a === void 0 ? void 0 : _a.name),
|
|
3871
4003
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3872
4004
|
selectedDimensionName = _useState2[0],
|
|
@@ -3889,6 +4021,10 @@ var DimensionSelect = function DimensionSelect(_ref) {
|
|
|
3889
4021
|
}
|
|
3890
4022
|
var collapseDimensionDropdown = SingleValueComponent && layerDimensions.length === 1;
|
|
3891
4023
|
var collapseValueDropdown = SingleValueComponent && ((_b = selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.values) === null || _b === void 0 ? void 0 : _b.length) === 1;
|
|
4024
|
+
var defaultNameTooltip = (_c = defaultDimensionNameTooltip(selectedDimension)) !== null && _c !== void 0 ? _c : '';
|
|
4025
|
+
var defaultValueTooltip = (_d = defaultDimensionValueTooltip(selectedDimension)) !== null && _d !== void 0 ? _d : '';
|
|
4026
|
+
var nameTooltip = (_e = tooltipGenerator === null || tooltipGenerator === void 0 ? void 0 : tooltipGenerator(selectedDimension)) !== null && _e !== void 0 ? _e : defaultNameTooltip;
|
|
4027
|
+
var valueTooltip = (_f = tooltipGenerator === null || tooltipGenerator === void 0 ? void 0 : tooltipGenerator(selectedDimension, true)) !== null && _f !== void 0 ? _f : defaultValueTooltip;
|
|
3892
4028
|
return /*#__PURE__*/React.createElement(Grid, {
|
|
3893
4029
|
container: true,
|
|
3894
4030
|
direction: "row",
|
|
@@ -3901,11 +4037,11 @@ var DimensionSelect = function DimensionSelect(_ref) {
|
|
|
3901
4037
|
nameMappings: nameMappings,
|
|
3902
4038
|
valueMappings: valueMappings,
|
|
3903
4039
|
position: "dimension"
|
|
3904
|
-
})) : /*#__PURE__*/React.createElement(
|
|
4040
|
+
})) : /*#__PURE__*/React.createElement(DimensionSelectName, {
|
|
3905
4041
|
selectedDimensionName: selectedDimensionName,
|
|
3906
4042
|
setSelectedDimensionName: setSelectedDimensionName,
|
|
3907
4043
|
dimensionNames: dimensionNames,
|
|
3908
|
-
|
|
4044
|
+
tooltip: nameTooltip,
|
|
3909
4045
|
isEnabled: isEnabled,
|
|
3910
4046
|
icon: icon,
|
|
3911
4047
|
nameMappings: nameMappings
|
|
@@ -3913,127 +4049,18 @@ var DimensionSelect = function DimensionSelect(_ref) {
|
|
|
3913
4049
|
nameMappings: nameMappings,
|
|
3914
4050
|
valueMappings: valueMappings,
|
|
3915
4051
|
position: "value"
|
|
3916
|
-
})) : /*#__PURE__*/React.createElement(
|
|
4052
|
+
})) : /*#__PURE__*/React.createElement(DimensionSelectValue, {
|
|
3917
4053
|
selectedDimension: selectedDimension,
|
|
3918
4054
|
onLayerChangeDimension: onLayerChangeDimension,
|
|
3919
|
-
|
|
4055
|
+
tooltip: valueTooltip,
|
|
3920
4056
|
isEnabled: isEnabled,
|
|
4057
|
+
hideLatestDuplicate: hideLatestDuplicate,
|
|
3921
4058
|
icon: icon,
|
|
3922
4059
|
valueMappings: valueMappings,
|
|
3923
4060
|
setUseLatestReferenceTime: setUseLatestReferenceTime,
|
|
3924
|
-
useLatestReferenceTime: useLatestReferenceTime
|
|
3925
|
-
latestLabel: latestLabel
|
|
4061
|
+
useLatestReferenceTime: useLatestReferenceTime
|
|
3926
4062
|
})));
|
|
3927
4063
|
};
|
|
3928
|
-
var SelectDimension = function SelectDimension(_ref2) {
|
|
3929
|
-
var selectedDimensionName = _ref2.selectedDimensionName,
|
|
3930
|
-
setSelectedDimensionName = _ref2.setSelectedDimensionName,
|
|
3931
|
-
icon = _ref2.icon,
|
|
3932
|
-
nameMappings = _ref2.nameMappings,
|
|
3933
|
-
tooltipPrefix = _ref2.tooltipPrefix,
|
|
3934
|
-
isEnabled = _ref2.isEnabled,
|
|
3935
|
-
dimensionNames = _ref2.dimensionNames;
|
|
3936
|
-
return /*#__PURE__*/React.createElement(TooltipSelect, {
|
|
3937
|
-
disableUnderline: true,
|
|
3938
|
-
tooltip: "".concat(tooltipPrefix).concat(selectedDimensionName),
|
|
3939
|
-
isEnabled: isEnabled,
|
|
3940
|
-
value: selectedDimensionName,
|
|
3941
|
-
list: dimensionNames.map(function (name) {
|
|
3942
|
-
return {
|
|
3943
|
-
value: name
|
|
3944
|
-
};
|
|
3945
|
-
}),
|
|
3946
|
-
currentIndex: dimensionNames.findIndex(function (name) {
|
|
3947
|
-
return name === selectedDimensionName;
|
|
3948
|
-
}),
|
|
3949
|
-
onChange: function onChange(event) {
|
|
3950
|
-
event.stopPropagation();
|
|
3951
|
-
setSelectedDimensionName(event.target.value);
|
|
3952
|
-
},
|
|
3953
|
-
onChangeMouseWheel: function onChangeMouseWheel(event) {
|
|
3954
|
-
setSelectedDimensionName(event.value);
|
|
3955
|
-
},
|
|
3956
|
-
style: {
|
|
3957
|
-
maxWidth: '50%'
|
|
3958
|
-
},
|
|
3959
|
-
IconComponent: icon
|
|
3960
|
-
}, /*#__PURE__*/React.createElement(MenuItem, {
|
|
3961
|
-
disabled: true
|
|
3962
|
-
}, "Dimension"), dimensionNames.map(function (name) {
|
|
3963
|
-
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
3964
|
-
key: name,
|
|
3965
|
-
value: name
|
|
3966
|
-
}, (nameMappings === null || nameMappings === void 0 ? void 0 : nameMappings[name]) || name);
|
|
3967
|
-
}));
|
|
3968
|
-
};
|
|
3969
|
-
var SelectDimensionValue = function SelectDimensionValue(_ref3) {
|
|
3970
|
-
var isEnabled = _ref3.isEnabled,
|
|
3971
|
-
tooltipPrefix = _ref3.tooltipPrefix,
|
|
3972
|
-
selectedDimension = _ref3.selectedDimension,
|
|
3973
|
-
icon = _ref3.icon,
|
|
3974
|
-
onLayerChangeDimension = _ref3.onLayerChangeDimension,
|
|
3975
|
-
valueMappings = _ref3.valueMappings,
|
|
3976
|
-
setUseLatestReferenceTime = _ref3.setUseLatestReferenceTime,
|
|
3977
|
-
useLatestReferenceTime = _ref3.useLatestReferenceTime,
|
|
3978
|
-
_ref3$latestLabel = _ref3.latestLabel,
|
|
3979
|
-
latestLabel = _ref3$latestLabel === void 0 ? 'Latest' : _ref3$latestLabel;
|
|
3980
|
-
var _a;
|
|
3981
|
-
var dimensionValuesRaw = (_a = selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.values) === null || _a === void 0 ? void 0 : _a.split(',').slice(0, 100).reverse();
|
|
3982
|
-
if (!(selectedDimension === null || selectedDimension === void 0 ? void 0 : selectedDimension.name) || !(dimensionValuesRaw === null || dimensionValuesRaw === void 0 ? void 0 : dimensionValuesRaw.length)) {
|
|
3983
|
-
return null;
|
|
3984
|
-
}
|
|
3985
|
-
var isReferenceTimeDimensionAndUseLatestIsAvailable = selectedDimension.name === 'reference_time' && useLatestReferenceTime !== undefined;
|
|
3986
|
-
var setDimensionValue = function setDimensionValue(dimensionValue) {
|
|
3987
|
-
if (isReferenceTimeDimensionAndUseLatestIsAvailable) {
|
|
3988
|
-
if (dimensionValue === latestLabel) {
|
|
3989
|
-
setUseLatestReferenceTime === null || setUseLatestReferenceTime === void 0 ? void 0 : setUseLatestReferenceTime(true);
|
|
3990
|
-
onLayerChangeDimension(selectedDimension.name, dimensionValuesRaw[0], layerTypes.LayerActionOrigin.layerManager);
|
|
3991
|
-
return;
|
|
3992
|
-
}
|
|
3993
|
-
setUseLatestReferenceTime === null || setUseLatestReferenceTime === void 0 ? void 0 : setUseLatestReferenceTime(false);
|
|
3994
|
-
}
|
|
3995
|
-
onLayerChangeDimension(selectedDimension.name, dimensionValue, layerTypes.LayerActionOrigin.layerManager);
|
|
3996
|
-
};
|
|
3997
|
-
var dimensionValues = isReferenceTimeDimensionAndUseLatestIsAvailable ? [latestLabel].concat(_toConsumableArray(dimensionValuesRaw)) : dimensionValuesRaw.slice(0, 100).reverse();
|
|
3998
|
-
var isLatest = isReferenceTimeDimensionAndUseLatestIsAvailable && useLatestReferenceTime && selectedDimension.maxValue === selectedDimension.currentValue;
|
|
3999
|
-
return /*#__PURE__*/React.createElement(TooltipSelect, {
|
|
4000
|
-
disableUnderline: true,
|
|
4001
|
-
tooltip: "".concat(tooltipPrefix).concat(selectedDimension.name, " ").concat(selectedDimension.currentValue, " ").concat(selectedDimension.units),
|
|
4002
|
-
isEnabled: isEnabled,
|
|
4003
|
-
value: isLatest ? latestLabel : selectedDimension.currentValue,
|
|
4004
|
-
list: dimensionValues.map(function (dimensionValue) {
|
|
4005
|
-
return {
|
|
4006
|
-
value: dimensionValue
|
|
4007
|
-
};
|
|
4008
|
-
}),
|
|
4009
|
-
currentIndex: isLatest ? 0 : dimensionValues.findIndex(function (dimensionValue) {
|
|
4010
|
-
return dimensionValue === selectedDimension.currentValue;
|
|
4011
|
-
}),
|
|
4012
|
-
onChange: function onChange(event) {
|
|
4013
|
-
event.stopPropagation();
|
|
4014
|
-
setDimensionValue(event.target.value);
|
|
4015
|
-
},
|
|
4016
|
-
onChangeMouseWheel: function onChangeMouseWheel(event) {
|
|
4017
|
-
setDimensionValue(event.value);
|
|
4018
|
-
},
|
|
4019
|
-
style: {
|
|
4020
|
-
maxWidth: '50%'
|
|
4021
|
-
},
|
|
4022
|
-
IconComponent: icon
|
|
4023
|
-
}, /*#__PURE__*/React.createElement(MenuItem, {
|
|
4024
|
-
disabled: true
|
|
4025
|
-
}, "Dimension value (", dimensionValues.length, " options)"), dimensionValues.map(function (dimensionValue) {
|
|
4026
|
-
var _a;
|
|
4027
|
-
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
4028
|
-
key: dimensionValue,
|
|
4029
|
-
value: dimensionValue
|
|
4030
|
-
}, ((_a = valueMappings === null || valueMappings === void 0 ? void 0 : valueMappings[selectedDimension.name]) === null || _a === void 0 ? void 0 : _a.call(valueMappings, dimensionValue)) || /*#__PURE__*/React.createElement("span", {
|
|
4031
|
-
style: {
|
|
4032
|
-
whiteSpace: 'nowrap'
|
|
4033
|
-
}
|
|
4034
|
-
}, dimensionValue, dimensionValue !== latestLabel && /*#__PURE__*/React.createElement("i", null, " ", selectedDimension.units)));
|
|
4035
|
-
}));
|
|
4036
|
-
};
|
|
4037
4064
|
|
|
4038
4065
|
var getRenderLayersValues = function getRenderLayersValues(layerName, layers) {
|
|
4039
4066
|
var serviceLayer = layers.find(function (l) {
|
|
@@ -5253,8 +5280,8 @@ var OpacitySelectConnect = function OpacitySelectConnect(_ref) {
|
|
|
5253
5280
|
* See the License for the specific language governing permissions and
|
|
5254
5281
|
* limitations under the License.
|
|
5255
5282
|
*
|
|
5256
|
-
* Copyright
|
|
5257
|
-
* Copyright
|
|
5283
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5284
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
5258
5285
|
* */
|
|
5259
5286
|
var useLayerDimensions = function useLayerDimensions(layerId, mapId) {
|
|
5260
5287
|
var dispatch = useDispatch();
|
|
@@ -5264,7 +5291,7 @@ var useLayerDimensions = function useLayerDimensions(layerId, mapId) {
|
|
|
5264
5291
|
var isLayerEnabled = useSelector(function (store) {
|
|
5265
5292
|
return layerSelectors.getLayerEnabled(store, layerId);
|
|
5266
5293
|
});
|
|
5267
|
-
var layerChangeDimension =
|
|
5294
|
+
var layerChangeDimension = useCallback(function (_ref) {
|
|
5268
5295
|
var dimension = _ref.dimension,
|
|
5269
5296
|
origin = _ref.origin;
|
|
5270
5297
|
return dispatch(layerActions.layerChangeDimension({
|
|
@@ -5280,13 +5307,7 @@ var useLayerDimensions = function useLayerDimensions(layerId, mapId) {
|
|
|
5280
5307
|
layerChangeDimension: layerChangeDimension
|
|
5281
5308
|
};
|
|
5282
5309
|
};
|
|
5283
|
-
var
|
|
5284
|
-
var layerId = _ref2.layerId,
|
|
5285
|
-
mapId = _ref2.mapId;
|
|
5286
|
-
var _useLayerDimensions = useLayerDimensions(layerId, mapId),
|
|
5287
|
-
layerDimensions = _useLayerDimensions.layerDimensions,
|
|
5288
|
-
isLayerEnabled = _useLayerDimensions.isLayerEnabled,
|
|
5289
|
-
layerChangeDimension = _useLayerDimensions.layerChangeDimension;
|
|
5310
|
+
var useReferenceTimeWithLatestOption = function useReferenceTimeWithLatestOption(layerId) {
|
|
5290
5311
|
var useLatestReferenceTime = useSelector(function (store) {
|
|
5291
5312
|
return layerSelectors.getUseLatestReferenceTime(store, layerId);
|
|
5292
5313
|
});
|
|
@@ -5297,6 +5318,38 @@ var DimensionSelectConnect = function DimensionSelectConnect(_ref2) {
|
|
|
5297
5318
|
useLatestReferenceTime: useLatestReferenceTime
|
|
5298
5319
|
}));
|
|
5299
5320
|
};
|
|
5321
|
+
return {
|
|
5322
|
+
useLatestReferenceTime: useLatestReferenceTime,
|
|
5323
|
+
setUseLatestReferenceTime: setUseLatestReferenceTime
|
|
5324
|
+
};
|
|
5325
|
+
};
|
|
5326
|
+
|
|
5327
|
+
/* *
|
|
5328
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5329
|
+
* you may not use this file except in compliance with the License.
|
|
5330
|
+
* You may obtain a copy of the License at
|
|
5331
|
+
*
|
|
5332
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5333
|
+
*
|
|
5334
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
5335
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5336
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5337
|
+
* See the License for the specific language governing permissions and
|
|
5338
|
+
* limitations under the License.
|
|
5339
|
+
*
|
|
5340
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5341
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
5342
|
+
* */
|
|
5343
|
+
var DimensionSelectConnect = function DimensionSelectConnect(_ref) {
|
|
5344
|
+
var layerId = _ref.layerId,
|
|
5345
|
+
mapId = _ref.mapId;
|
|
5346
|
+
var _useLayerDimensions = useLayerDimensions(layerId, mapId),
|
|
5347
|
+
layerDimensions = _useLayerDimensions.layerDimensions,
|
|
5348
|
+
isLayerEnabled = _useLayerDimensions.isLayerEnabled,
|
|
5349
|
+
layerChangeDimension = _useLayerDimensions.layerChangeDimension;
|
|
5350
|
+
var _useReferenceTimeWith = useReferenceTimeWithLatestOption(layerId),
|
|
5351
|
+
useLatestReferenceTime = _useReferenceTimeWith.useLatestReferenceTime,
|
|
5352
|
+
setUseLatestReferenceTime = _useReferenceTimeWith.setUseLatestReferenceTime;
|
|
5300
5353
|
if (!layerDimensions.length || !layerId) {
|
|
5301
5354
|
return null;
|
|
5302
5355
|
}
|
|
@@ -10541,12 +10594,14 @@ var CustomDimensionSelectConnect = function CustomDimensionSelectConnect(_a) {
|
|
|
10541
10594
|
var layerId = _a.layerId,
|
|
10542
10595
|
mapId = _a.mapId,
|
|
10543
10596
|
dimensionsToShow = _a.dimensionsToShow,
|
|
10544
|
-
|
|
10545
|
-
props = __rest(_a, ["layerId", "mapId", "dimensionsToShow", "SingleValueComponent"]);
|
|
10597
|
+
props = __rest(_a, ["layerId", "mapId", "dimensionsToShow"]);
|
|
10546
10598
|
var _useLayerDimensions = useLayerDimensions(layerId, mapId),
|
|
10547
10599
|
layerDimensions = _useLayerDimensions.layerDimensions,
|
|
10548
10600
|
isLayerEnabled = _useLayerDimensions.isLayerEnabled,
|
|
10549
10601
|
layerChangeDimension = _useLayerDimensions.layerChangeDimension;
|
|
10602
|
+
var _useReferenceTimeWith = useReferenceTimeWithLatestOption(layerId),
|
|
10603
|
+
useLatestReferenceTime = _useReferenceTimeWith.useLatestReferenceTime,
|
|
10604
|
+
setUseLatestReferenceTime = _useReferenceTimeWith.setUseLatestReferenceTime;
|
|
10550
10605
|
var filteredDimensions = dimensionsToShow ? dimensionsToShow.map(function (dimensionName) {
|
|
10551
10606
|
return layerDimensions.find(function (dimension) {
|
|
10552
10607
|
return dimension.name === dimensionName;
|
|
@@ -10554,7 +10609,6 @@ var CustomDimensionSelectConnect = function CustomDimensionSelectConnect(_a) {
|
|
|
10554
10609
|
}).filter(Boolean) : layerDimensions;
|
|
10555
10610
|
return /*#__PURE__*/React.createElement(DimensionSelect, Object.assign({
|
|
10556
10611
|
layerDimensions: filteredDimensions,
|
|
10557
|
-
SingleValueComponent: SingleValueComponent,
|
|
10558
10612
|
onLayerChangeDimension: function onLayerChangeDimension(dimensionName, dimensionValue, origin) {
|
|
10559
10613
|
var dimension = {
|
|
10560
10614
|
name: dimensionName,
|
|
@@ -10565,7 +10619,9 @@ var CustomDimensionSelectConnect = function CustomDimensionSelectConnect(_a) {
|
|
|
10565
10619
|
origin: origin
|
|
10566
10620
|
});
|
|
10567
10621
|
},
|
|
10568
|
-
isEnabled: isLayerEnabled
|
|
10622
|
+
isEnabled: isLayerEnabled,
|
|
10623
|
+
useLatestReferenceTime: useLatestReferenceTime,
|
|
10624
|
+
setUseLatestReferenceTime: setUseLatestReferenceTime
|
|
10569
10625
|
}, props));
|
|
10570
10626
|
};
|
|
10571
10627
|
|
|
@@ -11403,7 +11459,7 @@ var preset = {
|
|
|
11403
11459
|
timeSeriesServices: [
|
|
11404
11460
|
{
|
|
11405
11461
|
name: "KNMI",
|
|
11406
|
-
url: "https://gw-edr-dev-add-cfn
|
|
11462
|
+
url: "https://gw-edr-dev-add-cfn.pub.dev.knmi.cloud/edr",
|
|
11407
11463
|
id: "knmi",
|
|
11408
11464
|
description: "KNMI EDR",
|
|
11409
11465
|
type: "EDR",
|
|
@@ -13717,7 +13773,7 @@ var getLayersToUpdate = function getLayersToUpdate(layers, mapId) {
|
|
|
13717
13773
|
});
|
|
13718
13774
|
return {
|
|
13719
13775
|
layerId: layer.id,
|
|
13720
|
-
url: wmjsMap.getWMSGetFeatureInfoRequestURL(wmjsLayer,
|
|
13776
|
+
url: wmjsMap.getWMSGetFeatureInfoRequestURL(wmjsLayer, wmjsMap.getMapPin().getXY().x, wmjsMap.getMapPin().getXY().y, 'text/html'),
|
|
13721
13777
|
title: getTitle$1(layer.id)
|
|
13722
13778
|
};
|
|
13723
13779
|
});
|
|
@@ -15792,10 +15848,10 @@ var circleDrawFunction = function circleDrawFunction(args) {
|
|
|
15792
15848
|
var MyMapLocation = function MyMapLocation(_ref) {
|
|
15793
15849
|
var mapId = _ref.mapId;
|
|
15794
15850
|
var dispatch = useDispatch();
|
|
15795
|
-
var
|
|
15796
|
-
return layerSelectors.
|
|
15851
|
+
var layersBelongsToCurrentMapId = useSelector(function (store) {
|
|
15852
|
+
return layerSelectors.getLayersByMapId(store, mapId || '');
|
|
15797
15853
|
});
|
|
15798
|
-
var layerLocation =
|
|
15854
|
+
var layerLocation = layersBelongsToCurrentMapId.find(function (layer) {
|
|
15799
15855
|
var _a;
|
|
15800
15856
|
if (layer.geojson && layer.geojson.features[0] && layer.geojson.features[0].properties && ((_a = layer.geojson.features[0].properties) === null || _a === void 0 ? void 0 : _a.name)) {
|
|
15801
15857
|
if (layer.geojson.features[0].properties.name === MY_LOCATION) {
|
|
@@ -15846,7 +15902,7 @@ var MyMapLocation = function MyMapLocation(_ref) {
|
|
|
15846
15902
|
if (!wmjsMap) {
|
|
15847
15903
|
return;
|
|
15848
15904
|
}
|
|
15849
|
-
wmjsMap.
|
|
15905
|
+
wmjsMap.calculateBoundingBoxAndZoom(latitude, longitude);
|
|
15850
15906
|
}, function (error) {
|
|
15851
15907
|
console.warn("Geolocation error: ".concat(error.message));
|
|
15852
15908
|
}, locationOptions);
|
|
@@ -16203,6 +16259,9 @@ var MultiMapViewConnect = function MultiMapViewConnect(_ref) {
|
|
|
16203
16259
|
width: "".concat(Math.round(100 / cols), "%"),
|
|
16204
16260
|
height: "".concat(Math.round(100 / rows), "%")
|
|
16205
16261
|
};
|
|
16262
|
+
if (maps.length === 0) {
|
|
16263
|
+
return null;
|
|
16264
|
+
}
|
|
16206
16265
|
var firstMapId = maps[0].id;
|
|
16207
16266
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
16208
16267
|
style: {
|
|
@@ -18018,6 +18077,8 @@ var ControlButtonGroup = function ControlButtonGroup(_a) {
|
|
|
18018
18077
|
}), children);
|
|
18019
18078
|
};
|
|
18020
18079
|
|
|
18080
|
+
var OBSERVED_PADDING_DAYS = 1;
|
|
18081
|
+
var FORECAST_PADDING_DAYS = OBSERVED_PADDING_DAYS + 2;
|
|
18021
18082
|
var TICK_HEIGHT = 6;
|
|
18022
18083
|
var HOUR_LABEL_OFFSET = 1.5;
|
|
18023
18084
|
var MONTH_LABEL_BREAKPOINT = 65;
|
|
@@ -18063,8 +18124,8 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18063
18124
|
var showHourLabelEveryThirdHour = limitHourLabelsToEveryThirdHour || tickSpacing < HOUR_LABEL_EVERY_THIRD_HOUR_BREAKPOINT;
|
|
18064
18125
|
// Set up variables for date labels and background colors
|
|
18065
18126
|
var dayLabels = [];
|
|
18066
|
-
var dayLabelDate = new Date(startTime * SECOND_TO_MILLISECOND);
|
|
18067
|
-
var lastDayLabelDate = new Date(endDate.getTime() +
|
|
18127
|
+
var dayLabelDate = new Date(startTime * SECOND_TO_MILLISECOND - OBSERVED_PADDING_DAYS * DAY_TO_MILLISECOND);
|
|
18128
|
+
var lastDayLabelDate = new Date(endDate.getTime() + FORECAST_PADDING_DAYS * DAY_TO_MILLISECOND);
|
|
18068
18129
|
while (dayLabelDate < lastDayLabelDate) {
|
|
18069
18130
|
var dateString = dayLabelDate.toLocaleDateString(locale, {
|
|
18070
18131
|
weekday: 'short',
|
|
@@ -18096,12 +18157,12 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18096
18157
|
}
|
|
18097
18158
|
}, label);
|
|
18098
18159
|
}) : null;
|
|
18099
|
-
var currentDayIndex = (currentTime - startTime) * SECOND_TO_DAY + startTimeDayOffset;
|
|
18160
|
+
var currentDayIndex = (currentTime - startTime) * SECOND_TO_DAY + startTimeDayOffset + OBSERVED_PADDING_DAYS;
|
|
18100
18161
|
var backgroundRectangles = dayLabels.map(function (label, index) {
|
|
18101
|
-
var observedColor = index % 2 === 0 ? timeSliderLite.
|
|
18102
|
-
var forecastColor = index % 2 === 0 ? timeSliderLite.
|
|
18162
|
+
var observedColor = index % 2 === 0 ? timeSliderLite.timelineBackgroundObserved.fill : timeSliderLite.timelineBackgroundObservedAlternative.fill;
|
|
18163
|
+
var forecastColor = index % 2 === 0 ? timeSliderLite.timelineBackgroundAlternative.fill : timeSliderLite.timelineBackground.fill;
|
|
18103
18164
|
var defaultProps = {
|
|
18104
|
-
x: Math.floor(index * tickSpacing - tickOffset),
|
|
18165
|
+
x: Math.floor((index - OBSERVED_PADDING_DAYS) * tickSpacing - tickOffset),
|
|
18105
18166
|
y: 0,
|
|
18106
18167
|
height: height
|
|
18107
18168
|
};
|
|
@@ -18124,7 +18185,7 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18124
18185
|
}).flat();
|
|
18125
18186
|
var dailyLabels = !showMonthLabel ? dayLabels.map(function (label, index) {
|
|
18126
18187
|
return /*#__PURE__*/React__default.createElement("text", {
|
|
18127
|
-
x: index * tickSpacing + 8 - tickOffset,
|
|
18188
|
+
x: (index - OBSERVED_PADDING_DAYS) * tickSpacing + 8 - tickOffset,
|
|
18128
18189
|
y: 14,
|
|
18129
18190
|
fill: timeSliderLite.timeline.fill,
|
|
18130
18191
|
textAnchor: "left",
|
|
@@ -18141,7 +18202,7 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18141
18202
|
length: hourLabelsPerDay
|
|
18142
18203
|
}, function (_, value) {
|
|
18143
18204
|
var defaultProps = {
|
|
18144
|
-
x: index * tickSpacing + value * (tickSpacing / hourLabelsPerDay) - tickOffset - HOUR_LABEL_OFFSET,
|
|
18205
|
+
x: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / hourLabelsPerDay) - tickOffset - HOUR_LABEL_OFFSET,
|
|
18145
18206
|
y: height - 10,
|
|
18146
18207
|
visibility: showHourLabelEveryThirdHour && value % 3 !== 0 ? 'hidden' : 'visible',
|
|
18147
18208
|
fill: timeSliderLite.timeline.fill,
|
|
@@ -18177,8 +18238,8 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18177
18238
|
length: Math.floor(observedTicksPerDay * (currentDayIndex - index)) + 1
|
|
18178
18239
|
}, function (_, value) {
|
|
18179
18240
|
return /*#__PURE__*/React__default.createElement("line", Object.assign({}, defaultProps, {
|
|
18180
|
-
x1: index * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset,
|
|
18181
|
-
x2: index * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset,
|
|
18241
|
+
x1: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset,
|
|
18242
|
+
x2: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / observedTicksPerDay) - tickOffset,
|
|
18182
18243
|
key: "".concat(label, "-").concat(value, "-observed-tick")
|
|
18183
18244
|
}));
|
|
18184
18245
|
});
|
|
@@ -18186,8 +18247,8 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18186
18247
|
length: Math.floor(forecastTicksPerDay * (1 - (currentDayIndex - index))) + 1
|
|
18187
18248
|
}, function (_, value) {
|
|
18188
18249
|
return /*#__PURE__*/React__default.createElement("line", Object.assign({}, defaultProps, {
|
|
18189
|
-
x1: (index + 1) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset,
|
|
18190
|
-
x2: (index + 1) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset,
|
|
18250
|
+
x1: (index + 1 - OBSERVED_PADDING_DAYS) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset,
|
|
18251
|
+
x2: (index + 1 - OBSERVED_PADDING_DAYS) * tickSpacing - value * (tickSpacing / forecastTicksPerDay) - tickOffset,
|
|
18191
18252
|
key: "".concat(label, "-").concat(value, "-forecast-tick")
|
|
18192
18253
|
}));
|
|
18193
18254
|
});
|
|
@@ -18197,8 +18258,8 @@ var TimeSliderLiteBackgroundSvg = function TimeSliderLiteBackgroundSvg(_ref) {
|
|
|
18197
18258
|
length: ticksPerDay + 1
|
|
18198
18259
|
}, function (_, value) {
|
|
18199
18260
|
return /*#__PURE__*/React__default.createElement("line", Object.assign({}, defaultProps, {
|
|
18200
|
-
x1: index * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset,
|
|
18201
|
-
x2: index * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset,
|
|
18261
|
+
x1: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset,
|
|
18262
|
+
x2: (index - OBSERVED_PADDING_DAYS) * tickSpacing + value * (tickSpacing / ticksPerDay) - tickOffset,
|
|
18202
18263
|
key: "".concat(label, "-").concat(value, "-tick")
|
|
18203
18264
|
}));
|
|
18204
18265
|
});
|
|
@@ -18466,6 +18527,8 @@ var TimeSliderLiteBackground = function TimeSliderLiteBackground(_ref) {
|
|
|
18466
18527
|
timeStep = _ref.timeStep,
|
|
18467
18528
|
selectedTime = _ref.selectedTime,
|
|
18468
18529
|
setSelectedTime = _ref.setSelectedTime;
|
|
18530
|
+
var _useTheme = useTheme$2(),
|
|
18531
|
+
timeSliderLite = _useTheme.palette.geowebColors.timeSliderLite;
|
|
18469
18532
|
var sliderAreaRef = useRef(null);
|
|
18470
18533
|
var _React$useState = React__default.useState(0),
|
|
18471
18534
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -18489,7 +18552,8 @@ var TimeSliderLiteBackground = function TimeSliderLiteBackground(_ref) {
|
|
|
18489
18552
|
position: 'relative',
|
|
18490
18553
|
height: "".concat(height, "px"),
|
|
18491
18554
|
overflow: 'hidden',
|
|
18492
|
-
width: '100%'
|
|
18555
|
+
width: '100%',
|
|
18556
|
+
backgroundColor: timeSliderLite.timelineBackgroundObserved.fill
|
|
18493
18557
|
},
|
|
18494
18558
|
"data-testid": "TimeSliderLite-Background"
|
|
18495
18559
|
}, /*#__PURE__*/React__default.createElement(TimeSliderLiteBackgroundSvg, {
|
|
@@ -18863,6 +18927,58 @@ var TimeSliderLite = function TimeSliderLite(_ref) {
|
|
|
18863
18927
|
}))));
|
|
18864
18928
|
};
|
|
18865
18929
|
|
|
18930
|
+
/* *
|
|
18931
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
18932
|
+
* you may not use this file except in compliance with the License.
|
|
18933
|
+
* You may obtain a copy of the License at
|
|
18934
|
+
*
|
|
18935
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
18936
|
+
*
|
|
18937
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18938
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18939
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18940
|
+
* See the License for the specific language governing permissions and
|
|
18941
|
+
* limitations under the License.
|
|
18942
|
+
*
|
|
18943
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
18944
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
18945
|
+
* */
|
|
18946
|
+
var useOnToggleAnimation = function useOnToggleAnimation(dispatch, mapId, selectedTime, timeStep, defaultTimeStep, startTime, endTime, isAnimating, timeSliderProps) {
|
|
18947
|
+
var startMapAnimation = function startMapAnimation() {
|
|
18948
|
+
var _a, _b, _c;
|
|
18949
|
+
var observedTimeStep = (_a = timeStep === null || timeStep === void 0 ? void 0 : timeStep[0]) !== null && _a !== void 0 ? _a : defaultTimeStep[0];
|
|
18950
|
+
var forecastTimeStep = (_b = timeStep === null || timeStep === void 0 ? void 0 : timeStep[1]) !== null && _b !== void 0 ? _b : defaultTimeStep[1];
|
|
18951
|
+
var floorCorrectedTimeStart = floorLocalSeconds(startTime, HOUR_TO_SECOND);
|
|
18952
|
+
var floorCorrectedEndTime = floorLocalSeconds(endTime, HOUR_TO_SECOND);
|
|
18953
|
+
var timeList = generateCustomTimeList((_c = timeSliderProps.currentTime) !== null && _c !== void 0 ? _c : Date.now() * MILLISECOND_TO_SECOND, floorCorrectedTimeStart, floorCorrectedEndTime, [observedTimeStep, forecastTimeStep]);
|
|
18954
|
+
dispatch(mapActions.mapStartAnimation({
|
|
18955
|
+
mapId: mapId,
|
|
18956
|
+
initialTime: new Date(selectedTime * SECOND_TO_MILLISECOND).toISOString(),
|
|
18957
|
+
timeList: timeList,
|
|
18958
|
+
origin: mapEnums.MapActionOrigin.map
|
|
18959
|
+
}));
|
|
18960
|
+
};
|
|
18961
|
+
var onToggleAnimation = function onToggleAnimation() {
|
|
18962
|
+
if (isAnimating) {
|
|
18963
|
+
dispatch(mapActions.mapStopAnimation({
|
|
18964
|
+
mapId: mapId,
|
|
18965
|
+
origin: mapEnums.MapActionOrigin.map
|
|
18966
|
+
}));
|
|
18967
|
+
} else {
|
|
18968
|
+
startMapAnimation();
|
|
18969
|
+
}
|
|
18970
|
+
};
|
|
18971
|
+
React__default.useEffect(function () {
|
|
18972
|
+
var hasTimeRange = startTime && endTime && selectedTime;
|
|
18973
|
+
var isInvalidAnimation = selectedTime < startTime || selectedTime > endTime;
|
|
18974
|
+
if (hasTimeRange && isInvalidAnimation && isAnimating) {
|
|
18975
|
+
startMapAnimation();
|
|
18976
|
+
}
|
|
18977
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18978
|
+
}, [selectedTime, startTime, endTime]);
|
|
18979
|
+
return onToggleAnimation;
|
|
18980
|
+
};
|
|
18981
|
+
|
|
18866
18982
|
var TimeSliderLiteConnect = function TimeSliderLiteConnect(_a) {
|
|
18867
18983
|
var _b, _c, _d, _e, _f, _g;
|
|
18868
18984
|
var overrideUseTimeRange = _a.overrideUseTimeRange,
|
|
@@ -18935,27 +19051,7 @@ var TimeSliderLiteConnect = function TimeSliderLiteConnect(_a) {
|
|
|
18935
19051
|
var selectedTime = useSelector(function (store) {
|
|
18936
19052
|
return mapSelectors.getSelectedTime(store, mapId);
|
|
18937
19053
|
});
|
|
18938
|
-
var onToggleAnimation =
|
|
18939
|
-
var _a, _b, _c;
|
|
18940
|
-
if (isAnimating) {
|
|
18941
|
-
dispatch(mapActions.mapStopAnimation({
|
|
18942
|
-
mapId: mapId,
|
|
18943
|
-
origin: mapEnums.MapActionOrigin.map
|
|
18944
|
-
}));
|
|
18945
|
-
} else {
|
|
18946
|
-
var observedTimeStep = (_a = timeStep === null || timeStep === void 0 ? void 0 : timeStep[0]) !== null && _a !== void 0 ? _a : defaultTimeStep[0];
|
|
18947
|
-
var forecastTimeStep = (_b = timeStep === null || timeStep === void 0 ? void 0 : timeStep[1]) !== null && _b !== void 0 ? _b : defaultTimeStep[1];
|
|
18948
|
-
var floorCorrectedTimeStart = floorLocalSeconds(startTime, HOUR_TO_SECOND);
|
|
18949
|
-
var floorCorrectedEndTime = floorLocalSeconds(endTime, HOUR_TO_SECOND);
|
|
18950
|
-
var timeList = generateCustomTimeList((_c = timeSliderProps.currentTime) !== null && _c !== void 0 ? _c : Date.now() * MILLISECOND_TO_SECOND, floorCorrectedTimeStart, floorCorrectedEndTime, [observedTimeStep, forecastTimeStep]);
|
|
18951
|
-
dispatch(mapActions.mapStartAnimation({
|
|
18952
|
-
mapId: mapId,
|
|
18953
|
-
initialTime: new Date(selectedTime * SECOND_TO_MILLISECOND).toISOString(),
|
|
18954
|
-
timeList: timeList,
|
|
18955
|
-
origin: mapEnums.MapActionOrigin.map
|
|
18956
|
-
}));
|
|
18957
|
-
}
|
|
18958
|
-
};
|
|
19054
|
+
var onToggleAnimation = useOnToggleAnimation(dispatch, mapId, selectedTime, timeStep, defaultTimeStep, startTime, endTime, isAnimating, timeSliderProps);
|
|
18959
19055
|
var handleTimeRangeChange = function handleTimeRangeChange(newTimeRange) {
|
|
18960
19056
|
if (isAnimating && newTimeRange) {
|
|
18961
19057
|
dispatch(mapActions.mapStopAnimation({
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ export interface SingleValueComponentProps extends mapTypes.Dimension {
|
|
|
7
7
|
nameMappings?: DimensionNameMappings;
|
|
8
8
|
valueMappings?: DimensionValueMappings;
|
|
9
9
|
}
|
|
10
|
+
export type DimensionTooltipGenerator = (selectedDimension: mapTypes.Dimension, isValue?: boolean) => string;
|
|
10
11
|
export interface DimensionSelectProps {
|
|
11
12
|
layerDimensions?: mapTypes.Dimension[];
|
|
12
13
|
onLayerChangeDimension: (dimensionName: string, dimensionValue: string, origin?: layerTypes.LayerActionOrigin.layerManager) => void;
|
|
@@ -14,11 +15,11 @@ export interface DimensionSelectProps {
|
|
|
14
15
|
icon?: ElementType;
|
|
15
16
|
nameMappings?: DimensionNameMappings;
|
|
16
17
|
valueMappings?: DimensionValueMappings;
|
|
17
|
-
|
|
18
|
+
tooltipGenerator?: DimensionTooltipGenerator;
|
|
18
19
|
useLatestReferenceTime?: boolean;
|
|
19
20
|
setUseLatestReferenceTime?: (useLatestReferenceTime: boolean) => void;
|
|
20
21
|
SingleValueComponent?: React.FC<SingleValueComponentProps>;
|
|
21
|
-
|
|
22
|
+
hideLatestDuplicate?: boolean;
|
|
22
23
|
}
|
|
23
24
|
declare const DimensionSelect: FC<DimensionSelectProps>;
|
|
24
25
|
export default DimensionSelect;
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { layerTypes, mapTypes } from '@opengeoweb/store';
|
|
3
2
|
export interface DimensionSelectProps {
|
|
4
3
|
layerId: string;
|
|
5
4
|
mapId: string;
|
|
6
5
|
}
|
|
7
|
-
interface LayerChangeDimensionParams {
|
|
8
|
-
dimension: mapTypes.Dimension;
|
|
9
|
-
origin: layerTypes.LayerActionOrigin | undefined;
|
|
10
|
-
}
|
|
11
|
-
export declare const useLayerDimensions: (layerId: string, mapId: string) => {
|
|
12
|
-
layerDimensions: mapTypes.Dimension[];
|
|
13
|
-
isLayerEnabled: boolean;
|
|
14
|
-
layerChangeDimension: ({ dimension, origin, }: LayerChangeDimensionParams) => void;
|
|
15
|
-
};
|
|
16
6
|
declare const DimensionSelectConnect: React.FC<DimensionSelectProps>;
|
|
17
7
|
export default DimensionSelectConnect;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ElementType, FC } from 'react';
|
|
2
|
+
import { layerTypes, mapTypes } from '@opengeoweb/store';
|
|
3
|
+
import { DimensionValueMappings } from '../../../LayerManagerUtils';
|
|
4
|
+
declare const DimensionSelectValue: FC<{
|
|
5
|
+
selectedDimension?: mapTypes.Dimension;
|
|
6
|
+
icon?: ElementType;
|
|
7
|
+
tooltip: string;
|
|
8
|
+
isEnabled: boolean;
|
|
9
|
+
onLayerChangeDimension: (dimensionName: string, dimensionValue: string, origin?: layerTypes.LayerActionOrigin.layerManager) => void;
|
|
10
|
+
valueMappings?: DimensionValueMappings;
|
|
11
|
+
hideLatestDuplicate?: boolean;
|
|
12
|
+
useLatestReferenceTime?: boolean;
|
|
13
|
+
setUseLatestReferenceTime?: (useLatestReferenceTime: boolean) => void;
|
|
14
|
+
}>;
|
|
15
|
+
export default DimensionSelectValue;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ElementType, FC } from 'react';
|
|
2
|
+
import { DimensionNameMappings } from '../../../LayerManagerUtils';
|
|
3
|
+
declare const DimensionSelectName: FC<{
|
|
4
|
+
dimensionNames: string[];
|
|
5
|
+
selectedDimensionName: string;
|
|
6
|
+
setSelectedDimensionName: (dimension: string) => void;
|
|
7
|
+
icon?: ElementType;
|
|
8
|
+
nameMappings?: DimensionNameMappings;
|
|
9
|
+
tooltip: string;
|
|
10
|
+
isEnabled: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
export default DimensionSelectName;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { layerTypes, mapTypes } from '@opengeoweb/store';
|
|
2
|
+
interface LayerChangeDimensionParams {
|
|
3
|
+
dimension: mapTypes.Dimension;
|
|
4
|
+
origin: layerTypes.LayerActionOrigin | undefined;
|
|
5
|
+
}
|
|
6
|
+
export declare const useLayerDimensions: (layerId: string, mapId: string) => {
|
|
7
|
+
layerDimensions: mapTypes.Dimension[];
|
|
8
|
+
isLayerEnabled: boolean;
|
|
9
|
+
layerChangeDimension: ({ dimension, origin, }: LayerChangeDimensionParams) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare const useReferenceTimeWithLatestOption: (layerId: string) => {
|
|
12
|
+
useLatestReferenceTime: boolean;
|
|
13
|
+
setUseLatestReferenceTime: (useLatestReferenceTime: boolean) => void;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { mapTypes } from '@opengeoweb/store';
|
|
3
|
-
import type { SingleValueComponentProps } from './LayerContainerRow/LayerRow/DimensionSelect/DimensionSelect';
|
|
3
|
+
import type { DimensionTooltipGenerator, SingleValueComponentProps } from './LayerContainerRow/LayerRow/DimensionSelect/DimensionSelect';
|
|
4
4
|
import { Size, ToolbarButtonSettings } from './LayerManagerHeaderOptions';
|
|
5
5
|
export declare const columnClasses: {
|
|
6
6
|
column1: string;
|
|
@@ -163,7 +163,7 @@ export type DimensionNameMappings = {
|
|
|
163
163
|
[dimensionName: string]: string;
|
|
164
164
|
};
|
|
165
165
|
export type DimensionValueMappings = {
|
|
166
|
-
[dimensionName: string]: (value: string) => string;
|
|
166
|
+
[dimensionName: string]: (value: string, latest?: string) => string;
|
|
167
167
|
};
|
|
168
168
|
export interface LayerManagerCustomSettings {
|
|
169
169
|
toolbar?: {
|
|
@@ -232,9 +232,10 @@ export interface LayerManagerCustomSettings {
|
|
|
232
232
|
dimensionsToShow?: string[];
|
|
233
233
|
SingleValueComponent?: React.FC<SingleValueComponentProps>;
|
|
234
234
|
icon?: React.ElementType;
|
|
235
|
-
|
|
235
|
+
tooltipGenerator?: DimensionTooltipGenerator;
|
|
236
236
|
nameMappings?: DimensionNameMappings;
|
|
237
237
|
valueMappings?: DimensionValueMappings;
|
|
238
|
+
hideLatestDuplicate?: boolean;
|
|
238
239
|
};
|
|
239
240
|
deleteLayer?: {
|
|
240
241
|
tooltipTitle?: string;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Dispatch } from '@reduxjs/toolkit';
|
|
2
|
+
import { TimeSliderLiteProps } from './TimeSliderLite';
|
|
3
|
+
export declare const useOnToggleAnimation: (dispatch: Dispatch<any>, mapId: string, selectedTime: number, timeStep: [number, number] | null, defaultTimeStep: [number, number], startTime: number, endTime: number, isAnimating: boolean, timeSliderProps: Partial<TimeSliderLiteProps>) => (() => void);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|