@opengeoweb/core 4.2.0 → 4.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 +999 -810
- package/index.umd.js +989 -804
- package/lib/components/CanvasComponent/CanvasComponent.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResults.stories.d.ts +12 -16
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoLegend.d.ts +10 -0
- package/lib/components/{TimeSlider/TimeSliderScaleSlider/TimeSliderScaleSlider.spec.d.ts → LayerManager/LayerSelect/LayerInfo/LayerInfoLegend.spec.d.ts} +0 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoList.d.ts +6 -5
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoText.d.ts +9 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoUtils.d.ts +7 -1
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerList.d.ts +4 -5
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListConnect.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListDimensions.d.ts +7 -0
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListRow.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerSelect.d.ts +4 -0
- package/lib/components/LayerManager/LayerSelect/LayerSelect.stories.d.ts +8 -0
- package/lib/components/LayerManager/LayerSelect/LayerSelectUtils.d.ts +75 -0
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialog.stories.d.ts +12 -16
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopup.stories.d.ts +24 -32
- package/lib/components/Legend/LegendLayout.d.ts +13 -0
- package/lib/components/{TimeSlider/TimeSliderScaleSlider/TimeSliderScaleSliderConnect.spec.d.ts → Legend/LegendLayout.spec.d.ts} +0 -0
- package/lib/components/MapControls/MapControlButton.d.ts +1 -1
- package/lib/components/ReactMapView/ReactMapView.d.ts +2 -1
- package/lib/components/ReactMapView/ReactMapViewParseLayer.d.ts +2 -2
- package/lib/components/TimeSlider/TimeSlider.d.ts +0 -1
- package/lib/components/TimeSlider/TimeSliderButtons/NowButton/NowButton.d.ts +8 -0
- package/lib/components/TimeSlider/TimeSliderButtons/NowButton/NowButton.spec.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/NowButton/NowButtonConnect.d.ts +9 -0
- package/lib/components/TimeSlider/TimeSliderButtons/NowButton/NowButtonConnect.spec.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/OptionsMenuButton/OptionsMenuButton.d.ts +2 -0
- package/lib/components/TimeSlider/TimeSliderButtons/OptionsMenuButton/OptionsMenuButtonConnect.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeScaleButton/TimeScaleButton.d.ts +11 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeScaleButton/TimeScaleButton.spec.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeScaleButton/TimeScaleButtonConnect.d.ts +4 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeScaleButton/TimeScaleButtonConnect.spec.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeSliderButtons.stories.d.ts +6 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeSliderButtonsConnect.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeSliderMenu/TimeSliderMenu.stories.d.ts +12 -16
- package/lib/components/TimeSlider/TimeSliderButtons/TimeStepButton/TimeStepButton.stories.d.ts +10 -16
- package/lib/components/TimeSlider/TimeSliderLegend/TimeSliderLegend.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderUtils.d.ts +5 -0
- package/lib/components/WMSLoader/services.d.ts +2 -1
- package/lib/store/generic/synchronizationGroups/selectors.d.ts +2 -2
- package/lib/store/layerSelect/selectors.d.ts +18 -0
- package/lib/store/layerSelect/types.d.ts +3 -3
- package/lib/store/mapStore/map/sagas.d.ts +1 -1
- package/lib/store/mapStore/service/selectors.d.ts +0 -27
- package/lib/store/mapStore/service/types.d.ts +9 -2
- package/lib/store/ui/selectors.d.ts +5 -5
- package/lib/store/ui/types.d.ts +11 -3
- package/lib/store/utils.d.ts +2 -0
- package/lib/utils/__mocks__/getCapabilities.d.ts +2 -14
- package/lib/utils/defaultTestSettings.d.ts +3 -1
- package/package.json +10 -9
- package/lib/components/TimeSlider/TimeSliderScaleSlider/TimeSliderScaleSlider.d.ts +0 -12
- package/lib/components/TimeSlider/TimeSliderScaleSlider/TimeSliderScaleSlider.stories.d.ts +0 -13
- package/lib/components/TimeSlider/TimeSliderScaleSlider/TimeSliderScaleSliderConnect.d.ts +0 -24
package/index.esm.js
CHANGED
|
@@ -6,17 +6,19 @@ import React__default, { Component, useRef, useState, useEffect, useCallback } f
|
|
|
6
6
|
import _, { isEqual, debounce, groupBy, throttle, range } from 'lodash';
|
|
7
7
|
import { takeLatest, put, select, call, all, takeEvery, delay } from 'redux-saga/effects';
|
|
8
8
|
import { connect, useDispatch, useSelector, Provider } from 'react-redux';
|
|
9
|
-
import { Tooltip, Paper, Box, Typography, Grid, InputLabel, IconButton, CircularProgress, List, ListSubheader, ListItem, ListItemText, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, DialogActions, Button, MenuItem, FormControl, LinearProgress, InputAdornment, ListItemSecondaryAction, ListItemIcon, Checkbox, Switch, styled, Slider, Menu, Popover, useTheme,
|
|
9
|
+
import { Tooltip, Paper, Box, Typography, Grid, InputLabel, IconButton, CircularProgress, List, ListSubheader, ListItem, ListItemText, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, DialogActions, Button, MenuItem, FormControl, LinearProgress, InputAdornment, ListItemSecondaryAction, ListItemIcon, Checkbox, Switch, styled, Slider, Menu, Popover, useTheme, Snackbar } from '@mui/material';
|
|
10
10
|
import { ToolButton, ToolContainerDraggable, TooltipSelect, AlertIcon, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, ManagerButton, EnableButton, AlertBanner, ManagerDeleteButton, calculateDialogSizeAndPosition, CustomToggleButton, useIsMounted } from '@opengeoweb/shared';
|
|
11
|
-
import { Pause, Play, Cached, Add, Copy, Flag, DragHandle as DragHandle$1, Filter, Search, Clear, Close, Info,
|
|
11
|
+
import { Pause, Play, Cached, Add, Copy, Flag, DragHandle as DragHandle$1, Filter, Search, Clear, Close, Info, DimensionsOther, DimensionsElevation, DimensionsRefTime, DimensionsTime, Edit, Visibility, Delete, Home, Minus, Layers, Equalizer, Link, LinkOff, AutoUpdateActive, AutoUpdateInActive, TextIcon, Speed, FastForward, Clock, Now, Options, List as List$1, ThemeWrapper, lightTheme } from '@opengeoweb/theme';
|
|
12
12
|
import { legendImageStore, WMImageEventType, getLegendGraphicURLForLayer, WMGetServiceFromStore, LayerType as LayerType$1, getMapImageStore, WMBBOX, debug, DebugType, WMJSMap, WMLayer } from '@opengeoweb/webmap';
|
|
13
|
-
import {
|
|
13
|
+
import { ReactSortable } from 'react-sortablejs';
|
|
14
|
+
import Sortable from 'sortablejs';
|
|
14
15
|
import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
|
|
15
16
|
import { useFormContext } from 'react-hook-form';
|
|
16
17
|
import { FixedSizeList } from 'react-window';
|
|
17
18
|
import Box$1 from '@mui/material/Box';
|
|
18
19
|
import Typography$1 from '@mui/material/Typography';
|
|
19
20
|
import Grid$1 from '@mui/material/Grid';
|
|
21
|
+
import Tooltip$1 from '@mui/material/Tooltip';
|
|
20
22
|
import { debounce as debounce$1 } from 'throttle-debounce';
|
|
21
23
|
import cloneDeep from 'lodash.clonedeep';
|
|
22
24
|
import proj4 from 'proj4';
|
|
@@ -592,6 +594,7 @@ var types$2 = /*#__PURE__*/Object.freeze({
|
|
|
592
594
|
get LayerActionOrigin () { return LayerActionOrigin; }
|
|
593
595
|
});
|
|
594
596
|
|
|
597
|
+
var millisecondsInSecond = 1000;
|
|
595
598
|
var defaultAnimationDelayAtStart = 250;
|
|
596
599
|
var defaultDelay = 1000; // [ms]
|
|
597
600
|
|
|
@@ -722,48 +725,6 @@ var getDataLimitsFromLayers = function getDataLimitsFromLayers(layers) {
|
|
|
722
725
|
*/
|
|
723
726
|
[2147483647, 0]);
|
|
724
727
|
};
|
|
725
|
-
var getNextTimeStepvalue = function getNextTimeStepvalue(value, max) {
|
|
726
|
-
var newValue = value + 1;
|
|
727
|
-
return newValue > max ? max : newValue;
|
|
728
|
-
};
|
|
729
|
-
var getPreviousTimeStepvalue = function getPreviousTimeStepvalue(value, min) {
|
|
730
|
-
var newValue = value - 1;
|
|
731
|
-
return newValue < min ? min : newValue;
|
|
732
|
-
};
|
|
733
|
-
var getValueFromKeyboardEvent = function getValueFromKeyboardEvent(event, value, min, max) {
|
|
734
|
-
var supportFourDirectionNavigation = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
735
|
-
|
|
736
|
-
if (!supportFourDirectionNavigation) {
|
|
737
|
-
if (event.ctrlKey || event.metaKey) {
|
|
738
|
-
switch (event.key) {
|
|
739
|
-
case 'ArrowDown':
|
|
740
|
-
return getPreviousTimeStepvalue(value, min);
|
|
741
|
-
|
|
742
|
-
case 'ArrowUp':
|
|
743
|
-
return getNextTimeStepvalue(value, max);
|
|
744
|
-
|
|
745
|
-
default:
|
|
746
|
-
return null;
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
} else {
|
|
750
|
-
// currently supportFourDirectionNavigation (left/right/up/down) is only used in horizontal slider TimeSliderScaleSlider
|
|
751
|
-
switch (event.key) {
|
|
752
|
-
case 'ArrowDown':
|
|
753
|
-
case 'ArrowLeft':
|
|
754
|
-
return getPreviousTimeStepvalue(value, min);
|
|
755
|
-
|
|
756
|
-
case 'ArrowUp':
|
|
757
|
-
case 'ArrowRight':
|
|
758
|
-
return getNextTimeStepvalue(value, max);
|
|
759
|
-
|
|
760
|
-
default:
|
|
761
|
-
return null;
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
return null;
|
|
766
|
-
};
|
|
767
728
|
var getTimeStepFromDataInterval = function getTimeStepFromDataInterval(timeInterval) {
|
|
768
729
|
switch (timeInterval.isRegularInterval) {
|
|
769
730
|
case false:
|
|
@@ -920,6 +881,25 @@ var AUTO_MOVE_AREA_PADDING = 1;
|
|
|
920
881
|
var getAutoMoveAreaWidth = function getAutoMoveAreaWidth(scale) {
|
|
921
882
|
return (scale === Scale.Year ? needleGeom.largeWidth : needleGeom.smallWidth) / 2 + AUTO_MOVE_AREA_PADDING;
|
|
922
883
|
};
|
|
884
|
+
/** Reusable business logic for how to handle events that set time to now (closest).
|
|
885
|
+
* Used in NowButton and TimeSliderLegend.
|
|
886
|
+
*/
|
|
887
|
+
|
|
888
|
+
var handleSetNowEvent = function handleSetNowEvent(timeStep, dataStartTime, dataEndTime, currentTime, onSetNewDate, onSetCenterTime) {
|
|
889
|
+
if (dataStartTime < dataEndTime) {
|
|
890
|
+
if (dataEndTime < currentTime) {
|
|
891
|
+
onSetNewDate(moment.utc(dataEndTime * millisecondsInSecond).toISOString());
|
|
892
|
+
onSetCenterTime(dataEndTime);
|
|
893
|
+
} else if (dataStartTime > currentTime) {
|
|
894
|
+
onSetNewDate(moment.utc(dataStartTime * millisecondsInSecond).toISOString());
|
|
895
|
+
onSetCenterTime(dataStartTime);
|
|
896
|
+
} else {
|
|
897
|
+
var closestToCurrent = roundWithTimeStep(currentTime, timeStep);
|
|
898
|
+
onSetNewDate(moment.utc(closestToCurrent * millisecondsInSecond).toISOString());
|
|
899
|
+
onSetCenterTime(closestToCurrent);
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
};
|
|
923
903
|
|
|
924
904
|
var createMap = function createMap(_ref) {
|
|
925
905
|
var id = _ref.id,
|
|
@@ -1833,6 +1813,9 @@ var selectorMemoizationOptions = {
|
|
|
1833
1813
|
resultEqualityCheck: isEqual
|
|
1834
1814
|
}
|
|
1835
1815
|
};
|
|
1816
|
+
var isUserAddedService = function isUserAddedService(scope) {
|
|
1817
|
+
return scope === 'user';
|
|
1818
|
+
};
|
|
1836
1819
|
|
|
1837
1820
|
/* *
|
|
1838
1821
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1954,25 +1937,6 @@ var getLayerFromService = createSelector(function (store, serviceUrl) {
|
|
|
1954
1937
|
var getLayerStyles$1 = createSelector(getLayerFromService, function (layer) {
|
|
1955
1938
|
return layer && layer.styles ? layer.styles : [];
|
|
1956
1939
|
}, selectorMemoizationOptions);
|
|
1957
|
-
/**
|
|
1958
|
-
* Gets services and maps them into an array
|
|
1959
|
-
*
|
|
1960
|
-
* Example: services = getServices(store)
|
|
1961
|
-
* @param {object} store store: object - Store object
|
|
1962
|
-
* @returns {array} returnType: [] - array containing services
|
|
1963
|
-
*/
|
|
1964
|
-
|
|
1965
|
-
createSelector(servicesStore, function (store) {
|
|
1966
|
-
var services = store ? store.byId : {};
|
|
1967
|
-
var arrayOfServiceObjects = Object.keys(services).map(function (key) {
|
|
1968
|
-
return {
|
|
1969
|
-
name: services[key].name,
|
|
1970
|
-
serviceUrl: services[key].serviceUrl,
|
|
1971
|
-
isUserAddedService: services[key].isUserAddedService
|
|
1972
|
-
};
|
|
1973
|
-
});
|
|
1974
|
-
return arrayOfServiceObjects;
|
|
1975
|
-
}, selectorMemoizationOptions);
|
|
1976
1940
|
|
|
1977
1941
|
var moveToTop = function moveToTop(list, element) {
|
|
1978
1942
|
var filteredList = list.filter(function (item) {
|
|
@@ -3043,7 +3007,7 @@ var getUiStore = function getUiStore(store) {
|
|
|
3043
3007
|
*
|
|
3044
3008
|
* Example: getDialogDetailsByType(store, 'legend')
|
|
3045
3009
|
* @param {object} store store object from which the ui state wll be extracted
|
|
3046
|
-
* @param {string} dialogType type of the dialog
|
|
3010
|
+
* @param {string} dialogType type of the dialog
|
|
3047
3011
|
* @returns {array} [string, boolean] first element gives the active map id, second element whether the dialog is open
|
|
3048
3012
|
*/
|
|
3049
3013
|
|
|
@@ -3058,7 +3022,7 @@ var getDialogDetailsByType = function getDialogDetailsByType(store, dialogType)
|
|
|
3058
3022
|
* For a given ui component: gets wether the dialog is open or closed
|
|
3059
3023
|
*
|
|
3060
3024
|
* @param {object} store store object from which the ui state wll be extracted
|
|
3061
|
-
* @param {string} dialogType type of the dialog
|
|
3025
|
+
* @param {string} dialogType type of the dialog
|
|
3062
3026
|
* @returns {boolean} returnType: boolean
|
|
3063
3027
|
*/
|
|
3064
3028
|
|
|
@@ -3073,7 +3037,7 @@ var getisDialogOpen = createSelector(getDialogDetailsByType, function (details)
|
|
|
3073
3037
|
*For a given ui component: gets the active map Id
|
|
3074
3038
|
*
|
|
3075
3039
|
* @param {object} store store object from which the ui state wll be extracted
|
|
3076
|
-
* @param {string} dialogType type of the dialog
|
|
3040
|
+
* @param {string} dialogType type of the dialog
|
|
3077
3041
|
* @returns {string} returnType: string - the active map id
|
|
3078
3042
|
*/
|
|
3079
3043
|
|
|
@@ -3088,7 +3052,7 @@ var getDialogMapId = createSelector(getDialogDetailsByType, function (details) {
|
|
|
3088
3052
|
*For a given ui component: gets the order of visible dialog
|
|
3089
3053
|
*
|
|
3090
3054
|
* @param {object} store store object from which the ui state wll be extracted
|
|
3091
|
-
* @param {DialogType} dialogType type of the dialog
|
|
3055
|
+
* @param {DialogType} dialogType type of the dialog
|
|
3092
3056
|
* @returns {number} the higher the order number the higher the zIndex
|
|
3093
3057
|
*/
|
|
3094
3058
|
|
|
@@ -3114,7 +3078,7 @@ var getDialogOrder = createSelector(function (store, dialogType) {
|
|
|
3114
3078
|
*For a given ui component: returns if ordered on top
|
|
3115
3079
|
*
|
|
3116
3080
|
* @param {object} store store object from which the ui state wll be extracted
|
|
3117
|
-
* @param {DialogType} dialogType type of the dialog
|
|
3081
|
+
* @param {DialogType} dialogType type of the dialog
|
|
3118
3082
|
* @returns {boolean}
|
|
3119
3083
|
*/
|
|
3120
3084
|
|
|
@@ -4361,6 +4325,25 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
4361
4325
|
getMapPresetError: getMapPresetError
|
|
4362
4326
|
});
|
|
4363
4327
|
|
|
4328
|
+
var DialogTypes;
|
|
4329
|
+
|
|
4330
|
+
(function (DialogTypes) {
|
|
4331
|
+
DialogTypes["LayerInfo"] = "layerInfo";
|
|
4332
|
+
DialogTypes["SyncGroups"] = "syncGroups";
|
|
4333
|
+
DialogTypes["TimeSeriesSelect"] = "timeSeriesSelect";
|
|
4334
|
+
DialogTypes["TimeSeriesManager"] = "timeSeriesManager";
|
|
4335
|
+
DialogTypes["KeywordFilter"] = "keywordFilter";
|
|
4336
|
+
DialogTypes["DimensionSelectEnsembleMember"] = "dimensionSelect-ensemble_member";
|
|
4337
|
+
DialogTypes["DimensionSelectElevation"] = "dimensionSelect-elevation";
|
|
4338
|
+
DialogTypes["LayerManager"] = "layerManager";
|
|
4339
|
+
DialogTypes["LayerSelect"] = "layerSelect";
|
|
4340
|
+
})(DialogTypes || (DialogTypes = {}));
|
|
4341
|
+
|
|
4342
|
+
var types = /*#__PURE__*/Object.freeze({
|
|
4343
|
+
__proto__: null,
|
|
4344
|
+
get DialogTypes () { return DialogTypes; }
|
|
4345
|
+
});
|
|
4346
|
+
|
|
4364
4347
|
var initialState$1 = {
|
|
4365
4348
|
filters: {
|
|
4366
4349
|
searchFilter: '',
|
|
@@ -4384,7 +4367,7 @@ var initialState$1 = {
|
|
|
4384
4367
|
};
|
|
4385
4368
|
var slice$1 = createSlice({
|
|
4386
4369
|
initialState: initialState$1,
|
|
4387
|
-
name:
|
|
4370
|
+
name: DialogTypes.LayerSelect,
|
|
4388
4371
|
reducers: {
|
|
4389
4372
|
setSearchFilter: function setSearchFilter(draft, action) {
|
|
4390
4373
|
var filterText = action.payload.filterText;
|
|
@@ -4401,7 +4384,7 @@ var slice$1 = createSlice({
|
|
|
4401
4384
|
serviceUrl = _action$payload.serviceUrl,
|
|
4402
4385
|
_abstract = _action$payload["abstract"],
|
|
4403
4386
|
keywords = _action$payload.keywords,
|
|
4404
|
-
|
|
4387
|
+
scope = _action$payload.scope,
|
|
4405
4388
|
groups = _action$payload.groups;
|
|
4406
4389
|
|
|
4407
4390
|
if (!draft.filters.activeServices.byId[serviceId]) {
|
|
@@ -4441,7 +4424,7 @@ var slice$1 = createSlice({
|
|
|
4441
4424
|
serviceId: serviceId,
|
|
4442
4425
|
enabled: draft.allServicesEnabled,
|
|
4443
4426
|
filterIds: filterIds,
|
|
4444
|
-
|
|
4427
|
+
scope: scope,
|
|
4445
4428
|
serviceName: serviceName,
|
|
4446
4429
|
serviceUrl: serviceUrl,
|
|
4447
4430
|
"abstract": _abstract
|
|
@@ -4536,6 +4519,61 @@ var slice$1 = createSlice({
|
|
|
4536
4519
|
var reducer$1 = slice$1.reducer;
|
|
4537
4520
|
var layerSelectActions = slice$1.actions;
|
|
4538
4521
|
|
|
4522
|
+
/* *
|
|
4523
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4524
|
+
* you may not use this file except in compliance with the License.
|
|
4525
|
+
* You may obtain a copy of the License at
|
|
4526
|
+
*
|
|
4527
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
4528
|
+
*
|
|
4529
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
4530
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
4531
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4532
|
+
* See the License for the specific language governing permissions and
|
|
4533
|
+
* limitations under the License.
|
|
4534
|
+
*
|
|
4535
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
4536
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
4537
|
+
* */
|
|
4538
|
+
var filterLayersFromService = function filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString) {
|
|
4539
|
+
var mapStoreService = services[serviceId];
|
|
4540
|
+
if (!mapStoreService) return [];
|
|
4541
|
+
|
|
4542
|
+
if (searchString === '' && allFiltersActive) {
|
|
4543
|
+
return mapStoreService.layers.filter(function (layer) {
|
|
4544
|
+
return layer.leaf;
|
|
4545
|
+
});
|
|
4546
|
+
}
|
|
4547
|
+
|
|
4548
|
+
var searchStringArray = searchString.split(' ');
|
|
4549
|
+
return mapStoreService.layers.filter(function (layer) {
|
|
4550
|
+
return searchStringArray.every(function (search) {
|
|
4551
|
+
var _a, _b, _c;
|
|
4552
|
+
|
|
4553
|
+
var searchLowercase = search.toLowerCase();
|
|
4554
|
+
var layerFilterIds = layer.path.map(function (group) {
|
|
4555
|
+
return "groups-".concat(group);
|
|
4556
|
+
}).concat(layer.keywords.map(function (keyword) {
|
|
4557
|
+
return "keywords-".concat(keyword);
|
|
4558
|
+
}));
|
|
4559
|
+
var isFilterInLayer = (layerFilterIds === null || layerFilterIds === void 0 ? void 0 : layerFilterIds.some(function (id) {
|
|
4560
|
+
return filterIds.includes(id);
|
|
4561
|
+
})) || allFiltersActive;
|
|
4562
|
+
var isSearchTextInLayerFilter = layerFilterIds === null || layerFilterIds === void 0 ? void 0 : layerFilterIds.some(function (filterId) {
|
|
4563
|
+
return filterId.toLowerCase().includes(searchLowercase);
|
|
4564
|
+
});
|
|
4565
|
+
var isSearchTextInLayerName = (_a = layer.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(searchLowercase);
|
|
4566
|
+
var isSearchTextInLayerText = (_b = layer.text) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(searchLowercase);
|
|
4567
|
+
var isSearchTextInLayerAbstract = (_c = layer["abstract"]) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes(searchLowercase);
|
|
4568
|
+
var isSearchTextInServiceName = mapStoreService.name.toLowerCase().includes(searchLowercase);
|
|
4569
|
+
var isSearchTextInLayer = isSearchTextInLayerName || isSearchTextInLayerText || isSearchTextInLayerAbstract || isSearchTextInLayerFilter || isSearchTextInServiceName;
|
|
4570
|
+
return isFilterInLayer && isSearchTextInLayer;
|
|
4571
|
+
});
|
|
4572
|
+
}).filter(function (layer) {
|
|
4573
|
+
return layer.leaf;
|
|
4574
|
+
});
|
|
4575
|
+
};
|
|
4576
|
+
|
|
4539
4577
|
/* *
|
|
4540
4578
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4541
4579
|
* you may not use this file except in compliance with the License.
|
|
@@ -4694,6 +4732,22 @@ var isAllFiltersChecked = createSelector(layerSelectStore, function (store) {
|
|
|
4694
4732
|
var getActiveLayerInfo = createSelector(layerSelectStore, function (store) {
|
|
4695
4733
|
return store === null || store === void 0 ? void 0 : store.activeLayerInfo;
|
|
4696
4734
|
});
|
|
4735
|
+
/**
|
|
4736
|
+
* Returns a filtered active layer object based on the given filter settings
|
|
4737
|
+
* Example: layerSelectSelectors.getFilteredLayers(store, filteredSettings);
|
|
4738
|
+
* @param {object} store store: object - object from which the service state will be extracted
|
|
4739
|
+
* @returns {array} returnType: ActiveLayerObject - an array of all filtered activelayers
|
|
4740
|
+
*/
|
|
4741
|
+
|
|
4742
|
+
var getFilteredLayers = createSelector([getEnabledServiceIds, getServices, getCheckedFilterIds, isAllFiltersChecked, getSearchFilter], function (enabledServiceIds, servicesStore, checkedFilterIds, allFiltersActive, searchFilter) {
|
|
4743
|
+
return enabledServiceIds.reduce(function (layerList, serviceId) {
|
|
4744
|
+
return layerList.concat(filterLayersFromService(serviceId, servicesStore, checkedFilterIds, allFiltersActive, searchFilter).map(function (layer) {
|
|
4745
|
+
return Object.assign(Object.assign({}, layer), {
|
|
4746
|
+
serviceName: serviceId
|
|
4747
|
+
});
|
|
4748
|
+
}));
|
|
4749
|
+
}, []);
|
|
4750
|
+
}, selectorMemoizationOptions);
|
|
4697
4751
|
|
|
4698
4752
|
/* *
|
|
4699
4753
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -4769,17 +4823,6 @@ var getFirstSnackbarMessage = createSelector(getCurrentSnackbarMessages, functio
|
|
|
4769
4823
|
return currentMessages.length > 0 ? currentMessages[0] : undefined;
|
|
4770
4824
|
});
|
|
4771
4825
|
|
|
4772
|
-
var DialogTypes;
|
|
4773
|
-
|
|
4774
|
-
(function (DialogTypes) {
|
|
4775
|
-
DialogTypes["LayerInfo"] = "layerInfo";
|
|
4776
|
-
})(DialogTypes || (DialogTypes = {}));
|
|
4777
|
-
|
|
4778
|
-
var types = /*#__PURE__*/Object.freeze({
|
|
4779
|
-
__proto__: null,
|
|
4780
|
-
get DialogTypes () { return DialogTypes; }
|
|
4781
|
-
});
|
|
4782
|
-
|
|
4783
4826
|
/* *
|
|
4784
4827
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4785
4828
|
* you may not use this file except in compliance with the License.
|
|
@@ -5978,9 +6021,7 @@ var PlayButton = function PlayButton(_ref) {
|
|
|
5978
6021
|
var isAnimating = _ref.isAnimating,
|
|
5979
6022
|
isDisabled = _ref.isDisabled,
|
|
5980
6023
|
_ref$onTogglePlayButt = _ref.onTogglePlayButton,
|
|
5981
|
-
onTogglePlayButton = _ref$onTogglePlayButt === void 0 ? function () {
|
|
5982
|
-
return null;
|
|
5983
|
-
} : _ref$onTogglePlayButt;
|
|
6024
|
+
onTogglePlayButton = _ref$onTogglePlayButt === void 0 ? function () {} : _ref$onTogglePlayButt;
|
|
5984
6025
|
|
|
5985
6026
|
var onTogglePlay = function onTogglePlay() {
|
|
5986
6027
|
onTogglePlayButton();
|
|
@@ -7099,6 +7140,84 @@ CanvasComponent.defaultProps = {
|
|
|
7099
7140
|
}
|
|
7100
7141
|
};
|
|
7101
7142
|
|
|
7143
|
+
/* *
|
|
7144
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7145
|
+
* you may not use this file except in compliance with the License.
|
|
7146
|
+
* You may obtain a copy of the License at
|
|
7147
|
+
*
|
|
7148
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7149
|
+
*
|
|
7150
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7151
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7152
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7153
|
+
* See the License for the specific language governing permissions and
|
|
7154
|
+
* limitations under the License.
|
|
7155
|
+
*
|
|
7156
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7157
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
7158
|
+
* */
|
|
7159
|
+
|
|
7160
|
+
var LegendLayout = function LegendLayout(_ref) {
|
|
7161
|
+
var title = _ref.title,
|
|
7162
|
+
name = _ref.name,
|
|
7163
|
+
dimensions = _ref.dimensions,
|
|
7164
|
+
children = _ref.children,
|
|
7165
|
+
height = _ref.height,
|
|
7166
|
+
width = _ref.width,
|
|
7167
|
+
minWidth = _ref.minWidth;
|
|
7168
|
+
return /*#__PURE__*/React__default.createElement(Paper, {
|
|
7169
|
+
"data-testid": "legend",
|
|
7170
|
+
sx: {
|
|
7171
|
+
padding: '10px',
|
|
7172
|
+
border: '1px solid grey',
|
|
7173
|
+
backgroundColor: '#FFF',
|
|
7174
|
+
overflow: 'hidden',
|
|
7175
|
+
marginBottom: 0.5
|
|
7176
|
+
}
|
|
7177
|
+
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
7178
|
+
"data-testid": "legend-title"
|
|
7179
|
+
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
7180
|
+
sx: {
|
|
7181
|
+
fontFamily: 'Roboto, Helvetica, Arial',
|
|
7182
|
+
fontSize: '10px',
|
|
7183
|
+
minWidth: '100%',
|
|
7184
|
+
wordWrap: 'break-word',
|
|
7185
|
+
color: 'common.black',
|
|
7186
|
+
whiteSpace: 'nowrap'
|
|
7187
|
+
},
|
|
7188
|
+
variant: "h3"
|
|
7189
|
+
}, title)), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
7190
|
+
title: title || 'loading',
|
|
7191
|
+
placement: "top"
|
|
7192
|
+
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
7193
|
+
sx: {
|
|
7194
|
+
margin: '10px 0px 10px 0px',
|
|
7195
|
+
height: "".concat(height, "px"),
|
|
7196
|
+
width: "".concat(width, "px")
|
|
7197
|
+
}
|
|
7198
|
+
}, children)), /*#__PURE__*/React__default.createElement(Box, {
|
|
7199
|
+
"data-testid": "legend-info",
|
|
7200
|
+
sx: Object.assign({
|
|
7201
|
+
fontFamily: 'Roboto, Helvetica, Arial',
|
|
7202
|
+
fontSize: 10,
|
|
7203
|
+
color: 'common.black',
|
|
7204
|
+
overflowX: 'hidden',
|
|
7205
|
+
wordWrap: 'break-word',
|
|
7206
|
+
whiteSpace: 'nowrap'
|
|
7207
|
+
}, minWidth && {
|
|
7208
|
+
minWidth: "".concat(minWidth, "px")
|
|
7209
|
+
})
|
|
7210
|
+
}, dimensions && dimensions.map(function (dim) {
|
|
7211
|
+
return /*#__PURE__*/React__default.createElement(Box, {
|
|
7212
|
+
key: name + dim.name
|
|
7213
|
+
}, dim.name === 'time' ? "".concat(dim.currentValue) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box, {
|
|
7214
|
+
style: {
|
|
7215
|
+
fontWeight: 500
|
|
7216
|
+
}
|
|
7217
|
+
}, dim.name, ":"), dim.currentValue, " ", dim.units));
|
|
7218
|
+
})));
|
|
7219
|
+
};
|
|
7220
|
+
|
|
7102
7221
|
var defaultCanvasWidth = 150;
|
|
7103
7222
|
var defaultCanvasHeight = 30;
|
|
7104
7223
|
/**
|
|
@@ -7180,46 +7299,20 @@ var Legend = function Legend(_ref) {
|
|
|
7180
7299
|
like a title and the WMS legendgraphic url */
|
|
7181
7300
|
|
|
7182
7301
|
var wmLayer = getWMLayerById(layer.id);
|
|
7183
|
-
return /*#__PURE__*/React__default.createElement(
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
overflow: 'hidden',
|
|
7191
|
-
marginBottom: 0.5
|
|
7192
|
-
}
|
|
7193
|
-
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
7194
|
-
"data-testid": "legend-title",
|
|
7195
|
-
style: {
|
|
7196
|
-
maxWidth: canvasContainerWidth
|
|
7197
|
-
}
|
|
7198
|
-
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
7199
|
-
sx: {
|
|
7200
|
-
fontFamily: 'Roboto, Helvetica, Arial',
|
|
7201
|
-
fontSize: '10px',
|
|
7202
|
-
minWidth: "".concat(defaultCanvasWidth, "px"),
|
|
7203
|
-
wordWrap: 'break-word',
|
|
7204
|
-
color: 'common.black'
|
|
7205
|
-
},
|
|
7206
|
-
variant: "h3"
|
|
7207
|
-
}, wmLayer && wmLayer.title)), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
7208
|
-
title: wmLayer && wmLayer.title || 'loading',
|
|
7209
|
-
placement: "top"
|
|
7210
|
-
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
7211
|
-
sx: {
|
|
7212
|
-
margin: '10px 0px 10px 0px',
|
|
7213
|
-
height: "".concat(canvasContainerHeight, "px"),
|
|
7214
|
-
width: "".concat(canvasContainerWidth, "px")
|
|
7215
|
-
}
|
|
7302
|
+
return /*#__PURE__*/React__default.createElement(LegendLayout, {
|
|
7303
|
+
title: wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.title,
|
|
7304
|
+
name: wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.name,
|
|
7305
|
+
dimensions: layer === null || layer === void 0 ? void 0 : layer.dimensions,
|
|
7306
|
+
height: canvasContainerHeight,
|
|
7307
|
+
width: canvasContainerWidth,
|
|
7308
|
+
minWidth: defaultCanvasWidth
|
|
7216
7309
|
}, /*#__PURE__*/React__default.createElement(CanvasComponent, {
|
|
7217
7310
|
redrawInterval: 500,
|
|
7218
7311
|
onRenderCanvas: function onRenderCanvas(ctx, width, height) {
|
|
7219
7312
|
/*
|
|
7220
|
-
|
|
7221
|
-
|
|
7222
|
-
|
|
7313
|
+
Check if the wmLayer is available, this happens when the WMS GetCapabilities is loaded and parsed.
|
|
7314
|
+
Note that we cannot use the wmLayer variable above, as this one could contain a non initialized WMJSLayer.
|
|
7315
|
+
*/
|
|
7223
7316
|
var legendWmLayer = getWMLayerById(layer.id);
|
|
7224
7317
|
var legendUrl = getLegendGraphicURLForLayer(legendWmLayer);
|
|
7225
7318
|
var image = legendImageStore.getImage(legendUrl);
|
|
@@ -7268,26 +7361,7 @@ var Legend = function Legend(_ref) {
|
|
|
7268
7361
|
renderLegendGraphic(previousLegendImage.current, ctx, imageWidth, imageHeight);
|
|
7269
7362
|
}
|
|
7270
7363
|
}
|
|
7271
|
-
}))
|
|
7272
|
-
"data-testid": "legend-info",
|
|
7273
|
-
sx: {
|
|
7274
|
-
fontFamily: 'Roboto, Helvetica, Arial',
|
|
7275
|
-
fontSize: 10,
|
|
7276
|
-
color: 'common.black',
|
|
7277
|
-
overflowX: 'hidden',
|
|
7278
|
-
minWidth: "".concat(defaultCanvasWidth, "px"),
|
|
7279
|
-
wordWrap: 'break-word',
|
|
7280
|
-
maxWidth: "".concat(canvasContainerWidth, "px")
|
|
7281
|
-
}
|
|
7282
|
-
}, layer.dimensions && layer.dimensions.map(function (dim) {
|
|
7283
|
-
return /*#__PURE__*/React__default.createElement(Box, {
|
|
7284
|
-
key: layer.name + dim.name
|
|
7285
|
-
}, dim.name === 'time' ? "".concat(dim.currentValue) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box, {
|
|
7286
|
-
style: {
|
|
7287
|
-
fontWeight: 500
|
|
7288
|
-
}
|
|
7289
|
-
}, dim.name, ":"), dim.currentValue, " ", dim.units));
|
|
7290
|
-
})));
|
|
7364
|
+
}));
|
|
7291
7365
|
};
|
|
7292
7366
|
|
|
7293
7367
|
/* *
|
|
@@ -7519,8 +7593,8 @@ function startAnimationSaga(_ref) {
|
|
|
7519
7593
|
case 0:
|
|
7520
7594
|
payload = _ref.payload;
|
|
7521
7595
|
mapId = payload.mapId, start = payload.start, end = payload.end, interval = payload.interval, timeList = payload.timeList;
|
|
7522
|
-
roundedStart = roundWithTimeStep(start && moment.utc(start).unix(), interval, 'ceil');
|
|
7523
|
-
roundedEnd = roundWithTimeStep(end && moment.utc(end).unix(), interval, 'floor');
|
|
7596
|
+
roundedStart = roundWithTimeStep(Number(start && moment.utc(start).unix()), interval, 'ceil');
|
|
7597
|
+
roundedEnd = roundWithTimeStep(Number(end && moment.utc(end).unix()), interval, 'floor');
|
|
7524
7598
|
_context.next = 6;
|
|
7525
7599
|
return timeList || generateTimeList(moment.utc(roundedStart * 1000), moment.utc(roundedEnd * 1000), interval);
|
|
7526
7600
|
|
|
@@ -8256,7 +8330,7 @@ var getUserAddedServices = function getUserAddedServices() {
|
|
|
8256
8330
|
service = _ref2[1];
|
|
8257
8331
|
|
|
8258
8332
|
return Object.assign(Object.assign({}, userServices), isNoIdService(service) ? _defineProperty({}, serviceUrl, Object.assign(Object.assign({}, service), {
|
|
8259
|
-
|
|
8333
|
+
scope: 'user'
|
|
8260
8334
|
})) : {});
|
|
8261
8335
|
}, {});
|
|
8262
8336
|
}
|
|
@@ -8283,14 +8357,14 @@ var _marked$1 = /*#__PURE__*/regeneratorRuntime.mark(newServiceAddedSaga),
|
|
|
8283
8357
|
_marked2$1 = /*#__PURE__*/regeneratorRuntime.mark(layerSelectRemoveServiceSaga),
|
|
8284
8358
|
_marked3 = /*#__PURE__*/regeneratorRuntime.mark(rootSaga$1);
|
|
8285
8359
|
function newServiceAddedSaga(capturedAction) {
|
|
8286
|
-
var addedService, id, serviceUrl, name,
|
|
8360
|
+
var addedService, id, serviceUrl, name, scope, _abstract, keywords, groups;
|
|
8287
8361
|
|
|
8288
8362
|
return regeneratorRuntime.wrap(function newServiceAddedSaga$(_context) {
|
|
8289
8363
|
while (1) {
|
|
8290
8364
|
switch (_context.prev = _context.next) {
|
|
8291
8365
|
case 0:
|
|
8292
8366
|
addedService = capturedAction.payload;
|
|
8293
|
-
id = addedService.id, serviceUrl = addedService.serviceUrl, name = addedService.name,
|
|
8367
|
+
id = addedService.id, serviceUrl = addedService.serviceUrl, name = addedService.name, scope = addedService.scope, _abstract = addedService["abstract"];
|
|
8294
8368
|
keywords = addedService.layers.reduce(function (keywords, layer) {
|
|
8295
8369
|
var _a;
|
|
8296
8370
|
|
|
@@ -8315,7 +8389,7 @@ function newServiceAddedSaga(capturedAction) {
|
|
|
8315
8389
|
serviceName: name,
|
|
8316
8390
|
serviceUrl: serviceUrl,
|
|
8317
8391
|
keywords: keywords,
|
|
8318
|
-
|
|
8392
|
+
scope: scope,
|
|
8319
8393
|
groups: groups,
|
|
8320
8394
|
"abstract": _abstract
|
|
8321
8395
|
}));
|
|
@@ -8378,11 +8452,11 @@ function layerSelectRemoveServiceSaga(capturedAction) {
|
|
|
8378
8452
|
}
|
|
8379
8453
|
function addServiceToLocalStorageSaga(_ref3) {
|
|
8380
8454
|
var payload = _ref3.payload;
|
|
8381
|
-
var
|
|
8455
|
+
var scope = payload.scope,
|
|
8382
8456
|
name = payload.name,
|
|
8383
8457
|
serviceUrl = payload.serviceUrl,
|
|
8384
8458
|
_abstract2 = payload["abstract"];
|
|
8385
|
-
if (!isUserAddedService) return;
|
|
8459
|
+
if (!isUserAddedService(scope)) return;
|
|
8386
8460
|
var localStorageServices = getUserAddedServices();
|
|
8387
8461
|
setUserAddedServices(Object.assign(Object.assign({}, localStorageServices), _defineProperty({}, serviceUrl, {
|
|
8388
8462
|
name: name,
|
|
@@ -9463,14 +9537,14 @@ var LayerSelectButtonConnect = function LayerSelectButtonConnect(_ref) {
|
|
|
9463
9537
|
source = _ref$source === void 0 ? 'app' : _ref$source;
|
|
9464
9538
|
var dispatch = useDispatch();
|
|
9465
9539
|
var currentActiveMapId = useSelector(function (store) {
|
|
9466
|
-
return getDialogMapId(store,
|
|
9540
|
+
return getDialogMapId(store, DialogTypes.LayerSelect);
|
|
9467
9541
|
});
|
|
9468
9542
|
var isOpenInStore = useSelector(function (store) {
|
|
9469
|
-
return getisDialogOpen(store,
|
|
9543
|
+
return getisDialogOpen(store, DialogTypes.LayerSelect);
|
|
9470
9544
|
});
|
|
9471
9545
|
var openLayerSelectDialog = React.useCallback(function () {
|
|
9472
9546
|
dispatch(uiActions.setActiveMapIdForDialog({
|
|
9473
|
-
type:
|
|
9547
|
+
type: DialogTypes.LayerSelect,
|
|
9474
9548
|
mapId: mapId,
|
|
9475
9549
|
setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
|
|
9476
9550
|
source: source
|
|
@@ -11354,14 +11428,14 @@ var KeywordFilterButtonConnect = function KeywordFilterButtonConnect(_ref) {
|
|
|
11354
11428
|
source = _ref$source === void 0 ? 'app' : _ref$source;
|
|
11355
11429
|
var dispatch = useDispatch();
|
|
11356
11430
|
var currentActiveMapId = useSelector(function (store) {
|
|
11357
|
-
return getDialogMapId(store,
|
|
11431
|
+
return getDialogMapId(store, DialogTypes.KeywordFilter);
|
|
11358
11432
|
});
|
|
11359
11433
|
var isOpenInStore = useSelector(function (store) {
|
|
11360
|
-
return getisDialogOpen(store,
|
|
11434
|
+
return getisDialogOpen(store, DialogTypes.KeywordFilter);
|
|
11361
11435
|
});
|
|
11362
11436
|
var openFilterResultsDialog = React.useCallback(function () {
|
|
11363
11437
|
dispatch(uiActions.setActiveMapIdForDialog({
|
|
11364
|
-
type:
|
|
11438
|
+
type: DialogTypes.KeywordFilter,
|
|
11365
11439
|
mapId: mapId,
|
|
11366
11440
|
setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
|
|
11367
11441
|
source: source
|
|
@@ -11678,7 +11752,7 @@ var ServicePopup = function ServicePopup(_ref2) {
|
|
|
11678
11752
|
serviceUrl: formValues.serviceUrl,
|
|
11679
11753
|
"abstract": formValues.serviceAbstracts,
|
|
11680
11754
|
layers: serviceLayers,
|
|
11681
|
-
|
|
11755
|
+
scope: 'user'
|
|
11682
11756
|
});
|
|
11683
11757
|
setIsLoading(false);
|
|
11684
11758
|
showSnackbar(getSuccesMessage(formValues.serviceName));
|
|
@@ -11831,8 +11905,8 @@ var ServicePopup = function ServicePopup(_ref2) {
|
|
|
11831
11905
|
})
|
|
11832
11906
|
},
|
|
11833
11907
|
disabled: isServiceUrlDisabled || isLoading,
|
|
11908
|
+
isReadOnly: isShowPopup,
|
|
11834
11909
|
InputProps: {
|
|
11835
|
-
readOnly: isShowPopup,
|
|
11836
11910
|
disableUnderline: isShowPopup,
|
|
11837
11911
|
endAdornment: isShowPopup && /*#__PURE__*/React.createElement(InputAdornment, {
|
|
11838
11912
|
position: "end"
|
|
@@ -11855,8 +11929,8 @@ var ServicePopup = function ServicePopup(_ref2) {
|
|
|
11855
11929
|
}
|
|
11856
11930
|
},
|
|
11857
11931
|
disabled: isShowPopup || isLoading,
|
|
11932
|
+
isReadOnly: isShowPopup,
|
|
11858
11933
|
InputProps: {
|
|
11859
|
-
readOnly: isShowPopup,
|
|
11860
11934
|
disableUnderline: isShowPopup
|
|
11861
11935
|
},
|
|
11862
11936
|
sx: style$1.textField,
|
|
@@ -11867,9 +11941,8 @@ var ServicePopup = function ServicePopup(_ref2) {
|
|
|
11867
11941
|
name: fields.serviceAbstracts.name,
|
|
11868
11942
|
label: fields.serviceAbstracts.label,
|
|
11869
11943
|
disabled: isShowPopup || isLoading,
|
|
11870
|
-
|
|
11944
|
+
isReadOnly: isShowPopup,
|
|
11871
11945
|
InputProps: {
|
|
11872
|
-
readOnly: isShowPopup,
|
|
11873
11946
|
disableUnderline: isShowPopup
|
|
11874
11947
|
},
|
|
11875
11948
|
helperText: !isShowPopup && 'Short description of what this service does',
|
|
@@ -12101,63 +12174,8 @@ var SearchFieldConnect = function SearchFieldConnect() {
|
|
|
12101
12174
|
* See the License for the specific language governing permissions and
|
|
12102
12175
|
* limitations under the License.
|
|
12103
12176
|
*
|
|
12104
|
-
* Copyright
|
|
12105
|
-
* Copyright
|
|
12106
|
-
* */
|
|
12107
|
-
var filterLayersFromService = function filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString) {
|
|
12108
|
-
var mapStoreService = services[serviceId];
|
|
12109
|
-
if (!mapStoreService) return [];
|
|
12110
|
-
|
|
12111
|
-
if (searchString === '' && allFiltersActive) {
|
|
12112
|
-
return mapStoreService.layers.filter(function (layer) {
|
|
12113
|
-
return layer.leaf;
|
|
12114
|
-
});
|
|
12115
|
-
}
|
|
12116
|
-
|
|
12117
|
-
var searchStringArray = searchString.split(' ');
|
|
12118
|
-
return mapStoreService.layers.filter(function (layer) {
|
|
12119
|
-
return searchStringArray.every(function (search) {
|
|
12120
|
-
var _a, _b, _c;
|
|
12121
|
-
|
|
12122
|
-
var searchLowercase = search.toLowerCase();
|
|
12123
|
-
var layerFilterIds = layer.path.map(function (group) {
|
|
12124
|
-
return "group-".concat(group);
|
|
12125
|
-
}).concat(layer.keywords.map(function (keyword) {
|
|
12126
|
-
return "keyword-".concat(keyword);
|
|
12127
|
-
}));
|
|
12128
|
-
var isFilterInLayer = (layerFilterIds === null || layerFilterIds === void 0 ? void 0 : layerFilterIds.some(function (id) {
|
|
12129
|
-
return filterIds.includes(id);
|
|
12130
|
-
})) || allFiltersActive;
|
|
12131
|
-
var isSearchTextInLayerFilter = layerFilterIds === null || layerFilterIds === void 0 ? void 0 : layerFilterIds.some(function (filterId) {
|
|
12132
|
-
return filterId.toLowerCase().includes(searchLowercase);
|
|
12133
|
-
});
|
|
12134
|
-
var isSearchTextInLayerName = (_a = layer.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(searchLowercase);
|
|
12135
|
-
var isSearchTextInLayerText = (_b = layer.text) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(searchLowercase);
|
|
12136
|
-
var isSearchTextInLayerAbstract = (_c = layer["abstract"]) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes(searchLowercase);
|
|
12137
|
-
var isSearchTextInServiceName = mapStoreService.name.toLowerCase().includes(searchLowercase);
|
|
12138
|
-
var isSearchTextInLayer = isSearchTextInLayerName || isSearchTextInLayerText || isSearchTextInLayerAbstract || isSearchTextInLayerFilter || isSearchTextInServiceName;
|
|
12139
|
-
return isFilterInLayer && isSearchTextInLayer;
|
|
12140
|
-
});
|
|
12141
|
-
}).filter(function (layer) {
|
|
12142
|
-
return layer.leaf;
|
|
12143
|
-
});
|
|
12144
|
-
};
|
|
12145
|
-
|
|
12146
|
-
/* *
|
|
12147
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12148
|
-
* you may not use this file except in compliance with the License.
|
|
12149
|
-
* You may obtain a copy of the License at
|
|
12150
|
-
*
|
|
12151
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12152
|
-
*
|
|
12153
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12154
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12155
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12156
|
-
* See the License for the specific language governing permissions and
|
|
12157
|
-
* limitations under the License.
|
|
12158
|
-
*
|
|
12159
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12160
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12177
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12178
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12161
12179
|
* */
|
|
12162
12180
|
|
|
12163
12181
|
var LayerAddRemoveButton = function LayerAddRemoveButton(_ref) {
|
|
@@ -12280,11 +12298,11 @@ var LayerInfoButtonConnect = function LayerInfoButtonConnect(_ref) {
|
|
|
12280
12298
|
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12281
12299
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12282
12300
|
* */
|
|
12283
|
-
var textStyle
|
|
12301
|
+
var textStyle = {
|
|
12284
12302
|
lineHeight: '20px',
|
|
12285
12303
|
letterSpacing: '0.25px'
|
|
12286
12304
|
};
|
|
12287
|
-
var textStyleWithMargin = Object.assign(Object.assign({}, textStyle
|
|
12305
|
+
var textStyleWithMargin = Object.assign(Object.assign({}, textStyle), {
|
|
12288
12306
|
marginBottom: 1
|
|
12289
12307
|
});
|
|
12290
12308
|
|
|
@@ -12293,7 +12311,7 @@ var LayerInfoText = function LayerInfoText(_ref) {
|
|
|
12293
12311
|
value = _ref.value;
|
|
12294
12312
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12295
12313
|
variant: "subtitle2",
|
|
12296
|
-
sx: textStyle
|
|
12314
|
+
sx: textStyle
|
|
12297
12315
|
}, label), /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12298
12316
|
variant: "body2",
|
|
12299
12317
|
sx: textStyleWithMargin
|
|
@@ -12316,10 +12334,6 @@ var LayerInfoText = function LayerInfoText(_ref) {
|
|
|
12316
12334
|
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12317
12335
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12318
12336
|
* */
|
|
12319
|
-
var textStyle = {
|
|
12320
|
-
lineHeight: '20px',
|
|
12321
|
-
letterSpacing: '0.25px'
|
|
12322
|
-
};
|
|
12323
12337
|
var valueStyle = Object.assign(Object.assign({}, textStyle), {
|
|
12324
12338
|
overflowWrap: 'break-word'
|
|
12325
12339
|
});
|
|
@@ -12330,12 +12344,15 @@ var LayerInfoList = function LayerInfoList(_ref) {
|
|
|
12330
12344
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12331
12345
|
variant: "subtitle2",
|
|
12332
12346
|
sx: textStyle
|
|
12333
|
-
}, label), /*#__PURE__*/React__default.createElement(
|
|
12347
|
+
}, label), list.length === 0 ? /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12348
|
+
variant: "body2",
|
|
12349
|
+
sx: textStyleWithMargin
|
|
12350
|
+
}, "-") : /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12334
12351
|
container: true,
|
|
12335
12352
|
direction: "column"
|
|
12336
12353
|
}, list.map(function (item) {
|
|
12337
12354
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
12338
|
-
key: item.
|
|
12355
|
+
key: item.label
|
|
12339
12356
|
}, /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12340
12357
|
item: true,
|
|
12341
12358
|
container: true,
|
|
@@ -12348,7 +12365,7 @@ var LayerInfoList = function LayerInfoList(_ref) {
|
|
|
12348
12365
|
}, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12349
12366
|
variant: "body2",
|
|
12350
12367
|
sx: textStyle
|
|
12351
|
-
}, item.
|
|
12368
|
+
}, item.label, ":"))), /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12352
12369
|
item: true,
|
|
12353
12370
|
container: true,
|
|
12354
12371
|
direction: "row",
|
|
@@ -12363,6 +12380,41 @@ var LayerInfoList = function LayerInfoList(_ref) {
|
|
|
12363
12380
|
})));
|
|
12364
12381
|
};
|
|
12365
12382
|
|
|
12383
|
+
/* *
|
|
12384
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12385
|
+
* you may not use this file except in compliance with the License.
|
|
12386
|
+
* You may obtain a copy of the License at
|
|
12387
|
+
*
|
|
12388
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12389
|
+
*
|
|
12390
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12391
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12392
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12393
|
+
* See the License for the specific language governing permissions and
|
|
12394
|
+
* limitations under the License.
|
|
12395
|
+
*
|
|
12396
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12397
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12398
|
+
* */
|
|
12399
|
+
|
|
12400
|
+
var LayerInfoLegend = function LayerInfoLegend(_ref) {
|
|
12401
|
+
var title = _ref.title,
|
|
12402
|
+
name = _ref.name,
|
|
12403
|
+
dimensions = _ref.dimensions,
|
|
12404
|
+
legendURL = _ref.legendURL;
|
|
12405
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12406
|
+
variant: "subtitle2",
|
|
12407
|
+
sx: textStyleWithMargin
|
|
12408
|
+
}, "Legend"), /*#__PURE__*/React__default.createElement(LegendLayout, {
|
|
12409
|
+
title: title,
|
|
12410
|
+
name: name,
|
|
12411
|
+
dimensions: dimensions
|
|
12412
|
+
}, legendURL ? /*#__PURE__*/React__default.createElement("img", {
|
|
12413
|
+
alt: title,
|
|
12414
|
+
src: legendURL
|
|
12415
|
+
}) : '-'));
|
|
12416
|
+
};
|
|
12417
|
+
|
|
12366
12418
|
/* *
|
|
12367
12419
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12368
12420
|
* you may not use this file except in compliance with the License.
|
|
@@ -12394,20 +12446,19 @@ var getLayerStyles = function getLayerStyles(layer) {
|
|
|
12394
12446
|
|
|
12395
12447
|
return styles.join(', ');
|
|
12396
12448
|
};
|
|
12397
|
-
var getDimensionValue = function getDimensionValue(name,
|
|
12398
|
-
var
|
|
12399
|
-
|
|
12400
|
-
var _a;
|
|
12401
|
-
|
|
12402
|
-
var dimension = (_a = layer.dimensions) === null || _a === void 0 ? void 0 : _a.find(function (dimension) {
|
|
12403
|
-
return dimension.name.toLowerCase() === name;
|
|
12449
|
+
var getDimensionValue = function getDimensionValue(name, dimensions) {
|
|
12450
|
+
var dimension = dimensions === null || dimensions === void 0 ? void 0 : dimensions.find(function (dimension) {
|
|
12451
|
+
return dimension.name.toLowerCase() === name.toLowerCase();
|
|
12404
12452
|
});
|
|
12405
12453
|
|
|
12406
|
-
if (!dimension) {
|
|
12407
|
-
return
|
|
12454
|
+
if (!dimension || !dimension.currentValue) {
|
|
12455
|
+
return null;
|
|
12408
12456
|
}
|
|
12409
12457
|
|
|
12410
|
-
var
|
|
12458
|
+
var dimName = dimension.name.toLowerCase();
|
|
12459
|
+
var breakAt = dimName === 'time' ? '/' : ',';
|
|
12460
|
+
var includeUnit = dimName !== 'time' && dimName !== 'reference_time';
|
|
12461
|
+
var dimValue = dimension.currentValue.split(breakAt).join("".concat(breakAt, " "));
|
|
12411
12462
|
|
|
12412
12463
|
if (includeUnit) {
|
|
12413
12464
|
return "".concat(dimValue, " ").concat(dimension.units);
|
|
@@ -12418,6 +12469,64 @@ var getDimensionValue = function getDimensionValue(name, layer, breakAt) {
|
|
|
12418
12469
|
var getLayerBbox = function getLayerBbox(layer) {
|
|
12419
12470
|
return layer.geographicBoundingBox ? "west ".concat(layer.geographicBoundingBox.west, ", east ").concat(layer.geographicBoundingBox.east, ", north ").concat(layer.geographicBoundingBox.north, ", south ").concat(layer.geographicBoundingBox.south) : '-';
|
|
12420
12471
|
};
|
|
12472
|
+
var getDimensionIcon$1 = function getDimensionIcon(name, dimensions) {
|
|
12473
|
+
var dimension = dimensions === null || dimensions === void 0 ? void 0 : dimensions.find(function (dimension) {
|
|
12474
|
+
return dimension.name.toLowerCase() === name.toLowerCase();
|
|
12475
|
+
});
|
|
12476
|
+
|
|
12477
|
+
if (!dimension) {
|
|
12478
|
+
return null;
|
|
12479
|
+
}
|
|
12480
|
+
|
|
12481
|
+
switch (dimension.name.toLowerCase()) {
|
|
12482
|
+
case 'time':
|
|
12483
|
+
return /*#__PURE__*/React__default.createElement(DimensionsTime, null);
|
|
12484
|
+
|
|
12485
|
+
case 'reference_time':
|
|
12486
|
+
return /*#__PURE__*/React__default.createElement(DimensionsRefTime, null);
|
|
12487
|
+
|
|
12488
|
+
case 'elevation':
|
|
12489
|
+
return /*#__PURE__*/React__default.createElement(DimensionsElevation, null);
|
|
12490
|
+
|
|
12491
|
+
default:
|
|
12492
|
+
return /*#__PURE__*/React__default.createElement(DimensionsOther, null);
|
|
12493
|
+
}
|
|
12494
|
+
};
|
|
12495
|
+
var getDimensionLabel = function getDimensionLabel(name) {
|
|
12496
|
+
var dimName = name.toLowerCase().split('_').join(' ');
|
|
12497
|
+
return dimName.charAt(0).toUpperCase() + dimName.slice(1);
|
|
12498
|
+
};
|
|
12499
|
+
var getDimensionsList = function getDimensionsList(dimensions) {
|
|
12500
|
+
var result = [];
|
|
12501
|
+
dimensions === null || dimensions === void 0 ? void 0 : dimensions.forEach(function (_ref) {
|
|
12502
|
+
var name = _ref.name;
|
|
12503
|
+
var value = getDimensionValue(name, dimensions);
|
|
12504
|
+
|
|
12505
|
+
if (!value) {
|
|
12506
|
+
return;
|
|
12507
|
+
}
|
|
12508
|
+
|
|
12509
|
+
var icon = getDimensionIcon$1(name, dimensions);
|
|
12510
|
+
var label = getDimensionLabel(name);
|
|
12511
|
+
result.push({
|
|
12512
|
+
label: label,
|
|
12513
|
+
value: value,
|
|
12514
|
+
icon: icon
|
|
12515
|
+
});
|
|
12516
|
+
}); // sort alphabetically so other dimensions are sorted
|
|
12517
|
+
|
|
12518
|
+
result.sort(function (a, b) {
|
|
12519
|
+
return a.label.localeCompare(b.label);
|
|
12520
|
+
}); // sort by fixed order
|
|
12521
|
+
|
|
12522
|
+
var preferredOrder = ['Time', 'Reference time', 'Elevation']; // using reverse ordering to make sure the other dimensions come last
|
|
12523
|
+
|
|
12524
|
+
preferredOrder.reverse();
|
|
12525
|
+
result.sort(function (a, b) {
|
|
12526
|
+
return preferredOrder.indexOf(b.label) - preferredOrder.indexOf(a.label);
|
|
12527
|
+
});
|
|
12528
|
+
return result;
|
|
12529
|
+
};
|
|
12421
12530
|
|
|
12422
12531
|
/* *
|
|
12423
12532
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -12452,9 +12561,7 @@ var LayerInfoDialog = function LayerInfoDialog(_ref) {
|
|
|
12452
12561
|
|
|
12453
12562
|
var styles = getLayerStyles(layer);
|
|
12454
12563
|
var bbox = getLayerBbox(layer);
|
|
12455
|
-
var
|
|
12456
|
-
var refTimeValue = getDimensionValue('reference_time', layer, ',');
|
|
12457
|
-
var elevationValue = getDimensionValue('elevation', layer, ',', true);
|
|
12564
|
+
var dimensions = getDimensionsList(layer.dimensions);
|
|
12458
12565
|
return /*#__PURE__*/React__default.createElement(ToolContainerDraggable, {
|
|
12459
12566
|
onClose: onClose,
|
|
12460
12567
|
headerSize: "xs",
|
|
@@ -12489,23 +12596,7 @@ var LayerInfoDialog = function LayerInfoDialog(_ref) {
|
|
|
12489
12596
|
value: layer["abstract"] || '-'
|
|
12490
12597
|
}), /*#__PURE__*/React__default.createElement(LayerInfoList, {
|
|
12491
12598
|
label: "Dimensions",
|
|
12492
|
-
list:
|
|
12493
|
-
name: 'Time',
|
|
12494
|
-
value: timeValue,
|
|
12495
|
-
icon: /*#__PURE__*/React__default.createElement(DimensionsTime, null)
|
|
12496
|
-
}, {
|
|
12497
|
-
name: 'Reference Time',
|
|
12498
|
-
value: refTimeValue,
|
|
12499
|
-
icon: /*#__PURE__*/React__default.createElement(DimensionsRefTime, null)
|
|
12500
|
-
}, {
|
|
12501
|
-
name: 'Elevation',
|
|
12502
|
-
value: elevationValue,
|
|
12503
|
-
icon: /*#__PURE__*/React__default.createElement(DimensionsElevation, null)
|
|
12504
|
-
}, {
|
|
12505
|
-
name: 'Other dimensions',
|
|
12506
|
-
value: '-',
|
|
12507
|
-
icon: /*#__PURE__*/React__default.createElement(DimensionsOther, null)
|
|
12508
|
-
}]
|
|
12599
|
+
list: dimensions
|
|
12509
12600
|
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12510
12601
|
label: "Styles",
|
|
12511
12602
|
value: styles
|
|
@@ -12518,9 +12609,152 @@ var LayerInfoDialog = function LayerInfoDialog(_ref) {
|
|
|
12518
12609
|
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12519
12610
|
label: "Keywords",
|
|
12520
12611
|
value: ((_a = layer.keywords) === null || _a === void 0 ? void 0 : _a.join(', ')) || '-'
|
|
12612
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoLegend, {
|
|
12613
|
+
title: layer.text,
|
|
12614
|
+
name: layer.name,
|
|
12615
|
+
dimensions: layer.dimensions,
|
|
12616
|
+
legendURL: layer.styles && layer.styles.length && layer.styles[0].legendURL
|
|
12521
12617
|
})));
|
|
12522
12618
|
};
|
|
12523
12619
|
|
|
12620
|
+
/* *
|
|
12621
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12622
|
+
* you may not use this file except in compliance with the License.
|
|
12623
|
+
* You may obtain a copy of the License at
|
|
12624
|
+
*
|
|
12625
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12626
|
+
*
|
|
12627
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12628
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12629
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12630
|
+
* See the License for the specific language governing permissions and
|
|
12631
|
+
* limitations under the License.
|
|
12632
|
+
*
|
|
12633
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12634
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12635
|
+
* */
|
|
12636
|
+
|
|
12637
|
+
var LayerListDimensions = function LayerListDimensions(_ref) {
|
|
12638
|
+
var dimensions = _ref.dimensions;
|
|
12639
|
+
|
|
12640
|
+
if (!dimensions || !dimensions.length) {
|
|
12641
|
+
return null;
|
|
12642
|
+
}
|
|
12643
|
+
|
|
12644
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, dimensions.map(function (dimension) {
|
|
12645
|
+
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
12646
|
+
key: dimension.label,
|
|
12647
|
+
title: "".concat(dimension.label, ": ").concat(dimension.value)
|
|
12648
|
+
}, /*#__PURE__*/React__default.createElement("span", {
|
|
12649
|
+
style: {
|
|
12650
|
+
marginRight: 4
|
|
12651
|
+
}
|
|
12652
|
+
}, dimension.icon));
|
|
12653
|
+
}));
|
|
12654
|
+
};
|
|
12655
|
+
|
|
12656
|
+
/* *
|
|
12657
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12658
|
+
* you may not use this file except in compliance with the License.
|
|
12659
|
+
* You may obtain a copy of the License at
|
|
12660
|
+
*
|
|
12661
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12662
|
+
*
|
|
12663
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12664
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12665
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12666
|
+
* See the License for the specific language governing permissions and
|
|
12667
|
+
* limitations under the License.
|
|
12668
|
+
*
|
|
12669
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12670
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12671
|
+
* */
|
|
12672
|
+
var buttonLarge = 80;
|
|
12673
|
+
var buttonSmall = 60;
|
|
12674
|
+
var layerSelectColumnsLarge = {
|
|
12675
|
+
column1: {
|
|
12676
|
+
width: 112
|
|
12677
|
+
},
|
|
12678
|
+
column2: {
|
|
12679
|
+
marginTop: '6px',
|
|
12680
|
+
width: "calc(100% - 112px)",
|
|
12681
|
+
height: '36px',
|
|
12682
|
+
paddingLeft: '20px'
|
|
12683
|
+
},
|
|
12684
|
+
column3: {
|
|
12685
|
+
height: '12px'
|
|
12686
|
+
},
|
|
12687
|
+
column4: {
|
|
12688
|
+
height: '24px'
|
|
12689
|
+
},
|
|
12690
|
+
column5: {
|
|
12691
|
+
height: '24px',
|
|
12692
|
+
width: 140
|
|
12693
|
+
},
|
|
12694
|
+
column6: {
|
|
12695
|
+
height: '24px',
|
|
12696
|
+
width: "calc(100% - 140px)"
|
|
12697
|
+
},
|
|
12698
|
+
column7: {
|
|
12699
|
+
height: '48px',
|
|
12700
|
+
width: buttonLarge,
|
|
12701
|
+
marginRight: 1,
|
|
12702
|
+
marginLeft: 2
|
|
12703
|
+
},
|
|
12704
|
+
column8: {
|
|
12705
|
+
width: "calc(100% - ".concat(buttonLarge, "px - 24px)")
|
|
12706
|
+
},
|
|
12707
|
+
column9: {
|
|
12708
|
+
width: "calc(".concat(buttonLarge, "px + 24px)")
|
|
12709
|
+
}
|
|
12710
|
+
};
|
|
12711
|
+
var layerSelectColumnsSmall = {
|
|
12712
|
+
column1: {
|
|
12713
|
+
width: '100%'
|
|
12714
|
+
},
|
|
12715
|
+
column2: {
|
|
12716
|
+
marginTop: '4px',
|
|
12717
|
+
width: "calc(100% - 20px)"
|
|
12718
|
+
},
|
|
12719
|
+
column3: {
|
|
12720
|
+
height: '12px'
|
|
12721
|
+
},
|
|
12722
|
+
column4: {
|
|
12723
|
+
height: '48px'
|
|
12724
|
+
},
|
|
12725
|
+
column5: {
|
|
12726
|
+
height: '24px',
|
|
12727
|
+
width: '100%'
|
|
12728
|
+
},
|
|
12729
|
+
column6: {
|
|
12730
|
+
height: '24px',
|
|
12731
|
+
width: '100%'
|
|
12732
|
+
},
|
|
12733
|
+
column7: {
|
|
12734
|
+
height: '48px',
|
|
12735
|
+
width: buttonSmall,
|
|
12736
|
+
marginRight: 0,
|
|
12737
|
+
marginLeft: 1
|
|
12738
|
+
},
|
|
12739
|
+
column8: {
|
|
12740
|
+
width: "calc(100% - ".concat(buttonSmall, "px - 8px)")
|
|
12741
|
+
},
|
|
12742
|
+
column9: {
|
|
12743
|
+
width: "calc(".concat(buttonSmall, "px + 8px)")
|
|
12744
|
+
}
|
|
12745
|
+
};
|
|
12746
|
+
var breakpoint = 500;
|
|
12747
|
+
var widthToColumns = function widthToColumns(width) {
|
|
12748
|
+
if (width <= breakpoint) return layerSelectColumnsSmall;
|
|
12749
|
+
return layerSelectColumnsLarge;
|
|
12750
|
+
};
|
|
12751
|
+
var rowHeightLarge = 68;
|
|
12752
|
+
var rowHeightSmall = 136;
|
|
12753
|
+
var widthToRowHeight = function widthToRowHeight(width) {
|
|
12754
|
+
if (width <= breakpoint) return rowHeightSmall;
|
|
12755
|
+
return rowHeightLarge;
|
|
12756
|
+
};
|
|
12757
|
+
|
|
12524
12758
|
/* *
|
|
12525
12759
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12526
12760
|
* you may not use this file except in compliance with the License.
|
|
@@ -12541,7 +12775,8 @@ var layerInfoStyle = {
|
|
|
12541
12775
|
fontSize: '10px',
|
|
12542
12776
|
textOverflow: 'ellipsis',
|
|
12543
12777
|
overflow: 'hidden',
|
|
12544
|
-
whiteSpace: 'nowrap'
|
|
12778
|
+
whiteSpace: 'nowrap',
|
|
12779
|
+
lineHeight: 1
|
|
12545
12780
|
};
|
|
12546
12781
|
|
|
12547
12782
|
var LayerListRow = function LayerListRow(_ref) {
|
|
@@ -12551,31 +12786,32 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
12551
12786
|
addLayer = _ref.addLayer,
|
|
12552
12787
|
deleteLayer = _ref.deleteLayer,
|
|
12553
12788
|
mapLayers = _ref.mapLayers,
|
|
12554
|
-
mapId = _ref.mapId
|
|
12789
|
+
mapId = _ref.mapId,
|
|
12790
|
+
layerSelectWidth = _ref.layerSelectWidth;
|
|
12555
12791
|
|
|
12556
|
-
var _a
|
|
12792
|
+
var _a;
|
|
12557
12793
|
|
|
12794
|
+
var rowHeight = widthToRowHeight(layerSelectWidth);
|
|
12795
|
+
var columns = widthToColumns(layerSelectWidth);
|
|
12796
|
+
var dimensions = getDimensionsList(layer.dimensions);
|
|
12558
12797
|
return /*#__PURE__*/React__default.createElement(Grid, {
|
|
12559
12798
|
"data-testid": "layerListLayerRow",
|
|
12560
12799
|
container: true,
|
|
12561
|
-
item: true,
|
|
12562
|
-
xs: 12,
|
|
12563
12800
|
justifyContent: "center",
|
|
12564
12801
|
alignItems: "center",
|
|
12565
12802
|
sx: {
|
|
12566
12803
|
backgroundColor: 'geowebColors.cards.cardContainer',
|
|
12567
12804
|
padding: '8px',
|
|
12568
12805
|
marginBottom: '4px',
|
|
12569
|
-
height:
|
|
12806
|
+
height: rowHeight,
|
|
12570
12807
|
border: 'solid 1px',
|
|
12571
12808
|
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
12572
12809
|
}
|
|
12573
12810
|
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
12574
12811
|
container: true,
|
|
12575
12812
|
item: true,
|
|
12576
|
-
|
|
12813
|
+
sx: columns.column8
|
|
12577
12814
|
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
12578
|
-
container: true,
|
|
12579
12815
|
item: true,
|
|
12580
12816
|
xs: 12
|
|
12581
12817
|
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
@@ -12584,25 +12820,19 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
12584
12820
|
height: '14px',
|
|
12585
12821
|
lineHeight: '14px',
|
|
12586
12822
|
fontWeight: 500,
|
|
12587
|
-
WebkitLineClamp: 1,
|
|
12588
|
-
display: '-webkit-box',
|
|
12589
|
-
WebkitBoxOrient: 'vertical',
|
|
12590
12823
|
textOverflow: 'ellipsis',
|
|
12591
12824
|
overflow: 'hidden'
|
|
12592
12825
|
}
|
|
12593
12826
|
}, layer.text)), /*#__PURE__*/React__default.createElement(Grid, {
|
|
12594
|
-
container: true,
|
|
12595
12827
|
item: true,
|
|
12596
|
-
|
|
12597
|
-
direction: "column"
|
|
12828
|
+
container: true,
|
|
12829
|
+
direction: "column",
|
|
12830
|
+
sx: columns.column1
|
|
12598
12831
|
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
12599
12832
|
sx: {
|
|
12600
12833
|
fontSize: '12px',
|
|
12601
12834
|
height: '18px',
|
|
12602
12835
|
lineHeight: '18px',
|
|
12603
|
-
WebkitLineClamp: 1,
|
|
12604
|
-
display: '-webkit-box',
|
|
12605
|
-
WebkitBoxOrient: 'vertical',
|
|
12606
12836
|
textOverflow: 'ellipsis',
|
|
12607
12837
|
overflow: 'hidden'
|
|
12608
12838
|
}
|
|
@@ -12610,44 +12840,41 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
12610
12840
|
layer: layer,
|
|
12611
12841
|
mapId: mapId,
|
|
12612
12842
|
serviceName: service.name
|
|
12613
|
-
})),
|
|
12843
|
+
})), /*#__PURE__*/React__default.createElement(Grid, {
|
|
12844
|
+
item: true,
|
|
12845
|
+
sx: columns.column2
|
|
12846
|
+
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
12847
|
+
item: true,
|
|
12848
|
+
sx: columns.column3
|
|
12849
|
+
}, layer["abstract"] && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12614
12850
|
"data-testid": "layerAbstract",
|
|
12851
|
+
sx: layerInfoStyle
|
|
12852
|
+
}, layer["abstract"])), /*#__PURE__*/React__default.createElement(Grid, {
|
|
12853
|
+
item: true,
|
|
12615
12854
|
container: true,
|
|
12855
|
+
sx: columns.column4
|
|
12856
|
+
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
12616
12857
|
item: true,
|
|
12617
|
-
|
|
12618
|
-
|
|
12619
|
-
|
|
12620
|
-
|
|
12621
|
-
|
|
12622
|
-
|
|
12623
|
-
|
|
12624
|
-
|
|
12625
|
-
},
|
|
12626
|
-
sx:
|
|
12627
|
-
height: 15
|
|
12628
|
-
})
|
|
12629
|
-
}, layer["abstract"]), layer.path.length > 0 && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12630
|
-
sx: Object.assign(Object.assign({}, layerInfoStyle), {
|
|
12631
|
-
height: ((_b = layer.keywords) === null || _b === void 0 ? void 0 : _b.length) ? 15 : 30
|
|
12632
|
-
})
|
|
12633
|
-
}, "Groups: ", layer.path.join(' / ')), ((_c = layer.keywords) === null || _c === void 0 ? void 0 : _c.length) > 0 && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12634
|
-
sx: Object.assign(Object.assign({}, layerInfoStyle), {
|
|
12635
|
-
height: layer.path.length ? 15 : 30
|
|
12636
|
-
})
|
|
12858
|
+
sx: columns.column5
|
|
12859
|
+
}, /*#__PURE__*/React__default.createElement(LayerListDimensions, {
|
|
12860
|
+
dimensions: dimensions
|
|
12861
|
+
})), /*#__PURE__*/React__default.createElement(Grid, {
|
|
12862
|
+
item: true,
|
|
12863
|
+
sx: columns.column6
|
|
12864
|
+
}, layer.path.length > 0 && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12865
|
+
sx: layerInfoStyle
|
|
12866
|
+
}, "Groups: ", layer.path.join(' / ')), ((_a = layer.keywords) === null || _a === void 0 ? void 0 : _a.length) > 0 && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12867
|
+
sx: layerInfoStyle
|
|
12637
12868
|
}, "Keywords:", ' ', layer.keywords.slice().sort(function (a, b) {
|
|
12638
12869
|
return a.localeCompare(b);
|
|
12639
|
-
}).join(', ')))
|
|
12870
|
+
}).join(', ')))))), /*#__PURE__*/React__default.createElement(Grid, {
|
|
12640
12871
|
container: true,
|
|
12641
12872
|
item: true,
|
|
12642
|
-
|
|
12873
|
+
sx: columns.column9,
|
|
12643
12874
|
justifyContent: "flex-end",
|
|
12644
12875
|
alignItems: "center"
|
|
12645
12876
|
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
12646
|
-
sx:
|
|
12647
|
-
width: '80px',
|
|
12648
|
-
height: '48px',
|
|
12649
|
-
marginRight: '8px'
|
|
12650
|
-
}
|
|
12877
|
+
sx: columns.column7
|
|
12651
12878
|
}, /*#__PURE__*/React__default.createElement(LayerAddRemoveButton, {
|
|
12652
12879
|
layer: layer,
|
|
12653
12880
|
layerIndex: layerIndex,
|
|
@@ -12658,42 +12885,36 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
12658
12885
|
}))));
|
|
12659
12886
|
};
|
|
12660
12887
|
|
|
12888
|
+
/* *
|
|
12889
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12890
|
+
* you may not use this file except in compliance with the License.
|
|
12891
|
+
* You may obtain a copy of the License at
|
|
12892
|
+
*
|
|
12893
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12894
|
+
*
|
|
12895
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12896
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12897
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12898
|
+
* See the License for the specific language governing permissions and
|
|
12899
|
+
* limitations under the License.
|
|
12900
|
+
*
|
|
12901
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12902
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12903
|
+
* */
|
|
12904
|
+
|
|
12661
12905
|
var LayerList = function LayerList(_ref) {
|
|
12662
12906
|
var services = _ref.services,
|
|
12663
|
-
|
|
12907
|
+
filteredLayers = _ref.filteredLayers,
|
|
12664
12908
|
layerSelectHeight = _ref.layerSelectHeight,
|
|
12665
12909
|
serviceListHeight = _ref.serviceListHeight,
|
|
12910
|
+
layerSelectWidth = _ref.layerSelectWidth,
|
|
12666
12911
|
addLayer = _ref.addLayer,
|
|
12667
12912
|
deleteLayer = _ref.deleteLayer,
|
|
12668
|
-
searchString = _ref.searchString,
|
|
12669
12913
|
mapLayers = _ref.mapLayers,
|
|
12670
|
-
filterIds = _ref.filterIds,
|
|
12671
|
-
allFiltersActive = _ref.allFiltersActive,
|
|
12672
12914
|
mapId = _ref.mapId;
|
|
12915
|
+
var rowMargin = 4;
|
|
12916
|
+
var rowHeight = widthToRowHeight(layerSelectWidth);
|
|
12673
12917
|
var layerSelectFilterHeight = 155 + serviceListHeight;
|
|
12674
|
-
|
|
12675
|
-
var _React$useState = React.useState(0),
|
|
12676
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
12677
|
-
numberOfLayers = _React$useState2[0],
|
|
12678
|
-
setNumberOfLayers = _React$useState2[1];
|
|
12679
|
-
|
|
12680
|
-
var _React$useState3 = React.useState([]),
|
|
12681
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
12682
|
-
layersFilteredFromService = _React$useState4[0],
|
|
12683
|
-
setLayersFilteredFromService = _React$useState4[1];
|
|
12684
|
-
|
|
12685
|
-
React.useEffect(function () {
|
|
12686
|
-
setNumberOfLayers(serviceIds.reduce(function (totalNumberOfLayers, serviceId) {
|
|
12687
|
-
return totalNumberOfLayers + filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString).length;
|
|
12688
|
-
}, 0));
|
|
12689
|
-
setLayersFilteredFromService(serviceIds.reduce(function (layerList, serviceId) {
|
|
12690
|
-
return layerList.concat(filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString).map(function (layer) {
|
|
12691
|
-
return Object.assign(Object.assign({}, layer), {
|
|
12692
|
-
serviceId: serviceId
|
|
12693
|
-
});
|
|
12694
|
-
}));
|
|
12695
|
-
}, []));
|
|
12696
|
-
}, [serviceIds, filterIds, services, searchString, allFiltersActive]);
|
|
12697
12918
|
return /*#__PURE__*/React.createElement(Box, {
|
|
12698
12919
|
"data-testid": "layerList"
|
|
12699
12920
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
@@ -12701,24 +12922,27 @@ var LayerList = function LayerList(_ref) {
|
|
|
12701
12922
|
marginBottom: '4px',
|
|
12702
12923
|
fontSize: '12px'
|
|
12703
12924
|
}
|
|
12704
|
-
},
|
|
12925
|
+
}, filteredLayers.length, " results"), /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
12705
12926
|
height: layerSelectHeight - layerSelectFilterHeight,
|
|
12706
|
-
itemCount:
|
|
12707
|
-
itemSize:
|
|
12927
|
+
itemCount: filteredLayers.length,
|
|
12928
|
+
itemSize: rowHeight + rowMargin
|
|
12708
12929
|
}, function (_ref2) {
|
|
12709
12930
|
var index = _ref2.index,
|
|
12710
12931
|
style = _ref2.style;
|
|
12932
|
+
var filter = filteredLayers[index];
|
|
12933
|
+
var service = services[filter.serviceName];
|
|
12711
12934
|
return /*#__PURE__*/React.createElement("div", {
|
|
12712
12935
|
style: style,
|
|
12713
|
-
key:
|
|
12714
|
-
},
|
|
12715
|
-
layer:
|
|
12936
|
+
key: filter.name
|
|
12937
|
+
}, service && /*#__PURE__*/React.createElement(LayerListRow, {
|
|
12938
|
+
layer: filter,
|
|
12716
12939
|
layerIndex: index,
|
|
12717
|
-
service:
|
|
12940
|
+
service: service,
|
|
12718
12941
|
addLayer: addLayer,
|
|
12719
12942
|
deleteLayer: deleteLayer,
|
|
12720
12943
|
mapLayers: mapLayers,
|
|
12721
|
-
mapId: mapId
|
|
12944
|
+
mapId: mapId,
|
|
12945
|
+
layerSelectWidth: layerSelectWidth
|
|
12722
12946
|
}));
|
|
12723
12947
|
}));
|
|
12724
12948
|
};
|
|
@@ -12743,14 +12967,12 @@ var LayerList = function LayerList(_ref) {
|
|
|
12743
12967
|
var LayerListConnect = function LayerListConnect(_ref) {
|
|
12744
12968
|
var mapId = _ref.mapId,
|
|
12745
12969
|
layerSelectHeight = _ref.layerSelectHeight,
|
|
12746
|
-
serviceListHeight = _ref.serviceListHeight
|
|
12970
|
+
serviceListHeight = _ref.serviceListHeight,
|
|
12971
|
+
layerSelectWidth = _ref.layerSelectWidth;
|
|
12972
|
+
var dispatch = useDispatch();
|
|
12747
12973
|
var services = useSelector(function (store) {
|
|
12748
12974
|
return getServices(store);
|
|
12749
12975
|
});
|
|
12750
|
-
var dispatch = useDispatch();
|
|
12751
|
-
var enabledServiceIds = useSelector(function (store) {
|
|
12752
|
-
return getEnabledServiceIds(store);
|
|
12753
|
-
});
|
|
12754
12976
|
var mapLayers = useSelector(function (store) {
|
|
12755
12977
|
return getMapLayers(store, mapId);
|
|
12756
12978
|
});
|
|
@@ -12765,7 +12987,6 @@ var LayerListConnect = function LayerListConnect(_ref) {
|
|
|
12765
12987
|
layerType: LayerType$1.mapLayer
|
|
12766
12988
|
};
|
|
12767
12989
|
addMapLayer({
|
|
12768
|
-
mapId: mapId,
|
|
12769
12990
|
layerId: layer.id,
|
|
12770
12991
|
layer: layer,
|
|
12771
12992
|
origin: LayerActionOrigin.layerManager
|
|
@@ -12793,25 +13014,17 @@ var LayerListConnect = function LayerListConnect(_ref) {
|
|
|
12793
13014
|
origin: LayerActionOrigin.layerManager
|
|
12794
13015
|
}));
|
|
12795
13016
|
}, [dispatch, mapId]);
|
|
12796
|
-
var
|
|
12797
|
-
return
|
|
12798
|
-
});
|
|
12799
|
-
var allFiltersActive = useSelector(function (store) {
|
|
12800
|
-
return isAllFiltersChecked(store);
|
|
12801
|
-
});
|
|
12802
|
-
var searchString = useSelector(function (store) {
|
|
12803
|
-
return getSearchFilter(store);
|
|
13017
|
+
var filteredLayers = useSelector(function (store) {
|
|
13018
|
+
return getFilteredLayers(store);
|
|
12804
13019
|
});
|
|
12805
13020
|
return /*#__PURE__*/React.createElement(LayerList, {
|
|
13021
|
+
filteredLayers: filteredLayers,
|
|
12806
13022
|
services: services,
|
|
12807
|
-
serviceIds: enabledServiceIds,
|
|
12808
13023
|
layerSelectHeight: layerSelectHeight,
|
|
12809
13024
|
serviceListHeight: serviceListHeight,
|
|
13025
|
+
layerSelectWidth: layerSelectWidth,
|
|
12810
13026
|
addLayer: addLayer,
|
|
12811
13027
|
deleteLayer: deleteLayer,
|
|
12812
|
-
filterIds: checkedFilterIds,
|
|
12813
|
-
allFiltersActive: allFiltersActive,
|
|
12814
|
-
searchString: searchString,
|
|
12815
13028
|
mapLayers: mapLayers,
|
|
12816
13029
|
mapId: mapId
|
|
12817
13030
|
});
|
|
@@ -12835,13 +13048,13 @@ var LayerListConnect = function LayerListConnect(_ref) {
|
|
|
12835
13048
|
* */
|
|
12836
13049
|
var style = {
|
|
12837
13050
|
borderRadius: '20px!important',
|
|
12838
|
-
marginRight: '
|
|
13051
|
+
marginRight: '4px',
|
|
12839
13052
|
whiteSpace: 'nowrap',
|
|
12840
|
-
height: '
|
|
13053
|
+
height: '24px!important',
|
|
12841
13054
|
padding: '5px 12px!important',
|
|
12842
13055
|
textTransform: 'none!important',
|
|
12843
13056
|
fontWeight: 'normal',
|
|
12844
|
-
marginBottom: '
|
|
13057
|
+
marginBottom: '4px'
|
|
12845
13058
|
};
|
|
12846
13059
|
|
|
12847
13060
|
var ServiceChip = function ServiceChip(_ref) {
|
|
@@ -12996,9 +13209,9 @@ var ServiceList = function ServiceList(_ref) {
|
|
|
12996
13209
|
display: 'block',
|
|
12997
13210
|
alignItems: 'center',
|
|
12998
13211
|
"float": 'left',
|
|
12999
|
-
paddingLeft: '
|
|
13000
|
-
paddingRight: '
|
|
13001
|
-
marginBottom: '
|
|
13212
|
+
paddingLeft: '48px',
|
|
13213
|
+
paddingRight: '40px',
|
|
13214
|
+
marginBottom: '8px',
|
|
13002
13215
|
fontSize: '0.875rem'
|
|
13003
13216
|
},
|
|
13004
13217
|
ref: ref
|
|
@@ -13154,8 +13367,9 @@ var Rows = function Rows(_ref2) {
|
|
|
13154
13367
|
var _services$serviceId = services[serviceId],
|
|
13155
13368
|
serviceUrl = _services$serviceId.serviceUrl,
|
|
13156
13369
|
serviceName = _services$serviceId.serviceName,
|
|
13157
|
-
|
|
13370
|
+
scope = _services$serviceId.scope;
|
|
13158
13371
|
var serviceHasActiveLayers = checkIfServiceHasActiveLayers(serviceUrl);
|
|
13372
|
+
var userAddedService = isUserAddedService(scope);
|
|
13159
13373
|
return /*#__PURE__*/React.createElement(ListItem, {
|
|
13160
13374
|
key: serviceUrl
|
|
13161
13375
|
}, /*#__PURE__*/React.createElement(ListItemText, {
|
|
@@ -13178,7 +13392,7 @@ var Rows = function Rows(_ref2) {
|
|
|
13178
13392
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
13179
13393
|
item: true,
|
|
13180
13394
|
xs: 6
|
|
13181
|
-
},
|
|
13395
|
+
}, userAddedService ? /*#__PURE__*/React.createElement(Tooltip, {
|
|
13182
13396
|
title: "Edit Service"
|
|
13183
13397
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
13184
13398
|
"aria-label": "edit service",
|
|
@@ -13209,7 +13423,7 @@ var Rows = function Rows(_ref2) {
|
|
|
13209
13423
|
}, /*#__PURE__*/React.createElement(Visibility, null))))), /*#__PURE__*/React.createElement(Grid, {
|
|
13210
13424
|
item: true,
|
|
13211
13425
|
xs: 6
|
|
13212
|
-
},
|
|
13426
|
+
}, userAddedService && /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
13213
13427
|
title: serviceHasActiveLayers ? 'Service has active layers. Cannot remove this service' : 'Delete Service',
|
|
13214
13428
|
"data-testid": "removeServiceTooltip"
|
|
13215
13429
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
@@ -13308,15 +13522,20 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
13308
13522
|
_ref$order = _ref.order,
|
|
13309
13523
|
order = _ref$order === void 0 ? 0 : _ref$order,
|
|
13310
13524
|
_ref$source = _ref.source,
|
|
13311
|
-
source = _ref$source === void 0 ? 'module' : _ref$source
|
|
13525
|
+
source = _ref$source === void 0 ? 'module' : _ref$source,
|
|
13526
|
+
_ref$startSize = _ref.startSize,
|
|
13527
|
+
startSize = _ref$startSize === void 0 ? {
|
|
13528
|
+
width: 750,
|
|
13529
|
+
height: 500
|
|
13530
|
+
} : _ref$startSize;
|
|
13312
13531
|
var initialServiceListHeight = 37;
|
|
13313
13532
|
|
|
13314
|
-
var _React$useState = React.useState(
|
|
13533
|
+
var _React$useState = React.useState(startSize.height),
|
|
13315
13534
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
13316
13535
|
height = _React$useState2[0],
|
|
13317
13536
|
setHeight = _React$useState2[1];
|
|
13318
13537
|
|
|
13319
|
-
var _React$useState3 = React.useState(
|
|
13538
|
+
var _React$useState3 = React.useState(startSize.width),
|
|
13320
13539
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
13321
13540
|
width = _React$useState4[0],
|
|
13322
13541
|
setWidth = _React$useState4[1];
|
|
@@ -13345,7 +13564,7 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
13345
13564
|
width: width,
|
|
13346
13565
|
height: height
|
|
13347
13566
|
},
|
|
13348
|
-
minWidth:
|
|
13567
|
+
minWidth: 320,
|
|
13349
13568
|
minHeight: 126,
|
|
13350
13569
|
startPosition: {
|
|
13351
13570
|
top: 150,
|
|
@@ -13362,13 +13581,13 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
13362
13581
|
source: source
|
|
13363
13582
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
13364
13583
|
sx: {
|
|
13365
|
-
padding: '
|
|
13584
|
+
padding: '4px 16px 0 16px'
|
|
13366
13585
|
}
|
|
13367
13586
|
}, /*#__PURE__*/React.createElement(SearchFieldConnect, null)), /*#__PURE__*/React.createElement(Box, {
|
|
13368
13587
|
sx: {
|
|
13369
13588
|
"float": 'left',
|
|
13370
13589
|
position: 'absolute',
|
|
13371
|
-
margin: '
|
|
13590
|
+
margin: '8px 8px 0 16px',
|
|
13372
13591
|
zIndex: 2
|
|
13373
13592
|
}
|
|
13374
13593
|
}, /*#__PURE__*/React.createElement(KeywordFilterButtonConnect, {
|
|
@@ -13376,7 +13595,7 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
13376
13595
|
})), /*#__PURE__*/React.createElement(Box, {
|
|
13377
13596
|
sx: {
|
|
13378
13597
|
position: 'absolute',
|
|
13379
|
-
margin: '
|
|
13598
|
+
margin: '8px 0 0 calc(100% - 40px)',
|
|
13380
13599
|
zIndex: 2
|
|
13381
13600
|
}
|
|
13382
13601
|
}, /*#__PURE__*/React.createElement(ServiceOptionsButton, {
|
|
@@ -13385,12 +13604,13 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
13385
13604
|
setHeight: handleHeightChange
|
|
13386
13605
|
})), /*#__PURE__*/React.createElement(Box, {
|
|
13387
13606
|
sx: {
|
|
13388
|
-
padding: '0
|
|
13607
|
+
padding: '0 16px'
|
|
13389
13608
|
}
|
|
13390
13609
|
}, /*#__PURE__*/React.createElement(LayerListConnect, {
|
|
13391
13610
|
mapId: mapId,
|
|
13392
13611
|
layerSelectHeight: height,
|
|
13393
|
-
serviceListHeight: serviceListHeight
|
|
13612
|
+
serviceListHeight: serviceListHeight,
|
|
13613
|
+
layerSelectWidth: width
|
|
13394
13614
|
})));
|
|
13395
13615
|
};
|
|
13396
13616
|
|
|
@@ -13783,7 +14003,7 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
|
|
|
13783
14003
|
var KeywordFilterResultsConnect = function KeywordFilterResultsConnect(_ref) {
|
|
13784
14004
|
var bounds = _ref.bounds;
|
|
13785
14005
|
|
|
13786
|
-
var _useSetupDialog = useSetupDialog(
|
|
14006
|
+
var _useSetupDialog = useSetupDialog(DialogTypes.KeywordFilter),
|
|
13787
14007
|
dialogOrder = _useSetupDialog.dialogOrder,
|
|
13788
14008
|
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
13789
14009
|
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
@@ -13870,10 +14090,10 @@ var LayerSelectConnect = function LayerSelectConnect(_ref) {
|
|
|
13870
14090
|
_ref$showTitle = _ref.showTitle,
|
|
13871
14091
|
showTitle = _ref$showTitle === void 0 ? false : _ref$showTitle;
|
|
13872
14092
|
var mapId = useSelector(function (store) {
|
|
13873
|
-
return getDialogMapId(store,
|
|
14093
|
+
return getDialogMapId(store, DialogTypes.LayerSelect);
|
|
13874
14094
|
});
|
|
13875
14095
|
|
|
13876
|
-
var _useSetupDialog = useSetupDialog(
|
|
14096
|
+
var _useSetupDialog = useSetupDialog(DialogTypes.LayerSelect),
|
|
13877
14097
|
dialogOrder = _useSetupDialog.dialogOrder,
|
|
13878
14098
|
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
13879
14099
|
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
@@ -13905,11 +14125,6 @@ var useFetchServices = function useFetchServices(dialogType) {
|
|
|
13905
14125
|
var serviceSetLayers = React.useCallback(function (payload) {
|
|
13906
14126
|
dispatch(serviceActions.serviceSetLayers(payload));
|
|
13907
14127
|
}, [dispatch]);
|
|
13908
|
-
|
|
13909
|
-
var checkIfUserAddedService = function checkIfUserAddedService(service) {
|
|
13910
|
-
return !!service.isUserAddedService;
|
|
13911
|
-
};
|
|
13912
|
-
|
|
13913
14128
|
React.useEffect(function () {
|
|
13914
14129
|
if (isOpenInStore && preloadedServices && preloadedServices.length > 0) {
|
|
13915
14130
|
mergePresetsAndUserAddedServices(preloadedServices, getUserAddedServices()).forEach(function (service) {
|
|
@@ -13921,7 +14136,7 @@ var useFetchServices = function useFetchServices(dialogType) {
|
|
|
13921
14136
|
name: service.name,
|
|
13922
14137
|
serviceUrl: service.url,
|
|
13923
14138
|
layers: layers,
|
|
13924
|
-
|
|
14139
|
+
scope: service.scope ? service.scope : 'system',
|
|
13925
14140
|
// first try to load the user abstract, otherwise the service abstract
|
|
13926
14141
|
"abstract": service["abstract"] || wmService["abstract"]
|
|
13927
14142
|
});
|
|
@@ -13956,7 +14171,7 @@ var mergePresetsAndUserAddedServices = function mergePresetsAndUserAddedServices
|
|
|
13956
14171
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13957
14172
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
13958
14173
|
* */
|
|
13959
|
-
var dialogType =
|
|
14174
|
+
var dialogType = DialogTypes.LayerManager;
|
|
13960
14175
|
/**
|
|
13961
14176
|
* Layer Managerconnected to the store displaying the layers forthe active map Id
|
|
13962
14177
|
* Please note that in order to use this and open/close the dialog, every map on the screen that should be able to show
|
|
@@ -14117,7 +14332,7 @@ var ZoomControlConnect = function ZoomControlConnect(_ref) {
|
|
|
14117
14332
|
}, [mapId]);
|
|
14118
14333
|
|
|
14119
14334
|
var onZoomIn = function onZoomIn() {
|
|
14120
|
-
return adagucRef.current.zoomIn();
|
|
14335
|
+
return adagucRef.current.zoomIn(undefined);
|
|
14121
14336
|
};
|
|
14122
14337
|
|
|
14123
14338
|
var onZoomOut = function onZoomOut() {
|
|
@@ -14204,14 +14419,14 @@ var LayerManagerMapButtonConnect = function LayerManagerMapButtonConnect(_ref) {
|
|
|
14204
14419
|
source = _ref$source === void 0 ? 'app' : _ref$source;
|
|
14205
14420
|
var dispatch = useDispatch();
|
|
14206
14421
|
var currentActiveMapId = useSelector(function (store) {
|
|
14207
|
-
return getDialogMapId(store,
|
|
14422
|
+
return getDialogMapId(store, DialogTypes.LayerManager);
|
|
14208
14423
|
});
|
|
14209
14424
|
var isOpenInStore = useSelector(function (store) {
|
|
14210
|
-
return getisDialogOpen(store,
|
|
14425
|
+
return getisDialogOpen(store, DialogTypes.LayerManager);
|
|
14211
14426
|
});
|
|
14212
14427
|
var openLayerManagerDialog = React.useCallback(function () {
|
|
14213
14428
|
dispatch(uiActions.setActiveMapIdForDialog({
|
|
14214
|
-
type:
|
|
14429
|
+
type: DialogTypes.LayerManager,
|
|
14215
14430
|
mapId: mapId,
|
|
14216
14431
|
setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
|
|
14217
14432
|
source: source
|
|
@@ -14327,7 +14542,7 @@ var DimensionSelectSlider = function DimensionSelectSlider(_ref) {
|
|
|
14327
14542
|
}
|
|
14328
14543
|
|
|
14329
14544
|
var sortedMarks = _toConsumableArray(marks).sort(function (a, b) {
|
|
14330
|
-
return typeof a.value === 'number' && typeof b.value === 'number' && a.value - b.value;
|
|
14545
|
+
return Number(typeof a.value === 'number' && typeof b.value === 'number' && a.value - b.value);
|
|
14331
14546
|
});
|
|
14332
14547
|
|
|
14333
14548
|
var adaptedMarks = reverse ? sortedMarks.reverse() : sortedMarks;
|
|
@@ -14815,9 +15030,7 @@ var titleOff = 'Auto update off';
|
|
|
14815
15030
|
|
|
14816
15031
|
var AutoUpdateButton = function AutoUpdateButton(_ref) {
|
|
14817
15032
|
var _ref$toggleAutoUpdate = _ref.toggleAutoUpdate,
|
|
14818
|
-
toggleAutoUpdate = _ref$toggleAutoUpdate === void 0 ? function () {
|
|
14819
|
-
return null;
|
|
14820
|
-
} : _ref$toggleAutoUpdate,
|
|
15033
|
+
toggleAutoUpdate = _ref$toggleAutoUpdate === void 0 ? function () {} : _ref$toggleAutoUpdate,
|
|
14821
15034
|
_ref$isAutoUpdating = _ref.isAutoUpdating,
|
|
14822
15035
|
isAutoUpdating = _ref$isAutoUpdating === void 0 ? false : _ref$isAutoUpdating,
|
|
14823
15036
|
_ref$disabled = _ref.disabled,
|
|
@@ -15074,9 +15287,7 @@ var TimeStepButton = function TimeStepButton(_ref) {
|
|
|
15074
15287
|
timeDimension = _ref.timeDimension,
|
|
15075
15288
|
onChangeTimeStep = _ref.onChangeTimeStep,
|
|
15076
15289
|
_ref$onToggleTimestep = _ref.onToggleTimestepAuto,
|
|
15077
|
-
onToggleTimestepAuto = _ref$onToggleTimestep === void 0 ? function () {
|
|
15078
|
-
return null;
|
|
15079
|
-
} : _ref$onToggleTimestep,
|
|
15290
|
+
onToggleTimestepAuto = _ref$onToggleTimestep === void 0 ? function () {} : _ref$onToggleTimestep,
|
|
15080
15291
|
_ref$isOpenByDefault = _ref.isOpenByDefault,
|
|
15081
15292
|
isOpenByDefault = _ref$isOpenByDefault === void 0 ? false : _ref$isOpenByDefault;
|
|
15082
15293
|
var timeStepFromLayer = getActiveLayerTimeStep(timeDimension) || timeStep;
|
|
@@ -15107,6 +15318,129 @@ var TimeStepButton = function TimeStepButton(_ref) {
|
|
|
15107
15318
|
});
|
|
15108
15319
|
};
|
|
15109
15320
|
|
|
15321
|
+
/* *
|
|
15322
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
15323
|
+
* you may not use this file except in compliance with the License.
|
|
15324
|
+
* You may obtain a copy of the License at
|
|
15325
|
+
*
|
|
15326
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15327
|
+
*
|
|
15328
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15329
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15330
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15331
|
+
* See the License for the specific language governing permissions and
|
|
15332
|
+
* limitations under the License.
|
|
15333
|
+
*
|
|
15334
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
15335
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
15336
|
+
* */
|
|
15337
|
+
var marks = [{
|
|
15338
|
+
label: '5 min',
|
|
15339
|
+
value: Scale.Minutes5,
|
|
15340
|
+
text: '5m'
|
|
15341
|
+
}, {
|
|
15342
|
+
label: '1 h',
|
|
15343
|
+
value: Scale.Hour,
|
|
15344
|
+
text: '1h'
|
|
15345
|
+
}, {
|
|
15346
|
+
label: '3 h',
|
|
15347
|
+
value: Scale.Hours3,
|
|
15348
|
+
text: '3h'
|
|
15349
|
+
}, {
|
|
15350
|
+
label: '6 h',
|
|
15351
|
+
value: Scale.Hours6,
|
|
15352
|
+
text: '6h'
|
|
15353
|
+
}, {
|
|
15354
|
+
label: 'day',
|
|
15355
|
+
value: Scale.Day,
|
|
15356
|
+
text: 'd'
|
|
15357
|
+
}, {
|
|
15358
|
+
label: 'week',
|
|
15359
|
+
value: Scale.Week,
|
|
15360
|
+
text: 'w'
|
|
15361
|
+
}, {
|
|
15362
|
+
label: 'month',
|
|
15363
|
+
value: Scale.Month,
|
|
15364
|
+
text: 'm'
|
|
15365
|
+
}, {
|
|
15366
|
+
label: 'year',
|
|
15367
|
+
value: Scale.Year,
|
|
15368
|
+
text: 'y'
|
|
15369
|
+
}, {
|
|
15370
|
+
label: 'data',
|
|
15371
|
+
value: Scale.DataScale,
|
|
15372
|
+
text: 'data'
|
|
15373
|
+
}].sort(function (a, b) {
|
|
15374
|
+
return b.value - a.value;
|
|
15375
|
+
});
|
|
15376
|
+
var TimeScaleButton = function TimeScaleButton(_ref) {
|
|
15377
|
+
var layers = _ref.layers,
|
|
15378
|
+
_ref$timeSliderScale = _ref.timeSliderScale,
|
|
15379
|
+
timeSliderScale = _ref$timeSliderScale === void 0 ? Scale.Hour : _ref$timeSliderScale,
|
|
15380
|
+
centerTime = _ref.centerTime,
|
|
15381
|
+
secondsPerPx = _ref.secondsPerPx,
|
|
15382
|
+
selectedTime = _ref.selectedTime,
|
|
15383
|
+
onChangeTimeSliderScale = _ref.onChangeTimeSliderScale;
|
|
15384
|
+
|
|
15385
|
+
var onChangeSliderValue = function onChangeSliderValue(mark) {
|
|
15386
|
+
var newSliderValue = mark.value;
|
|
15387
|
+
var newValue = newSliderValue ? Math.round(newSliderValue) : 0;
|
|
15388
|
+
var newScale = marks.find(function (el) {
|
|
15389
|
+
return el.value === newValue;
|
|
15390
|
+
}).value;
|
|
15391
|
+
var scaleToSecPerPx = newScale === Scale.DataScale ? getScaleToSecondsPerPxForDataScale(layers) : scaleToSecondsPerPx[newScale];
|
|
15392
|
+
var newCenterTime = getNewCenterOfFixedPointZoom(selectedTime, secondsPerPx, scaleToSecPerPx, centerTime);
|
|
15393
|
+
onChangeTimeSliderScale(newScale, newCenterTime, scaleToSecPerPx);
|
|
15394
|
+
};
|
|
15395
|
+
|
|
15396
|
+
return /*#__PURE__*/React.createElement(TimeSliderMenu, {
|
|
15397
|
+
handleMenuItemClick: onChangeSliderValue,
|
|
15398
|
+
icon: /*#__PURE__*/React.createElement(Clock, null),
|
|
15399
|
+
marks: marks,
|
|
15400
|
+
title: "Time scale",
|
|
15401
|
+
value: timeSliderScale
|
|
15402
|
+
});
|
|
15403
|
+
};
|
|
15404
|
+
|
|
15405
|
+
/* *
|
|
15406
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
15407
|
+
* you may not use this file except in compliance with the License.
|
|
15408
|
+
* You may obtain a copy of the License at
|
|
15409
|
+
*
|
|
15410
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15411
|
+
*
|
|
15412
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
15413
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15414
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15415
|
+
* See the License for the specific language governing permissions and
|
|
15416
|
+
* limitations under the License.
|
|
15417
|
+
*
|
|
15418
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
15419
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
15420
|
+
* */
|
|
15421
|
+
var title = 'Now';
|
|
15422
|
+
|
|
15423
|
+
var NowButton = function NowButton(_ref) {
|
|
15424
|
+
var _ref$onSetNow = _ref.onSetNow,
|
|
15425
|
+
onSetNow = _ref$onSetNow === void 0 ? function () {
|
|
15426
|
+
return null;
|
|
15427
|
+
} : _ref$onSetNow,
|
|
15428
|
+
_ref$disabled = _ref.disabled,
|
|
15429
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled;
|
|
15430
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
15431
|
+
title: title,
|
|
15432
|
+
"data-testid": "nowButtonTooltip"
|
|
15433
|
+
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(ToolButton, {
|
|
15434
|
+
disabled: disabled,
|
|
15435
|
+
onClick: function onClick() {
|
|
15436
|
+
return onSetNow();
|
|
15437
|
+
},
|
|
15438
|
+
"aria-label": "now"
|
|
15439
|
+
}, /*#__PURE__*/React.createElement(Now, {
|
|
15440
|
+
"data-testid": "now-svg"
|
|
15441
|
+
}))));
|
|
15442
|
+
};
|
|
15443
|
+
|
|
15110
15444
|
var OptionsPopOver = styled(Popover)(function (_ref) {
|
|
15111
15445
|
var theme = _ref.theme;
|
|
15112
15446
|
return {
|
|
@@ -15119,9 +15453,11 @@ var OptionsPopOver = styled(Popover)(function (_ref) {
|
|
|
15119
15453
|
});
|
|
15120
15454
|
|
|
15121
15455
|
var OptionsMenuButton = function OptionsMenuButton(_ref2) {
|
|
15122
|
-
var
|
|
15456
|
+
var nowBtn = _ref2.nowBtn,
|
|
15457
|
+
autoUpdateBtn = _ref2.autoUpdateBtn,
|
|
15123
15458
|
speedBtn = _ref2.speedBtn,
|
|
15124
|
-
timeStepBtn = _ref2.timeStepBtn
|
|
15459
|
+
timeStepBtn = _ref2.timeStepBtn,
|
|
15460
|
+
timeScaleBtn = _ref2.timeScaleBtn;
|
|
15125
15461
|
|
|
15126
15462
|
var _React$useState = React.useState(null),
|
|
15127
15463
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -15144,10 +15480,9 @@ var OptionsMenuButton = function OptionsMenuButton(_ref2) {
|
|
|
15144
15480
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(ToolButton, {
|
|
15145
15481
|
onClick: onClickButton,
|
|
15146
15482
|
"data-testid": "optionsMenuButton",
|
|
15147
|
-
active: open
|
|
15148
|
-
|
|
15149
|
-
|
|
15150
|
-
})))), /*#__PURE__*/React.createElement(OptionsPopOver, {
|
|
15483
|
+
active: open,
|
|
15484
|
+
"aria-label": "animation options"
|
|
15485
|
+
}, /*#__PURE__*/React.createElement(Options, null)))), /*#__PURE__*/React.createElement(OptionsPopOver, {
|
|
15151
15486
|
id: id,
|
|
15152
15487
|
open: open,
|
|
15153
15488
|
"data-testid": "optionsMenuPopOver",
|
|
@@ -15167,19 +15502,27 @@ var OptionsMenuButton = function OptionsMenuButton(_ref2) {
|
|
|
15167
15502
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
15168
15503
|
item: true,
|
|
15169
15504
|
xs: "auto"
|
|
15505
|
+
}, nowBtn || /*#__PURE__*/React.createElement(NowButton, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
15506
|
+
item: true,
|
|
15507
|
+
xs: "auto"
|
|
15508
|
+
}, timeScaleBtn || /*#__PURE__*/React.createElement(TimeScaleButton, {
|
|
15509
|
+
centerTime: 0,
|
|
15510
|
+
onChangeTimeSliderScale: function onChangeTimeSliderScale() {},
|
|
15511
|
+
secondsPerPx: 0,
|
|
15512
|
+
selectedTime: 0,
|
|
15513
|
+
timeSliderScale: 0
|
|
15514
|
+
})), /*#__PURE__*/React.createElement(Grid, {
|
|
15515
|
+
item: true,
|
|
15516
|
+
xs: "auto"
|
|
15170
15517
|
}, timeStepBtn || /*#__PURE__*/React.createElement(TimeStepButton, {
|
|
15171
15518
|
timeStep: 0,
|
|
15172
|
-
onChangeTimeStep: function onChangeTimeStep() {
|
|
15173
|
-
return null;
|
|
15174
|
-
}
|
|
15519
|
+
onChangeTimeStep: function onChangeTimeStep() {}
|
|
15175
15520
|
})), /*#__PURE__*/React.createElement(Grid, {
|
|
15176
15521
|
item: true,
|
|
15177
15522
|
xs: "auto"
|
|
15178
15523
|
}, speedBtn || /*#__PURE__*/React.createElement(SpeedButton, {
|
|
15179
15524
|
animationDelay: defaultAnimationDelayAtStart,
|
|
15180
|
-
setMapAnimationDelay: function setMapAnimationDelay() {
|
|
15181
|
-
return null;
|
|
15182
|
-
}
|
|
15525
|
+
setMapAnimationDelay: function setMapAnimationDelay() {}
|
|
15183
15526
|
})), /*#__PURE__*/React.createElement(Grid, {
|
|
15184
15527
|
item: true,
|
|
15185
15528
|
xs: "auto"
|
|
@@ -15210,10 +15553,7 @@ var TimeSliderButtons = function TimeSliderButtons(_ref) {
|
|
|
15210
15553
|
"data-testid": "timeSliderButtons"
|
|
15211
15554
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
15212
15555
|
container: true,
|
|
15213
|
-
spacing: 2
|
|
15214
|
-
sx: {
|
|
15215
|
-
padding: '20px 0px 0px 16px'
|
|
15216
|
-
}
|
|
15556
|
+
spacing: 2
|
|
15217
15557
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
15218
15558
|
item: true
|
|
15219
15559
|
}, optionsMenuBtn || /*#__PURE__*/React.createElement(OptionsMenuButton, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
@@ -15971,19 +16311,7 @@ var TimeSliderLegend = function TimeSliderLegend(_ref) {
|
|
|
15971
16311
|
React.useEffect(function () {
|
|
15972
16312
|
var handleKeyDown = function handleKeyDown(event) {
|
|
15973
16313
|
if (event.key === 'Home' && mapIsActive) {
|
|
15974
|
-
|
|
15975
|
-
if (dataEndTime < currentTime) {
|
|
15976
|
-
onSetNewDate(moment.utc(dataEndTime * 1000).toISOString());
|
|
15977
|
-
onSetCenterTime(dataEndTime);
|
|
15978
|
-
} else if (dataStartTime > currentTime) {
|
|
15979
|
-
onSetNewDate(moment.utc(dataStartTime * 1000).toISOString());
|
|
15980
|
-
onSetCenterTime(dataStartTime);
|
|
15981
|
-
} else {
|
|
15982
|
-
var closestToCurrent = roundWithTimeStep(currentTime, timeStep);
|
|
15983
|
-
onSetNewDate(moment.utc(closestToCurrent * 1000).toISOString());
|
|
15984
|
-
onSetCenterTime(closestToCurrent);
|
|
15985
|
-
}
|
|
15986
|
-
}
|
|
16314
|
+
handleSetNowEvent(timeStep, dataStartTime, dataEndTime, currentTime, onSetNewDate, onSetCenterTime);
|
|
15987
16315
|
}
|
|
15988
16316
|
};
|
|
15989
16317
|
|
|
@@ -16015,7 +16343,7 @@ var TimeSliderLegend = function TimeSliderLegend(_ref) {
|
|
|
16015
16343
|
return /*#__PURE__*/React.createElement(Box, {
|
|
16016
16344
|
"data-testid": "timeSliderLegend",
|
|
16017
16345
|
sx: {
|
|
16018
|
-
height:
|
|
16346
|
+
height: "".concat(TIME_SLIDER_LEGEND_HEIGHT, "px")
|
|
16019
16347
|
}
|
|
16020
16348
|
}, /*#__PURE__*/React.createElement(CanvasComponent, {
|
|
16021
16349
|
ref: node,
|
|
@@ -16040,264 +16368,40 @@ var TimeSliderLegend = function TimeSliderLegend(_ref) {
|
|
|
16040
16368
|
}
|
|
16041
16369
|
}
|
|
16042
16370
|
},
|
|
16043
|
-
onWheel: function onWheel(_ref2) {
|
|
16044
|
-
var deltaY = _ref2.deltaY,
|
|
16045
|
-
deltaX = _ref2.deltaX,
|
|
16046
|
-
canvasWidth = _ref2.canvasWidth,
|
|
16047
|
-
mouseX = _ref2.mouseX;
|
|
16048
|
-
zoom(deltaY, deltaX, canvasWidth, mouseX);
|
|
16049
|
-
},
|
|
16050
|
-
onMouseDown: function onMouseDown(x, y, width) {
|
|
16051
|
-
setDragged(false);
|
|
16052
|
-
setReleased(false);
|
|
16053
|
-
var selectedTimeX = timestampToPixel(selectedTime, centerTime, width, secondsPerPx);
|
|
16054
|
-
setNewSelectionTimeRequested(Math.abs(x - selectedTimeX) < NEEDLE_HANDLE_WIDTH);
|
|
16055
|
-
},
|
|
16056
|
-
onMouseUp: function onMouseUp() {
|
|
16057
|
-
setReleased(true);
|
|
16058
|
-
setNewSelectionTimeRequested(false);
|
|
16059
|
-
},
|
|
16060
|
-
onCanvasClick: function onCanvasClick(x, y, width) {
|
|
16061
|
-
var isCanvasArea = x >= 0 && x < width;
|
|
16062
|
-
|
|
16063
|
-
if (isCanvasArea) {
|
|
16064
|
-
if (isReleased && !isDragged) {
|
|
16065
|
-
setSelectedTime(x, width);
|
|
16066
|
-
}
|
|
16067
|
-
}
|
|
16068
|
-
},
|
|
16069
|
-
onRenderCanvas: function onRenderCanvas(ctx, width, height) {
|
|
16070
|
-
renderTimeSliderLegend(ctx, theme, width, height, centerTime, secondsPerPx, dataScaleToSecondsPerPx, selectedTime, scale, currentTime, localAnimationStartTime, localAnimationEndTime);
|
|
16071
|
-
}
|
|
16072
|
-
}));
|
|
16073
|
-
};
|
|
16074
|
-
|
|
16075
|
-
/* *
|
|
16076
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
16077
|
-
* you may not use this file except in compliance with the License.
|
|
16078
|
-
* You may obtain a copy of the License at
|
|
16079
|
-
*
|
|
16080
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16081
|
-
*
|
|
16082
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
16083
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
16084
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16085
|
-
* See the License for the specific language governing permissions and
|
|
16086
|
-
* limitations under the License.
|
|
16087
|
-
*
|
|
16088
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
16089
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
16090
|
-
* */
|
|
16091
|
-
var scaleSliderOtherSettings = {
|
|
16092
|
-
LEFT_PADDING: '10%'
|
|
16093
|
-
};
|
|
16094
|
-
|
|
16095
|
-
var thumbComponent = function thumbComponent(props) {
|
|
16096
|
-
var children = props.children,
|
|
16097
|
-
other = __rest(props, ["children"]);
|
|
16098
|
-
|
|
16099
|
-
return /*#__PURE__*/React.createElement(SliderThumb, Object.assign({}, other, {
|
|
16100
|
-
"data-testid": "scaleSliderSliderThumb",
|
|
16101
|
-
tabIndex: 0
|
|
16102
|
-
}), children, /*#__PURE__*/React.createElement(SliderThumb$1, null));
|
|
16103
|
-
};
|
|
16104
|
-
|
|
16105
|
-
var marks = [{
|
|
16106
|
-
text: '5 min scale',
|
|
16107
|
-
paddingLeft: '2px',
|
|
16108
|
-
value: Scale.Minutes5
|
|
16109
|
-
}, {
|
|
16110
|
-
text: '1 h scale',
|
|
16111
|
-
paddingLeft: '25px',
|
|
16112
|
-
value: Scale.Hour
|
|
16113
|
-
}, {
|
|
16114
|
-
text: '3 h scale',
|
|
16115
|
-
paddingLeft: '45px',
|
|
16116
|
-
value: Scale.Hours3
|
|
16117
|
-
}, {
|
|
16118
|
-
text: '6 h scale',
|
|
16119
|
-
paddingLeft: '65px',
|
|
16120
|
-
value: Scale.Hours6
|
|
16121
|
-
}, {
|
|
16122
|
-
text: 'day scale',
|
|
16123
|
-
paddingLeft: '80px',
|
|
16124
|
-
value: Scale.Day
|
|
16125
|
-
}, {
|
|
16126
|
-
text: 'week scale',
|
|
16127
|
-
paddingLeft: '92px',
|
|
16128
|
-
value: Scale.Week
|
|
16129
|
-
}, {
|
|
16130
|
-
text: 'month scale',
|
|
16131
|
-
paddingLeft: '107px',
|
|
16132
|
-
value: Scale.Month
|
|
16133
|
-
}, {
|
|
16134
|
-
text: 'year scale',
|
|
16135
|
-
paddingLeft: '130px',
|
|
16136
|
-
value: Scale.Year
|
|
16137
|
-
}, {
|
|
16138
|
-
text: 'data scale',
|
|
16139
|
-
paddingLeft: '140px',
|
|
16140
|
-
value: Scale.DataScale
|
|
16141
|
-
}];
|
|
16142
|
-
|
|
16143
|
-
var valueLabelFormat = function valueLabelFormat(value) {
|
|
16144
|
-
var valueNew = value.toString();
|
|
16145
|
-
return valueNew;
|
|
16146
|
-
};
|
|
16147
|
-
|
|
16148
|
-
var GeoWebScaleSlider = styled(Slider)(function (_ref) {
|
|
16149
|
-
var theme = _ref.theme;
|
|
16150
|
-
return {
|
|
16151
|
-
'&.MuiSlider-root': {
|
|
16152
|
-
height: 4,
|
|
16153
|
-
width: 167,
|
|
16154
|
-
margin: "0 0 18px ".concat(scaleSliderOtherSettings.LEFT_PADDING)
|
|
16155
|
-
},
|
|
16156
|
-
'& .MuiSlider-thumb': {
|
|
16157
|
-
backgroundColor: 'rgba(0,0,0,0)',
|
|
16158
|
-
marginTop: 0,
|
|
16159
|
-
width: 12,
|
|
16160
|
-
height: 12,
|
|
16161
|
-
color: theme.palette.geowebColors.timeSlider.timeScalePointer.fill,
|
|
16162
|
-
'& svg polygon': {
|
|
16163
|
-
filter: theme.palette.geowebColors.timeSlider.timeScaleShadowButtonScale.filter
|
|
16164
|
-
},
|
|
16165
|
-
'&:before': {
|
|
16166
|
-
display: 'none'
|
|
16167
|
-
}
|
|
16168
|
-
},
|
|
16169
|
-
'& .MuiSlider-valueLabel': {
|
|
16170
|
-
left: '20px'
|
|
16171
|
-
},
|
|
16172
|
-
'& .MuiSlider-rail': {
|
|
16173
|
-
color: theme.palette.geowebColors.timeSlider.timeScaleHorizontalScale.fill,
|
|
16174
|
-
height: 4,
|
|
16175
|
-
width: 170,
|
|
16176
|
-
borderRadius: 4.5,
|
|
16177
|
-
opacity: theme.palette.geowebColors.timeSlider.timeScaleHorizontalScale.opacity
|
|
16178
|
-
},
|
|
16179
|
-
'& .MuiSlider-mark': {
|
|
16180
|
-
backgroundColor: theme.palette.geowebColors.timeSlider.timeScaleTimeIndicators.fill,
|
|
16181
|
-
height: 6,
|
|
16182
|
-
width: 2,
|
|
16183
|
-
marginTop: -9,
|
|
16184
|
-
'&.MuiSlider-markActive': {
|
|
16185
|
-
backgroundColor: theme.palette.geowebColors.timeSlider.timeScaleTimeIndicatorsActive.fill,
|
|
16186
|
-
height: 6,
|
|
16187
|
-
width: 2,
|
|
16188
|
-
marginTop: -9
|
|
16189
|
-
}
|
|
16190
|
-
},
|
|
16191
|
-
'@media (max-width: 585px)': {
|
|
16192
|
-
'&.MuiSlider-root': {
|
|
16193
|
-
width: 110
|
|
16194
|
-
},
|
|
16195
|
-
'& .MuiSlider-rail': {
|
|
16196
|
-
width: 110
|
|
16197
|
-
}
|
|
16198
|
-
},
|
|
16199
|
-
'@media (max-width: 395px)': {
|
|
16200
|
-
'&.MuiSlider-root': {
|
|
16201
|
-
width: 60
|
|
16202
|
-
},
|
|
16203
|
-
'& .MuiSlider-rail': {
|
|
16204
|
-
width: 60
|
|
16205
|
-
}
|
|
16206
|
-
}
|
|
16207
|
-
};
|
|
16208
|
-
});
|
|
16209
|
-
var RAIL_GUTTER_OFFSET = 0.4;
|
|
16210
|
-
|
|
16211
|
-
var TimeSliderScaleSlider = function TimeSliderScaleSlider(_ref2) {
|
|
16212
|
-
var layers = _ref2.layers,
|
|
16213
|
-
_ref2$timeSliderScale = _ref2.timeSliderScale,
|
|
16214
|
-
timeSliderScale = _ref2$timeSliderScale === void 0 ? Scale.Hour : _ref2$timeSliderScale,
|
|
16215
|
-
centerTime = _ref2.centerTime,
|
|
16216
|
-
secondsPerPx = _ref2.secondsPerPx,
|
|
16217
|
-
selectedTime = _ref2.selectedTime,
|
|
16218
|
-
onChangeTimeSliderScale = _ref2.onChangeTimeSliderScale;
|
|
16219
|
-
var min = 0;
|
|
16220
|
-
var max = marks.length - 1;
|
|
16221
|
-
var value = marks.findIndex(function (mark) {
|
|
16222
|
-
return mark.value === timeSliderScale;
|
|
16223
|
-
});
|
|
16224
|
-
|
|
16225
|
-
var onChangeSliderValue = function onChangeSliderValue(newSliderValue) {
|
|
16226
|
-
var newValue = newSliderValue ? Math.round(newSliderValue) : 0;
|
|
16227
|
-
var newScale = marks.find(function (el) {
|
|
16228
|
-
return el.value === newValue;
|
|
16229
|
-
}).value;
|
|
16230
|
-
var scaleToSecPerPx = newScale === Scale.DataScale ? getScaleToSecondsPerPxForDataScale(layers) : scaleToSecondsPerPx[newScale];
|
|
16231
|
-
var newCenterTime = getNewCenterOfFixedPointZoom(selectedTime, secondsPerPx, scaleToSecPerPx, centerTime);
|
|
16232
|
-
onChangeTimeSliderScale(newScale, newCenterTime, scaleToSecPerPx);
|
|
16233
|
-
};
|
|
16234
|
-
|
|
16235
|
-
var onChange = function onChange(event, value) {
|
|
16236
|
-
if (event.type !== 'keydown') {
|
|
16237
|
-
onChangeSliderValue(value);
|
|
16238
|
-
}
|
|
16239
|
-
};
|
|
16240
|
-
|
|
16241
|
-
var onKeyDown = function onKeyDown(event) {
|
|
16242
|
-
// disable default Slider behavior
|
|
16243
|
-
event.preventDefault();
|
|
16244
|
-
event.stopPropagation(); // custom logic
|
|
16245
|
-
|
|
16246
|
-
var newValue = getValueFromKeyboardEvent(event, value, min, max, true);
|
|
16247
|
-
|
|
16248
|
-
if (newValue !== null) {
|
|
16249
|
-
onChangeSliderValue(newValue);
|
|
16250
|
-
}
|
|
16251
|
-
};
|
|
16252
|
-
|
|
16253
|
-
var _marks$find = marks.find(function (mark) {
|
|
16254
|
-
return mark.value === value;
|
|
16255
|
-
}),
|
|
16256
|
-
paddingLeft = _marks$find.paddingLeft,
|
|
16257
|
-
text = _marks$find.text;
|
|
16258
|
-
|
|
16259
|
-
var scaleTextPadding = {
|
|
16260
|
-
paddingLeft: paddingLeft
|
|
16261
|
-
};
|
|
16262
|
-
return /*#__PURE__*/React.createElement(Box, {
|
|
16263
|
-
"data-testid": "scaleSlider",
|
|
16264
|
-
sx: {
|
|
16265
|
-
backgroundColor: 'geowebColors.background.surface',
|
|
16266
|
-
width: '229px',
|
|
16267
|
-
height: '40px',
|
|
16268
|
-
paddingTop: '4px',
|
|
16269
|
-
paddingBottom: '7px',
|
|
16270
|
-
boxSizing: 'content-box'
|
|
16271
|
-
}
|
|
16272
|
-
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Box, {
|
|
16273
|
-
"data-testid": "scaleSliderText",
|
|
16274
|
-
sx: {
|
|
16275
|
-
width: '67px',
|
|
16276
|
-
height: '15px',
|
|
16277
|
-
padding: '0px 10px 0 8px',
|
|
16278
|
-
color: 'geowebColors.typographyAndIcons.text',
|
|
16279
|
-
font: '12px Roboto'
|
|
16280
|
-
},
|
|
16281
|
-
style: scaleTextPadding
|
|
16282
|
-
}, text)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(GeoWebScaleSlider, {
|
|
16283
|
-
"data-testid": "scaleSliderSlider",
|
|
16284
|
-
defaultValue: Scale.Hour,
|
|
16285
|
-
value: value,
|
|
16286
|
-
min: min - RAIL_GUTTER_OFFSET,
|
|
16287
|
-
step: 1,
|
|
16288
|
-
max: max + RAIL_GUTTER_OFFSET,
|
|
16289
|
-
getAriaValueText: valueLabelFormat,
|
|
16290
|
-
onChange: onChange,
|
|
16291
|
-
onKeyDown: onKeyDown,
|
|
16292
|
-
"aria-labelledby": "scale-slider",
|
|
16293
|
-
components: {
|
|
16294
|
-
Thumb: thumbComponent
|
|
16371
|
+
onWheel: function onWheel(_ref2) {
|
|
16372
|
+
var deltaY = _ref2.deltaY,
|
|
16373
|
+
deltaX = _ref2.deltaX,
|
|
16374
|
+
canvasWidth = _ref2.canvasWidth,
|
|
16375
|
+
mouseX = _ref2.mouseX;
|
|
16376
|
+
zoom(deltaY, deltaX, canvasWidth, mouseX);
|
|
16295
16377
|
},
|
|
16296
|
-
|
|
16297
|
-
|
|
16298
|
-
|
|
16378
|
+
onMouseDown: function onMouseDown(x, y, width) {
|
|
16379
|
+
setDragged(false);
|
|
16380
|
+
setReleased(false);
|
|
16381
|
+
var selectedTimeX = timestampToPixel(selectedTime, centerTime, width, secondsPerPx);
|
|
16382
|
+
setNewSelectionTimeRequested(Math.abs(x - selectedTimeX) < NEEDLE_HANDLE_WIDTH);
|
|
16383
|
+
},
|
|
16384
|
+
onMouseUp: function onMouseUp() {
|
|
16385
|
+
setReleased(true);
|
|
16386
|
+
setNewSelectionTimeRequested(false);
|
|
16387
|
+
},
|
|
16388
|
+
onCanvasClick: function onCanvasClick(x, y, width) {
|
|
16389
|
+
var isCanvasArea = x >= 0 && x < width;
|
|
16390
|
+
|
|
16391
|
+
if (isCanvasArea) {
|
|
16392
|
+
if (isReleased && !isDragged) {
|
|
16393
|
+
setSelectedTime(x, width);
|
|
16394
|
+
}
|
|
16395
|
+
}
|
|
16396
|
+
},
|
|
16397
|
+
onRenderCanvas: function onRenderCanvas(ctx, width, height) {
|
|
16398
|
+
renderTimeSliderLegend(ctx, theme, width, height, centerTime, secondsPerPx, dataScaleToSecondsPerPx, selectedTime, scale, currentTime, localAnimationStartTime, localAnimationEndTime);
|
|
16399
|
+
}
|
|
16400
|
+
}));
|
|
16299
16401
|
};
|
|
16300
16402
|
|
|
16403
|
+
var TIME_SLIDER_LEGEND_HEIGHT = 50;
|
|
16404
|
+
|
|
16301
16405
|
/* eslint-disable no-param-reassign */
|
|
16302
16406
|
|
|
16303
16407
|
var drawRoundedRectangle = function drawRoundedRectangle(ctx, x, y, width, height, cornerRadius, theme) {
|
|
@@ -16545,12 +16649,12 @@ var TimeSliderRail = function TimeSliderRail(_ref) {
|
|
|
16545
16649
|
|
|
16546
16650
|
var curTime = selectedTime !== undefined ? selectedTime.toISOString() : moment.utc().toISOString();
|
|
16547
16651
|
|
|
16548
|
-
var _React$useState = React.useState(animationStartTime
|
|
16652
|
+
var _React$useState = React.useState(animationStartTime ? moment.utc(animationStartTime).unix() : undefined),
|
|
16549
16653
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
16550
16654
|
localAnimationStartTime = _React$useState2[0],
|
|
16551
16655
|
setLocalAnimationStartTime = _React$useState2[1];
|
|
16552
16656
|
|
|
16553
|
-
var _React$useState3 = React.useState(animationEndTime
|
|
16657
|
+
var _React$useState3 = React.useState(animationEndTime ? moment.utc(animationEndTime).unix() : undefined),
|
|
16554
16658
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
16555
16659
|
localAnimationEndTime = _React$useState4[0],
|
|
16556
16660
|
setLocalAnimationEndTime = _React$useState4[1];
|
|
@@ -16693,8 +16797,8 @@ var TimeSliderRail = function TimeSliderRail(_ref) {
|
|
|
16693
16797
|
};
|
|
16694
16798
|
|
|
16695
16799
|
React.useEffect(function () {
|
|
16696
|
-
setLocalAnimationStartTime(animationStartTime
|
|
16697
|
-
setLocalAnimationEndTime(animationEndTime
|
|
16800
|
+
setLocalAnimationStartTime(animationStartTime ? moment.utc(animationStartTime).unix() : undefined);
|
|
16801
|
+
setLocalAnimationEndTime(animationEndTime ? moment.utc(animationEndTime).unix() : undefined);
|
|
16698
16802
|
}, [animationStartTime, animationEndTime]);
|
|
16699
16803
|
var handleKeyDown = React.useCallback(function (event) {
|
|
16700
16804
|
if (event.ctrlKey && dataStartTime && dataEndTime && mapIsActive) {
|
|
@@ -16845,7 +16949,6 @@ var defaultProps = {
|
|
|
16845
16949
|
var TimeSlider = function TimeSlider(_ref) {
|
|
16846
16950
|
var buttons = _ref.buttons,
|
|
16847
16951
|
rail = _ref.rail,
|
|
16848
|
-
scaleSlider = _ref.scaleSlider,
|
|
16849
16952
|
legend = _ref.legend,
|
|
16850
16953
|
_ref$mapIsActive = _ref.mapIsActive,
|
|
16851
16954
|
mapIsActive = _ref$mapIsActive === void 0 ? true : _ref$mapIsActive,
|
|
@@ -16856,15 +16959,15 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
16856
16959
|
useTimeSliderKeyBoardControl(mapIsActive, isVisible, onToggleTimeSlider);
|
|
16857
16960
|
return isVisible ? /*#__PURE__*/React.createElement(Grid, {
|
|
16858
16961
|
container: true,
|
|
16859
|
-
"data-testid": "timeSlider",
|
|
16860
16962
|
sx: {
|
|
16861
16963
|
display: 'grid',
|
|
16862
16964
|
gridTemplateColumns: 'minmax(100px, 210px) minmax(66%, 1fr)',
|
|
16863
16965
|
gridTemplateRows: '50px'
|
|
16864
|
-
}
|
|
16966
|
+
},
|
|
16967
|
+
"data-testid": "timeSlider"
|
|
16865
16968
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
16866
16969
|
item: true
|
|
16867
|
-
}
|
|
16970
|
+
}), /*#__PURE__*/React.createElement(Grid, {
|
|
16868
16971
|
item: true
|
|
16869
16972
|
}, rail || /*#__PURE__*/React.createElement(TimeSliderRail, Object.assign({}, defaultProps, {
|
|
16870
16973
|
selectedTime: defaultProps.selectedTime,
|
|
@@ -16873,14 +16976,11 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
16873
16976
|
item: true,
|
|
16874
16977
|
sx: {
|
|
16875
16978
|
height: '50px'
|
|
16876
|
-
}
|
|
16877
|
-
|
|
16878
|
-
|
|
16879
|
-
|
|
16880
|
-
|
|
16881
|
-
return null;
|
|
16882
|
-
}
|
|
16883
|
-
}))), /*#__PURE__*/React.createElement(Grid, {
|
|
16979
|
+
},
|
|
16980
|
+
container: true,
|
|
16981
|
+
alignItems: "center",
|
|
16982
|
+
justifyContent: "center"
|
|
16983
|
+
}, buttons || /*#__PURE__*/React.createElement(TimeSliderButtons, null)), /*#__PURE__*/React.createElement(Grid, {
|
|
16884
16984
|
item: true
|
|
16885
16985
|
}, legend || /*#__PURE__*/React.createElement(TimeSliderLegend, Object.assign({}, defaultProps, {
|
|
16886
16986
|
selectedTime: defaultProps.selectedTime.unix(),
|
|
@@ -17030,6 +17130,122 @@ var TimeStepButtonComponent = function TimeStepButtonComponent(_ref) {
|
|
|
17030
17130
|
});
|
|
17031
17131
|
};
|
|
17032
17132
|
|
|
17133
|
+
/* *
|
|
17134
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17135
|
+
* you may not use this file except in compliance with the License.
|
|
17136
|
+
* You may obtain a copy of the License at
|
|
17137
|
+
*
|
|
17138
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17139
|
+
*
|
|
17140
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17141
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17142
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17143
|
+
* See the License for the specific language governing permissions and
|
|
17144
|
+
* limitations under the License.
|
|
17145
|
+
*
|
|
17146
|
+
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
17147
|
+
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
17148
|
+
* */
|
|
17149
|
+
var TimeScaleButtonConnect = function TimeScaleButtonConnect(_ref) {
|
|
17150
|
+
var mapId = _ref.mapId;
|
|
17151
|
+
var layers = useSelector(function (store) {
|
|
17152
|
+
return getMapLayers(store, mapId);
|
|
17153
|
+
});
|
|
17154
|
+
var timeSliderScale = useSelector(function (store) {
|
|
17155
|
+
return getMapTimeSliderScale(store, mapId);
|
|
17156
|
+
});
|
|
17157
|
+
var centerTime = useSelector(function (store) {
|
|
17158
|
+
return getMapTimeSliderCenterTime(store, mapId);
|
|
17159
|
+
});
|
|
17160
|
+
var secondsPerPx = useSelector(function (store) {
|
|
17161
|
+
return getMapTimeSliderSecondsPerPx(store, mapId);
|
|
17162
|
+
});
|
|
17163
|
+
var dimensions = useSelector(function (store) {
|
|
17164
|
+
return getMapDimensions(store, mapId);
|
|
17165
|
+
});
|
|
17166
|
+
var dispatch = useDispatch();
|
|
17167
|
+
|
|
17168
|
+
var onSetTimeSliderScale = function onSetTimeSliderScale(scale, newCenterTime, scaleToSecPerPx) {
|
|
17169
|
+
if (scale === Scale.DataScale) {
|
|
17170
|
+
dispatch(mapActions$1.setTimeSliderDataScaleToSecondsPerPx({
|
|
17171
|
+
mapId: mapId,
|
|
17172
|
+
timeSliderDataScaleToSecondsPerPx: scaleToSecPerPx
|
|
17173
|
+
}));
|
|
17174
|
+
}
|
|
17175
|
+
|
|
17176
|
+
dispatch(mapActions$1.setTimeSliderScale({
|
|
17177
|
+
mapId: mapId,
|
|
17178
|
+
timeSliderScale: scale
|
|
17179
|
+
}));
|
|
17180
|
+
dispatch(mapActions$1.setTimeSliderCenterTime({
|
|
17181
|
+
mapId: mapId,
|
|
17182
|
+
timeSliderCenterTime: newCenterTime
|
|
17183
|
+
}));
|
|
17184
|
+
};
|
|
17185
|
+
|
|
17186
|
+
var _getTimeBounds = getTimeBounds(dimensions),
|
|
17187
|
+
selectedTime = _getTimeBounds.selectedTime;
|
|
17188
|
+
|
|
17189
|
+
return /*#__PURE__*/React.createElement(TimeScaleButton, {
|
|
17190
|
+
layers: layers,
|
|
17191
|
+
timeSliderScale: timeSliderScale,
|
|
17192
|
+
onChangeTimeSliderScale: onSetTimeSliderScale,
|
|
17193
|
+
secondsPerPx: secondsPerPx,
|
|
17194
|
+
centerTime: centerTime,
|
|
17195
|
+
selectedTime: selectedTime
|
|
17196
|
+
});
|
|
17197
|
+
};
|
|
17198
|
+
|
|
17199
|
+
var NowButtonConnect = function NowButtonConnect(_ref) {
|
|
17200
|
+
var sourceId = _ref.sourceId,
|
|
17201
|
+
mapId = _ref.mapId,
|
|
17202
|
+
isDisabled = _ref.isDisabled;
|
|
17203
|
+
var dispatch = useDispatch();
|
|
17204
|
+
var currentTime = moment.utc().unix();
|
|
17205
|
+
var timeStep = useSelector(function (store) {
|
|
17206
|
+
return getMapTimeStep(store, mapId);
|
|
17207
|
+
});
|
|
17208
|
+
|
|
17209
|
+
var _getDataLimitsFromLay = getDataLimitsFromLayers(useSelector(function (store) {
|
|
17210
|
+
return getMapLayers(store, mapId);
|
|
17211
|
+
})),
|
|
17212
|
+
_getDataLimitsFromLay2 = _slicedToArray(_getDataLimitsFromLay, 2),
|
|
17213
|
+
dataStartTime = _getDataLimitsFromLay2[0],
|
|
17214
|
+
dataEndTime = _getDataLimitsFromLay2[1];
|
|
17215
|
+
|
|
17216
|
+
var isAnimating$1 = useSelector(function (store) {
|
|
17217
|
+
return isAnimating(store, mapId);
|
|
17218
|
+
});
|
|
17219
|
+
|
|
17220
|
+
var onSetNewDate = function onSetNewDate(newDate) {
|
|
17221
|
+
if (isAnimating$1) {
|
|
17222
|
+
dispatch(mapActions$1.mapStopAnimation({
|
|
17223
|
+
mapId: mapId
|
|
17224
|
+
}));
|
|
17225
|
+
}
|
|
17226
|
+
|
|
17227
|
+
dispatch(genericActions.setTime({
|
|
17228
|
+
sourceId: sourceId,
|
|
17229
|
+
origin: 'NowButtonConnect, 140',
|
|
17230
|
+
value: handleMomentISOString(newDate)
|
|
17231
|
+
}));
|
|
17232
|
+
};
|
|
17233
|
+
|
|
17234
|
+
var onSetCenterTime = function onSetCenterTime(newTime) {
|
|
17235
|
+
dispatch(mapActions$1.setTimeSliderCenterTime({
|
|
17236
|
+
mapId: mapId,
|
|
17237
|
+
timeSliderCenterTime: newTime
|
|
17238
|
+
}));
|
|
17239
|
+
};
|
|
17240
|
+
|
|
17241
|
+
return /*#__PURE__*/React.createElement(NowButton, {
|
|
17242
|
+
disabled: isDisabled,
|
|
17243
|
+
onSetNow: function onSetNow() {
|
|
17244
|
+
return handleSetNowEvent(timeStep, dataStartTime, dataEndTime, currentTime, onSetNewDate, onSetCenterTime);
|
|
17245
|
+
}
|
|
17246
|
+
});
|
|
17247
|
+
};
|
|
17248
|
+
|
|
17033
17249
|
/* *
|
|
17034
17250
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17035
17251
|
* you may not use this file except in compliance with the License.
|
|
@@ -17056,8 +17272,13 @@ var TimeStepButtonComponent = function TimeStepButtonComponent(_ref) {
|
|
|
17056
17272
|
*/
|
|
17057
17273
|
|
|
17058
17274
|
var OptionsMenuButtonConnect = function OptionsMenuButtonConnect(_ref) {
|
|
17059
|
-
var
|
|
17275
|
+
var sourceId = _ref.sourceId,
|
|
17276
|
+
mapId = _ref.mapId;
|
|
17060
17277
|
return /*#__PURE__*/React.createElement(OptionsMenuButton, {
|
|
17278
|
+
nowBtn: /*#__PURE__*/React.createElement(NowButtonConnect, {
|
|
17279
|
+
mapId: mapId,
|
|
17280
|
+
sourceId: sourceId
|
|
17281
|
+
}),
|
|
17061
17282
|
autoUpdateBtn: /*#__PURE__*/React.createElement(AutoUpdateButtonConnect, {
|
|
17062
17283
|
mapId: mapId
|
|
17063
17284
|
}),
|
|
@@ -17066,6 +17287,9 @@ var OptionsMenuButtonConnect = function OptionsMenuButtonConnect(_ref) {
|
|
|
17066
17287
|
}),
|
|
17067
17288
|
timeStepBtn: /*#__PURE__*/React.createElement(TimeStepButtonComponent, {
|
|
17068
17289
|
mapId: mapId
|
|
17290
|
+
}),
|
|
17291
|
+
timeScaleBtn: /*#__PURE__*/React.createElement(TimeScaleButtonConnect, {
|
|
17292
|
+
mapId: mapId
|
|
17069
17293
|
})
|
|
17070
17294
|
});
|
|
17071
17295
|
};
|
|
@@ -17096,10 +17320,12 @@ var OptionsMenuButtonConnect = function OptionsMenuButtonConnect(_ref) {
|
|
|
17096
17320
|
*/
|
|
17097
17321
|
|
|
17098
17322
|
var TimeSliderButtonsConnect = function TimeSliderButtonsConnect(_ref) {
|
|
17099
|
-
var
|
|
17323
|
+
var sourceId = _ref.sourceId,
|
|
17324
|
+
mapId = _ref.mapId;
|
|
17100
17325
|
return /*#__PURE__*/React.createElement(TimeSliderButtons, {
|
|
17101
17326
|
optionsMenuBtn: /*#__PURE__*/React.createElement(OptionsMenuButtonConnect, {
|
|
17102
|
-
mapId: mapId
|
|
17327
|
+
mapId: mapId,
|
|
17328
|
+
sourceId: sourceId
|
|
17103
17329
|
}),
|
|
17104
17330
|
playBtn: /*#__PURE__*/React.createElement(PlayButtonConnect, {
|
|
17105
17331
|
mapId: mapId
|
|
@@ -17351,89 +17577,6 @@ var TimeSliderRailConnectComponent = function TimeSliderRailConnectComponent(_re
|
|
|
17351
17577
|
|
|
17352
17578
|
var TimeSliderRailConnect = connectRedux$1(TimeSliderRailConnectComponent);
|
|
17353
17579
|
|
|
17354
|
-
/* *
|
|
17355
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17356
|
-
* you may not use this file except in compliance with the License.
|
|
17357
|
-
* You may obtain a copy of the License at
|
|
17358
|
-
*
|
|
17359
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17360
|
-
*
|
|
17361
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
17362
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17363
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17364
|
-
* See the License for the specific language governing permissions and
|
|
17365
|
-
* limitations under the License.
|
|
17366
|
-
*
|
|
17367
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
17368
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
17369
|
-
* */
|
|
17370
|
-
var connectReduxTimeSliderScaleSlider = connect(function (store, props) {
|
|
17371
|
-
return {
|
|
17372
|
-
layers: getMapLayers(store, props.mapId),
|
|
17373
|
-
timeSliderScale: getMapTimeSliderScale(store, props.mapId),
|
|
17374
|
-
centerTime: getMapTimeSliderCenterTime(store, props.mapId),
|
|
17375
|
-
secondsPerPx: getMapTimeSliderSecondsPerPx(store, props.mapId),
|
|
17376
|
-
dimensions: getMapDimensions(store, props.mapId)
|
|
17377
|
-
};
|
|
17378
|
-
}, {
|
|
17379
|
-
mapSetTimeSliderScale: mapActions$1.setTimeSliderScale,
|
|
17380
|
-
mapSetTimeSliderDataScaleToSecondsPerPx: mapActions$1.setTimeSliderDataScaleToSecondsPerPx,
|
|
17381
|
-
mapSetTimeSliderCenterTime: mapActions$1.setTimeSliderCenterTime
|
|
17382
|
-
});
|
|
17383
|
-
|
|
17384
|
-
var TimeSliderScaleSliderComponent = function TimeSliderScaleSliderComponent(_ref) {
|
|
17385
|
-
var timeSliderScale = _ref.timeSliderScale,
|
|
17386
|
-
mapId = _ref.mapId,
|
|
17387
|
-
layers = _ref.layers,
|
|
17388
|
-
centerTime = _ref.centerTime,
|
|
17389
|
-
secondsPerPx = _ref.secondsPerPx,
|
|
17390
|
-
dimensions = _ref.dimensions,
|
|
17391
|
-
mapSetTimeSliderScale = _ref.mapSetTimeSliderScale,
|
|
17392
|
-
mapSetTimeSliderDataScaleToSecondsPerPx = _ref.mapSetTimeSliderDataScaleToSecondsPerPx,
|
|
17393
|
-
mapSetTimeSliderCenterTime = _ref.mapSetTimeSliderCenterTime;
|
|
17394
|
-
|
|
17395
|
-
var onSetTimeSliderScale = function onSetTimeSliderScale(scale, newCenterTime, scaleToSecPerPx) {
|
|
17396
|
-
if (scale === Scale.DataScale) {
|
|
17397
|
-
mapSetTimeSliderDataScaleToSecondsPerPx({
|
|
17398
|
-
mapId: mapId,
|
|
17399
|
-
timeSliderDataScaleToSecondsPerPx: scaleToSecPerPx
|
|
17400
|
-
});
|
|
17401
|
-
}
|
|
17402
|
-
|
|
17403
|
-
mapSetTimeSliderScale({
|
|
17404
|
-
mapId: mapId,
|
|
17405
|
-
timeSliderScale: scale
|
|
17406
|
-
});
|
|
17407
|
-
mapSetTimeSliderCenterTime({
|
|
17408
|
-
mapId: mapId,
|
|
17409
|
-
timeSliderCenterTime: newCenterTime
|
|
17410
|
-
});
|
|
17411
|
-
};
|
|
17412
|
-
|
|
17413
|
-
var _getTimeBounds = getTimeBounds(dimensions),
|
|
17414
|
-
selectedTime = _getTimeBounds.selectedTime;
|
|
17415
|
-
|
|
17416
|
-
return /*#__PURE__*/React.createElement(TimeSliderScaleSlider, {
|
|
17417
|
-
layers: layers,
|
|
17418
|
-
timeSliderScale: timeSliderScale,
|
|
17419
|
-
onChangeTimeSliderScale: onSetTimeSliderScale,
|
|
17420
|
-
secondsPerPx: secondsPerPx,
|
|
17421
|
-
centerTime: centerTime,
|
|
17422
|
-
selectedTime: selectedTime
|
|
17423
|
-
});
|
|
17424
|
-
};
|
|
17425
|
-
/**
|
|
17426
|
-
* TimeSliderScaleSlider component connected to the store displaying a scale slider of the time slider
|
|
17427
|
-
*
|
|
17428
|
-
* Expects the following props:
|
|
17429
|
-
* @param {string} mapId mapId: string - Id of the map
|
|
17430
|
-
* @example
|
|
17431
|
-
* ``` <TimeSliderScaleSliderConnect mapId={mapId} />```
|
|
17432
|
-
*/
|
|
17433
|
-
|
|
17434
|
-
|
|
17435
|
-
var TimeSliderScaleSliderConnect = connectReduxTimeSliderScaleSlider(TimeSliderScaleSliderComponent);
|
|
17436
|
-
|
|
17437
17580
|
/* *
|
|
17438
17581
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17439
17582
|
* you may not use this file except in compliance with the License.
|
|
@@ -17501,15 +17644,13 @@ var ConnectedTimeSlider = function ConnectedTimeSlider(_ref) {
|
|
|
17501
17644
|
|
|
17502
17645
|
return /*#__PURE__*/React.createElement(TimeSlider, {
|
|
17503
17646
|
buttons: /*#__PURE__*/React.createElement(TimeSliderButtonsConnect, {
|
|
17504
|
-
mapId: mapId
|
|
17647
|
+
mapId: mapId,
|
|
17648
|
+
sourceId: sourceId
|
|
17505
17649
|
}),
|
|
17506
17650
|
rail: /*#__PURE__*/React.createElement(TimeSliderRailConnect, {
|
|
17507
17651
|
mapId: mapId,
|
|
17508
17652
|
sourceId: sourceId
|
|
17509
17653
|
}),
|
|
17510
|
-
scaleSlider: /*#__PURE__*/React.createElement(TimeSliderScaleSliderConnect, {
|
|
17511
|
-
mapId: mapId
|
|
17512
|
-
}),
|
|
17513
17654
|
legend: /*#__PURE__*/React.createElement(TimeSliderLegendConnect$1, {
|
|
17514
17655
|
mapId: mapId,
|
|
17515
17656
|
sourceId: sourceId
|
|
@@ -18000,7 +18141,7 @@ var setServiceMetadata = function setServiceMetadata(wmLayer, mapId, webMapJSIns
|
|
|
18000
18141
|
id: service.id,
|
|
18001
18142
|
serviceUrl: wmLayer.service,
|
|
18002
18143
|
layers: layers,
|
|
18003
|
-
|
|
18144
|
+
scope: 'system'
|
|
18004
18145
|
},
|
|
18005
18146
|
layerStyle: {
|
|
18006
18147
|
origin: origin,
|
|
@@ -18706,7 +18847,7 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
18706
18847
|
}
|
|
18707
18848
|
|
|
18708
18849
|
if (!featureCoords) {
|
|
18709
|
-
return;
|
|
18850
|
+
return undefined;
|
|
18710
18851
|
}
|
|
18711
18852
|
|
|
18712
18853
|
var vertexSelected = mouseDown === true && this.mouseIsOverVertexNr !== VERTEX.NONE;
|
|
@@ -18730,6 +18871,8 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
18730
18871
|
|
|
18731
18872
|
return false;
|
|
18732
18873
|
}
|
|
18874
|
+
|
|
18875
|
+
return undefined;
|
|
18733
18876
|
}
|
|
18734
18877
|
}, {
|
|
18735
18878
|
key: "hoverVertex",
|
|
@@ -18848,7 +18991,7 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
18848
18991
|
isInEditMode = _this$props2.isInEditMode,
|
|
18849
18992
|
featureNrToEdit = _this$props2.featureNrToEdit,
|
|
18850
18993
|
onHoverFeature = _this$props2.onHoverFeature;
|
|
18851
|
-
if (event && event.rightButton === true) return;
|
|
18994
|
+
if (event && event.rightButton === true) return undefined;
|
|
18852
18995
|
/* adagucMouseMove is an event callback function which is triggered when the mouse moves over the map
|
|
18853
18996
|
This event is only triggered if the map is in hover state.
|
|
18854
18997
|
E.g. when the map is dragging/panning, this event is not triggerd
|
|
@@ -18889,11 +19032,11 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
18889
19032
|
}
|
|
18890
19033
|
|
|
18891
19034
|
if (isInEditMode === false) {
|
|
18892
|
-
return;
|
|
19035
|
+
return undefined;
|
|
18893
19036
|
}
|
|
18894
19037
|
|
|
18895
19038
|
var feature = this.geojson.features[featureNrToEdit];
|
|
18896
|
-
if (!feature) return;
|
|
19039
|
+
if (!feature) return undefined;
|
|
18897
19040
|
var webmapjs = this.props.webmapjs;
|
|
18898
19041
|
this.mouseGeoCoord = webmapjs.getLatLongFromPixelCoord({
|
|
18899
19042
|
x: mouseX,
|
|
@@ -18959,6 +19102,8 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
18959
19102
|
/* False means that this component will take over entire controll.
|
|
18960
19103
|
True means that it is still possible to pan and drag the map while editing */
|
|
18961
19104
|
}
|
|
19105
|
+
|
|
19106
|
+
return undefined;
|
|
18962
19107
|
}
|
|
18963
19108
|
/* Returns true if double click is detected */
|
|
18964
19109
|
|
|
@@ -19266,6 +19411,8 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
19266
19411
|
return false;
|
|
19267
19412
|
}
|
|
19268
19413
|
}
|
|
19414
|
+
|
|
19415
|
+
return undefined;
|
|
19269
19416
|
}
|
|
19270
19417
|
}, {
|
|
19271
19418
|
key: "addPointToLineStringFeature",
|
|
@@ -20057,7 +20204,7 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
20057
20204
|
/* After the image is loaded the canvas will be redrawn and drawIcon will be triggered again
|
|
20058
20205
|
via the beforecanvasdisplay listener. */
|
|
20059
20206
|
|
|
20060
|
-
return;
|
|
20207
|
+
return undefined;
|
|
20061
20208
|
}
|
|
20062
20209
|
|
|
20063
20210
|
if (image.isLoaded()) {
|
|
@@ -20070,6 +20217,8 @@ var AdagucMapDraw = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
20070
20217
|
ctx.strokeRect(parseInt(_coord.x, 10) - imageWidth / 2, parseInt(_coord.y, 10) - imageHeight / 2, imageWidth, imageHeight);
|
|
20071
20218
|
}
|
|
20072
20219
|
}
|
|
20220
|
+
|
|
20221
|
+
return undefined;
|
|
20073
20222
|
}
|
|
20074
20223
|
}, {
|
|
20075
20224
|
key: "drawMarker",
|
|
@@ -21322,12 +21471,8 @@ ReactMapView.defaultProps = {
|
|
|
21322
21471
|
shouldAutoFetch: true,
|
|
21323
21472
|
displayMapPin: false,
|
|
21324
21473
|
disableMapPin: false,
|
|
21325
|
-
onMount: function onMount() {
|
|
21326
|
-
|
|
21327
|
-
},
|
|
21328
|
-
onUnMount: function onUnMount() {
|
|
21329
|
-
return null;
|
|
21330
|
-
},
|
|
21474
|
+
onMount: function onMount() {},
|
|
21475
|
+
onUnMount: function onUnMount() {},
|
|
21331
21476
|
onMapChangeDimension: function onMapChangeDimension() {
|
|
21332
21477
|
/* nothing */
|
|
21333
21478
|
},
|
|
@@ -21436,7 +21581,7 @@ var MapView = function MapView(_a) {
|
|
|
21436
21581
|
}
|
|
21437
21582
|
}, /*#__PURE__*/React.createElement(ZoomControls, {
|
|
21438
21583
|
onZoomIn: function onZoomIn() {
|
|
21439
|
-
return adagucRef.current.zoomIn();
|
|
21584
|
+
return adagucRef.current.zoomIn(undefined);
|
|
21440
21585
|
},
|
|
21441
21586
|
onZoomOut: function onZoomOut() {
|
|
21442
21587
|
return adagucRef.current.zoomOut();
|
|
@@ -21494,10 +21639,10 @@ var useTouchZoomPan = function useTouchZoomPan(mapIsActive, mapId) {
|
|
|
21494
21639
|
return (touches === null || touches === void 0 ? void 0 : touches.length) === 2;
|
|
21495
21640
|
};
|
|
21496
21641
|
|
|
21497
|
-
var
|
|
21642
|
+
var isCanvasElement = React.useCallback(function (event) {
|
|
21498
21643
|
var target = event.target;
|
|
21499
|
-
return
|
|
21500
|
-
}, [
|
|
21644
|
+
return target.tagName === 'CANVAS';
|
|
21645
|
+
}, []);
|
|
21501
21646
|
|
|
21502
21647
|
var distance = function distance(x1, y1, x2, y2) {
|
|
21503
21648
|
var dx = x1 - x2;
|
|
@@ -21505,9 +21650,32 @@ var useTouchZoomPan = function useTouchZoomPan(mapIsActive, mapId) {
|
|
|
21505
21650
|
return Math.sqrt(dx * dx + dy * dy);
|
|
21506
21651
|
};
|
|
21507
21652
|
|
|
21653
|
+
var isMatchingWebMapNumbers = function isMatchingWebMapNumbers(firstStr, secondStr) {
|
|
21654
|
+
// Returns true if the same web map (id) number were encountered in both given strings, false otherwise.
|
|
21655
|
+
var webMapNumberBaseFormat = 'WebMapJSMapNo_';
|
|
21656
|
+
|
|
21657
|
+
if (!firstStr.includes(webMapNumberBaseFormat) || !secondStr.includes(webMapNumberBaseFormat)) {
|
|
21658
|
+
return false;
|
|
21659
|
+
}
|
|
21660
|
+
|
|
21661
|
+
var numberMatcher = /\d+/;
|
|
21662
|
+
var firstNumber = firstStr.match(numberMatcher)[0];
|
|
21663
|
+
var secondNumber = secondStr.match(numberMatcher)[0];
|
|
21664
|
+
return Boolean(firstNumber && secondNumber && firstNumber === secondNumber);
|
|
21665
|
+
};
|
|
21666
|
+
|
|
21667
|
+
var isTouchInsideTargetElement = function isTouchInsideTargetElement(elem, touchX, touchY) {
|
|
21668
|
+
var _elem$getBoundingClie = elem.getBoundingClientRect(),
|
|
21669
|
+
left = _elem$getBoundingClie.left,
|
|
21670
|
+
top = _elem$getBoundingClie.top,
|
|
21671
|
+
width = _elem$getBoundingClie.width,
|
|
21672
|
+
height = _elem$getBoundingClie.height;
|
|
21673
|
+
|
|
21674
|
+
var leftMarginWidth = 0.02 * document.body.getBoundingClientRect().width;
|
|
21675
|
+
return touchY > window.scrollY + top && touchY < window.scrollY + top + height - TIME_SLIDER_LEGEND_HEIGHT && touchX > window.scrollX + left + leftMarginWidth && touchX < window.scrollX + left + width;
|
|
21676
|
+
};
|
|
21677
|
+
|
|
21508
21678
|
var handleStart = React.useCallback(function (event) {
|
|
21509
|
-
var map = getWMJSMapById(mapId);
|
|
21510
|
-
if (!isValidMap(map, event)) return;
|
|
21511
21679
|
var targetTouches = event.targetTouches;
|
|
21512
21680
|
var firstTouch = targetTouches === null || targetTouches === void 0 ? void 0 : targetTouches.item(0);
|
|
21513
21681
|
setFirstTouchX(firstTouch === null || firstTouch === void 0 ? void 0 : firstTouch.clientX);
|
|
@@ -21518,10 +21686,31 @@ var useTouchZoomPan = function useTouchZoomPan(mapIsActive, mapId) {
|
|
|
21518
21686
|
setSecondTouchX(secondTouch === null || secondTouch === void 0 ? void 0 : secondTouch.clientX);
|
|
21519
21687
|
setSecondTouchY(secondTouch === null || secondTouch === void 0 ? void 0 : secondTouch.clientY);
|
|
21520
21688
|
}
|
|
21521
|
-
}, [
|
|
21689
|
+
}, []);
|
|
21522
21690
|
var handleMove = React.useCallback(function (event) {
|
|
21523
21691
|
var map = getWMJSMapById(mapId);
|
|
21524
|
-
|
|
21692
|
+
var targetElem = event.target;
|
|
21693
|
+
|
|
21694
|
+
if (!isCanvasElement(event)) {
|
|
21695
|
+
// Elements other than canvas elements are not allowed to be zoomed/panned
|
|
21696
|
+
return;
|
|
21697
|
+
}
|
|
21698
|
+
|
|
21699
|
+
var targetMapId = map.getId();
|
|
21700
|
+
var targetElemId = targetElem.parentElement.id;
|
|
21701
|
+
|
|
21702
|
+
if (!isMatchingWebMapNumbers(targetMapId, targetElemId)) {
|
|
21703
|
+
// Current map (given by map id) was not coupled to the canvas element user touched.
|
|
21704
|
+
// This web map id number comparison is of importance when dealing with multi-window presentations.
|
|
21705
|
+
return;
|
|
21706
|
+
}
|
|
21707
|
+
|
|
21708
|
+
if (!isTouchInsideTargetElement(targetElem, firstTouchX, firstTouchY)) {
|
|
21709
|
+
// A user touch outside the current canvas element will be rejected
|
|
21710
|
+
return;
|
|
21711
|
+
} // Start zooming/panning by touch
|
|
21712
|
+
|
|
21713
|
+
|
|
21525
21714
|
event.preventDefault();
|
|
21526
21715
|
var targetTouches = event.targetTouches;
|
|
21527
21716
|
var firstTouch = targetTouches === null || targetTouches === void 0 ? void 0 : targetTouches.item(0);
|
|
@@ -21564,7 +21753,7 @@ var useTouchZoomPan = function useTouchZoomPan(mapIsActive, mapId) {
|
|
|
21564
21753
|
setPrevDist(_dist);
|
|
21565
21754
|
}
|
|
21566
21755
|
}
|
|
21567
|
-
}, [
|
|
21756
|
+
}, [mapId, isCanvasElement, firstTouchX, firstTouchY, secondTouchX, secondTouchY, prevDist]);
|
|
21568
21757
|
var handleEnd = React.useCallback(function () {}, []);
|
|
21569
21758
|
React.useEffect(function () {
|
|
21570
21759
|
document.addEventListener('touchstart', handleStart, {
|
|
@@ -21813,7 +22002,7 @@ var MapViewConnect = function MapViewConnect(_a) {
|
|
|
21813
22002
|
},
|
|
21814
22003
|
srs: srs,
|
|
21815
22004
|
bbox: bbox,
|
|
21816
|
-
mapPinLocation: displayMapPin
|
|
22005
|
+
mapPinLocation: displayMapPin ? mapPinLocation : undefined,
|
|
21817
22006
|
dimensions: mapDimensions,
|
|
21818
22007
|
activeLayerId: activeLayerId,
|
|
21819
22008
|
animationDelay: animationDelay,
|
|
@@ -22015,7 +22204,7 @@ var ConfigurableMapConnect = function ConfigurableMapConnect(_a) {
|
|
|
22015
22204
|
|
|
22016
22205
|
if (shouldShowLayerManager !== undefined) {
|
|
22017
22206
|
dispatch(uiActions.setActiveMapIdForDialog({
|
|
22018
|
-
type:
|
|
22207
|
+
type: DialogTypes.LayerManager,
|
|
22019
22208
|
mapId: mapId,
|
|
22020
22209
|
setOpen: shouldShowLayerManager,
|
|
22021
22210
|
source: 'app'
|
|
@@ -22755,7 +22944,7 @@ var SyncGroupViewerConnect = function SyncGroupViewerConnect() {
|
|
|
22755
22944
|
dispatch(actions.syncGroupRemoveTarget(payload));
|
|
22756
22945
|
}, [dispatch]);
|
|
22757
22946
|
|
|
22758
|
-
var _useSetupDialog = useSetupDialog(
|
|
22947
|
+
var _useSetupDialog = useSetupDialog(DialogTypes.SyncGroups),
|
|
22759
22948
|
dialogOrder = _useSetupDialog.dialogOrder,
|
|
22760
22949
|
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
22761
22950
|
onCloseDialog = _useSetupDialog.onCloseDialog,
|