@opengeoweb/core 2.2.0 → 2.2.1
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 +2154 -1200
- package/index.umd.js +2209 -1217
- package/lib/components/ComponentsLookUp/componentsLookUp.d.ts +3 -3
- package/lib/components/CustomToggleButton/CustomToggleButton.d.ts +9 -0
- package/lib/components/{ToggleIconButton/ToggleIconButton.spec.d.ts → CustomToggleButton/CustomToggleButton.spec.d.ts} +0 -0
- package/lib/components/CustomToggleButton/CustomToggleButton.stories.d.ts +13 -0
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResults.d.ts +1 -3
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResultsListItem.d.ts +4 -5
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResultsListItemConnect.d.ts +6 -0
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResultsListItemConnect.spec.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterSelectAllSwitchConnect.d.ts +3 -0
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterSelectAllSwitchConnect.spec.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerList.d.ts +2 -2
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListUtils.d.ts +1 -2
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialog.d.ts +4 -1
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialogConnect.d.ts +3 -0
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialogConnect.spec.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopup.d.ts +3 -0
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopupConnect.d.ts +10 -0
- package/lib/components/MapControls/MapControlButton.d.ts +2 -2
- package/lib/components/MultiMapView/HarmoniePresets/HarmRefTimePreset.d.ts +2 -2
- package/lib/components/MultiMapView/HarmoniePresets/HarmonieTempAndPrecipPreset.d.ts +4 -4
- package/lib/components/MultiMapView/MultiMapViewConnect.d.ts +2 -1
- package/lib/components/MultiMapView/storyUtils/mapPresets.d.ts +81 -0
- package/lib/components/ToolButton/ToolButton.d.ts +12 -0
- package/lib/components/ToolButton/ToolButton.spec.d.ts +1 -0
- package/lib/components/{ToggleIconButton/ToggleIconButton.stories.d.ts → ToolButton/ToolButton.stories.d.ts} +2 -2
- package/lib/components/ToolButton/index.d.ts +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/store/generic/synchronizationGroups/types.d.ts +1 -0
- package/lib/store/layerSelect/actions.d.ts +4 -2
- package/lib/store/layerSelect/constants.d.ts +3 -1
- package/lib/store/layerSelect/sagas.d.ts +1 -0
- package/lib/store/layerSelect/selectors.d.ts +59 -9
- package/lib/store/layerSelect/types.d.ts +33 -12
- package/lib/store/mapStore/layers/selectors.d.ts +24 -12
- package/lib/store/mapStore/map/selectors.d.ts +38 -26
- package/lib/store/mapStore/service/actions.d.ts +8 -1
- package/lib/store/mapStore/service/constants.d.ts +1 -0
- package/lib/store/mapStore/service/selectors.d.ts +34 -6
- package/lib/store/mapStore/service/types.d.ts +9 -2
- package/lib/store/ui/selectors.d.ts +2 -2
- package/lib/store/utils.d.ts +6 -0
- package/lib/utils/defaultConfigurations.d.ts +3 -21
- package/lib/utils/getCapabilities.d.ts +1 -0
- package/lib/utils/jsonPresetFilter.d.ts +10 -0
- package/lib/utils/jsonPresetFilter.spec.d.ts +1 -0
- package/lib/utils/types.d.ts +52 -0
- package/package.json +5 -5
- package/lib/components/ToggleIconButton/ToggleIconButton.d.ts +0 -12
- package/lib/components/ToggleIconButton/index.d.ts +0 -1
package/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('reselect'), require('
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'reselect', '
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Core = {}, global.reselect, global.
|
|
5
|
-
})(this, (function (exports, reselect,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('reselect'), require('moment'), require('lodash'), require('react'), require('immer'), require('redux-saga/effects'), require('@opengeoweb/webmap'), require('@mui/material'), require('@mui/styles/makeStyles'), require('react-redux'), require('@opengeoweb/shared'), require('@mui/icons-material'), require('react-sortablejs'), require('@mui/styles/createStyles'), require('@mui/styles/withStyles'), require('throttle-debounce'), require('lodash.clonedeep'), require('proj4'), require('redux-dynamic-modules'), require('redux-dynamic-modules-saga'), require('@opengeoweb/theme')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'reselect', 'moment', 'lodash', 'react', 'immer', 'redux-saga/effects', '@opengeoweb/webmap', '@mui/material', '@mui/styles/makeStyles', 'react-redux', '@opengeoweb/shared', '@mui/icons-material', 'react-sortablejs', '@mui/styles/createStyles', '@mui/styles/withStyles', 'throttle-debounce', 'lodash.clonedeep', 'proj4', 'redux-dynamic-modules', 'redux-dynamic-modules-saga', '@opengeoweb/theme'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Core = {}, global.reselect, global.moment, global._, global.React, global.produce, global.effects, global.webmap, global.material, global.makeStyles, global.reactRedux, global.shared, global.iconsMaterial, global.reactSortablejs, global.createStyles, global.withStyles, global.throttleDebounce, global.cloneDeep, global.proj4, global.reduxDynamicModules, global.reduxDynamicModulesSaga, global.theme));
|
|
5
|
+
})(this, (function (exports, reselect, moment, _, React, produce, effects, webmap, material, makeStyles, reactRedux, shared, iconsMaterial, reactSortablejs, createStyles, withStyles, throttleDebounce, cloneDeep, proj4, reduxDynamicModules, reduxDynamicModulesSaga, theme) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
return Object.freeze(n);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
|
|
28
27
|
var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
|
|
28
|
+
var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
|
|
29
29
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
30
30
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
31
31
|
var produce__default = /*#__PURE__*/_interopDefaultLegacy(produce);
|
|
@@ -671,6 +671,7 @@
|
|
|
671
671
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
672
672
|
* */
|
|
673
673
|
var MAP_SERVICES_SET_LAYERS = 'MAP_SERVICES_SET_LAYERS';
|
|
674
|
+
var MAP_SERVICES_REMOVE_SERVICE = 'MAP_SERVICES_REMOVE_SERVICE';
|
|
674
675
|
|
|
675
676
|
/* *
|
|
676
677
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -701,6 +702,19 @@
|
|
|
701
702
|
payload: payload
|
|
702
703
|
};
|
|
703
704
|
};
|
|
705
|
+
/**
|
|
706
|
+
* Action mapStoreRemoveService is used in ServiceOptionsDialogConnect after clicking the remove button. Action layerSelectServiceRemoved is used automatically after calling the mapStoreRemoveService action
|
|
707
|
+
*
|
|
708
|
+
* Example: mapStoreRemoveService({serviceUrl: someService})
|
|
709
|
+
* @param {object} payload consisting of serviceUrl: string
|
|
710
|
+
*/
|
|
711
|
+
|
|
712
|
+
var mapStoreRemoveService = function mapStoreRemoveService(payload) {
|
|
713
|
+
return {
|
|
714
|
+
type: MAP_SERVICES_REMOVE_SERVICE,
|
|
715
|
+
payload: payload
|
|
716
|
+
};
|
|
717
|
+
};
|
|
704
718
|
|
|
705
719
|
/* *
|
|
706
720
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -759,7 +773,8 @@
|
|
|
759
773
|
addAvailableBaseLayer: addAvailableBaseLayer,
|
|
760
774
|
addAvailableBaseLayers: addAvailableBaseLayers,
|
|
761
775
|
onUpdateLayerInformation: onUpdateLayerInformation,
|
|
762
|
-
serviceSetLayers: serviceSetLayers
|
|
776
|
+
serviceSetLayers: serviceSetLayers,
|
|
777
|
+
mapStoreRemoveService: mapStoreRemoveService
|
|
763
778
|
});
|
|
764
779
|
|
|
765
780
|
/* *
|
|
@@ -792,6 +807,29 @@
|
|
|
792
807
|
Scale[Scale["DataScale"] = 8] = "DataScale";
|
|
793
808
|
})(Scale || (Scale = {}));
|
|
794
809
|
|
|
810
|
+
/* *
|
|
811
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
812
|
+
* you may not use this file except in compliance with the License.
|
|
813
|
+
* You may obtain a copy of the License at
|
|
814
|
+
*
|
|
815
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
816
|
+
*
|
|
817
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
818
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
819
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
820
|
+
* See the License for the specific language governing permissions and
|
|
821
|
+
* limitations under the License.
|
|
822
|
+
*
|
|
823
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
824
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
825
|
+
* */
|
|
826
|
+
var selectorMemoizationOptions = {
|
|
827
|
+
memoizeOptions: {
|
|
828
|
+
maxSize: 1000,
|
|
829
|
+
resultEqualityCheck: _.isEqual
|
|
830
|
+
}
|
|
831
|
+
};
|
|
832
|
+
|
|
795
833
|
/* *
|
|
796
834
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
797
835
|
* you may not use this file except in compliance with the License.
|
|
@@ -1037,7 +1075,7 @@
|
|
|
1037
1075
|
|
|
1038
1076
|
var getLayersById = reselect.createSelector(layerStore, function (store) {
|
|
1039
1077
|
return store ? store.byId : null;
|
|
1040
|
-
});
|
|
1078
|
+
}, selectorMemoizationOptions);
|
|
1041
1079
|
/**
|
|
1042
1080
|
* Retrieves all layerIds
|
|
1043
1081
|
*
|
|
@@ -1048,7 +1086,7 @@
|
|
|
1048
1086
|
|
|
1049
1087
|
var getLayersIds = reselect.createSelector(layerStore, function (store) {
|
|
1050
1088
|
return store ? store.allIds : [];
|
|
1051
|
-
});
|
|
1089
|
+
}, selectorMemoizationOptions);
|
|
1052
1090
|
/**
|
|
1053
1091
|
* Retrieves all layers (including base layers and overlayers)
|
|
1054
1092
|
*
|
|
@@ -1061,7 +1099,7 @@
|
|
|
1061
1099
|
return ids.map(function (layerId) {
|
|
1062
1100
|
return layers[layerId];
|
|
1063
1101
|
});
|
|
1064
|
-
});
|
|
1102
|
+
}, selectorMemoizationOptions);
|
|
1065
1103
|
/**
|
|
1066
1104
|
* Retrieves all layers that aren't base layers and aren't overlayers
|
|
1067
1105
|
*
|
|
@@ -1074,7 +1112,7 @@
|
|
|
1074
1112
|
return layers.filter(function (layer) {
|
|
1075
1113
|
return layer.layerType !== LayerType.baseLayer && layer.layerType !== LayerType.overLayer;
|
|
1076
1114
|
});
|
|
1077
|
-
});
|
|
1115
|
+
}, selectorMemoizationOptions);
|
|
1078
1116
|
/**
|
|
1079
1117
|
* Retrieves all baselayers
|
|
1080
1118
|
*
|
|
@@ -1087,7 +1125,7 @@
|
|
|
1087
1125
|
return layers.filter(function (layer) {
|
|
1088
1126
|
return layer.layerType === LayerType.baseLayer;
|
|
1089
1127
|
});
|
|
1090
|
-
});
|
|
1128
|
+
}, selectorMemoizationOptions);
|
|
1091
1129
|
/**
|
|
1092
1130
|
* Retrieves all overLayers
|
|
1093
1131
|
*
|
|
@@ -1100,7 +1138,7 @@
|
|
|
1100
1138
|
return layers.filter(function (layer) {
|
|
1101
1139
|
return layer.layerType === LayerType.overLayer;
|
|
1102
1140
|
});
|
|
1103
|
-
});
|
|
1141
|
+
}, selectorMemoizationOptions);
|
|
1104
1142
|
/**
|
|
1105
1143
|
* Gets dimensions of the passed layer
|
|
1106
1144
|
*
|
|
@@ -1112,7 +1150,7 @@
|
|
|
1112
1150
|
|
|
1113
1151
|
var getLayerDimensions = reselect.createSelector(getLayerById, function (layer) {
|
|
1114
1152
|
return layer && layer.dimensions ? layer.dimensions : [];
|
|
1115
|
-
});
|
|
1153
|
+
}, selectorMemoizationOptions);
|
|
1116
1154
|
/**
|
|
1117
1155
|
* Gets dimensions of the passed layer, excluding the time dimension
|
|
1118
1156
|
*
|
|
@@ -1124,21 +1162,21 @@
|
|
|
1124
1162
|
|
|
1125
1163
|
var getLayerNonTimeDimensions = reselect.createSelector(getLayerDimensions, function (dimensions) {
|
|
1126
1164
|
return filterNonTimeDimensions(dimensions);
|
|
1127
|
-
});
|
|
1165
|
+
}, selectorMemoizationOptions);
|
|
1128
1166
|
/**
|
|
1129
1167
|
* Gets time dimension of the passed layer
|
|
1130
1168
|
*
|
|
1131
1169
|
* Example: timeDimension = getLayerTimeDimension(store, 'layerId_1')
|
|
1132
1170
|
* @param {object} store store: object - object from which the layers state will be extracted
|
|
1133
1171
|
* @param {string} layerId layerId: string - Id of the layer
|
|
1134
|
-
* @returns {
|
|
1172
|
+
* @returns {object} returnType: object - object of layer time dimension
|
|
1135
1173
|
*/
|
|
1136
1174
|
|
|
1137
1175
|
var getLayerTimeDimension = reselect.createSelector(getLayerDimensions, function (dimensions) {
|
|
1138
1176
|
return dimensions && dimensions.length ? dimensions.find(function (dimension) {
|
|
1139
1177
|
return dimension.name === 'time';
|
|
1140
|
-
}) :
|
|
1141
|
-
});
|
|
1178
|
+
}) : {};
|
|
1179
|
+
}, selectorMemoizationOptions);
|
|
1142
1180
|
/**
|
|
1143
1181
|
* Gets specified dimension of the passed layer
|
|
1144
1182
|
*
|
|
@@ -1155,7 +1193,7 @@
|
|
|
1155
1193
|
return dimensions && dimensions.length ? dimensions.find(function (dimension) {
|
|
1156
1194
|
return dimension.name === dimensionName;
|
|
1157
1195
|
}) : {};
|
|
1158
|
-
});
|
|
1196
|
+
}, selectorMemoizationOptions);
|
|
1159
1197
|
/**
|
|
1160
1198
|
* Gets opacity of the passed layer
|
|
1161
1199
|
*
|
|
@@ -1237,9 +1275,11 @@
|
|
|
1237
1275
|
* @returns {array} returnType: array - array containing all available base layers
|
|
1238
1276
|
*/
|
|
1239
1277
|
|
|
1240
|
-
var getAvailableBaseLayersForMap = function
|
|
1241
|
-
|
|
1242
|
-
|
|
1278
|
+
var getAvailableBaseLayersForMap = reselect.createSelector(layerStore, function (_store, _mapId) {
|
|
1279
|
+
return _mapId;
|
|
1280
|
+
}, function (layerStore, mapId) {
|
|
1281
|
+
if (layerStore && layerStore.availableBaseLayers) {
|
|
1282
|
+
var availableBaseLayers_1 = layerStore.availableBaseLayers;
|
|
1243
1283
|
return availableBaseLayers_1.allIds.reduce(function (list, layerId) {
|
|
1244
1284
|
if (availableBaseLayers_1.byId[layerId].mapId === mapId) {
|
|
1245
1285
|
return list.concat(availableBaseLayers_1.byId[layerId]);
|
|
@@ -1250,7 +1290,7 @@
|
|
|
1250
1290
|
}
|
|
1251
1291
|
|
|
1252
1292
|
return [];
|
|
1253
|
-
};
|
|
1293
|
+
}, selectorMemoizationOptions);
|
|
1254
1294
|
|
|
1255
1295
|
/*! *****************************************************************************
|
|
1256
1296
|
Copyright (c) Microsoft Corporation.
|
|
@@ -1306,6 +1346,16 @@
|
|
|
1306
1346
|
return t;
|
|
1307
1347
|
}
|
|
1308
1348
|
|
|
1349
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
1350
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
1351
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
1352
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
1353
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
1354
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
1355
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
1356
|
+
});
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1309
1359
|
function __generator(thisArg, body) {
|
|
1310
1360
|
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
1311
1361
|
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
@@ -1964,14 +2014,6 @@
|
|
|
1964
2014
|
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1965
2015
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
1966
2016
|
* */
|
|
1967
|
-
/* TODO:, move this to a right place https://gitlab.com/opengeoweb/opengeoweb/-/issues/1802 */
|
|
1968
|
-
|
|
1969
|
-
var selectorMemoizationOptions = {
|
|
1970
|
-
memoizeOptions: {
|
|
1971
|
-
maxSize: 1000,
|
|
1972
|
-
resultEqualityCheck: _.isEqual
|
|
1973
|
-
}
|
|
1974
|
-
};
|
|
1975
2017
|
/**
|
|
1976
2018
|
* Gets the map state by mapId
|
|
1977
2019
|
*
|
|
@@ -2011,19 +2053,17 @@
|
|
|
2011
2053
|
* @returns {object} object containing map state (isAnimating, bbox, baseLayers, layers etc.)
|
|
2012
2054
|
*/
|
|
2013
2055
|
|
|
2014
|
-
var getFirstMap = function
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
return null;
|
|
2020
|
-
};
|
|
2056
|
+
var getFirstMap = reselect.createSelector(getAllMapIds, function (store) {
|
|
2057
|
+
return store && store.webmap && store.webmap.byId ? store.webmap.byId : {};
|
|
2058
|
+
}, function (allMapIds, mapsById) {
|
|
2059
|
+
return allMapIds[0] && mapsById[allMapIds[0]] ? mapsById[allMapIds[0]] : null;
|
|
2060
|
+
}, selectorMemoizationOptions);
|
|
2021
2061
|
/**
|
|
2022
2062
|
* Gets the id of first map in store
|
|
2023
2063
|
*
|
|
2024
2064
|
* Example: getFirstMapId(store)
|
|
2025
|
-
* @param {object} store store object from which the map state wll be extracted
|
|
2026
|
-
* @returns {
|
|
2065
|
+
* @param {object} store store: object from which the map state wll be extracted
|
|
2066
|
+
* @returns {string} returnType:string - map id
|
|
2027
2067
|
*/
|
|
2028
2068
|
|
|
2029
2069
|
var getFirstMapId = reselect.createSelector(getFirstMap, function (map) {
|
|
@@ -2034,7 +2074,7 @@
|
|
|
2034
2074
|
*
|
|
2035
2075
|
* @param {object} store store: object - store object
|
|
2036
2076
|
* @param {string} mapId mapId: string - Id of the map
|
|
2037
|
-
* @returns {
|
|
2077
|
+
* @returns {boolean} returnType:boolean - true if map is present
|
|
2038
2078
|
*/
|
|
2039
2079
|
|
|
2040
2080
|
var getIsMapPresent = reselect.createSelector(function (store, mapId) {
|
|
@@ -2057,7 +2097,7 @@
|
|
|
2057
2097
|
|
|
2058
2098
|
var getLayerIds = reselect.createSelector(getMapById, function (store) {
|
|
2059
2099
|
return store ? store.mapLayers : [];
|
|
2060
|
-
});
|
|
2100
|
+
}, selectorMemoizationOptions);
|
|
2061
2101
|
/**
|
|
2062
2102
|
* Gets all layer states for a map
|
|
2063
2103
|
*
|
|
@@ -2083,7 +2123,7 @@
|
|
|
2083
2123
|
|
|
2084
2124
|
var getMapBaseLayersIds = reselect.createSelector(getMapById, function (store) {
|
|
2085
2125
|
return store ? store.baseLayers : [];
|
|
2086
|
-
});
|
|
2126
|
+
}, selectorMemoizationOptions);
|
|
2087
2127
|
/**
|
|
2088
2128
|
* Gets all baselayers for a map
|
|
2089
2129
|
*
|
|
@@ -2109,7 +2149,7 @@
|
|
|
2109
2149
|
|
|
2110
2150
|
var getMapOverLayersIds = reselect.createSelector(getMapById, function (store) {
|
|
2111
2151
|
return store ? store.overLayers : [];
|
|
2112
|
-
});
|
|
2152
|
+
}, selectorMemoizationOptions);
|
|
2113
2153
|
/**
|
|
2114
2154
|
* Gets all overLayers for a map
|
|
2115
2155
|
*
|
|
@@ -2135,7 +2175,7 @@
|
|
|
2135
2175
|
|
|
2136
2176
|
var getMapDimensions = reselect.createSelector(getMapById, function (store) {
|
|
2137
2177
|
return store ? store.dimensions : [];
|
|
2138
|
-
});
|
|
2178
|
+
}, selectorMemoizationOptions);
|
|
2139
2179
|
/**
|
|
2140
2180
|
* Gets the map dimension requested
|
|
2141
2181
|
*
|
|
@@ -2156,7 +2196,7 @@
|
|
|
2156
2196
|
}
|
|
2157
2197
|
|
|
2158
2198
|
return undefined;
|
|
2159
|
-
});
|
|
2199
|
+
}, selectorMemoizationOptions);
|
|
2160
2200
|
/**
|
|
2161
2201
|
* Gets map srs
|
|
2162
2202
|
*
|
|
@@ -2180,7 +2220,7 @@
|
|
|
2180
2220
|
|
|
2181
2221
|
var getBbox = reselect.createSelector(getMapById, function (store) {
|
|
2182
2222
|
return store ? store.bbox : {};
|
|
2183
|
-
});
|
|
2223
|
+
}, selectorMemoizationOptions);
|
|
2184
2224
|
/**
|
|
2185
2225
|
* Gets if map is animating
|
|
2186
2226
|
*
|
|
@@ -2270,7 +2310,7 @@
|
|
|
2270
2310
|
* Example: timeStep = getTimeStep(store, 'mapid_1')
|
|
2271
2311
|
* @param {object} store store: object - store object
|
|
2272
2312
|
* @param {string} mapId mapId: string - Id of the map
|
|
2273
|
-
* @returns {
|
|
2313
|
+
* @returns {number} returnType: number - time step as a number
|
|
2274
2314
|
*/
|
|
2275
2315
|
|
|
2276
2316
|
var getMapTimeStep = reselect.createSelector(getMapById, function (store) {
|
|
@@ -2282,7 +2322,7 @@
|
|
|
2282
2322
|
* Example: speed = getSpeed(store, 'mapid_1')
|
|
2283
2323
|
* @param {object} store store: object - store object
|
|
2284
2324
|
* @param {string} mapId mapId: string - Id of the map
|
|
2285
|
-
* @returns {
|
|
2325
|
+
* @returns {number} returnType: number - speed as a number
|
|
2286
2326
|
*/
|
|
2287
2327
|
|
|
2288
2328
|
var getMapAnimationDelay = reselect.createSelector(getMapById, function (store) {
|
|
@@ -2294,7 +2334,7 @@
|
|
|
2294
2334
|
* Example: centerTime = getCenterTime(store, 'mapid_1')
|
|
2295
2335
|
* @param {object} store store: object - store object
|
|
2296
2336
|
* @param {string} mapId mapId: string - Id of the map
|
|
2297
|
-
* @returns {
|
|
2337
|
+
* @returns {number} returnType: number - center time as a unix timestamp
|
|
2298
2338
|
*/
|
|
2299
2339
|
|
|
2300
2340
|
var getMapTimeSliderCenterTime = reselect.createSelector(getMapById, function (store) {
|
|
@@ -2306,7 +2346,7 @@
|
|
|
2306
2346
|
* Example: secondsPerPx = getSecondsPerPx(store, 'mapid_1')
|
|
2307
2347
|
* @param {object} store store: object - store object
|
|
2308
2348
|
* @param {string} mapId mapId: string - Id of the map
|
|
2309
|
-
* @returns {
|
|
2349
|
+
* @returns {number} returnType: number - the number of seconds per pixel
|
|
2310
2350
|
*/
|
|
2311
2351
|
|
|
2312
2352
|
var getMapTimeSliderSecondsPerPx = reselect.createSelector(getMapById, function (store) {
|
|
@@ -2318,7 +2358,7 @@
|
|
|
2318
2358
|
* Example: dataScaleToSecondsPerPx = getMapTimeSliderDataScaleToSecondsPerPx(store, 'mapid_1')
|
|
2319
2359
|
* @param {object} store store: object - store object
|
|
2320
2360
|
* @param {string} mapId mapId: string - Id of the map
|
|
2321
|
-
* @returns {
|
|
2361
|
+
* @returns {number} returnType: number - the number of scaleto seconds pixel
|
|
2322
2362
|
*/
|
|
2323
2363
|
|
|
2324
2364
|
var getMapTimeSliderDataScaleToSecondsPerPx = reselect.createSelector(getMapById, function (store) {
|
|
@@ -2369,14 +2409,14 @@
|
|
|
2369
2409
|
* Example const mapId = getMapIdFromLayerId(store 'layerId-A');
|
|
2370
2410
|
* @param {object} store store: object - store object
|
|
2371
2411
|
* @param {string} layerId layerId: string - Id of the layer
|
|
2372
|
-
* @returns {string} returnType: the mapId, or null if not found
|
|
2412
|
+
* @returns {string} returnType: string - the mapId, or null if not found
|
|
2373
2413
|
*/
|
|
2374
2414
|
|
|
2375
2415
|
var getMapIdFromLayerId = reselect.createSelector(function (store) {
|
|
2376
2416
|
return store && store.webmap ? store.webmap : null;
|
|
2377
2417
|
}, function (_store, layerId) {
|
|
2378
2418
|
return layerId;
|
|
2379
|
-
}, findMapIdFromLayerId);
|
|
2419
|
+
}, findMapIdFromLayerId, selectorMemoizationOptions);
|
|
2380
2420
|
/**
|
|
2381
2421
|
* Returns the layerId for given layerName
|
|
2382
2422
|
*
|
|
@@ -2384,7 +2424,7 @@
|
|
|
2384
2424
|
* @param {object} store store: object - store object
|
|
2385
2425
|
* @param {string} mapId mapId: string - Id of the map
|
|
2386
2426
|
* @param {string} layerId layerId: string - Id of the layer
|
|
2387
|
-
* @returns {string} returnType: the layerId, or null if not found
|
|
2427
|
+
* @returns {string} returnType: string - the layerId, or null if not found
|
|
2388
2428
|
*/
|
|
2389
2429
|
|
|
2390
2430
|
var getLayerIdByLayerName = reselect.createSelector(getMapLayers, function (_store, _mapId, layerName) {
|
|
@@ -2399,7 +2439,7 @@
|
|
|
2399
2439
|
}
|
|
2400
2440
|
|
|
2401
2441
|
return null;
|
|
2402
|
-
});
|
|
2442
|
+
}, selectorMemoizationOptions);
|
|
2403
2443
|
/**
|
|
2404
2444
|
* Returns the layerIndex in the map for given layerId
|
|
2405
2445
|
*
|
|
@@ -2416,7 +2456,7 @@
|
|
|
2416
2456
|
return layers.findIndex(function (layer) {
|
|
2417
2457
|
return layer.id === layerId;
|
|
2418
2458
|
});
|
|
2419
|
-
});
|
|
2459
|
+
}, selectorMemoizationOptions);
|
|
2420
2460
|
/**
|
|
2421
2461
|
* Returns the Layer in the map for given layerIndex
|
|
2422
2462
|
*
|
|
@@ -2435,7 +2475,7 @@
|
|
|
2435
2475
|
}
|
|
2436
2476
|
|
|
2437
2477
|
return null;
|
|
2438
|
-
});
|
|
2478
|
+
}, selectorMemoizationOptions);
|
|
2439
2479
|
/**
|
|
2440
2480
|
* Returns name of all unique dimensions present in all maps
|
|
2441
2481
|
*
|
|
@@ -2458,7 +2498,7 @@
|
|
|
2458
2498
|
}, list);
|
|
2459
2499
|
return uniqueMapDims;
|
|
2460
2500
|
}, []);
|
|
2461
|
-
});
|
|
2501
|
+
}, selectorMemoizationOptions);
|
|
2462
2502
|
/**
|
|
2463
2503
|
* Returns the mapPinLocation for the current map
|
|
2464
2504
|
*
|
|
@@ -2470,7 +2510,7 @@
|
|
|
2470
2510
|
|
|
2471
2511
|
var getPinLocation = reselect.createSelector(getMapById, function (store) {
|
|
2472
2512
|
return store ? store.mapPinLocation : undefined;
|
|
2473
|
-
});
|
|
2513
|
+
}, selectorMemoizationOptions);
|
|
2474
2514
|
|
|
2475
2515
|
/* *
|
|
2476
2516
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -2503,7 +2543,7 @@
|
|
|
2503
2543
|
|
|
2504
2544
|
var getServiceIds = reselect.createSelector(servicesStore, function (serviceState) {
|
|
2505
2545
|
return serviceState ? serviceState.allIds : [];
|
|
2506
|
-
});
|
|
2546
|
+
}, selectorMemoizationOptions);
|
|
2507
2547
|
/**
|
|
2508
2548
|
* Gets map services
|
|
2509
2549
|
*
|
|
@@ -2514,7 +2554,7 @@
|
|
|
2514
2554
|
|
|
2515
2555
|
var getServices = reselect.createSelector(servicesStore, function (store) {
|
|
2516
2556
|
return store ? store.byId : {};
|
|
2517
|
-
});
|
|
2557
|
+
}, selectorMemoizationOptions);
|
|
2518
2558
|
/**
|
|
2519
2559
|
* Gets the service object by its url
|
|
2520
2560
|
*
|
|
@@ -2531,19 +2571,19 @@
|
|
|
2531
2571
|
}
|
|
2532
2572
|
|
|
2533
2573
|
return null;
|
|
2534
|
-
});
|
|
2574
|
+
}, selectorMemoizationOptions);
|
|
2535
2575
|
/**
|
|
2536
2576
|
* Gets the layer from the store using the serviceUrl and layerName
|
|
2537
2577
|
*
|
|
2538
2578
|
* Example: layers = getLayersFromService(store, 'https://geoservices.knmi.nl/...')
|
|
2539
2579
|
* @param {object} store store: object - object from which the layers state will be extracted
|
|
2540
2580
|
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
2541
|
-
* @returns {
|
|
2581
|
+
* @returns {array} returnType: ServiceLayer[] - All layers within the service object.
|
|
2542
2582
|
*/
|
|
2543
2583
|
|
|
2544
2584
|
var getLayersFromService$1 = reselect.createSelector(getServiceByName, function (service) {
|
|
2545
2585
|
return service && service.layers || null;
|
|
2546
|
-
});
|
|
2586
|
+
}, selectorMemoizationOptions);
|
|
2547
2587
|
/**
|
|
2548
2588
|
* Gets the layer from the store using the serviceUrl and layerName
|
|
2549
2589
|
*
|
|
@@ -2571,7 +2611,7 @@
|
|
|
2571
2611
|
}
|
|
2572
2612
|
|
|
2573
2613
|
return layers[index];
|
|
2574
|
-
});
|
|
2614
|
+
}, selectorMemoizationOptions);
|
|
2575
2615
|
/**
|
|
2576
2616
|
* Gets the layers stylelist from the servicestore using the serviceUrl and layerName
|
|
2577
2617
|
*
|
|
@@ -2584,7 +2624,26 @@
|
|
|
2584
2624
|
|
|
2585
2625
|
var getLayerStyles = reselect.createSelector(getLayerFromService, function (layer) {
|
|
2586
2626
|
return layer && layer.styles ? layer.styles : [];
|
|
2587
|
-
});
|
|
2627
|
+
}, selectorMemoizationOptions);
|
|
2628
|
+
/**
|
|
2629
|
+
* Gets services and maps them into an array
|
|
2630
|
+
*
|
|
2631
|
+
* Example: services = getServices(store)
|
|
2632
|
+
* @param {object} store store: object - Store object
|
|
2633
|
+
* @returns {array} returnType: [] - array containing services
|
|
2634
|
+
*/
|
|
2635
|
+
|
|
2636
|
+
var getServicesInArray = reselect.createSelector(servicesStore, function (store) {
|
|
2637
|
+
var services = store ? store.byId : {};
|
|
2638
|
+
var arrayOfServiceObjects = Object.keys(services).map(function (key) {
|
|
2639
|
+
return {
|
|
2640
|
+
id: services[key].id,
|
|
2641
|
+
name: services[key].name,
|
|
2642
|
+
service: services[key].service
|
|
2643
|
+
};
|
|
2644
|
+
});
|
|
2645
|
+
return arrayOfServiceObjects;
|
|
2646
|
+
}, selectorMemoizationOptions);
|
|
2588
2647
|
|
|
2589
2648
|
/* *
|
|
2590
2649
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -2664,7 +2723,8 @@
|
|
|
2664
2723
|
getServiceByName: getServiceByName,
|
|
2665
2724
|
getLayersFromService: getLayersFromService$1,
|
|
2666
2725
|
getLayerFromService: getLayerFromService,
|
|
2667
|
-
getLayerStyles: getLayerStyles
|
|
2726
|
+
getLayerStyles: getLayerStyles,
|
|
2727
|
+
getServicesInArray: getServicesInArray
|
|
2668
2728
|
});
|
|
2669
2729
|
|
|
2670
2730
|
/* *
|
|
@@ -2724,7 +2784,8 @@
|
|
|
2724
2784
|
WEBMAP_ADD_AVAILABLE_BASELAYER: WEBMAP_ADD_AVAILABLE_BASELAYER,
|
|
2725
2785
|
WEBMAP_ADD_AVAILABLE_BASELAYERS: WEBMAP_ADD_AVAILABLE_BASELAYERS,
|
|
2726
2786
|
WEBMAP_UPDATE_LAYER_INFO: WEBMAP_UPDATE_LAYER_INFO,
|
|
2727
|
-
MAP_SERVICES_SET_LAYERS: MAP_SERVICES_SET_LAYERS
|
|
2787
|
+
MAP_SERVICES_SET_LAYERS: MAP_SERVICES_SET_LAYERS,
|
|
2788
|
+
MAP_SERVICES_REMOVE_SERVICE: MAP_SERVICES_REMOVE_SERVICE
|
|
2728
2789
|
});
|
|
2729
2790
|
|
|
2730
2791
|
/* *
|
|
@@ -3837,6 +3898,11 @@
|
|
|
3837
3898
|
return;
|
|
3838
3899
|
}
|
|
3839
3900
|
|
|
3901
|
+
if (!targetId) {
|
|
3902
|
+
console.warn("SYNCGROUPS_ADD_TARGET: targetId is not defined.");
|
|
3903
|
+
return;
|
|
3904
|
+
}
|
|
3905
|
+
|
|
3840
3906
|
if (draft.groups.byId[groupId].targets.allIds.includes(targetId)) {
|
|
3841
3907
|
return;
|
|
3842
3908
|
}
|
|
@@ -5091,11 +5157,11 @@
|
|
|
5091
5157
|
},
|
|
5092
5158
|
'&.Mui-selected': {
|
|
5093
5159
|
color: theme.palette.common.white,
|
|
5094
|
-
backgroundColor: theme.palette.geowebColors.buttons.
|
|
5160
|
+
backgroundColor: theme.palette.geowebColors.buttons.primary.active.fill,
|
|
5095
5161
|
boxShadow: "none",
|
|
5096
5162
|
'&:hover': {
|
|
5097
5163
|
color: theme.palette.common.white,
|
|
5098
|
-
backgroundColor: theme.palette.geowebColors.buttons.
|
|
5164
|
+
backgroundColor: theme.palette.geowebColors.buttons.primary.mouseOver.fill
|
|
5099
5165
|
}
|
|
5100
5166
|
},
|
|
5101
5167
|
'&:after': {
|
|
@@ -5213,9 +5279,11 @@
|
|
|
5213
5279
|
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5214
5280
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
5215
5281
|
* */
|
|
5282
|
+
var SyncGroupTypeList = [SYNCGROUPS_TYPE_SETBBOX, SYNCGROUPS_TYPE_SETTIME];
|
|
5216
5283
|
|
|
5217
5284
|
var types = /*#__PURE__*/Object.freeze({
|
|
5218
|
-
__proto__: null
|
|
5285
|
+
__proto__: null,
|
|
5286
|
+
SyncGroupTypeList: SyncGroupTypeList
|
|
5219
5287
|
});
|
|
5220
5288
|
|
|
5221
5289
|
/* *
|
|
@@ -5419,7 +5487,7 @@
|
|
|
5419
5487
|
*
|
|
5420
5488
|
* @param {object} store store object from which the ui state wll be extracted
|
|
5421
5489
|
* @param {string} dialogType type of the dialog 'legend' | 'layerManager' | 'dimensionSelect-elevation'
|
|
5422
|
-
* @returns {
|
|
5490
|
+
* @returns {boolean} returnType: boolean
|
|
5423
5491
|
*/
|
|
5424
5492
|
|
|
5425
5493
|
var getisDialogOpen = reselect.createSelector(getDialogDetailsByType, function (details) {
|
|
@@ -5434,7 +5502,7 @@
|
|
|
5434
5502
|
*
|
|
5435
5503
|
* @param {object} store store object from which the ui state wll be extracted
|
|
5436
5504
|
* @param {string} dialogType type of the dialog 'legend' | 'layerManager' | 'dimensionSelect-elevation'
|
|
5437
|
-
* @returns {
|
|
5505
|
+
* @returns {string} returnType: string - the active map id
|
|
5438
5506
|
*/
|
|
5439
5507
|
|
|
5440
5508
|
var getDialogMapId = reselect.createSelector(getDialogDetailsByType, function (details) {
|
|
@@ -6390,6 +6458,16 @@
|
|
|
6390
6458
|
return reducer(state, mapAction);
|
|
6391
6459
|
}
|
|
6392
6460
|
|
|
6461
|
+
case MAP_SERVICES_REMOVE_SERVICE:
|
|
6462
|
+
return produce__default["default"](state, function (draft) {
|
|
6463
|
+
if (draft.byId[action.payload.serviceUrl]) {
|
|
6464
|
+
draft.allIds = draft.allIds.filter(function (id) {
|
|
6465
|
+
return id !== action.payload.serviceUrl;
|
|
6466
|
+
});
|
|
6467
|
+
delete draft.byId[action.payload.serviceUrl];
|
|
6468
|
+
}
|
|
6469
|
+
});
|
|
6470
|
+
|
|
6393
6471
|
default:
|
|
6394
6472
|
return state;
|
|
6395
6473
|
}
|
|
@@ -6882,7 +6960,10 @@
|
|
|
6882
6960
|
byId: {},
|
|
6883
6961
|
allIds: []
|
|
6884
6962
|
},
|
|
6885
|
-
keywords:
|
|
6963
|
+
keywords: {
|
|
6964
|
+
byId: {},
|
|
6965
|
+
allIds: []
|
|
6966
|
+
}
|
|
6886
6967
|
}
|
|
6887
6968
|
};
|
|
6888
6969
|
var reducer = function reducer(state, action) {
|
|
@@ -6910,30 +6991,22 @@
|
|
|
6910
6991
|
if (!draft.filters.activeServices.byId[serviceUrl_1]) {
|
|
6911
6992
|
draft.filters.activeServices.byId[serviceUrl_1] = {};
|
|
6912
6993
|
|
|
6913
|
-
var _loop_1 = function _loop_1(keyword) {
|
|
6914
|
-
var foundKeyword = draft.filters.keywords.find(function (object) {
|
|
6915
|
-
return object.id === keyword;
|
|
6916
|
-
});
|
|
6917
|
-
|
|
6918
|
-
if (foundKeyword) {
|
|
6919
|
-
foundKeyword.amount += 1;
|
|
6920
|
-
foundKeyword.amountVisible += 1;
|
|
6921
|
-
} else {
|
|
6922
|
-
var newKeywordObject = {
|
|
6923
|
-
id: keyword,
|
|
6924
|
-
amount: 1,
|
|
6925
|
-
amountVisible: 1,
|
|
6926
|
-
checked: true
|
|
6927
|
-
};
|
|
6928
|
-
draft.filters.keywords.push(newKeywordObject);
|
|
6929
|
-
}
|
|
6930
|
-
};
|
|
6931
|
-
|
|
6932
6994
|
try {
|
|
6933
6995
|
for (var keywords_2 = __values(keywords_1), keywords_2_1 = keywords_2.next(); !keywords_2_1.done; keywords_2_1 = keywords_2.next()) {
|
|
6934
6996
|
var keyword = keywords_2_1.value;
|
|
6935
6997
|
|
|
6936
|
-
|
|
6998
|
+
if (!draft.filters.keywords.byId[keyword]) {
|
|
6999
|
+
draft.filters.keywords.byId[keyword] = {
|
|
7000
|
+
id: keyword,
|
|
7001
|
+
amount: 1,
|
|
7002
|
+
amountVisible: 1,
|
|
7003
|
+
checked: true
|
|
7004
|
+
};
|
|
7005
|
+
draft.filters.keywords.allIds.push(keyword);
|
|
7006
|
+
} else {
|
|
7007
|
+
draft.filters.keywords.byId[keyword].amount += 1;
|
|
7008
|
+
draft.filters.keywords.byId[keyword].amountVisible += 1;
|
|
7009
|
+
}
|
|
6937
7010
|
}
|
|
6938
7011
|
} catch (e_1_1) {
|
|
6939
7012
|
e_1 = {
|
|
@@ -6955,31 +7028,37 @@
|
|
|
6955
7028
|
});
|
|
6956
7029
|
}
|
|
6957
7030
|
|
|
6958
|
-
case '
|
|
7031
|
+
case 'LAYER_SELECT_SERVICE_REMOVED':
|
|
6959
7032
|
{
|
|
6960
|
-
var _b = action.payload,
|
|
6961
|
-
serviceUrl_2 = _b.serviceUrl,
|
|
6962
|
-
keywords_3 = _b.keywords;
|
|
6963
7033
|
return produce__default["default"](state, function (draft) {
|
|
6964
7034
|
var e_2, _a;
|
|
6965
7035
|
|
|
6966
|
-
|
|
7036
|
+
var serviceUrl = action.payload.serviceUrl; // 1. Find a service that is to be removed
|
|
6967
7037
|
|
|
6968
|
-
var
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
7038
|
+
var foundService = draft.filters.activeServices.byId[serviceUrl];
|
|
7039
|
+
|
|
7040
|
+
var _loop_1 = function _loop_1(keyword) {
|
|
7041
|
+
var foundObject = draft.filters.keywords.byId[keyword];
|
|
6972
7042
|
|
|
6973
|
-
if (foundObject) {
|
|
6974
|
-
foundObject.
|
|
7043
|
+
if (foundObject && foundObject.amount) {
|
|
7044
|
+
foundObject.amount -= 1;
|
|
7045
|
+
foundObject.amountVisible -= 1;
|
|
7046
|
+
}
|
|
7047
|
+
|
|
7048
|
+
if (foundObject && foundObject.amount === 0) {
|
|
7049
|
+
delete draft.filters.keywords.byId[keyword];
|
|
7050
|
+
draft.filters.keywords.allIds = draft.filters.keywords.allIds.filter(function (id) {
|
|
7051
|
+
return id !== keyword;
|
|
7052
|
+
});
|
|
6975
7053
|
}
|
|
6976
7054
|
};
|
|
6977
7055
|
|
|
6978
7056
|
try {
|
|
6979
|
-
|
|
6980
|
-
|
|
7057
|
+
// 2. Go through all keywords for removed service, and decrement the amount of all found keywords
|
|
7058
|
+
for (var _b = __values(foundService.keywordsPerService), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
7059
|
+
var keyword = _c.value;
|
|
6981
7060
|
|
|
6982
|
-
|
|
7061
|
+
_loop_1(keyword);
|
|
6983
7062
|
}
|
|
6984
7063
|
} catch (e_2_1) {
|
|
6985
7064
|
e_2 = {
|
|
@@ -6987,10 +7066,45 @@
|
|
|
6987
7066
|
};
|
|
6988
7067
|
} finally {
|
|
6989
7068
|
try {
|
|
6990
|
-
if (
|
|
7069
|
+
if (_c && !_c.done && (_a = _b["return"])) _a.call(_b);
|
|
6991
7070
|
} finally {
|
|
6992
7071
|
if (e_2) throw e_2.error;
|
|
6993
7072
|
}
|
|
7073
|
+
} // Finally remove object from activeServices, so if the service is added again later on, new object and keywords will be re-added
|
|
7074
|
+
|
|
7075
|
+
|
|
7076
|
+
delete draft.filters.activeServices.byId[serviceUrl];
|
|
7077
|
+
draft.filters.activeServices.allIds = draft.filters.activeServices.allIds.filter(function (id) {
|
|
7078
|
+
return id !== serviceUrl;
|
|
7079
|
+
});
|
|
7080
|
+
});
|
|
7081
|
+
}
|
|
7082
|
+
|
|
7083
|
+
case 'LAYER_SELECT_ENABLE_ACTIVE_SERVICE':
|
|
7084
|
+
{
|
|
7085
|
+
var _b = action.payload,
|
|
7086
|
+
serviceUrl_2 = _b.serviceUrl,
|
|
7087
|
+
keywords_3 = _b.keywords;
|
|
7088
|
+
return produce__default["default"](state, function (draft) {
|
|
7089
|
+
var e_3, _a;
|
|
7090
|
+
|
|
7091
|
+
draft.filters.activeServices.byId[serviceUrl_2].enabled = true;
|
|
7092
|
+
|
|
7093
|
+
try {
|
|
7094
|
+
for (var keywords_4 = __values(keywords_3), keywords_4_1 = keywords_4.next(); !keywords_4_1.done; keywords_4_1 = keywords_4.next()) {
|
|
7095
|
+
var keyword = keywords_4_1.value;
|
|
7096
|
+
draft.filters.keywords.byId[keyword].amountVisible += 1;
|
|
7097
|
+
}
|
|
7098
|
+
} catch (e_3_1) {
|
|
7099
|
+
e_3 = {
|
|
7100
|
+
error: e_3_1
|
|
7101
|
+
};
|
|
7102
|
+
} finally {
|
|
7103
|
+
try {
|
|
7104
|
+
if (keywords_4_1 && !keywords_4_1.done && (_a = keywords_4["return"])) _a.call(keywords_4);
|
|
7105
|
+
} finally {
|
|
7106
|
+
if (e_3) throw e_3.error;
|
|
7107
|
+
}
|
|
6994
7108
|
}
|
|
6995
7109
|
});
|
|
6996
7110
|
}
|
|
@@ -7001,45 +7115,63 @@
|
|
|
7001
7115
|
serviceUrl_3 = _c.serviceUrl,
|
|
7002
7116
|
keywords_5 = _c.keywords;
|
|
7003
7117
|
return produce__default["default"](state, function (draft) {
|
|
7004
|
-
var
|
|
7118
|
+
var e_4, _a;
|
|
7005
7119
|
|
|
7006
7120
|
draft.filters.activeServices.byId[serviceUrl_3].enabled = false;
|
|
7007
7121
|
|
|
7008
|
-
var _loop_3 = function _loop_3(keyword) {
|
|
7009
|
-
var foundObject = draft.filters.keywords.find(function (object) {
|
|
7010
|
-
return object.id === keyword;
|
|
7011
|
-
});
|
|
7012
|
-
|
|
7013
|
-
if (foundObject && foundObject.amountVisible > 0) {
|
|
7014
|
-
foundObject.amountVisible -= 1;
|
|
7015
|
-
}
|
|
7016
|
-
};
|
|
7017
|
-
|
|
7018
7122
|
try {
|
|
7019
7123
|
for (var keywords_6 = __values(keywords_5), keywords_6_1 = keywords_6.next(); !keywords_6_1.done; keywords_6_1 = keywords_6.next()) {
|
|
7020
7124
|
var keyword = keywords_6_1.value;
|
|
7021
|
-
|
|
7022
|
-
_loop_3(keyword);
|
|
7125
|
+
draft.filters.keywords.byId[keyword].amountVisible -= 1;
|
|
7023
7126
|
}
|
|
7024
|
-
} catch (
|
|
7025
|
-
|
|
7026
|
-
error:
|
|
7127
|
+
} catch (e_4_1) {
|
|
7128
|
+
e_4 = {
|
|
7129
|
+
error: e_4_1
|
|
7027
7130
|
};
|
|
7028
7131
|
} finally {
|
|
7029
7132
|
try {
|
|
7030
7133
|
if (keywords_6_1 && !keywords_6_1.done && (_a = keywords_6["return"])) _a.call(keywords_6);
|
|
7031
7134
|
} finally {
|
|
7032
|
-
if (
|
|
7135
|
+
if (e_4) throw e_4.error;
|
|
7033
7136
|
}
|
|
7034
7137
|
}
|
|
7035
7138
|
});
|
|
7036
7139
|
}
|
|
7037
7140
|
|
|
7038
|
-
case '
|
|
7141
|
+
case 'LAYER_SELECT_TOGGLE_KEYWORDS':
|
|
7039
7142
|
{
|
|
7040
7143
|
return produce__default["default"](state, function (draft) {
|
|
7144
|
+
var e_5, _a;
|
|
7145
|
+
|
|
7041
7146
|
var keywords = action.payload.keywords;
|
|
7042
|
-
|
|
7147
|
+
|
|
7148
|
+
try {
|
|
7149
|
+
for (var keywords_7 = __values(keywords), keywords_7_1 = keywords_7.next(); !keywords_7_1.done; keywords_7_1 = keywords_7.next()) {
|
|
7150
|
+
var keyword = keywords_7_1.value;
|
|
7151
|
+
draft.filters.keywords.byId[keyword].checked = !draft.filters.keywords.byId[keyword].checked;
|
|
7152
|
+
}
|
|
7153
|
+
} catch (e_5_1) {
|
|
7154
|
+
e_5 = {
|
|
7155
|
+
error: e_5_1
|
|
7156
|
+
};
|
|
7157
|
+
} finally {
|
|
7158
|
+
try {
|
|
7159
|
+
if (keywords_7_1 && !keywords_7_1.done && (_a = keywords_7["return"])) _a.call(keywords_7);
|
|
7160
|
+
} finally {
|
|
7161
|
+
if (e_5) throw e_5.error;
|
|
7162
|
+
}
|
|
7163
|
+
}
|
|
7164
|
+
});
|
|
7165
|
+
}
|
|
7166
|
+
|
|
7167
|
+
case 'LAYER_SELECT_ENABLE_ONLY_ONE_KEYWORD':
|
|
7168
|
+
{
|
|
7169
|
+
return produce__default["default"](state, function (draft) {
|
|
7170
|
+
var keyword = action.payload.keyword;
|
|
7171
|
+
draft.filters.keywords.allIds.forEach(function (id) {
|
|
7172
|
+
draft.filters.keywords.byId[id].checked = false;
|
|
7173
|
+
});
|
|
7174
|
+
draft.filters.keywords.byId[keyword].checked = true;
|
|
7043
7175
|
});
|
|
7044
7176
|
}
|
|
7045
7177
|
|
|
@@ -7068,7 +7200,9 @@
|
|
|
7068
7200
|
var LAYER_SELECT_DISABLE_ACTIVE_SERVICE = 'LAYER_SELECT_DISABLE_ACTIVE_SERVICE';
|
|
7069
7201
|
var LAYER_SELECT_ENABLE_ACTIVE_SERVICE = 'LAYER_SELECT_ENABLE_ACTIVE_SERVICE';
|
|
7070
7202
|
var LAYER_SELECT_ADD_KEYWORDS_AND_ACTIVE_SERVICES = 'LAYER_SELECT_ADD_KEYWORDS_AND_ACTIVE_SERVICES';
|
|
7071
|
-
var
|
|
7203
|
+
var LAYER_SELECT_SERVICE_REMOVED = 'LAYER_SELECT_SERVICE_REMOVED';
|
|
7204
|
+
var LAYER_SELECT_TOGGLE_KEYWORDS = 'LAYER_SELECT_TOGGLE_KEYWORDS';
|
|
7205
|
+
var LAYER_SELECT_ENABLE_ONLY_ONE_KEYWORD = 'LAYER_SELECT_ENABLE_ONLY_ONE_KEYWORD';
|
|
7072
7206
|
|
|
7073
7207
|
/* *
|
|
7074
7208
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -7138,9 +7272,42 @@
|
|
|
7138
7272
|
payload: payload
|
|
7139
7273
|
};
|
|
7140
7274
|
};
|
|
7141
|
-
|
|
7275
|
+
/*
|
|
7276
|
+
* Removes the given service from Layer Select store
|
|
7277
|
+
*
|
|
7278
|
+
* Example: layerSelectServiceRemoved({ serviceUrl: 'https://service.wms' })
|
|
7279
|
+
* @param {string} payload {serviceUrl: string}
|
|
7280
|
+
*/
|
|
7281
|
+
|
|
7282
|
+
var layerSelectServiceRemoved = function layerSelectServiceRemoved(payload) {
|
|
7283
|
+
return {
|
|
7284
|
+
type: LAYER_SELECT_SERVICE_REMOVED,
|
|
7285
|
+
payload: payload
|
|
7286
|
+
};
|
|
7287
|
+
};
|
|
7288
|
+
/*
|
|
7289
|
+
* Toggles keywords listed
|
|
7290
|
+
*
|
|
7291
|
+
* Example: toggleKeywords({ keywords: ['keyword1', 'keyword2'] })
|
|
7292
|
+
* @param {string[]} payload { keywords: string[] }
|
|
7293
|
+
*/
|
|
7294
|
+
|
|
7295
|
+
var toggleKeywords = function toggleKeywords(payload) {
|
|
7296
|
+
return {
|
|
7297
|
+
type: LAYER_SELECT_TOGGLE_KEYWORDS,
|
|
7298
|
+
payload: payload
|
|
7299
|
+
};
|
|
7300
|
+
};
|
|
7301
|
+
/*
|
|
7302
|
+
* Enables only one keyword and disables all other
|
|
7303
|
+
*
|
|
7304
|
+
* Example: toggleKeywords({ keyword: 'keyword1' })
|
|
7305
|
+
* @param {string} payload { keyword: string }
|
|
7306
|
+
*/
|
|
7307
|
+
|
|
7308
|
+
var enableOnlyOneKeyword = function enableOnlyOneKeyword(payload) {
|
|
7142
7309
|
return {
|
|
7143
|
-
type:
|
|
7310
|
+
type: LAYER_SELECT_ENABLE_ONLY_ONE_KEYWORD,
|
|
7144
7311
|
payload: payload
|
|
7145
7312
|
};
|
|
7146
7313
|
};
|
|
@@ -7187,6 +7354,28 @@
|
|
|
7187
7354
|
}
|
|
7188
7355
|
});
|
|
7189
7356
|
}
|
|
7357
|
+
function layerSelectServiceRemovedSaga(capturedAction) {
|
|
7358
|
+
var removedService, serviceUrl;
|
|
7359
|
+
return __generator(this, function (_a) {
|
|
7360
|
+
switch (_a.label) {
|
|
7361
|
+
case 0:
|
|
7362
|
+
removedService = capturedAction.payload;
|
|
7363
|
+
serviceUrl = removedService.serviceUrl;
|
|
7364
|
+
return [4
|
|
7365
|
+
/*yield*/
|
|
7366
|
+
, effects.put(layerSelectServiceRemoved({
|
|
7367
|
+
serviceUrl: serviceUrl
|
|
7368
|
+
}))];
|
|
7369
|
+
|
|
7370
|
+
case 1:
|
|
7371
|
+
_a.sent();
|
|
7372
|
+
|
|
7373
|
+
return [2
|
|
7374
|
+
/*return*/
|
|
7375
|
+
];
|
|
7376
|
+
}
|
|
7377
|
+
});
|
|
7378
|
+
}
|
|
7190
7379
|
function rootSaga() {
|
|
7191
7380
|
return __generator(this, function (_a) {
|
|
7192
7381
|
switch (_a.label) {
|
|
@@ -7198,6 +7387,13 @@
|
|
|
7198
7387
|
case 1:
|
|
7199
7388
|
_a.sent();
|
|
7200
7389
|
|
|
7390
|
+
return [4
|
|
7391
|
+
/*yield*/
|
|
7392
|
+
, effects.takeEvery(MAP_SERVICES_REMOVE_SERVICE, layerSelectServiceRemovedSaga)];
|
|
7393
|
+
|
|
7394
|
+
case 2:
|
|
7395
|
+
_a.sent();
|
|
7396
|
+
|
|
7201
7397
|
return [2
|
|
7202
7398
|
/*return*/
|
|
7203
7399
|
];
|
|
@@ -7276,7 +7472,8 @@
|
|
|
7276
7472
|
path: nodesToRecur.path || [],
|
|
7277
7473
|
children: [],
|
|
7278
7474
|
keywords: nodesToRecur.keywords || [],
|
|
7279
|
-
"abstract": nodesToRecur["abstract"] || ''
|
|
7475
|
+
"abstract": nodesToRecur["abstract"] || '',
|
|
7476
|
+
styles: nodesToRecur.styles || []
|
|
7280
7477
|
};
|
|
7281
7478
|
|
|
7282
7479
|
if (nodesToRecur.children) {
|
|
@@ -7693,132 +7890,288 @@
|
|
|
7693
7890
|
* See the License for the specific language governing permissions and
|
|
7694
7891
|
* limitations under the License.
|
|
7695
7892
|
*
|
|
7696
|
-
* Copyright
|
|
7697
|
-
* Copyright
|
|
7893
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7894
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
7698
7895
|
* */
|
|
7699
|
-
|
|
7700
|
-
|
|
7701
|
-
|
|
7702
|
-
id: 'dwd'
|
|
7703
|
-
};
|
|
7704
|
-
var nationaalgeoregister = {
|
|
7705
|
-
name: 'nationaalgeoregister.nl',
|
|
7706
|
-
url: 'https://geodata.nationaalgeoregister.nl/cbsgebiedsindelingen/wms?request=GetCapabilities&service=wms',
|
|
7707
|
-
id: 'nationaalgeoregister'
|
|
7708
|
-
};
|
|
7709
|
-
var KNMImsgcpp = {
|
|
7710
|
-
name: 'KNMImsgcpp',
|
|
7711
|
-
url: 'https://adaguc-server-msg-cpp-portal.pmc.knmi.cloud/wms?DATASET=msgrt&',
|
|
7712
|
-
id: 'msgcpp-ogc-realtime'
|
|
7713
|
-
};
|
|
7714
|
-
var HeiGit = {
|
|
7715
|
-
name: 'HeiGit',
|
|
7716
|
-
url: 'https://maps.heigit.org/osm-wms/service',
|
|
7717
|
-
id: 'HeiGit-osm-wms'
|
|
7718
|
-
};
|
|
7719
|
-
var ArcGisCanvas = {
|
|
7720
|
-
name: 'ArcGisCanvas',
|
|
7721
|
-
url: 'https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/',
|
|
7722
|
-
id: 'ArcGisCanvas'
|
|
7723
|
-
};
|
|
7724
|
-
var KNMIgeoservicesBaselayers = {
|
|
7725
|
-
name: 'KNMIgeoservicesBaselayers',
|
|
7726
|
-
url: 'https://geoservices.knmi.nl/wms?DATASET=baselayers&',
|
|
7727
|
-
id: 'KNMIgeoservicesBaselayers'
|
|
7728
|
-
};
|
|
7729
|
-
var KNMIgeoservicesRadar = {
|
|
7730
|
-
name: 'KNMIgeoservicesRadar',
|
|
7731
|
-
url: 'https://geoservices.knmi.nl/wms?dataset=RADAR&',
|
|
7732
|
-
id: 'KNMIgeoservicesRadar'
|
|
7733
|
-
};
|
|
7734
|
-
var KNMIgeoservicesObs = {
|
|
7735
|
-
name: 'KNMIgeoservicesObs',
|
|
7736
|
-
url: 'https://geoservices.knmi.nl/adagucserver?dataset=OBS&service=WMS&',
|
|
7737
|
-
id: 'KNMIgeoservicesObs'
|
|
7738
|
-
};
|
|
7739
|
-
var KNMIgeoservicesKlimaatAtlas = {
|
|
7740
|
-
name: 'KNMIgeoservicesKlimaatAtlas',
|
|
7741
|
-
url: 'https://geoservices.knmi.nl/wms?DATASET=gsie-dataset&SERVICE=WMS&',
|
|
7742
|
-
id: 'KNMIgeoservicesKlimaatAtlas'
|
|
7743
|
-
};
|
|
7744
|
-
var KNMIgeoservicesHarmonie = {
|
|
7745
|
-
name: 'KNMIgeoservicesHarmonie',
|
|
7746
|
-
url: 'https://geoservices.knmi.nl/wms?DATASET=HARM_N25&',
|
|
7747
|
-
id: 'KNMIgeoservicesKliKNMIgeoservicesHarmoniemaatAtlas'
|
|
7748
|
-
};
|
|
7749
|
-
var KNMIgeoservicesHarmonieMLService = {
|
|
7750
|
-
name: 'KNMI Harmonie ML',
|
|
7751
|
-
url: 'https://geoservices.knmi.nl/wms?DATASET=HARM_N25_ML&SERVICE=WMS&',
|
|
7752
|
-
id: 'harmonieML'
|
|
7896
|
+
|
|
7897
|
+
var parseBoolean = function parseBoolean(value) {
|
|
7898
|
+
return ['true', 'false', true, false].includes(value) && JSON.parse(value);
|
|
7753
7899
|
};
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
id: 'MetNorwayService'
|
|
7900
|
+
|
|
7901
|
+
var isBaseLayer = function isBaseLayer(layer) {
|
|
7902
|
+
return ['baseLayer'].includes(layer.layerType);
|
|
7758
7903
|
};
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
id: 'FMIopenwms'
|
|
7904
|
+
|
|
7905
|
+
var isMapLayer = function isMapLayer(layer) {
|
|
7906
|
+
return ['mapLayer'].includes(layer.layerType);
|
|
7763
7907
|
};
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
id: 'DWDObservations'
|
|
7908
|
+
|
|
7909
|
+
var isOverLayer = function isOverLayer(layer) {
|
|
7910
|
+
return ['overLayer'].includes(layer.layerType);
|
|
7768
7911
|
};
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
7772
|
-
id: 'DWDWarnings'
|
|
7912
|
+
|
|
7913
|
+
var isValidService = function isValidService(service) {
|
|
7914
|
+
return Object.prototype.hasOwnProperty.call(service, 'url');
|
|
7773
7915
|
};
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
|
|
7916
|
+
|
|
7917
|
+
var isValidBbox = function isValidBbox(bbox) {
|
|
7918
|
+
var isFiniteNumber = Number.isFinite(bbox.bottom) && Number.isFinite(bbox.left) && Number.isFinite(bbox.right) && Number.isFinite(bbox.top);
|
|
7919
|
+
return isFiniteNumber;
|
|
7778
7920
|
};
|
|
7779
|
-
|
|
7780
|
-
|
|
7781
|
-
|
|
7782
|
-
|
|
7921
|
+
|
|
7922
|
+
var isValidSrs = function isValidSrs(srs) {
|
|
7923
|
+
var isValid = srs.includes('EPSG');
|
|
7924
|
+
return isValid;
|
|
7783
7925
|
};
|
|
7784
|
-
|
|
7785
|
-
|
|
7786
|
-
|
|
7787
|
-
|
|
7926
|
+
|
|
7927
|
+
var parseLayerType = function parseLayerType(layer, defaultValue) {
|
|
7928
|
+
if (isBaseLayer(layer)) {
|
|
7929
|
+
return LayerType.baseLayer;
|
|
7930
|
+
}
|
|
7931
|
+
|
|
7932
|
+
if (isMapLayer(layer)) {
|
|
7933
|
+
return LayerType.mapLayer;
|
|
7934
|
+
}
|
|
7935
|
+
|
|
7936
|
+
if (isOverLayer(layer)) {
|
|
7937
|
+
return LayerType.overLayer;
|
|
7938
|
+
}
|
|
7939
|
+
|
|
7940
|
+
return defaultValue;
|
|
7788
7941
|
};
|
|
7789
|
-
|
|
7790
|
-
|
|
7791
|
-
|
|
7792
|
-
|
|
7942
|
+
|
|
7943
|
+
var parseLayer = function parseLayer(layer) {
|
|
7944
|
+
var lr = JSON.parse(JSON.stringify(layer)); // Cloning used here to achieve object immutability
|
|
7945
|
+
|
|
7946
|
+
if (!lr.id) {
|
|
7947
|
+
lr.id = generateLayerId();
|
|
7948
|
+
}
|
|
7949
|
+
|
|
7950
|
+
if (lr.layerType) {
|
|
7951
|
+
lr.layerType = parseLayerType(lr, null);
|
|
7952
|
+
}
|
|
7953
|
+
|
|
7954
|
+
if (lr.enabled) {
|
|
7955
|
+
lr.enabled = parseBoolean(lr.enabled);
|
|
7956
|
+
}
|
|
7957
|
+
|
|
7958
|
+
return lr;
|
|
7793
7959
|
};
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7797
|
-
|
|
7960
|
+
|
|
7961
|
+
var filterBaseLayers = function filterBaseLayers(presetArray) {
|
|
7962
|
+
var hasLayers = presetArray && Array.isArray(presetArray) && presetArray.length > 0;
|
|
7963
|
+
var filteredBaseLayers = hasLayers ? presetArray.filter(function (preset) {
|
|
7964
|
+
return isBaseLayer(preset);
|
|
7965
|
+
}).map(function (filteredPresetLayer) {
|
|
7966
|
+
return parseLayer(filteredPresetLayer);
|
|
7967
|
+
}) : null;
|
|
7968
|
+
var hasBaseLayers = filteredBaseLayers && filteredBaseLayers.length > 0;
|
|
7969
|
+
var baseLayers = hasBaseLayers ? filteredBaseLayers : undefined;
|
|
7970
|
+
return baseLayers;
|
|
7971
|
+
};
|
|
7972
|
+
var filterMapLayers = function filterMapLayers(presetArray) {
|
|
7973
|
+
var hasLayers = presetArray && Array.isArray(presetArray) && presetArray.length > 0;
|
|
7974
|
+
var filteredMapLayers = hasLayers ? presetArray.filter(function (preset) {
|
|
7975
|
+
return isMapLayer(preset);
|
|
7976
|
+
}).map(function (filteredPresetLayer) {
|
|
7977
|
+
return parseLayer(filteredPresetLayer);
|
|
7978
|
+
}) : null;
|
|
7979
|
+
var hasMapLayers = filteredMapLayers && filteredMapLayers.length > 0;
|
|
7980
|
+
var mapLayers = hasMapLayers ? filteredMapLayers : undefined;
|
|
7981
|
+
return mapLayers;
|
|
7982
|
+
};
|
|
7983
|
+
var filterServices = function filterServices(presetArray) {
|
|
7984
|
+
var hasServices = presetArray && Array.isArray(presetArray) && presetArray.length > 0;
|
|
7985
|
+
var validServices = hasServices ? presetArray.filter(function (preset) {
|
|
7986
|
+
return isValidService(preset);
|
|
7987
|
+
}) : null;
|
|
7988
|
+
var hasValidServices = validServices && validServices.length > 0;
|
|
7989
|
+
var services = hasValidServices ? validServices : undefined;
|
|
7990
|
+
return services;
|
|
7991
|
+
};
|
|
7992
|
+
var filterBbox = function filterBbox(presetBbox) {
|
|
7993
|
+
var hasAllValues = presetBbox && presetBbox.bottom && presetBbox.left && presetBbox.right && presetBbox.top;
|
|
7994
|
+
var bbox = hasAllValues && isValidBbox(presetBbox) ? presetBbox : undefined;
|
|
7995
|
+
return bbox;
|
|
7996
|
+
};
|
|
7997
|
+
var filterSrs = function filterSrs(presetSrs) {
|
|
7998
|
+
var isValid = presetSrs && isValidSrs(presetSrs);
|
|
7999
|
+
var srs = isValid ? presetSrs : undefined;
|
|
8000
|
+
return srs;
|
|
8001
|
+
};
|
|
8002
|
+
var filterDimensions = function filterDimensions(mapLayers) {
|
|
8003
|
+
var layerDimensions = mapLayers.reduce(function (mapLayerList, layer) {
|
|
8004
|
+
if (layer.dimensions && layer.dimensions.length > 0 && layer.id) {
|
|
8005
|
+
var dimensions = layer.dimensions.map(function (dimension) {
|
|
8006
|
+
return {
|
|
8007
|
+
dimension: dimension,
|
|
8008
|
+
layerId: layer.id
|
|
8009
|
+
};
|
|
8010
|
+
});
|
|
8011
|
+
return mapLayerList.concat(dimensions);
|
|
8012
|
+
}
|
|
8013
|
+
|
|
8014
|
+
return mapLayerList;
|
|
8015
|
+
}, []);
|
|
8016
|
+
return layerDimensions.length > 0 ? layerDimensions : undefined;
|
|
8017
|
+
};
|
|
8018
|
+
var filterMapPresets = function filterMapPresets(presets) {
|
|
8019
|
+
var preset = presets && presets.preset;
|
|
8020
|
+
var filteredBbox = preset && preset.bbox ? filterBbox(preset.bbox) : undefined;
|
|
8021
|
+
var filteredSrs = preset && preset.srs ? filterSrs(preset.srs) : undefined;
|
|
8022
|
+
var filterredServices = preset && preset.services ? filterServices(preset.services) : undefined;
|
|
8023
|
+
var baseServices = preset && preset.baseServices ? filterServices(preset.baseServices) : undefined;
|
|
8024
|
+
var filteredBaseLayers = preset && preset.layers ? filterBaseLayers(preset.layers) : undefined;
|
|
8025
|
+
var filteredMapLayers = preset && preset.layers ? filterMapLayers(preset.layers) : undefined;
|
|
8026
|
+
var presetType = preset && preset.presetType ? preset.presetType : undefined;
|
|
8027
|
+
var presetId = preset && preset.presetId ? preset.presetId : undefined;
|
|
8028
|
+
var presetName = preset && preset.presetName ? preset.presetName : undefined;
|
|
8029
|
+
var activeLayerId = preset && preset.activeLayerId ? preset.activeLayerId : undefined;
|
|
8030
|
+
var layerDimensions = filteredMapLayers ? filterDimensions(filteredMapLayers) : undefined;
|
|
8031
|
+
var filteredPreset = {
|
|
8032
|
+
presetType: presetType,
|
|
8033
|
+
presetId: presetId,
|
|
8034
|
+
presetName: presetName,
|
|
8035
|
+
bbox: filteredBbox,
|
|
8036
|
+
services: filterredServices,
|
|
8037
|
+
baseServices: baseServices,
|
|
8038
|
+
srs: filteredSrs,
|
|
8039
|
+
baseLayers: filteredBaseLayers,
|
|
8040
|
+
mapLayers: filteredMapLayers,
|
|
8041
|
+
activeLayerId: activeLayerId,
|
|
8042
|
+
layerDimensions: layerDimensions
|
|
8043
|
+
};
|
|
8044
|
+
return filteredPreset;
|
|
8045
|
+
};
|
|
8046
|
+
var getInitialPresets = function getInitialPresets(mapPresets, defaultInitialPresets) {
|
|
8047
|
+
var filteredPresets = mapPresets ? filterMapPresets(mapPresets) : null;
|
|
8048
|
+
var initialPresets = filteredPresets || filterMapPresets(defaultInitialPresets);
|
|
8049
|
+
return initialPresets;
|
|
8050
|
+
};
|
|
8051
|
+
|
|
8052
|
+
var preset = {
|
|
8053
|
+
presetType: "mapPreset",
|
|
8054
|
+
presetId: "mapPreset-1",
|
|
8055
|
+
presetName: "Layer manager preset",
|
|
8056
|
+
services: [
|
|
8057
|
+
{
|
|
8058
|
+
name: "KNMIgeoservicesRadar",
|
|
8059
|
+
url: "https://geoservices.knmi.nl/wms?dataset=RADAR&",
|
|
8060
|
+
id: "KNMIgeoservicesRadar"
|
|
8061
|
+
},
|
|
8062
|
+
{
|
|
8063
|
+
name: "MetNorwayService",
|
|
8064
|
+
url: "https://wms-e1.geoweb.met.no/wms?",
|
|
8065
|
+
id: "MetNorwayService"
|
|
8066
|
+
},
|
|
8067
|
+
{
|
|
8068
|
+
name: "FMIopenwms",
|
|
8069
|
+
url: "https://openwms.fmi.fi/geoserver/wms?",
|
|
8070
|
+
id: "FMIopenwms"
|
|
8071
|
+
},
|
|
8072
|
+
{
|
|
8073
|
+
name: "ECMWF",
|
|
8074
|
+
url: "https://apps.ecmwf.int/wms/?token=public",
|
|
8075
|
+
id: "ecmwf"
|
|
8076
|
+
},
|
|
8077
|
+
{
|
|
8078
|
+
name: "KNMIgeoservicesHarmonie",
|
|
8079
|
+
url: "https://geoservices.knmi.nl/wms?DATASET=HARM_N25&",
|
|
8080
|
+
id: "KNMIgeoservicesKliKNMIgeoservicesHarmoniemaatAtlas"
|
|
8081
|
+
},
|
|
8082
|
+
{
|
|
8083
|
+
name: "KNMI Harmonie ML",
|
|
8084
|
+
url: "https://geoservices.knmi.nl/wms?DATASET=HARM_N25_ML&SERVICE=WMS&",
|
|
8085
|
+
id: "harmonieML"
|
|
8086
|
+
},
|
|
8087
|
+
{
|
|
8088
|
+
name: "KNMIgeoservicesObs",
|
|
8089
|
+
url: "https://geoservices.knmi.nl/adagucserver?dataset=OBS&service=WMS&",
|
|
8090
|
+
id: "KNMIgeoservicesObs"
|
|
8091
|
+
},
|
|
8092
|
+
{
|
|
8093
|
+
name: "DWD",
|
|
8094
|
+
url: "https://maps.dwd.de/geoserver/ows?",
|
|
8095
|
+
id: "dwd"
|
|
8096
|
+
}
|
|
8097
|
+
],
|
|
8098
|
+
baseServices: [
|
|
8099
|
+
{
|
|
8100
|
+
name: "KNMIgeoservicesBaselayers",
|
|
8101
|
+
url: "https://geoservices.knmi.nl/wms?DATASET=baselayers&",
|
|
8102
|
+
id: "KNMIgeoservicesBaselayers"
|
|
8103
|
+
},
|
|
8104
|
+
{
|
|
8105
|
+
name: "DWD",
|
|
8106
|
+
url: "https://maps.dwd.de/geoserver/ows?",
|
|
8107
|
+
id: "dwd"
|
|
8108
|
+
}
|
|
8109
|
+
],
|
|
8110
|
+
layers: [
|
|
8111
|
+
{
|
|
8112
|
+
id: "layerid_2",
|
|
8113
|
+
name: "WorldMap_Light_Grey_Canvas",
|
|
8114
|
+
type: "twms",
|
|
8115
|
+
layerType: "baseLayer"
|
|
8116
|
+
},
|
|
8117
|
+
{
|
|
8118
|
+
service: "https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/",
|
|
8119
|
+
id: "layerid_3",
|
|
8120
|
+
name: "arcGisCanvas",
|
|
8121
|
+
type: "twms",
|
|
8122
|
+
enabled: "true",
|
|
8123
|
+
layerType: "baseLayer"
|
|
8124
|
+
},
|
|
8125
|
+
{
|
|
8126
|
+
id: "base-layer-2",
|
|
8127
|
+
name: "OpenStreetMap_NL",
|
|
8128
|
+
type: "twms",
|
|
8129
|
+
layerType: "baseLayer",
|
|
8130
|
+
enabled: "true"
|
|
8131
|
+
},
|
|
8132
|
+
{
|
|
8133
|
+
service: "https://maps.heigit.org/osm-wms/service",
|
|
8134
|
+
id: "layerid_5",
|
|
8135
|
+
name: "osm_auto:all",
|
|
8136
|
+
layerType: "baseLayer"
|
|
8137
|
+
}
|
|
8138
|
+
]
|
|
8139
|
+
};
|
|
8140
|
+
var initialPreset = {
|
|
8141
|
+
preset: preset
|
|
7798
8142
|
};
|
|
7799
8143
|
|
|
7800
|
-
|
|
8144
|
+
/* *
|
|
8145
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8146
|
+
* you may not use this file except in compliance with the License.
|
|
8147
|
+
* You may obtain a copy of the License at
|
|
8148
|
+
*
|
|
8149
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8150
|
+
*
|
|
8151
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8152
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8153
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8154
|
+
* See the License for the specific language governing permissions and
|
|
8155
|
+
* limitations under the License.
|
|
8156
|
+
*
|
|
8157
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8158
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
8159
|
+
* */
|
|
8160
|
+
|
|
8161
|
+
var _a$1 = filterMapPresets(initialPreset),
|
|
8162
|
+
services = _a$1.services,
|
|
8163
|
+
baseServices = _a$1.baseServices,
|
|
8164
|
+
baseLayers = _a$1.baseLayers;
|
|
8165
|
+
|
|
8166
|
+
var availableDefaultBaseLayers = baseLayers;
|
|
8167
|
+
var preloadedDefaultBaseServices = baseServices;
|
|
8168
|
+
var preloadedDefaultMapServices = services;
|
|
8169
|
+
|
|
8170
|
+
var defaultConfigurations = /*#__PURE__*/Object.freeze({
|
|
7801
8171
|
__proto__: null,
|
|
7802
|
-
|
|
7803
|
-
|
|
7804
|
-
|
|
7805
|
-
HeiGit: HeiGit,
|
|
7806
|
-
ArcGisCanvas: ArcGisCanvas,
|
|
7807
|
-
KNMIgeoservicesBaselayers: KNMIgeoservicesBaselayers,
|
|
7808
|
-
KNMIgeoservicesRadar: KNMIgeoservicesRadar,
|
|
7809
|
-
KNMIgeoservicesObs: KNMIgeoservicesObs,
|
|
7810
|
-
KNMIgeoservicesKlimaatAtlas: KNMIgeoservicesKlimaatAtlas,
|
|
7811
|
-
KNMIgeoservicesHarmonie: KNMIgeoservicesHarmonie,
|
|
7812
|
-
KNMIgeoservicesHarmonieMLService: KNMIgeoservicesHarmonieMLService,
|
|
7813
|
-
MetNorwayService: MetNorwayService,
|
|
7814
|
-
FMIopenwms: FMIopenwms,
|
|
7815
|
-
DWDObservations: DWDObservations,
|
|
7816
|
-
DWDWarnings: DWDWarnings,
|
|
7817
|
-
DWDWXProdukt: DWDWXProdukt,
|
|
7818
|
-
EUMETSAT: EUMETSAT,
|
|
7819
|
-
eumetviewEUMETSAT: eumetviewEUMETSAT,
|
|
7820
|
-
ECMWFPublicService: ECMWFPublicService,
|
|
7821
|
-
MeteoCanada: MeteoCanada
|
|
8172
|
+
availableDefaultBaseLayers: availableDefaultBaseLayers,
|
|
8173
|
+
preloadedDefaultBaseServices: preloadedDefaultBaseServices,
|
|
8174
|
+
preloadedDefaultMapServices: preloadedDefaultMapServices
|
|
7822
8175
|
});
|
|
7823
8176
|
|
|
7824
8177
|
/* *
|
|
@@ -7837,468 +8190,43 @@
|
|
|
7837
8190
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7838
8191
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
7839
8192
|
* */
|
|
7840
|
-
var
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
|
|
7845
|
-
|
|
7846
|
-
|
|
7847
|
-
|
|
8193
|
+
var useStyles$H = makeStyles__default["default"]({
|
|
8194
|
+
buttonDiv: {
|
|
8195
|
+
position: 'relative'
|
|
8196
|
+
},
|
|
8197
|
+
loadingButton: {
|
|
8198
|
+
position: 'absolute',
|
|
8199
|
+
top: 7,
|
|
8200
|
+
left: 7,
|
|
8201
|
+
zIndex: 1
|
|
8202
|
+
},
|
|
8203
|
+
button: {
|
|
8204
|
+
width: '24px',
|
|
8205
|
+
height: '24px',
|
|
8206
|
+
margin: '6px 0px 0px 10px'
|
|
8207
|
+
}
|
|
8208
|
+
});
|
|
7848
8209
|
|
|
7849
|
-
var
|
|
7850
|
-
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
7854
|
-
};
|
|
7855
|
-
var baseLayerOpenStreetMapNL$1 = {
|
|
7856
|
-
id: 'base-layer-2',
|
|
7857
|
-
name: 'OpenStreetMap_NL',
|
|
7858
|
-
type: 'twms',
|
|
7859
|
-
layerType: LayerType.baseLayer,
|
|
7860
|
-
enabled: true
|
|
7861
|
-
};
|
|
7862
|
-
var baseLayerArcGisCanvas$1 = {
|
|
7863
|
-
service: ArcGisCanvas.url,
|
|
7864
|
-
id: generateLayerId(),
|
|
7865
|
-
name: 'arcGisCanvas',
|
|
7866
|
-
type: 'twms',
|
|
7867
|
-
enabled: true,
|
|
7868
|
-
layerType: LayerType.baseLayer
|
|
7869
|
-
};
|
|
7870
|
-
var baseLayerWorldMap$1 = {
|
|
7871
|
-
id: generateLayerId(),
|
|
7872
|
-
name: 'WorldMap',
|
|
7873
|
-
type: 'twms',
|
|
7874
|
-
layerType: LayerType.baseLayer,
|
|
7875
|
-
enabled: true
|
|
8210
|
+
var validateServiceUrl = function validateServiceUrl(url) {
|
|
8211
|
+
if (url === '' || url === null || typeof url === 'undefined') return false;
|
|
8212
|
+
var matcher = /^(?:\w+:)?\/\/([^\s.]+\.\S{2}|[0-9a-zA-Z]+[:?\d]*)\S*$/;
|
|
8213
|
+
if (!matcher.test(url)) return false;
|
|
8214
|
+
return true;
|
|
7876
8215
|
};
|
|
7877
|
-
var baseLayerHeiGit = {
|
|
7878
|
-
service: HeiGit.url,
|
|
7879
|
-
id: generateLayerId(),
|
|
7880
|
-
name: 'osm_auto:all',
|
|
7881
|
-
layerType: LayerType.baseLayer
|
|
7882
|
-
}; // Over Layers List
|
|
7883
8216
|
|
|
7884
|
-
var
|
|
7885
|
-
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
format: 'image/png',
|
|
7898
|
-
enabled: true,
|
|
7899
|
-
style: 'precip-transparent/nearest',
|
|
7900
|
-
id: generateLayerId(),
|
|
7901
|
-
layerType: LayerType.mapLayer
|
|
7902
|
-
}; // Nederlandse Nationaal Georegister Layers list
|
|
7903
|
-
|
|
7904
|
-
var veiligheidsRegiosGebiedsIndelingenLabels = {
|
|
7905
|
-
service: nationaalgeoregister.url,
|
|
7906
|
-
name: 'cbsgebiedsindelingen:cbs_veiligheidsregio_2020_labelpoint',
|
|
7907
|
-
style: 'CBS_Label',
|
|
7908
|
-
enabled: false,
|
|
7909
|
-
layerType: LayerType.mapLayer
|
|
7910
|
-
};
|
|
7911
|
-
var veiligheidsRegiosGebiedsIndelingen = {
|
|
7912
|
-
service: nationaalgeoregister.url,
|
|
7913
|
-
name: 'cbsgebiedsindelingen:cbs_veiligheidsregio_2020_gegeneraliseerd',
|
|
7914
|
-
style: 'CBS_Gebiedsindeling',
|
|
7915
|
-
enabled: false,
|
|
7916
|
-
layerType: LayerType.mapLayer
|
|
7917
|
-
}; // KNMI Geoservices Layers List
|
|
7918
|
-
|
|
7919
|
-
var radarLayer$1 = {
|
|
7920
|
-
service: KNMIgeoservicesRadar.url,
|
|
7921
|
-
name: 'RAD_NL25_PCP_CM',
|
|
7922
|
-
format: 'image/png',
|
|
7923
|
-
enabled: true,
|
|
7924
|
-
style: 'radar/nearest',
|
|
7925
|
-
id: generateLayerId(),
|
|
7926
|
-
layerType: LayerType.mapLayer
|
|
7927
|
-
};
|
|
7928
|
-
var radarLayerWithError = {
|
|
7929
|
-
service: KNMIgeoservicesRadar.url,
|
|
7930
|
-
name: 'radarLayer',
|
|
7931
|
-
format: 'image/png',
|
|
7932
|
-
enabled: true,
|
|
7933
|
-
style: 'knmiradar/nearest',
|
|
7934
|
-
id: generateLayerId(),
|
|
7935
|
-
layerType: LayerType.mapLayer
|
|
7936
|
-
};
|
|
7937
|
-
var obsAirTemperature = {
|
|
7938
|
-
service: KNMIgeoservicesObs.url,
|
|
7939
|
-
name: '10M/ta',
|
|
7940
|
-
id: generateLayerId(),
|
|
7941
|
-
layerType: LayerType.mapLayer
|
|
7942
|
-
};
|
|
7943
|
-
var obsWind = {
|
|
7944
|
-
service: KNMIgeoservicesObs.url,
|
|
7945
|
-
name: '10M/wind',
|
|
7946
|
-
id: generateLayerId(),
|
|
7947
|
-
layerType: LayerType.mapLayer
|
|
7948
|
-
};
|
|
7949
|
-
var obsAirPressureAtSeaLevel = {
|
|
7950
|
-
service: KNMIgeoservicesObs.url,
|
|
7951
|
-
name: '10M/pp',
|
|
7952
|
-
id: generateLayerId(),
|
|
7953
|
-
layerType: LayerType.mapLayer
|
|
7954
|
-
};
|
|
7955
|
-
var obsRelativeHumidity = {
|
|
7956
|
-
service: KNMIgeoservicesObs.url,
|
|
7957
|
-
name: '10M/rh',
|
|
7958
|
-
id: generateLayerId(),
|
|
7959
|
-
layerType: LayerType.mapLayer
|
|
7960
|
-
};
|
|
7961
|
-
var obsGlobalSolarRadiation = {
|
|
7962
|
-
service: KNMIgeoservicesObs.url,
|
|
7963
|
-
name: '10M/qg',
|
|
7964
|
-
id: generateLayerId(),
|
|
7965
|
-
layerType: LayerType.mapLayer
|
|
7966
|
-
};
|
|
7967
|
-
var obsPrecipitationIntensityPWS = {
|
|
7968
|
-
service: KNMIgeoservicesObs.url,
|
|
7969
|
-
name: '10M/pg',
|
|
7970
|
-
id: generateLayerId(),
|
|
7971
|
-
layerType: LayerType.mapLayer
|
|
7972
|
-
};
|
|
7973
|
-
var harmonieRelativeHumidityPl = {
|
|
7974
|
-
service: KNMIgeoservicesHarmonie.url,
|
|
7975
|
-
name: 'relative_humidity__at_pl',
|
|
7976
|
-
id: generateLayerId(),
|
|
7977
|
-
layerType: LayerType.mapLayer,
|
|
7978
|
-
enabled: true
|
|
7979
|
-
};
|
|
7980
|
-
var harmonieWindPl = {
|
|
7981
|
-
service: KNMIgeoservicesHarmonie.url,
|
|
7982
|
-
name: 'wind__at_pl',
|
|
7983
|
-
id: generateLayerId(),
|
|
7984
|
-
layerType: LayerType.mapLayer,
|
|
7985
|
-
enabled: true
|
|
7986
|
-
};
|
|
7987
|
-
var harmonieAirTemperature = {
|
|
7988
|
-
service: KNMIgeoservicesHarmonie.url,
|
|
7989
|
-
name: 'air_temperature__at_2m',
|
|
7990
|
-
id: generateLayerId(),
|
|
7991
|
-
layerType: LayerType.mapLayer,
|
|
7992
|
-
enabled: true
|
|
7993
|
-
};
|
|
7994
|
-
var harmoniePrecipitation = {
|
|
7995
|
-
service: KNMIgeoservicesHarmonie.url,
|
|
7996
|
-
name: 'precipitation_flux',
|
|
7997
|
-
id: generateLayerId(),
|
|
7998
|
-
layerType: LayerType.mapLayer,
|
|
7999
|
-
enabled: true
|
|
8000
|
-
};
|
|
8001
|
-
var harmoniePressure = {
|
|
8002
|
-
service: KNMIgeoservicesHarmonie.url,
|
|
8003
|
-
name: 'air_pressure_at_sea_level',
|
|
8004
|
-
id: generateLayerId(),
|
|
8005
|
-
layerType: LayerType.mapLayer,
|
|
8006
|
-
enabled: true
|
|
8007
|
-
};
|
|
8008
|
-
var harmonieWindFlags = {
|
|
8009
|
-
service: KNMIgeoservicesHarmonie.url,
|
|
8010
|
-
name: 'wind__at_10m',
|
|
8011
|
-
enabled: true,
|
|
8012
|
-
id: generateLayerId(),
|
|
8013
|
-
layerType: LayerType.mapLayer
|
|
8014
|
-
};
|
|
8015
|
-
var klimaatAtlasTG3 = {
|
|
8016
|
-
service: KNMIgeoservicesKlimaatAtlas.url,
|
|
8017
|
-
name: 'TG3',
|
|
8018
|
-
enabled: true,
|
|
8019
|
-
id: generateLayerId(),
|
|
8020
|
-
layerType: LayerType.mapLayer
|
|
8021
|
-
}; // DWD Layers List
|
|
8022
|
-
|
|
8023
|
-
var dwdWarningLayer = {
|
|
8024
|
-
service: DWDWarnings.url,
|
|
8025
|
-
name: 'Warnungen_Gemeinden_vereinigt',
|
|
8026
|
-
format: 'image/png',
|
|
8027
|
-
// style: 'warnungen_gemeinden_vereinigt_event_seamless_param',
|
|
8028
|
-
enabled: true,
|
|
8029
|
-
id: generateLayerId(),
|
|
8030
|
-
layerType: LayerType.mapLayer
|
|
8031
|
-
};
|
|
8032
|
-
var dwdRadarLayer = {
|
|
8033
|
-
service: DWDWXProdukt.url,
|
|
8034
|
-
name: 'WX-Produkt',
|
|
8035
|
-
format: 'image/png',
|
|
8036
|
-
enabled: true,
|
|
8037
|
-
id: generateLayerId(),
|
|
8038
|
-
layerType: LayerType.mapLayer
|
|
8039
|
-
}; // this needs authentication to work
|
|
8040
|
-
|
|
8041
|
-
var dwdObservationsWetterLayer = {
|
|
8042
|
-
service: DWDObservations.url,
|
|
8043
|
-
name: 'Wetter_Beobachtungen',
|
|
8044
|
-
style: 'Wetter_Symbole',
|
|
8045
|
-
format: 'image/png',
|
|
8046
|
-
enabled: true,
|
|
8047
|
-
id: generateLayerId(),
|
|
8048
|
-
layerType: LayerType.mapLayer // headers: [{ name: 'Authorization', value: 'Basic ...' }]
|
|
8049
|
-
|
|
8050
|
-
};
|
|
8051
|
-
var dwdObservationsWetterLayerWithHeader = {
|
|
8052
|
-
service: DWDObservations.url,
|
|
8053
|
-
name: 'Wetter_Beobachtungen',
|
|
8054
|
-
style: 'Wetter_Symbole',
|
|
8055
|
-
format: 'image/png',
|
|
8056
|
-
enabled: true,
|
|
8057
|
-
id: generateLayerId(),
|
|
8058
|
-
layerType: LayerType.mapLayer,
|
|
8059
|
-
headers: [{
|
|
8060
|
-
name: 'authorization',
|
|
8061
|
-
value: 'Basic aW50cmFuZXQtdXNlcjpDQnMjMTEh'
|
|
8062
|
-
}]
|
|
8063
|
-
}; // this needs authentication to work
|
|
8064
|
-
|
|
8065
|
-
var dwdObservationsWindLayer = {
|
|
8066
|
-
service: DWDObservations.url,
|
|
8067
|
-
name: 'Wetter_Beobachtungen',
|
|
8068
|
-
style: 'Wetter_Wind',
|
|
8069
|
-
format: 'image/png',
|
|
8070
|
-
enabled: true,
|
|
8071
|
-
id: generateLayerId(),
|
|
8072
|
-
layerType: LayerType.mapLayer
|
|
8073
|
-
}; // FMI open wms Layers List
|
|
8074
|
-
|
|
8075
|
-
var FMITemp = {
|
|
8076
|
-
service: FMIopenwms.url,
|
|
8077
|
-
name: 'temperature-forecast',
|
|
8078
|
-
format: 'image/png',
|
|
8079
|
-
enabled: true,
|
|
8080
|
-
id: generateLayerId(),
|
|
8081
|
-
layerType: LayerType.mapLayer
|
|
8082
|
-
}; // Met Norway Layers List
|
|
8083
|
-
|
|
8084
|
-
var MetNoTemp = {
|
|
8085
|
-
service: MetNorwayService.url,
|
|
8086
|
-
name: 'thredds_meps_latest_wind',
|
|
8087
|
-
format: 'image/png',
|
|
8088
|
-
enabled: true,
|
|
8089
|
-
id: generateLayerId(),
|
|
8090
|
-
layerType: LayerType.mapLayer
|
|
8091
|
-
};
|
|
8092
|
-
var metNorwayWind1 = {
|
|
8093
|
-
service: MetNorwayService.url,
|
|
8094
|
-
name: 'thredds_meps_latest_wind',
|
|
8095
|
-
format: 'image/png',
|
|
8096
|
-
enabled: true,
|
|
8097
|
-
id: generateLayerId(),
|
|
8098
|
-
layerType: LayerType.mapLayer
|
|
8099
|
-
};
|
|
8100
|
-
var metNorwayWind2 = {
|
|
8101
|
-
service: MetNorwayService.url,
|
|
8102
|
-
name: 'thredds_aromearctic_extracted_t',
|
|
8103
|
-
format: 'image/png',
|
|
8104
|
-
enabled: true,
|
|
8105
|
-
id: generateLayerId(),
|
|
8106
|
-
layerType: LayerType.mapLayer
|
|
8107
|
-
};
|
|
8108
|
-
var metNorwayWind3 = {
|
|
8109
|
-
service: MetNorwayService.url,
|
|
8110
|
-
name: 'thredds_nk800_temperature',
|
|
8111
|
-
format: 'image/png',
|
|
8112
|
-
enabled: true,
|
|
8113
|
-
id: generateLayerId(),
|
|
8114
|
-
layerType: LayerType.mapLayer
|
|
8115
|
-
};
|
|
8116
|
-
var metNorwayLatestT = {
|
|
8117
|
-
service: MetNorwayService.url,
|
|
8118
|
-
name: 'thredds_meps_latest_t',
|
|
8119
|
-
format: 'image/png',
|
|
8120
|
-
enabled: true,
|
|
8121
|
-
id: generateLayerId(),
|
|
8122
|
-
layerType: LayerType.mapLayer
|
|
8123
|
-
};
|
|
8124
|
-
var metNorwaySalinaty = {
|
|
8125
|
-
service: MetNorwayService.url,
|
|
8126
|
-
name: 'thredds_barents_2_5km_1h_salinity',
|
|
8127
|
-
format: 'image/png',
|
|
8128
|
-
enabled: true,
|
|
8129
|
-
id: generateLayerId(),
|
|
8130
|
-
layerType: LayerType.mapLayer
|
|
8131
|
-
};
|
|
8132
|
-
var msgFesEUMETSAT = {
|
|
8133
|
-
service: EUMETSAT.url,
|
|
8134
|
-
name: 'msg_fes:rgb_eview',
|
|
8135
|
-
enabled: true,
|
|
8136
|
-
id: generateLayerId(),
|
|
8137
|
-
layerType: LayerType.mapLayer
|
|
8138
|
-
};
|
|
8139
|
-
var msgNaturalenhncdEUMETSAT = {
|
|
8140
|
-
service: eumetviewEUMETSAT.url,
|
|
8141
|
-
name: 'meteosat:msg_naturalenhncd',
|
|
8142
|
-
enabled: true,
|
|
8143
|
-
id: generateLayerId(),
|
|
8144
|
-
layerType: LayerType.mapLayer
|
|
8145
|
-
};
|
|
8146
|
-
var msgAshEUMETSAT = {
|
|
8147
|
-
service: eumetviewEUMETSAT.url,
|
|
8148
|
-
name: 'meteosat:msg_ash',
|
|
8149
|
-
enabled: true,
|
|
8150
|
-
id: generateLayerId(),
|
|
8151
|
-
layerType: LayerType.mapLayer
|
|
8152
|
-
};
|
|
8153
|
-
var msgCthEUMETSAT = {
|
|
8154
|
-
service: eumetviewEUMETSAT.url,
|
|
8155
|
-
name: 'meteosat:msg_cth',
|
|
8156
|
-
enabled: true,
|
|
8157
|
-
id: generateLayerId(),
|
|
8158
|
-
layerType: LayerType.mapLayer
|
|
8159
|
-
};
|
|
8160
|
-
var msgFogEUMETSAT = {
|
|
8161
|
-
service: eumetviewEUMETSAT.url,
|
|
8162
|
-
name: 'meteosat:msg_fog',
|
|
8163
|
-
enabled: true,
|
|
8164
|
-
id: generateLayerId(),
|
|
8165
|
-
layerType: LayerType.mapLayer
|
|
8166
|
-
};
|
|
8167
|
-
var msgNaturalEUMETSAT = {
|
|
8168
|
-
service: eumetviewEUMETSAT.url,
|
|
8169
|
-
name: 'meteosat:msg_natural',
|
|
8170
|
-
enabled: true,
|
|
8171
|
-
id: generateLayerId(),
|
|
8172
|
-
layerType: LayerType.mapLayer
|
|
8173
|
-
};
|
|
8174
|
-
|
|
8175
|
-
var publicLayers = /*#__PURE__*/Object.freeze({
|
|
8176
|
-
__proto__: null,
|
|
8177
|
-
baseLayer: baseLayer$1,
|
|
8178
|
-
baseLayerGrey: baseLayerGrey$1,
|
|
8179
|
-
baseLayerOpenStreetMapNL: baseLayerOpenStreetMapNL$1,
|
|
8180
|
-
baseLayerArcGisCanvas: baseLayerArcGisCanvas$1,
|
|
8181
|
-
baseLayerWorldMap: baseLayerWorldMap$1,
|
|
8182
|
-
baseLayerHeiGit: baseLayerHeiGit,
|
|
8183
|
-
overLayer: overLayer$1,
|
|
8184
|
-
msgCppLayer: msgCppLayer,
|
|
8185
|
-
veiligheidsRegiosGebiedsIndelingenLabels: veiligheidsRegiosGebiedsIndelingenLabels,
|
|
8186
|
-
veiligheidsRegiosGebiedsIndelingen: veiligheidsRegiosGebiedsIndelingen,
|
|
8187
|
-
radarLayer: radarLayer$1,
|
|
8188
|
-
radarLayerWithError: radarLayerWithError,
|
|
8189
|
-
obsAirTemperature: obsAirTemperature,
|
|
8190
|
-
obsWind: obsWind,
|
|
8191
|
-
obsAirPressureAtSeaLevel: obsAirPressureAtSeaLevel,
|
|
8192
|
-
obsRelativeHumidity: obsRelativeHumidity,
|
|
8193
|
-
obsGlobalSolarRadiation: obsGlobalSolarRadiation,
|
|
8194
|
-
obsPrecipitationIntensityPWS: obsPrecipitationIntensityPWS,
|
|
8195
|
-
harmonieRelativeHumidityPl: harmonieRelativeHumidityPl,
|
|
8196
|
-
harmonieWindPl: harmonieWindPl,
|
|
8197
|
-
harmonieAirTemperature: harmonieAirTemperature,
|
|
8198
|
-
harmoniePrecipitation: harmoniePrecipitation,
|
|
8199
|
-
harmoniePressure: harmoniePressure,
|
|
8200
|
-
harmonieWindFlags: harmonieWindFlags,
|
|
8201
|
-
klimaatAtlasTG3: klimaatAtlasTG3,
|
|
8202
|
-
dwdWarningLayer: dwdWarningLayer,
|
|
8203
|
-
dwdRadarLayer: dwdRadarLayer,
|
|
8204
|
-
dwdObservationsWetterLayer: dwdObservationsWetterLayer,
|
|
8205
|
-
dwdObservationsWetterLayerWithHeader: dwdObservationsWetterLayerWithHeader,
|
|
8206
|
-
dwdObservationsWindLayer: dwdObservationsWindLayer,
|
|
8207
|
-
FMITemp: FMITemp,
|
|
8208
|
-
MetNoTemp: MetNoTemp,
|
|
8209
|
-
metNorwayWind1: metNorwayWind1,
|
|
8210
|
-
metNorwayWind2: metNorwayWind2,
|
|
8211
|
-
metNorwayWind3: metNorwayWind3,
|
|
8212
|
-
metNorwayLatestT: metNorwayLatestT,
|
|
8213
|
-
metNorwaySalinaty: metNorwaySalinaty,
|
|
8214
|
-
msgFesEUMETSAT: msgFesEUMETSAT,
|
|
8215
|
-
msgNaturalenhncdEUMETSAT: msgNaturalenhncdEUMETSAT,
|
|
8216
|
-
msgAshEUMETSAT: msgAshEUMETSAT,
|
|
8217
|
-
msgCthEUMETSAT: msgCthEUMETSAT,
|
|
8218
|
-
msgFogEUMETSAT: msgFogEUMETSAT,
|
|
8219
|
-
msgNaturalEUMETSAT: msgNaturalEUMETSAT
|
|
8220
|
-
});
|
|
8221
|
-
|
|
8222
|
-
/* *
|
|
8223
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8224
|
-
* you may not use this file except in compliance with the License.
|
|
8225
|
-
* You may obtain a copy of the License at
|
|
8226
|
-
*
|
|
8227
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8228
|
-
*
|
|
8229
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
8230
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8231
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8232
|
-
* See the License for the specific language governing permissions and
|
|
8233
|
-
* limitations under the License.
|
|
8234
|
-
*
|
|
8235
|
-
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8236
|
-
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
8237
|
-
* */
|
|
8238
|
-
var availableDefaultBaseLayers = [baseLayerGrey$1, baseLayerArcGisCanvas$1, baseLayerOpenStreetMapNL$1, baseLayerHeiGit];
|
|
8239
|
-
var preloadedDefaultBaseServices = [KNMIgeoservicesBaselayers, DWD];
|
|
8240
|
-
var preloadedDefaultMapServices = [KNMIgeoservicesRadar, MetNorwayService, FMIopenwms, ECMWFPublicService, KNMIgeoservicesHarmonie, KNMIgeoservicesHarmonieMLService, KNMIgeoservicesObs, DWD];
|
|
8241
|
-
|
|
8242
|
-
var defaultConfigurations = /*#__PURE__*/Object.freeze({
|
|
8243
|
-
__proto__: null,
|
|
8244
|
-
availableDefaultBaseLayers: availableDefaultBaseLayers,
|
|
8245
|
-
preloadedDefaultBaseServices: preloadedDefaultBaseServices,
|
|
8246
|
-
preloadedDefaultMapServices: preloadedDefaultMapServices
|
|
8247
|
-
});
|
|
8248
|
-
|
|
8249
|
-
/* *
|
|
8250
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8251
|
-
* you may not use this file except in compliance with the License.
|
|
8252
|
-
* You may obtain a copy of the License at
|
|
8253
|
-
*
|
|
8254
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8255
|
-
*
|
|
8256
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
8257
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8258
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8259
|
-
* See the License for the specific language governing permissions and
|
|
8260
|
-
* limitations under the License.
|
|
8261
|
-
*
|
|
8262
|
-
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8263
|
-
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
8264
|
-
* */
|
|
8265
|
-
var useStyles$H = makeStyles__default["default"]({
|
|
8266
|
-
buttonDiv: {
|
|
8267
|
-
position: 'relative'
|
|
8268
|
-
},
|
|
8269
|
-
loadingButton: {
|
|
8270
|
-
position: 'absolute',
|
|
8271
|
-
top: 7,
|
|
8272
|
-
left: 7,
|
|
8273
|
-
zIndex: 1
|
|
8274
|
-
},
|
|
8275
|
-
button: {
|
|
8276
|
-
width: '24px',
|
|
8277
|
-
height: '24px',
|
|
8278
|
-
margin: '6px 0px 0px 10px'
|
|
8279
|
-
}
|
|
8280
|
-
});
|
|
8281
|
-
|
|
8282
|
-
var validateServiceUrl = function validateServiceUrl(url) {
|
|
8283
|
-
if (url === '' || url === null || typeof url === 'undefined') return false;
|
|
8284
|
-
var matcher = /^(?:\w+:)?\/\/([^\s.]+\.\S{2}|[0-9a-zA-Z]+[:?\d]*)\S*$/;
|
|
8285
|
-
if (!matcher.test(url)) return false;
|
|
8286
|
-
return true;
|
|
8287
|
-
};
|
|
8288
|
-
|
|
8289
|
-
var AddLayersPopup = function AddLayersPopup(_a) {
|
|
8290
|
-
var onClickService = _a.onClickService,
|
|
8291
|
-
onRenderTree = _a.onRenderTree,
|
|
8292
|
-
_b = _a.highlightedLayers,
|
|
8293
|
-
highlightedLayers = _b === void 0 ? [] : _b,
|
|
8294
|
-
_c = _a.preloadedServices,
|
|
8295
|
-
preloadedServices = _c === void 0 ? preloadedDefaultMapServices : _c,
|
|
8296
|
-
_d = _a.open,
|
|
8297
|
-
open = _d === void 0 ? false : _d,
|
|
8298
|
-
handleClose = _a.handleClose,
|
|
8299
|
-
_e = _a.layerType,
|
|
8300
|
-
layerType = _e === void 0 ? LayerType.mapLayer : _e;
|
|
8301
|
-
var classes = useStyles$H();
|
|
8217
|
+
var AddLayersPopup = function AddLayersPopup(_a) {
|
|
8218
|
+
var onClickService = _a.onClickService,
|
|
8219
|
+
onRenderTree = _a.onRenderTree,
|
|
8220
|
+
_b = _a.highlightedLayers,
|
|
8221
|
+
highlightedLayers = _b === void 0 ? [] : _b,
|
|
8222
|
+
_c = _a.preloadedServices,
|
|
8223
|
+
preloadedServices = _c === void 0 ? preloadedDefaultMapServices : _c,
|
|
8224
|
+
_d = _a.open,
|
|
8225
|
+
open = _d === void 0 ? false : _d,
|
|
8226
|
+
handleClose = _a.handleClose,
|
|
8227
|
+
_e = _a.layerType,
|
|
8228
|
+
layerType = _e === void 0 ? LayerType.mapLayer : _e;
|
|
8229
|
+
var classes = useStyles$H();
|
|
8302
8230
|
|
|
8303
8231
|
var _f = __read(React__namespace.useState(''), 2),
|
|
8304
8232
|
serviceURL = _f[0],
|
|
@@ -9007,12 +8935,12 @@
|
|
|
9007
8935
|
},
|
|
9008
8936
|
backgroundColor: function backgroundColor(_a) {
|
|
9009
8937
|
var isActive = _a.isActive;
|
|
9010
|
-
return isActive ? theme.palette.geowebColors.buttons.
|
|
8938
|
+
return isActive ? theme.palette.geowebColors.buttons.primary.active.fill : 'inherit';
|
|
9011
8939
|
},
|
|
9012
8940
|
'&:focus': {
|
|
9013
8941
|
backgroundColor: function backgroundColor(_a) {
|
|
9014
8942
|
var isActive = _a.isActive;
|
|
9015
|
-
return isActive ? theme.palette.geowebColors.buttons.
|
|
8943
|
+
return isActive ? theme.palette.geowebColors.buttons.primary.mouseOver.fill : theme.palette.geowebColors.layerManager.tableRowMouseover.rgba;
|
|
9016
8944
|
},
|
|
9017
8945
|
outline: theme.palette.geowebColors.buttons.focusDefault.outline,
|
|
9018
8946
|
borderRadius: 0
|
|
@@ -9020,7 +8948,7 @@
|
|
|
9020
8948
|
'&:hover': {
|
|
9021
8949
|
backgroundColor: function backgroundColor(_a) {
|
|
9022
8950
|
var isActive = _a.isActive;
|
|
9023
|
-
return isActive ? theme.palette.geowebColors.buttons.
|
|
8951
|
+
return isActive ? theme.palette.geowebColors.buttons.primary.mouseOver.fill : theme.palette.geowebColors.layerManager.tableRowMouseover.rgba;
|
|
9024
8952
|
}
|
|
9025
8953
|
}
|
|
9026
8954
|
},
|
|
@@ -10886,63 +10814,61 @@
|
|
|
10886
10814
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
10887
10815
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
10888
10816
|
* */
|
|
10889
|
-
var useButtonStyles = makeStyles__default["default"](function (theme) {
|
|
10890
|
-
return createStyles__default["default"]({
|
|
10891
|
-
button: {
|
|
10892
|
-
height: '24px',
|
|
10893
|
-
width: function width(_a) {
|
|
10894
|
-
var width = _a.width;
|
|
10895
|
-
return width ? width + "px" : '24px';
|
|
10896
|
-
},
|
|
10897
|
-
border: 0,
|
|
10898
|
-
backgroundColor: theme.palette.geowebColors.buttons.surfaceIconDefault.fill,
|
|
10899
|
-
borderRadius: '4.5px',
|
|
10900
|
-
textTransform: 'none',
|
|
10901
|
-
'& svg path, svg text': {
|
|
10902
|
-
fill: theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat
|
|
10903
|
-
},
|
|
10904
|
-
'&:hover': {
|
|
10905
|
-
backgroundColor: theme.palette.geowebColors.buttons.flatMouseover.fill
|
|
10906
|
-
},
|
|
10907
|
-
'&:disabled': {
|
|
10908
|
-
backgroundColor: theme.palette.geowebColors.buttons.disabled.fill,
|
|
10909
|
-
'& svg path, svg text': {
|
|
10910
|
-
fill: theme.palette.geowebColors.typographyAndIcons.iconLinkDisabled
|
|
10911
|
-
},
|
|
10912
|
-
border: "1px solid " + theme.palette.geowebColors.buttons.disabled.fill
|
|
10913
|
-
},
|
|
10914
|
-
'&.Mui-selected': {
|
|
10915
|
-
backgroundColor: theme.palette.geowebColors.buttons.primaryActive.fill,
|
|
10916
|
-
'&:hover': {
|
|
10917
|
-
backgroundColor: theme.palette.geowebColors.buttons.primaryMouseover.fill
|
|
10918
|
-
},
|
|
10919
|
-
'& svg': {
|
|
10920
|
-
backgroundColor: 'transparent'
|
|
10921
|
-
},
|
|
10922
|
-
'& svg path, svg text': {
|
|
10923
|
-
fill: theme.palette.geowebColors.typographyAndIcons.buttonIcon
|
|
10924
|
-
}
|
|
10925
|
-
}
|
|
10926
|
-
}
|
|
10927
|
-
});
|
|
10928
|
-
});
|
|
10929
10817
|
|
|
10930
|
-
var
|
|
10818
|
+
var CustomToggleButton = function CustomToggleButton(_a) {
|
|
10819
|
+
var _b = _a.variant,
|
|
10820
|
+
variant = _b === void 0 ? 'primary' : _b,
|
|
10821
|
+
_c = _a.value,
|
|
10822
|
+
value = _c === void 0 ? 0 : _c,
|
|
10823
|
+
props = __rest(_a, ["variant", "value"]);
|
|
10824
|
+
|
|
10825
|
+
return /*#__PURE__*/React__namespace.createElement(material.ToggleButton, __assign({
|
|
10826
|
+
className: variant,
|
|
10827
|
+
value: value
|
|
10828
|
+
}, props));
|
|
10829
|
+
};
|
|
10830
|
+
|
|
10831
|
+
/* *
|
|
10832
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10833
|
+
* you may not use this file except in compliance with the License.
|
|
10834
|
+
* You may obtain a copy of the License at
|
|
10835
|
+
*
|
|
10836
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10837
|
+
*
|
|
10838
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10839
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
10840
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10841
|
+
* See the License for the specific language governing permissions and
|
|
10842
|
+
* limitations under the License.
|
|
10843
|
+
*
|
|
10844
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
10845
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
10846
|
+
* */
|
|
10847
|
+
|
|
10848
|
+
var ToolButton = function ToolButton(_a) {
|
|
10931
10849
|
var active = _a.active,
|
|
10932
|
-
|
|
10850
|
+
_b = _a.width,
|
|
10851
|
+
width = _b === void 0 ? '24px' : _b,
|
|
10852
|
+
_c = _a.height,
|
|
10853
|
+
height = _c === void 0 ? '24px' : _c,
|
|
10933
10854
|
children = _a.children,
|
|
10934
|
-
|
|
10935
|
-
value =
|
|
10936
|
-
|
|
10937
|
-
|
|
10938
|
-
|
|
10939
|
-
|
|
10940
|
-
|
|
10941
|
-
|
|
10942
|
-
className: classes.button,
|
|
10855
|
+
_d = _a.value,
|
|
10856
|
+
value = _d === void 0 ? 0 : _d,
|
|
10857
|
+
_e = _a.sx,
|
|
10858
|
+
sx = _e === void 0 ? {} : _e,
|
|
10859
|
+
props = __rest(_a, ["active", "width", "height", "children", "value", "sx"]);
|
|
10860
|
+
|
|
10861
|
+
return /*#__PURE__*/React__namespace.createElement(CustomToggleButton, __assign({
|
|
10862
|
+
variant: "tool",
|
|
10943
10863
|
disableRipple: true,
|
|
10944
10864
|
selected: active,
|
|
10945
|
-
value: value
|
|
10865
|
+
value: value,
|
|
10866
|
+
sx: __assign({
|
|
10867
|
+
width: width + "!important",
|
|
10868
|
+
height: height + "!important",
|
|
10869
|
+
textTransform: 'none!important',
|
|
10870
|
+
padding: '11px!important'
|
|
10871
|
+
}, sx)
|
|
10946
10872
|
}, props), children);
|
|
10947
10873
|
};
|
|
10948
10874
|
|
|
@@ -10982,18 +10908,18 @@
|
|
|
10982
10908
|
source: source
|
|
10983
10909
|
}));
|
|
10984
10910
|
}, [currentActiveMapId, dispatch, isOpenInStore, mapId, source]);
|
|
10985
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
10911
|
+
return /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
10986
10912
|
onClick: openFilterResultsDialog,
|
|
10987
10913
|
active: isOpenInStore,
|
|
10988
10914
|
id: "keywordFilterButton",
|
|
10989
10915
|
"data-testid": "keywordFilterButton",
|
|
10990
|
-
disableRipple: true
|
|
10916
|
+
disableRipple: true,
|
|
10917
|
+
variant: "tool"
|
|
10991
10918
|
}, /*#__PURE__*/React__namespace.createElement(material.SvgIcon, {
|
|
10992
10919
|
viewBox: "0 0 24 24",
|
|
10993
10920
|
xmlns: "http://www.w3.org/2000/svg"
|
|
10994
10921
|
}, /*#__PURE__*/React__namespace.createElement("g", null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
10995
10922
|
d: "M14.155 12.567c1.362 0 2.523.848 2.992 2.043h1.895a1.173 1.173 0 0 1 0 2.346h-1.895A3.213 3.213 0 0 1 14.155 19a3.213 3.213 0 0 1-2.992-2.044h-5.99a1.172 1.172 0 1 1 0-2.346h5.99a3.214 3.214 0 0 1 2.992-2.043zm0 1.755a1.461 1.461 0 1 0 0 2.922 1.461 1.461 0 0 0 0-2.922zM10.06 5c1.362 0 2.524.848 2.992 2.044h5.99a1.173 1.173 0 1 1 0 2.344h-5.99a3.214 3.214 0 0 1-2.992 2.044 3.216 3.216 0 0 1-2.992-2.044H5.173a1.172 1.172 0 1 1 0-2.344h1.895A3.216 3.216 0 0 1 10.06 5zm0 1.754a1.461 1.461 0 1 0 0 2.922 1.461 1.461 0 0 0 0-2.922z",
|
|
10996
|
-
fill: "#FFF",
|
|
10997
10923
|
fillRule: "evenodd"
|
|
10998
10924
|
}))));
|
|
10999
10925
|
};
|
|
@@ -11035,14 +10961,14 @@
|
|
|
11035
10961
|
*
|
|
11036
10962
|
* Example getActiveServices(store);
|
|
11037
10963
|
* @param {object} store store: object - store object
|
|
11038
|
-
* @returns {
|
|
10964
|
+
* @returns {object} returnType: object of active services
|
|
11039
10965
|
*/
|
|
11040
10966
|
|
|
11041
10967
|
var getActiveServices = reselect.createSelector(layerSelectStore, function (store) {
|
|
11042
10968
|
var _a;
|
|
11043
10969
|
|
|
11044
10970
|
return store ? (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.activeServices.byId : {};
|
|
11045
|
-
});
|
|
10971
|
+
}, selectorMemoizationOptions);
|
|
11046
10972
|
/**
|
|
11047
10973
|
* Returns all ids of enabled services
|
|
11048
10974
|
*
|
|
@@ -11064,18 +10990,73 @@
|
|
|
11064
10990
|
|
|
11065
10991
|
return (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.activeServices.byId[service].id;
|
|
11066
10992
|
});
|
|
11067
|
-
});
|
|
10993
|
+
}, selectorMemoizationOptions);
|
|
10994
|
+
/**
|
|
10995
|
+
* Returns all ids of checked keywords
|
|
10996
|
+
*
|
|
10997
|
+
* Example getCheckedKeywordIds(store);
|
|
10998
|
+
* @param {object} store store: object - store object
|
|
10999
|
+
* @returns {array} returnType: array of keyword ids that are checked
|
|
11000
|
+
*/
|
|
11001
|
+
|
|
11002
|
+
var getCheckedKeywordIds = reselect.createSelector(layerSelectStore, function (store) {
|
|
11003
|
+
var _a, _b;
|
|
11004
|
+
|
|
11005
|
+
var checkedKeywords = (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.keywords.allIds.filter(function (keyword) {
|
|
11006
|
+
var _a;
|
|
11007
|
+
|
|
11008
|
+
return (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.keywords.byId[keyword].checked;
|
|
11009
|
+
})) !== null && _b !== void 0 ? _b : [];
|
|
11010
|
+
return checkedKeywords.map(function (keyword) {
|
|
11011
|
+
var _a;
|
|
11012
|
+
|
|
11013
|
+
return (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.keywords.byId[keyword].id;
|
|
11014
|
+
});
|
|
11015
|
+
}, selectorMemoizationOptions);
|
|
11016
|
+
/**
|
|
11017
|
+
* Returns ids of all keywords
|
|
11018
|
+
*
|
|
11019
|
+
* Example getAllKeywordIds(store);
|
|
11020
|
+
* @param {object} store store: object - store object
|
|
11021
|
+
* @returns {array} returnType: array of all keyword ids
|
|
11022
|
+
*/
|
|
11023
|
+
|
|
11024
|
+
var getAllKeywordIds = reselect.createSelector(layerSelectStore, function (store) {
|
|
11025
|
+
var _a, _b;
|
|
11026
|
+
|
|
11027
|
+
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.keywords.allIds) !== null && _b !== void 0 ? _b : [];
|
|
11028
|
+
}, selectorMemoizationOptions);
|
|
11068
11029
|
/**
|
|
11069
|
-
* Returns all keywords
|
|
11030
|
+
* Returns if all keywords are checked
|
|
11070
11031
|
*
|
|
11071
|
-
* Example
|
|
11032
|
+
* Example isAllKeywordsChecked(store);
|
|
11072
11033
|
* @param {object} store store: object - store object
|
|
11073
|
-
* @returns {array} returnType:
|
|
11034
|
+
* @returns {array} returnType: boolean if all keywords are checked
|
|
11074
11035
|
*/
|
|
11075
11036
|
|
|
11076
|
-
var
|
|
11077
|
-
|
|
11037
|
+
var isAllKeywordsChecked = reselect.createSelector(layerSelectStore, function (store) {
|
|
11038
|
+
var _a, _b;
|
|
11039
|
+
|
|
11040
|
+
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.keywords) === null || _b === void 0 ? void 0 : _b.allIds.every(function (keyword) {
|
|
11041
|
+
var _a, _b;
|
|
11042
|
+
|
|
11043
|
+
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.keywords) === null || _b === void 0 ? void 0 : _b.byId[keyword].checked;
|
|
11044
|
+
});
|
|
11078
11045
|
});
|
|
11046
|
+
/**
|
|
11047
|
+
* Gets a KeywordObject by its id
|
|
11048
|
+
*
|
|
11049
|
+
* Example: keywordObject = getKeywordObjectById(store, 'keywordId')
|
|
11050
|
+
* @param {object} store object from which the keyword state will be extracted
|
|
11051
|
+
* @param {string} keywordId Id of the keyword
|
|
11052
|
+
* @returns {object} object containing keyword information (id, amount, amountVisible, checked)
|
|
11053
|
+
*/
|
|
11054
|
+
|
|
11055
|
+
var getKeywordObjectById = function getKeywordObjectById(store, keywordId) {
|
|
11056
|
+
var _a, _b, _c, _d;
|
|
11057
|
+
|
|
11058
|
+
return (_d = (_c = (_b = (_a = store === null || store === void 0 ? void 0 : store.layerSelect) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.keywords) === null || _c === void 0 ? void 0 : _c.byId[keywordId]) !== null && _d !== void 0 ? _d : {};
|
|
11059
|
+
};
|
|
11079
11060
|
|
|
11080
11061
|
/* *
|
|
11081
11062
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -11093,7 +11074,7 @@
|
|
|
11093
11074
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11094
11075
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
11095
11076
|
* */
|
|
11096
|
-
var style = {
|
|
11077
|
+
var style$1 = {
|
|
11097
11078
|
dialogTitle: {
|
|
11098
11079
|
display: 'flex',
|
|
11099
11080
|
justifyContent: 'space-between',
|
|
@@ -11144,68 +11125,347 @@
|
|
|
11144
11125
|
};
|
|
11145
11126
|
|
|
11146
11127
|
var ServicePopup = function ServicePopup(_a) {
|
|
11128
|
+
var _b, _c;
|
|
11129
|
+
|
|
11147
11130
|
var servicePopupVariant = _a.servicePopupVariant,
|
|
11148
|
-
|
|
11149
|
-
hideBackdrop =
|
|
11131
|
+
_d = _a.hideBackdrop,
|
|
11132
|
+
hideBackdrop = _d === void 0 ? false : _d,
|
|
11150
11133
|
isOpen = _a.isOpen,
|
|
11151
11134
|
closePopup = _a.closePopup,
|
|
11152
|
-
|
|
11153
|
-
|
|
11135
|
+
url = _a.url,
|
|
11136
|
+
services = _a.services,
|
|
11137
|
+
serviceSetLayers = _a.serviceSetLayers;
|
|
11138
|
+
|
|
11139
|
+
var _e = __read(React__namespace.useState(servicePopupVariant !== 'edit' || services === undefined ? '' : (_b = services[url]) === null || _b === void 0 ? void 0 : _b.name), 2),
|
|
11140
|
+
serviceName = _e[0],
|
|
11141
|
+
setServiceName = _e[1];
|
|
11142
|
+
|
|
11143
|
+
var _f = __read(React__namespace.useState(servicePopupVariant === 'add' || url === undefined ? '' : url), 2),
|
|
11144
|
+
serviceUrl = _f[0],
|
|
11145
|
+
setServiceUrl = _f[1];
|
|
11146
|
+
|
|
11147
|
+
var _g = __read(React__namespace.useState(servicePopupVariant !== 'edit' || services === undefined ? '' : (_c = services[url]) === null || _c === void 0 ? void 0 : _c["abstract"]), 2),
|
|
11148
|
+
_abstract = _g[0],
|
|
11149
|
+
setAbstract = _g[1];
|
|
11150
|
+
|
|
11151
|
+
var _h = __read(React__namespace.useState(false), 2),
|
|
11152
|
+
disableButton = _h[0],
|
|
11153
|
+
setDisableButton = _h[1];
|
|
11154
|
+
|
|
11155
|
+
var _j = __read(React__namespace.useState(false), 2),
|
|
11156
|
+
isLoading = _j[0],
|
|
11157
|
+
setIsLoading = _j[1];
|
|
11158
|
+
|
|
11159
|
+
var _k = __read(React__namespace.useState(false), 2),
|
|
11160
|
+
serviceNameHasError = _k[0],
|
|
11161
|
+
setServiceNameHasError = _k[1];
|
|
11162
|
+
|
|
11163
|
+
var _l = __read(React__namespace.useState(''), 2),
|
|
11164
|
+
serviceNameHelperText = _l[0],
|
|
11165
|
+
setServiceNameHelperText = _l[1];
|
|
11166
|
+
|
|
11167
|
+
var _m = __read(React__namespace.useState(false), 2),
|
|
11168
|
+
serviceUrlHasError = _m[0],
|
|
11169
|
+
setServiceUrlHasError = _m[1];
|
|
11170
|
+
|
|
11171
|
+
var _o = __read(React__namespace.useState(''), 2),
|
|
11172
|
+
serviceUrlHelperText = _o[0],
|
|
11173
|
+
setServiceUrlHelperText = _o[1];
|
|
11174
|
+
|
|
11175
|
+
var validateServiceUrl = function validateServiceUrl(url) {
|
|
11176
|
+
if (url === '' || url === null || typeof url === 'undefined') return false;
|
|
11177
|
+
var matcher = /^(?:\w+:)?\/\/([^\s.]+\.\S{2}|[0-9a-zA-Z]+[:?\d]*)\S*$/;
|
|
11178
|
+
if (!matcher.test(url)) return false;
|
|
11179
|
+
return true;
|
|
11180
|
+
};
|
|
11181
|
+
|
|
11182
|
+
var addNewService = function addNewService() {
|
|
11183
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
11184
|
+
var layers, serviceLayers, _a, _b, object;
|
|
11185
|
+
|
|
11186
|
+
var e_1, _c;
|
|
11187
|
+
|
|
11188
|
+
return __generator(this, function (_d) {
|
|
11189
|
+
switch (_d.label) {
|
|
11190
|
+
case 0:
|
|
11191
|
+
setServiceUrlHasError(false);
|
|
11192
|
+
if (!validateServiceUrl(serviceUrl)) return [3
|
|
11193
|
+
/*break*/
|
|
11194
|
+
, 4];
|
|
11195
|
+
setIsLoading(true);
|
|
11196
|
+
_d.label = 1;
|
|
11197
|
+
|
|
11198
|
+
case 1:
|
|
11199
|
+
_d.trys.push([1, 3,, 4]);
|
|
11200
|
+
|
|
11201
|
+
return [4
|
|
11202
|
+
/*yield*/
|
|
11203
|
+
, getLayersFromService(serviceUrl)];
|
|
11204
|
+
|
|
11205
|
+
case 2:
|
|
11206
|
+
layers = _d.sent();
|
|
11207
|
+
|
|
11208
|
+
if (layers.children) {
|
|
11209
|
+
serviceLayers = [];
|
|
11210
|
+
|
|
11211
|
+
try {
|
|
11212
|
+
for (_a = __values(layers.children), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
11213
|
+
object = _b.value;
|
|
11214
|
+
serviceLayers.push({
|
|
11215
|
+
name: object.name,
|
|
11216
|
+
text: object.title,
|
|
11217
|
+
leaf: object.leaf,
|
|
11218
|
+
path: object.path,
|
|
11219
|
+
keywords: object.keywords ? object.keywords : [],
|
|
11220
|
+
"abstract": object["abstract"] ? object["abstract"] : '',
|
|
11221
|
+
styles: object.styles ? object.styles : []
|
|
11222
|
+
});
|
|
11223
|
+
}
|
|
11224
|
+
} catch (e_1_1) {
|
|
11225
|
+
e_1 = {
|
|
11226
|
+
error: e_1_1
|
|
11227
|
+
};
|
|
11228
|
+
} finally {
|
|
11229
|
+
try {
|
|
11230
|
+
if (_b && !_b.done && (_c = _a["return"])) _c.call(_a);
|
|
11231
|
+
} finally {
|
|
11232
|
+
if (e_1) throw e_1.error;
|
|
11233
|
+
}
|
|
11234
|
+
}
|
|
11235
|
+
|
|
11236
|
+
serviceSetLayers({
|
|
11237
|
+
id: serviceUrl,
|
|
11238
|
+
name: serviceName,
|
|
11239
|
+
service: serviceUrl,
|
|
11240
|
+
layers: serviceLayers
|
|
11241
|
+
});
|
|
11242
|
+
setIsLoading(false);
|
|
11243
|
+
closePopupAndResetState();
|
|
11244
|
+
}
|
|
11245
|
+
|
|
11246
|
+
return [3
|
|
11247
|
+
/*break*/
|
|
11248
|
+
, 4];
|
|
11249
|
+
|
|
11250
|
+
case 3:
|
|
11251
|
+
_d.sent();
|
|
11252
|
+
setIsLoading(false);
|
|
11253
|
+
setServiceUrlHasError(true);
|
|
11254
|
+
setServiceUrlHelperText('Error: Download failed. Check the URL.');
|
|
11255
|
+
return [3
|
|
11256
|
+
/*break*/
|
|
11257
|
+
, 4];
|
|
11258
|
+
|
|
11259
|
+
case 4:
|
|
11260
|
+
return [2
|
|
11261
|
+
/*return*/
|
|
11262
|
+
];
|
|
11263
|
+
}
|
|
11264
|
+
});
|
|
11265
|
+
});
|
|
11266
|
+
};
|
|
11267
|
+
|
|
11268
|
+
var ServiceNameInRedux = function ServiceNameInRedux() {
|
|
11269
|
+
if (servicePopupVariant === 'add' || servicePopupVariant === 'save') {
|
|
11270
|
+
for (var service in services) {
|
|
11271
|
+
if (services && services[service].name.toLowerCase() === serviceName.toLowerCase()) return true;
|
|
11272
|
+
}
|
|
11273
|
+
|
|
11274
|
+
return false;
|
|
11275
|
+
}
|
|
11276
|
+
|
|
11277
|
+
return false;
|
|
11278
|
+
};
|
|
11279
|
+
|
|
11280
|
+
var UrlInRedux = function UrlInRedux() {
|
|
11281
|
+
if (servicePopupVariant === 'add' || servicePopupVariant === 'save') {
|
|
11282
|
+
if (services && services[serviceUrl]) {
|
|
11283
|
+
return true;
|
|
11284
|
+
}
|
|
11285
|
+
|
|
11286
|
+
return false;
|
|
11287
|
+
}
|
|
11288
|
+
|
|
11289
|
+
return false;
|
|
11290
|
+
}; // Check serviceName
|
|
11291
|
+
|
|
11292
|
+
|
|
11293
|
+
React__namespace.useEffect(function () {
|
|
11294
|
+
setServiceNameHelperText('');
|
|
11295
|
+
|
|
11296
|
+
if (ServiceNameInRedux()) {
|
|
11297
|
+
setServiceNameHasError(true);
|
|
11298
|
+
setServiceNameHelperText('Error: This name already exists. Choose another name.');
|
|
11299
|
+
} else {
|
|
11300
|
+
setServiceNameHasError(false);
|
|
11301
|
+
setServiceNameHelperText('');
|
|
11302
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11303
|
+
|
|
11304
|
+
}, [serviceName]); // Check Url
|
|
11305
|
+
|
|
11306
|
+
React__namespace.useEffect(function () {
|
|
11307
|
+
setServiceUrlHelperText('');
|
|
11308
|
+
|
|
11309
|
+
if (serviceUrl.length > 0 && !validateServiceUrl(serviceUrl)) {
|
|
11310
|
+
setServiceUrlHasError(true);
|
|
11311
|
+
setServiceUrlHelperText('Error: Not a valid URL.');
|
|
11312
|
+
} else if (UrlInRedux()) {
|
|
11313
|
+
setServiceUrlHasError(true);
|
|
11314
|
+
setServiceUrlHelperText('Error: URL already exists.');
|
|
11315
|
+
} else {
|
|
11316
|
+
setServiceUrlHasError(false);
|
|
11317
|
+
setServiceNameHelperText('');
|
|
11318
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11319
|
+
|
|
11320
|
+
}, [serviceUrl]); // Check if all fields are valid
|
|
11321
|
+
|
|
11322
|
+
React__namespace.useEffect(function () {
|
|
11323
|
+
if (!serviceNameHasError && !serviceUrlHasError && validateServiceUrl(serviceUrl) && serviceName.length > 0) {
|
|
11324
|
+
setDisableButton(false);
|
|
11325
|
+
} else setDisableButton(true);
|
|
11326
|
+
}, [serviceNameHasError, serviceUrlHasError, serviceName, serviceUrl]);
|
|
11327
|
+
|
|
11328
|
+
var closePopupAndResetState = function closePopupAndResetState() {
|
|
11329
|
+
setServiceName('');
|
|
11330
|
+
setServiceUrl('');
|
|
11331
|
+
setAbstract('');
|
|
11332
|
+
closePopup();
|
|
11333
|
+
};
|
|
11334
|
+
|
|
11154
11335
|
return /*#__PURE__*/React__namespace.createElement(material.Dialog, {
|
|
11155
11336
|
open: isOpen,
|
|
11156
11337
|
hideBackdrop: hideBackdrop,
|
|
11157
11338
|
fullWidth: true,
|
|
11158
11339
|
maxWidth: "xs",
|
|
11159
|
-
|
|
11340
|
+
"data-testid": "servicePopup",
|
|
11341
|
+
sx: style$1.container
|
|
11160
11342
|
}, /*#__PURE__*/React__namespace.createElement(material.DialogTitle, {
|
|
11161
|
-
sx: style.dialogTitle
|
|
11343
|
+
sx: style$1.dialogTitle
|
|
11162
11344
|
}, /*#__PURE__*/React__namespace.createElement(material.Typography, {
|
|
11163
11345
|
variant: "h5",
|
|
11164
11346
|
component: "span"
|
|
11165
11347
|
}, getTitleForVariant(servicePopupVariant)), /*#__PURE__*/React__namespace.createElement(material.IconButton, {
|
|
11166
11348
|
size: "small",
|
|
11167
|
-
onClick:
|
|
11168
|
-
"data-testid": "
|
|
11169
|
-
sx: style.closeBtn
|
|
11349
|
+
onClick: closePopupAndResetState,
|
|
11350
|
+
"data-testid": "closePopupButtonCross",
|
|
11351
|
+
sx: style$1.closeBtn
|
|
11170
11352
|
}, /*#__PURE__*/React__namespace.createElement(iconsMaterial.Close, null))), /*#__PURE__*/React__namespace.createElement(material.DialogContent, {
|
|
11171
|
-
sx: style.dialogContent
|
|
11353
|
+
sx: style$1.dialogContent
|
|
11172
11354
|
}, /*#__PURE__*/React__namespace.createElement(material.TextField, {
|
|
11173
|
-
sx: style.textField,
|
|
11355
|
+
sx: style$1.textField,
|
|
11174
11356
|
variant: "filled",
|
|
11175
|
-
label: "Service name"
|
|
11357
|
+
label: "Service name",
|
|
11358
|
+
onChange: function onChange(event) {
|
|
11359
|
+
return setServiceName(event.target.value);
|
|
11360
|
+
},
|
|
11361
|
+
value: serviceName,
|
|
11362
|
+
inputProps: {
|
|
11363
|
+
'data-testid': 'serviceNameTextField'
|
|
11364
|
+
},
|
|
11365
|
+
error: serviceNameHasError,
|
|
11366
|
+
helperText: serviceNameHelperText
|
|
11176
11367
|
})), /*#__PURE__*/React__namespace.createElement(material.DialogContent, {
|
|
11177
|
-
sx: style.dialogContent
|
|
11368
|
+
sx: style$1.dialogContent
|
|
11178
11369
|
}, /*#__PURE__*/React__namespace.createElement(material.TextField, {
|
|
11179
|
-
sx: style.textField,
|
|
11370
|
+
sx: style$1.textField,
|
|
11180
11371
|
variant: "filled",
|
|
11181
11372
|
label: "Service URL",
|
|
11182
|
-
|
|
11183
|
-
|
|
11373
|
+
onChange: function onChange(event) {
|
|
11374
|
+
return setServiceUrl(event.target.value);
|
|
11375
|
+
},
|
|
11376
|
+
value: serviceUrl,
|
|
11377
|
+
id: "service-url",
|
|
11378
|
+
inputProps: {
|
|
11379
|
+
'data-testid': 'serviceUrlTextField'
|
|
11380
|
+
},
|
|
11381
|
+
error: serviceUrlHasError,
|
|
11382
|
+
helperText: serviceUrlHelperText
|
|
11184
11383
|
})), /*#__PURE__*/React__namespace.createElement(material.DialogContent, {
|
|
11185
|
-
sx: style.dialogContent
|
|
11384
|
+
sx: style$1.dialogContent
|
|
11186
11385
|
}, /*#__PURE__*/React__namespace.createElement(material.TextField, {
|
|
11187
|
-
sx: style.textField,
|
|
11386
|
+
sx: style$1.textField,
|
|
11188
11387
|
variant: "filled",
|
|
11189
11388
|
multiline: true,
|
|
11190
11389
|
rows: 4,
|
|
11191
11390
|
label: "Abstracts",
|
|
11192
|
-
helperText: "Short description of what this service does"
|
|
11391
|
+
helperText: "Short description of what this service does",
|
|
11392
|
+
onChange: function onChange(event) {
|
|
11393
|
+
return setAbstract(event.target.value);
|
|
11394
|
+
},
|
|
11395
|
+
value: _abstract,
|
|
11396
|
+
"data-testid": "abstractTextField"
|
|
11193
11397
|
})), /*#__PURE__*/React__namespace.createElement(material.DialogActions, {
|
|
11194
|
-
sx: style.footerContent
|
|
11398
|
+
sx: style$1.footerContent
|
|
11195
11399
|
}, /*#__PURE__*/React__namespace.createElement(material.Button, {
|
|
11400
|
+
onClick: closePopupAndResetState,
|
|
11401
|
+
"data-testid": "closePopupButtonCancel",
|
|
11196
11402
|
variant: "tertiary",
|
|
11197
|
-
onClick: closePopup,
|
|
11198
|
-
"data-testid": "ClosePopupButtonCancel",
|
|
11199
11403
|
sx: {
|
|
11200
11404
|
width: '117px'
|
|
11201
11405
|
}
|
|
11202
|
-
}, "cancel"), /*#__PURE__*/React__namespace.createElement(material.Button, {
|
|
11406
|
+
}, "cancel"), !isLoading ? /*#__PURE__*/React__namespace.createElement(material.Button, {
|
|
11407
|
+
variant: "primary",
|
|
11408
|
+
disabled: disableButton,
|
|
11409
|
+
onClick: addNewService,
|
|
11410
|
+
"data-testid": "saveServiceButton",
|
|
11203
11411
|
sx: {
|
|
11204
11412
|
width: '117px',
|
|
11205
11413
|
marginLeft: '16px!important'
|
|
11206
|
-
}
|
|
11207
|
-
|
|
11208
|
-
|
|
11414
|
+
}
|
|
11415
|
+
}, "save") : /*#__PURE__*/React__namespace.createElement(material.Box, {
|
|
11416
|
+
"data-testid": "loadingIndicator",
|
|
11417
|
+
sx: {
|
|
11418
|
+
width: '117px',
|
|
11419
|
+
height: '40px',
|
|
11420
|
+
display: 'flex',
|
|
11421
|
+
justifyContent: 'center',
|
|
11422
|
+
alignItems: 'center',
|
|
11423
|
+
marginLeft: '16px!important'
|
|
11424
|
+
}
|
|
11425
|
+
}, /*#__PURE__*/React__namespace.createElement(material.CircularProgress, {
|
|
11426
|
+
size: 35
|
|
11427
|
+
}))));
|
|
11428
|
+
};
|
|
11429
|
+
|
|
11430
|
+
/* *
|
|
11431
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11432
|
+
* you may not use this file except in compliance with the License.
|
|
11433
|
+
* You may obtain a copy of the License at
|
|
11434
|
+
*
|
|
11435
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11436
|
+
*
|
|
11437
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11438
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11439
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11440
|
+
* See the License for the specific language governing permissions and
|
|
11441
|
+
* limitations under the License.
|
|
11442
|
+
*
|
|
11443
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11444
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
11445
|
+
* */
|
|
11446
|
+
|
|
11447
|
+
var ServicePopupConnect = function ServicePopupConnect(_a) {
|
|
11448
|
+
var servicePopupVariant = _a.servicePopupVariant,
|
|
11449
|
+
hideBackdrop = _a.hideBackdrop,
|
|
11450
|
+
isOpen = _a.isOpen,
|
|
11451
|
+
closePopup = _a.closePopup,
|
|
11452
|
+
url = _a.url;
|
|
11453
|
+
var dispatch = reactRedux.useDispatch();
|
|
11454
|
+
var services = reactRedux.useSelector(function (store) {
|
|
11455
|
+
return getServices(store);
|
|
11456
|
+
});
|
|
11457
|
+
var serviceSetLayers$1 = React__default["default"].useCallback(function (payload) {
|
|
11458
|
+
dispatch(serviceSetLayers(payload));
|
|
11459
|
+
}, [dispatch]);
|
|
11460
|
+
return /*#__PURE__*/React__default["default"].createElement(ServicePopup, {
|
|
11461
|
+
servicePopupVariant: servicePopupVariant,
|
|
11462
|
+
hideBackdrop: hideBackdrop,
|
|
11463
|
+
isOpen: isOpen,
|
|
11464
|
+
closePopup: closePopup,
|
|
11465
|
+
url: url,
|
|
11466
|
+
services: services,
|
|
11467
|
+
serviceSetLayers: serviceSetLayers$1
|
|
11468
|
+
});
|
|
11209
11469
|
};
|
|
11210
11470
|
|
|
11211
11471
|
/* *
|
|
@@ -11231,11 +11491,6 @@
|
|
|
11231
11491
|
return {
|
|
11232
11492
|
iconButton: {
|
|
11233
11493
|
color: theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat
|
|
11234
|
-
},
|
|
11235
|
-
saveButton: {
|
|
11236
|
-
color: theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat,
|
|
11237
|
-
textTransform: 'none',
|
|
11238
|
-
border: "1px solid " + theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat
|
|
11239
11494
|
}
|
|
11240
11495
|
};
|
|
11241
11496
|
});
|
|
@@ -11271,6 +11526,12 @@
|
|
|
11271
11526
|
setPopupOpen = _b[1];
|
|
11272
11527
|
|
|
11273
11528
|
var classes = useStyles$q();
|
|
11529
|
+
React__default["default"].useEffect(function () {
|
|
11530
|
+
if (isPopupOpen === false) {
|
|
11531
|
+
onClickClear();
|
|
11532
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11533
|
+
|
|
11534
|
+
}, [isPopupOpen]);
|
|
11274
11535
|
var ClearButton = /*#__PURE__*/React__default["default"].createElement(material.Tooltip, {
|
|
11275
11536
|
title: "Clear",
|
|
11276
11537
|
placement: "top"
|
|
@@ -11287,12 +11548,11 @@
|
|
|
11287
11548
|
marginRight: '15px'
|
|
11288
11549
|
}
|
|
11289
11550
|
}, ClearButton), /*#__PURE__*/React__default["default"].createElement(material.Button, {
|
|
11290
|
-
variant: "
|
|
11551
|
+
variant: "tertiary",
|
|
11291
11552
|
onClick: function onClick() {
|
|
11292
11553
|
return setPopupOpen(true);
|
|
11293
|
-
}
|
|
11294
|
-
|
|
11295
|
-
}, "Save"), /*#__PURE__*/React__default["default"].createElement(ServicePopup, {
|
|
11554
|
+
}
|
|
11555
|
+
}, "Save"), /*#__PURE__*/React__default["default"].createElement(ServicePopupConnect, {
|
|
11296
11556
|
servicePopupVariant: "save",
|
|
11297
11557
|
isOpen: isPopupOpen,
|
|
11298
11558
|
closePopup: function closePopup() {
|
|
@@ -11420,17 +11680,7 @@
|
|
|
11420
11680
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11421
11681
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
11422
11682
|
* */
|
|
11423
|
-
var filterLayersFromService = function filterLayersFromService(serviceId, services,
|
|
11424
|
-
var activeKeywords = keywords.filter(function (keyword) {
|
|
11425
|
-
return keyword.checked;
|
|
11426
|
-
});
|
|
11427
|
-
var keywordList = activeKeywords.map(function (keyword) {
|
|
11428
|
-
return keyword.id;
|
|
11429
|
-
});
|
|
11430
|
-
var allKeywordsActive = keywords.every(function (keyword) {
|
|
11431
|
-
return keyword.checked;
|
|
11432
|
-
});
|
|
11433
|
-
|
|
11683
|
+
var filterLayersFromService = function filterLayersFromService(serviceId, services, keywordIds, allKeywordsActive, searchString) {
|
|
11434
11684
|
if (searchString === '' && allKeywordsActive) {
|
|
11435
11685
|
return services[serviceId].layers.filter(function (layer) {
|
|
11436
11686
|
return layer.leaf;
|
|
@@ -11442,11 +11692,9 @@
|
|
|
11442
11692
|
return searchStringArray.every(function (search) {
|
|
11443
11693
|
var layerPathAndKeywords = layer.path.concat(layer.keywords);
|
|
11444
11694
|
return (!!layerPathAndKeywords && !layerPathAndKeywords.every(function (keyword) {
|
|
11445
|
-
return !
|
|
11695
|
+
return !keywordIds.includes(keyword);
|
|
11446
11696
|
}) || allKeywordsActive) && (!!layer.name && layer.name.toLowerCase().includes(search.toLowerCase()) || !!layer.text && layer.text.toLowerCase().includes(search.toLowerCase()) || !!layer["abstract"] && layer["abstract"].toLowerCase().includes(search.toLowerCase()) || !!layerPathAndKeywords && !layerPathAndKeywords.every(function (keyword) {
|
|
11447
11697
|
return !keyword.toLowerCase().includes(search.toLowerCase());
|
|
11448
|
-
}) || !!layer.path && !layer.path.every(function (group) {
|
|
11449
|
-
return !group.toLowerCase().includes(search.toLowerCase());
|
|
11450
11698
|
}) || services[serviceId].name.toLowerCase().includes(search.toLowerCase()));
|
|
11451
11699
|
});
|
|
11452
11700
|
}).filter(function (layer) {
|
|
@@ -11518,7 +11766,8 @@
|
|
|
11518
11766
|
serviceIds = _a.serviceIds,
|
|
11519
11767
|
layerSelectHeight = _a.layerSelectHeight,
|
|
11520
11768
|
searchString = _a.searchString,
|
|
11521
|
-
|
|
11769
|
+
keywordIds = _a.keywordIds,
|
|
11770
|
+
allKeywordsActive = _a.allKeywordsActive;
|
|
11522
11771
|
var classes = useStyles$p();
|
|
11523
11772
|
|
|
11524
11773
|
var _b = __read(React__namespace.useState(0), 2),
|
|
@@ -11527,9 +11776,9 @@
|
|
|
11527
11776
|
|
|
11528
11777
|
React__namespace.useEffect(function () {
|
|
11529
11778
|
setNumberOfLayers(serviceIds.reduce(function (totalNumberOfLayers, serviceId) {
|
|
11530
|
-
return totalNumberOfLayers + filterLayersFromService(serviceId, services,
|
|
11779
|
+
return totalNumberOfLayers + filterLayersFromService(serviceId, services, keywordIds, allKeywordsActive, searchString).length;
|
|
11531
11780
|
}, 0));
|
|
11532
|
-
}, [serviceIds,
|
|
11781
|
+
}, [serviceIds, keywordIds, services, searchString, allKeywordsActive]);
|
|
11533
11782
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
11534
11783
|
"data-testid": "layerList"
|
|
11535
11784
|
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
@@ -11540,7 +11789,7 @@
|
|
|
11540
11789
|
overflow: 'auto'
|
|
11541
11790
|
}
|
|
11542
11791
|
}, serviceIds.map(function (serviceId) {
|
|
11543
|
-
return filterLayersFromService(serviceId, services,
|
|
11792
|
+
return filterLayersFromService(serviceId, services, keywordIds, allKeywordsActive, searchString).map(function (layer) {
|
|
11544
11793
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
11545
11794
|
key: serviceId + "-" + layer.name,
|
|
11546
11795
|
className: classes.layerRow,
|
|
@@ -11584,8 +11833,11 @@
|
|
|
11584
11833
|
var enabledServiceIds = reactRedux.useSelector(function (store) {
|
|
11585
11834
|
return getEnabledServiceIds(store);
|
|
11586
11835
|
});
|
|
11587
|
-
var
|
|
11588
|
-
return
|
|
11836
|
+
var checkedKeywordIds = reactRedux.useSelector(function (store) {
|
|
11837
|
+
return getCheckedKeywordIds(store);
|
|
11838
|
+
});
|
|
11839
|
+
var allKeywordsActive = reactRedux.useSelector(function (store) {
|
|
11840
|
+
return isAllKeywordsChecked(store);
|
|
11589
11841
|
});
|
|
11590
11842
|
var searchString = reactRedux.useSelector(function (store) {
|
|
11591
11843
|
return getSearchFilter(store);
|
|
@@ -11594,7 +11846,8 @@
|
|
|
11594
11846
|
services: services,
|
|
11595
11847
|
serviceIds: enabledServiceIds,
|
|
11596
11848
|
layerSelectHeight: layerSelectHeight,
|
|
11597
|
-
|
|
11849
|
+
keywordIds: checkedKeywordIds,
|
|
11850
|
+
allKeywordsActive: allKeywordsActive,
|
|
11598
11851
|
searchString: searchString
|
|
11599
11852
|
});
|
|
11600
11853
|
};
|
|
@@ -11615,41 +11868,15 @@
|
|
|
11615
11868
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11616
11869
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
11617
11870
|
* */
|
|
11618
|
-
var
|
|
11619
|
-
|
|
11620
|
-
|
|
11621
|
-
|
|
11622
|
-
|
|
11623
|
-
|
|
11624
|
-
|
|
11625
|
-
|
|
11626
|
-
|
|
11627
|
-
return isEnabled ? "solid 1px " + theme.palette.geowebColors.buttons.primaryActive.fill : "solid 1px " + theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat;
|
|
11628
|
-
},
|
|
11629
|
-
backgroundColor: function backgroundColor(_a) {
|
|
11630
|
-
var isEnabled = _a.isEnabled;
|
|
11631
|
-
return isEnabled ? theme.palette.geowebColors.buttons.primaryActive.fill : theme.palette.geowebColors.buttons.surfaceIconDefault.fill;
|
|
11632
|
-
},
|
|
11633
|
-
color: function color(_a) {
|
|
11634
|
-
var isEnabled = _a.isEnabled;
|
|
11635
|
-
return isEnabled ? theme.palette.geowebColors.typographyAndIcons.buttonIcon : theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat;
|
|
11636
|
-
},
|
|
11637
|
-
"float": 'left',
|
|
11638
|
-
whiteSpace: 'nowrap',
|
|
11639
|
-
'&:hover': {
|
|
11640
|
-
backgroundColor: function backgroundColor(_a) {
|
|
11641
|
-
var isEnabled = _a.isEnabled;
|
|
11642
|
-
return isEnabled ? theme.palette.geowebColors.buttons.primaryMouseover.fill : theme.palette.geowebColors.buttons.flatMouseover.fill;
|
|
11643
|
-
},
|
|
11644
|
-
border: function border(_a) {
|
|
11645
|
-
var isEnabled = _a.isEnabled;
|
|
11646
|
-
return isEnabled ? "solid 1px " + theme.palette.geowebColors.buttons.primaryMouseover.fill : "solid 1px " + theme.palette.geowebColors.typographyAndIcons.buttonIconTertiaryFlat;
|
|
11647
|
-
},
|
|
11648
|
-
cursor: 'pointer'
|
|
11649
|
-
}
|
|
11650
|
-
}
|
|
11651
|
-
});
|
|
11652
|
-
});
|
|
11871
|
+
var style = {
|
|
11872
|
+
borderRadius: '20px!important',
|
|
11873
|
+
marginRight: '8px',
|
|
11874
|
+
whiteSpace: 'nowrap',
|
|
11875
|
+
height: '32px!important',
|
|
11876
|
+
padding: '5px 12px!important',
|
|
11877
|
+
textTransform: 'none!important',
|
|
11878
|
+
fontWeight: 'normal'
|
|
11879
|
+
};
|
|
11653
11880
|
|
|
11654
11881
|
var ServiceChip = function ServiceChip(_a) {
|
|
11655
11882
|
var _b = _a.all,
|
|
@@ -11657,20 +11884,18 @@
|
|
|
11657
11884
|
service = _a.service,
|
|
11658
11885
|
isEnabled = _a.isEnabled,
|
|
11659
11886
|
toggleChip = _a.toggleChip;
|
|
11660
|
-
|
|
11661
|
-
|
|
11662
|
-
|
|
11663
|
-
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
11664
|
-
role: "button",
|
|
11887
|
+
return /*#__PURE__*/React__namespace.createElement(CustomToggleButton, {
|
|
11888
|
+
variant: "boxed",
|
|
11889
|
+
selected: isEnabled,
|
|
11665
11890
|
tabIndex: 0,
|
|
11666
|
-
className: classes.chip,
|
|
11667
11891
|
"data-testid": all ? 'serviceChipAll' : 'serviceChip',
|
|
11668
11892
|
onClick: function onClick() {
|
|
11669
11893
|
return toggleChip(all ? 'all' : service && service.service);
|
|
11670
11894
|
},
|
|
11671
11895
|
onKeyPress: function onKeyPress() {
|
|
11672
11896
|
return toggleChip(all ? 'all' : service && service.service);
|
|
11673
|
-
}
|
|
11897
|
+
},
|
|
11898
|
+
sx: style
|
|
11674
11899
|
}, service ? service.name : 'All');
|
|
11675
11900
|
};
|
|
11676
11901
|
|
|
@@ -11755,7 +11980,7 @@
|
|
|
11755
11980
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11756
11981
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
11757
11982
|
* */
|
|
11758
|
-
var useStyles$
|
|
11983
|
+
var useStyles$o = makeStyles__default["default"](function (theme) {
|
|
11759
11984
|
return createStyles__default["default"]({
|
|
11760
11985
|
serviceChips: {
|
|
11761
11986
|
width: '100%',
|
|
@@ -11820,31 +12045,71 @@
|
|
|
11820
12045
|
width = _c[0],
|
|
11821
12046
|
setWidth = _c[1];
|
|
11822
12047
|
|
|
12048
|
+
var _d = __read(React__namespace.useState(null), 2),
|
|
12049
|
+
intervalId = _d[0],
|
|
12050
|
+
setIntervalId = _d[1];
|
|
12051
|
+
|
|
11823
12052
|
var ref = React__namespace.useRef(null);
|
|
12053
|
+
var scrollSpeed = 5;
|
|
11824
12054
|
var maxWidthValue = ref && ref.current && ref.current.scrollWidth && ref.current.scrollWidth >= layerSelectWidth - margin && ref.current.scrollWidth || layerSelectWidth - 50;
|
|
11825
|
-
var classes = useStyles$
|
|
12055
|
+
var classes = useStyles$o({
|
|
11826
12056
|
margin: margin,
|
|
11827
12057
|
maxWidthValue: maxWidthValue
|
|
11828
12058
|
});
|
|
11829
|
-
|
|
11830
|
-
|
|
11831
|
-
|
|
11832
|
-
|
|
11833
|
-
setMargin(Math.min(width - layerSelectWidth
|
|
11834
|
-
}
|
|
12059
|
+
|
|
12060
|
+
var onMouseWheelScroll = function onMouseWheelScroll(e) {
|
|
12061
|
+
var delta = e.deltaY;
|
|
12062
|
+
var scrollSpeed = 0.1;
|
|
12063
|
+
if (delta > 0) setMargin(Math.min(Math.max(margin + scrollSpeed * delta, 0), width - layerSelectWidth));else setMargin(Math.min(Math.max(margin + scrollSpeed * delta, 0), width - layerSelectWidth));
|
|
12064
|
+
};
|
|
12065
|
+
|
|
12066
|
+
var onLeftChevronPressed = function onLeftChevronPressed() {
|
|
12067
|
+
setMargin(function (prevMargin) {
|
|
12068
|
+
return Math.max(prevMargin - scrollSpeed, 0);
|
|
12069
|
+
});
|
|
12070
|
+
setIntervalId(setInterval(function () {
|
|
12071
|
+
setMargin(function (prevMargin) {
|
|
12072
|
+
return Math.max(prevMargin - scrollSpeed, 0);
|
|
12073
|
+
});
|
|
12074
|
+
}, 20));
|
|
12075
|
+
};
|
|
12076
|
+
|
|
12077
|
+
var onRightChevronPressed = React__namespace.useCallback(function () {
|
|
12078
|
+
setMargin(function (prevMargin) {
|
|
12079
|
+
return Math.min(prevMargin + scrollSpeed, width - layerSelectWidth);
|
|
12080
|
+
});
|
|
12081
|
+
setIntervalId(setInterval(function () {
|
|
12082
|
+
setMargin(function (prevMargin) {
|
|
12083
|
+
return Math.min(prevMargin + scrollSpeed, width - layerSelectWidth);
|
|
12084
|
+
});
|
|
12085
|
+
}, 20));
|
|
12086
|
+
}, [width, layerSelectWidth]);
|
|
12087
|
+
|
|
12088
|
+
var onChevronMouseUp = function onChevronMouseUp() {
|
|
12089
|
+
clearInterval(intervalId);
|
|
12090
|
+
setIntervalId(null);
|
|
12091
|
+
};
|
|
12092
|
+
|
|
11835
12093
|
React__namespace.useEffect(function () {
|
|
11836
12094
|
setWidth(ref.current.scrollWidth + 50);
|
|
11837
12095
|
setMargin(Math.max(0, Math.min(width - layerSelectWidth, margin)));
|
|
11838
|
-
|
|
12096
|
+
|
|
12097
|
+
if ((margin === 0 || layerSelectWidth + margin === width) && intervalId != null) {
|
|
12098
|
+
clearInterval(intervalId);
|
|
12099
|
+
setIntervalId(null);
|
|
12100
|
+
}
|
|
12101
|
+
}, [services, layerSelectWidth, width, margin, intervalId]);
|
|
11839
12102
|
var isAllEnabled = Object.values(activeServices).every(function (activeService) {
|
|
11840
12103
|
return activeService.enabled;
|
|
11841
12104
|
});
|
|
11842
12105
|
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
11843
12106
|
className: classes.serviceList,
|
|
11844
|
-
"data-testid": "serviceList"
|
|
12107
|
+
"data-testid": "serviceList",
|
|
12108
|
+
onWheel: onMouseWheelScroll
|
|
11845
12109
|
}, margin !== 0 && /*#__PURE__*/React__namespace.createElement(iconsMaterial.ChevronLeft, {
|
|
11846
12110
|
className: classes.scrollArrowLeft,
|
|
11847
|
-
|
|
12111
|
+
onMouseDown: onLeftChevronPressed,
|
|
12112
|
+
onMouseUp: onChevronMouseUp,
|
|
11848
12113
|
"data-testid": "leftScrollArrow"
|
|
11849
12114
|
}), /*#__PURE__*/React__namespace.createElement("div", {
|
|
11850
12115
|
className: classes.serviceChips,
|
|
@@ -11863,7 +12128,8 @@
|
|
|
11863
12128
|
});
|
|
11864
12129
|
})), layerSelectWidth + margin < width && /*#__PURE__*/React__namespace.createElement(iconsMaterial.ChevronRight, {
|
|
11865
12130
|
className: classes.scrollArrowRight,
|
|
11866
|
-
|
|
12131
|
+
onMouseDown: onRightChevronPressed,
|
|
12132
|
+
onMouseUp: onChevronMouseUp,
|
|
11867
12133
|
"data-testid": "rightScrollArrow"
|
|
11868
12134
|
}));
|
|
11869
12135
|
};
|
|
@@ -11900,6 +12166,202 @@
|
|
|
11900
12166
|
});
|
|
11901
12167
|
};
|
|
11902
12168
|
|
|
12169
|
+
/* *
|
|
12170
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12171
|
+
* you may not use this file except in compliance with the License.
|
|
12172
|
+
* You may obtain a copy of the License at
|
|
12173
|
+
*
|
|
12174
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12175
|
+
*
|
|
12176
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12177
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12178
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12179
|
+
* See the License for the specific language governing permissions and
|
|
12180
|
+
* limitations under the License.
|
|
12181
|
+
*
|
|
12182
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12183
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12184
|
+
* */
|
|
12185
|
+
var useStyles$n = makeStyles__default["default"](function (theme) {
|
|
12186
|
+
return createStyles__default["default"]({
|
|
12187
|
+
servicesContainer: {
|
|
12188
|
+
width: '300px',
|
|
12189
|
+
maxHeight: '380px',
|
|
12190
|
+
top: '140px',
|
|
12191
|
+
backgroundColor: theme.palette.geowebColors.background.surface,
|
|
12192
|
+
boxShadow: theme.shadows[6],
|
|
12193
|
+
overflow: 'auto'
|
|
12194
|
+
},
|
|
12195
|
+
header: {
|
|
12196
|
+
position: 'sticky',
|
|
12197
|
+
top: 0,
|
|
12198
|
+
fontSize: theme.typography.fontSize,
|
|
12199
|
+
padding: '12px',
|
|
12200
|
+
backgroundColor: theme.palette.geowebColors.background.surface,
|
|
12201
|
+
zIndex: 100
|
|
12202
|
+
},
|
|
12203
|
+
footer: {
|
|
12204
|
+
display: 'flex',
|
|
12205
|
+
justifyContent: 'center',
|
|
12206
|
+
alignItems: 'center',
|
|
12207
|
+
position: 'sticky',
|
|
12208
|
+
bottom: 0,
|
|
12209
|
+
backgroundColor: theme.palette.geowebColors.background.surface,
|
|
12210
|
+
zIndex: 100
|
|
12211
|
+
},
|
|
12212
|
+
iconFill: {
|
|
12213
|
+
color: theme.palette.geowebColors.typographyAndIcons.icon
|
|
12214
|
+
},
|
|
12215
|
+
button: {
|
|
12216
|
+
margin: '16px',
|
|
12217
|
+
width: '80%',
|
|
12218
|
+
fontSize: '12px',
|
|
12219
|
+
textTransform: 'none'
|
|
12220
|
+
},
|
|
12221
|
+
text: {
|
|
12222
|
+
paddingTop: '3px',
|
|
12223
|
+
fontSize: '12px',
|
|
12224
|
+
fontFamily: theme.typography.fontFamily,
|
|
12225
|
+
fontWeight: theme.typography.fontWeightRegular,
|
|
12226
|
+
textTransform: 'none',
|
|
12227
|
+
color: '#575f7a'
|
|
12228
|
+
},
|
|
12229
|
+
icon: {
|
|
12230
|
+
width: '24px',
|
|
12231
|
+
height: '24px'
|
|
12232
|
+
}
|
|
12233
|
+
});
|
|
12234
|
+
});
|
|
12235
|
+
|
|
12236
|
+
var ServiceOptionsDialog = function ServiceOptionsDialog(_a) {
|
|
12237
|
+
var services = _a.services,
|
|
12238
|
+
mapStoreRemoveService = _a.mapStoreRemoveService,
|
|
12239
|
+
_b = _a.layers,
|
|
12240
|
+
layers = _b === void 0 ? [] : _b;
|
|
12241
|
+
var classes = useStyles$n();
|
|
12242
|
+
|
|
12243
|
+
var _c = __read(React__namespace.useState(false), 2),
|
|
12244
|
+
addServiceisOpen = _c[0],
|
|
12245
|
+
setAddServiceIsOpen = _c[1];
|
|
12246
|
+
|
|
12247
|
+
var openAddService = function openAddService() {
|
|
12248
|
+
setAddServiceIsOpen(true);
|
|
12249
|
+
};
|
|
12250
|
+
|
|
12251
|
+
var closePopup = function closePopup() {
|
|
12252
|
+
setAddServiceIsOpen(false);
|
|
12253
|
+
};
|
|
12254
|
+
|
|
12255
|
+
var isDisabled = function isDisabled(service) {
|
|
12256
|
+
return layers.some(function (layer) {
|
|
12257
|
+
return layer.service && layer.service.includes(service);
|
|
12258
|
+
});
|
|
12259
|
+
};
|
|
12260
|
+
|
|
12261
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(material.Box, {
|
|
12262
|
+
className: classes.servicesContainer,
|
|
12263
|
+
"data-testid": "ServiceDialog"
|
|
12264
|
+
}, /*#__PURE__*/React__namespace.createElement("div", {
|
|
12265
|
+
className: classes.header
|
|
12266
|
+
}, " Services"), /*#__PURE__*/React__namespace.createElement(material.List, {
|
|
12267
|
+
disablePadding: true
|
|
12268
|
+
}, services.map(function (service) {
|
|
12269
|
+
return /*#__PURE__*/React__namespace.createElement(material.ListItem, {
|
|
12270
|
+
key: service.name
|
|
12271
|
+
}, /*#__PURE__*/React__namespace.createElement(material.ListItemText, {
|
|
12272
|
+
style: {
|
|
12273
|
+
fontSize: '16px'
|
|
12274
|
+
}
|
|
12275
|
+
}, /*#__PURE__*/React__namespace.createElement(material.Typography, {
|
|
12276
|
+
noWrap: true,
|
|
12277
|
+
style: {
|
|
12278
|
+
textOverflow: 'ellipsis',
|
|
12279
|
+
paddingRight: '60px'
|
|
12280
|
+
}
|
|
12281
|
+
}, service.name)), /*#__PURE__*/React__namespace.createElement(material.ListItemSecondaryAction, {
|
|
12282
|
+
style: {
|
|
12283
|
+
marginRight: '-10px'
|
|
12284
|
+
}
|
|
12285
|
+
}, /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
12286
|
+
title: "Edit Service"
|
|
12287
|
+
}, /*#__PURE__*/React__namespace.createElement(material.IconButton, {
|
|
12288
|
+
"data-testid": "openEditServiceButton",
|
|
12289
|
+
size: "large"
|
|
12290
|
+
}, /*#__PURE__*/React__namespace.createElement(material.SvgIcon, null, /*#__PURE__*/React__namespace.createElement("g", null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
12291
|
+
d: "m8.332 17.09-.005.001-2.652.604.956-2.542.001-.001.001-.001.857-.744 1.69 1.945-.848.738zm.71.815L20.932 7.577 17.823 4 5.933 14.329l-.01.008.005.005L4.173 19l4.857-1.09-.004-.02.019.02-.002-.005z",
|
|
12292
|
+
fill: classes.iconFill,
|
|
12293
|
+
fillRule: "evenodd"
|
|
12294
|
+
}))))), /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
12295
|
+
title: "Delete Service"
|
|
12296
|
+
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(material.IconButton, {
|
|
12297
|
+
size: "large",
|
|
12298
|
+
disabled: isDisabled(service.service),
|
|
12299
|
+
onClick: function onClick() {
|
|
12300
|
+
return mapStoreRemoveService(service.service);
|
|
12301
|
+
},
|
|
12302
|
+
"data-testid": "removeServiceButton"
|
|
12303
|
+
}, /*#__PURE__*/React__namespace.createElement(material.SvgIcon, null, /*#__PURE__*/React__namespace.createElement("g", null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
12304
|
+
d: "M17.504 8.228c.588 0 1.027.48.973 1.066l-.876 9.64A1.197 1.197 0 0 1 16.434 20H8.41c-.59 0-1.115-.48-1.167-1.066l-.877-9.64a.962.962 0 0 1 .973-1.066zm-2.115 1.228a.82.82 0 0 0-.819.82v7.674a.818.818 0 0 0 1.638 0v-7.675a.819.819 0 0 0-.819-.819zm-2.968 0a.819.819 0 0 0-.819.82v7.674a.818.818 0 1 0 1.638 0v-7.675a.82.82 0 0 0-.82-.819zm-2.968 0a.819.819 0 0 0-.818.82v7.674a.818.818 0 1 0 1.637 0v-7.675a.82.82 0 0 0-.82-.819zM13.432 4c.21 0 .404.168.436.376l.107.758 3.256-.01a1.606 1.606 0 0 1 1.61 1.6l.001.535-12.841.038L6 6.76a1.605 1.605 0 0 1 1.6-1.61l3.262-.008.103-.758a.454.454 0 0 1 .434-.38z",
|
|
12305
|
+
fill: classes.iconFill,
|
|
12306
|
+
fillRule: "evenodd"
|
|
12307
|
+
}))))))));
|
|
12308
|
+
})), /*#__PURE__*/React__namespace.createElement("div", {
|
|
12309
|
+
className: classes.footer
|
|
12310
|
+
}, /*#__PURE__*/React__namespace.createElement(material.Button, {
|
|
12311
|
+
onClick: openAddService,
|
|
12312
|
+
"data-testid": "openAddServiceButton",
|
|
12313
|
+
className: classes.button,
|
|
12314
|
+
variant: "tertiary",
|
|
12315
|
+
startIcon: /*#__PURE__*/React__namespace.createElement(material.SvgIcon, {
|
|
12316
|
+
className: classes.icon
|
|
12317
|
+
}, /*#__PURE__*/React__namespace.createElement("g", null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
12318
|
+
d: "M13.647 13.647h6.82a1.276 1.276 0 1 0 0-2.552h-6.82v-6.82a1.276 1.276 0 1 0-2.552 0v6.82h-6.82a1.276 1.276 0 1 0 0 2.552h6.82v6.82a1.274 1.274 0 0 0 1.276 1.275c.705 0 1.276-.571 1.276-1.276v-6.82z",
|
|
12319
|
+
fillRule: "evenodd"
|
|
12320
|
+
})))
|
|
12321
|
+
}, "Add a new service"))), addServiceisOpen && /*#__PURE__*/React__namespace.createElement(ServicePopupConnect, {
|
|
12322
|
+
servicePopupVariant: "add",
|
|
12323
|
+
isOpen: addServiceisOpen,
|
|
12324
|
+
closePopup: closePopup
|
|
12325
|
+
}));
|
|
12326
|
+
};
|
|
12327
|
+
|
|
12328
|
+
/* *
|
|
12329
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12330
|
+
* you may not use this file except in compliance with the License.
|
|
12331
|
+
* You may obtain a copy of the License at
|
|
12332
|
+
*
|
|
12333
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12334
|
+
*
|
|
12335
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12336
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12337
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12338
|
+
* See the License for the specific language governing permissions and
|
|
12339
|
+
* limitations under the License.
|
|
12340
|
+
*
|
|
12341
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12342
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12343
|
+
* */
|
|
12344
|
+
|
|
12345
|
+
var ServiceOptionsDialogConnect = function ServiceOptionsDialogConnect() {
|
|
12346
|
+
var dispatch = reactRedux.useDispatch();
|
|
12347
|
+
var allLayers = reactRedux.useSelector(function (store) {
|
|
12348
|
+
return getAllLayers(store);
|
|
12349
|
+
});
|
|
12350
|
+
var mapStoreRemoveService$1 = React__namespace.useCallback(function (serviceUrl) {
|
|
12351
|
+
dispatch(mapStoreRemoveService({
|
|
12352
|
+
serviceUrl: serviceUrl
|
|
12353
|
+
}));
|
|
12354
|
+
}, [dispatch]);
|
|
12355
|
+
var arrayOfServices = reactRedux.useSelector(function (store) {
|
|
12356
|
+
return getServicesInArray(store);
|
|
12357
|
+
});
|
|
12358
|
+
return /*#__PURE__*/React__namespace.createElement(ServiceOptionsDialog, {
|
|
12359
|
+
services: arrayOfServices,
|
|
12360
|
+
layers: allLayers,
|
|
12361
|
+
mapStoreRemoveService: mapStoreRemoveService$1
|
|
12362
|
+
});
|
|
12363
|
+
};
|
|
12364
|
+
|
|
11903
12365
|
/* *
|
|
11904
12366
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11905
12367
|
* you may not use this file except in compliance with the License.
|
|
@@ -11919,8 +12381,6 @@
|
|
|
11919
12381
|
var useStyles$m = makeStyles__default["default"](function (theme) {
|
|
11920
12382
|
return createStyles__default["default"]({
|
|
11921
12383
|
servicesContainer: {
|
|
11922
|
-
width: '300px',
|
|
11923
|
-
height: '380px',
|
|
11924
12384
|
position: 'fixed',
|
|
11925
12385
|
top: '140px',
|
|
11926
12386
|
right: '-72px',
|
|
@@ -11945,23 +12405,21 @@
|
|
|
11945
12405
|
setContainerOpen(!containerOpen);
|
|
11946
12406
|
};
|
|
11947
12407
|
|
|
11948
|
-
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(
|
|
12408
|
+
return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
11949
12409
|
onClick: toggleContainer,
|
|
11950
12410
|
active: containerOpen,
|
|
11951
|
-
"data-testid": "serviceOptionsButton"
|
|
12411
|
+
"data-testid": "serviceOptionsButton",
|
|
12412
|
+
variant: "tool"
|
|
11952
12413
|
}, /*#__PURE__*/React__namespace.createElement(material.SvgIcon, {
|
|
11953
12414
|
viewBox: "0 0 24 24",
|
|
11954
12415
|
xmlns: "http://www.w3.org/2000/svg"
|
|
11955
12416
|
}, /*#__PURE__*/React__namespace.createElement("g", null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
11956
12417
|
d: "M12 16c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0-2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm0-6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z",
|
|
11957
|
-
fill: "#FFF",
|
|
11958
12418
|
fillRule: "evenodd"
|
|
11959
12419
|
})))), containerOpen ? /*#__PURE__*/React__namespace.createElement(material.Box, {
|
|
11960
12420
|
className: classes.servicesContainer,
|
|
11961
|
-
"data-testid": "
|
|
11962
|
-
}, /*#__PURE__*/React__namespace.createElement(
|
|
11963
|
-
className: classes.servicesText
|
|
11964
|
-
}, "Services")) : null);
|
|
12421
|
+
"data-testid": "ServiceOptionsDialogContainer"
|
|
12422
|
+
}, /*#__PURE__*/React__namespace.createElement(ServiceOptionsDialogConnect, null)) : null);
|
|
11965
12423
|
};
|
|
11966
12424
|
|
|
11967
12425
|
/* *
|
|
@@ -12072,40 +12530,6 @@
|
|
|
12072
12530
|
})));
|
|
12073
12531
|
};
|
|
12074
12532
|
|
|
12075
|
-
/* *
|
|
12076
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12077
|
-
* you may not use this file except in compliance with the License.
|
|
12078
|
-
* You may obtain a copy of the License at
|
|
12079
|
-
*
|
|
12080
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12081
|
-
*
|
|
12082
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12083
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12084
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12085
|
-
* See the License for the specific language governing permissions and
|
|
12086
|
-
* limitations under the License.
|
|
12087
|
-
*
|
|
12088
|
-
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12089
|
-
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12090
|
-
* */
|
|
12091
|
-
var CustomSwitch = withStyles__default["default"](function (theme) {
|
|
12092
|
-
return {
|
|
12093
|
-
switchBase: {
|
|
12094
|
-
'&$checked': {
|
|
12095
|
-
color: theme.palette.geowebColors.customSlider.thumb
|
|
12096
|
-
},
|
|
12097
|
-
'&$checked + $track': {
|
|
12098
|
-
backgroundColor: theme.palette.geowebColors.buttons.primary["default"].fill
|
|
12099
|
-
}
|
|
12100
|
-
},
|
|
12101
|
-
checked: {},
|
|
12102
|
-
track: {
|
|
12103
|
-
backgroundColor: theme.palette.geowebColors.customSlider.switchTrackDisabled,
|
|
12104
|
-
opacity: '1 !important'
|
|
12105
|
-
}
|
|
12106
|
-
};
|
|
12107
|
-
})(material.Switch);
|
|
12108
|
-
|
|
12109
12533
|
/* *
|
|
12110
12534
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12111
12535
|
* you may not use this file except in compliance with the License.
|
|
@@ -12156,56 +12580,184 @@
|
|
|
12156
12580
|
});
|
|
12157
12581
|
|
|
12158
12582
|
var FilterListItem = function FilterListItem(_a) {
|
|
12159
|
-
var
|
|
12160
|
-
|
|
12161
|
-
|
|
12162
|
-
toggleCheckbox = _a.toggleCheckbox,
|
|
12163
|
-
selectOnlyOne = _a.selectOnlyOne;
|
|
12583
|
+
var keyword = _a.keyword,
|
|
12584
|
+
toggleKeywords = _a.toggleKeywords,
|
|
12585
|
+
enableOnlyOneKeyword = _a.enableOnlyOneKeyword;
|
|
12164
12586
|
var classes = useStyles$k();
|
|
12165
12587
|
|
|
12166
|
-
var _b = __read(React__namespace.useState(false), 2),
|
|
12167
|
-
hovering = _b[0],
|
|
12168
|
-
setHovering = _b[1];
|
|
12588
|
+
var _b = __read(React__namespace.useState(false), 2),
|
|
12589
|
+
hovering = _b[0],
|
|
12590
|
+
setHovering = _b[1];
|
|
12591
|
+
|
|
12592
|
+
var handleMouseOver = React__namespace.useCallback(function () {
|
|
12593
|
+
setHovering(true);
|
|
12594
|
+
}, []);
|
|
12595
|
+
var handleMouseLeave = React__namespace.useCallback(function () {
|
|
12596
|
+
setHovering(false);
|
|
12597
|
+
}, []);
|
|
12598
|
+
|
|
12599
|
+
var selectOnlyOne = function selectOnlyOne(keyword) {
|
|
12600
|
+
enableOnlyOneKeyword(keyword);
|
|
12601
|
+
};
|
|
12602
|
+
|
|
12603
|
+
var toggleCheckbox = function toggleCheckbox(keyword) {
|
|
12604
|
+
toggleKeywords([keyword]);
|
|
12605
|
+
};
|
|
12606
|
+
|
|
12607
|
+
if (keyword.amountVisible !== 0) {
|
|
12608
|
+
return /*#__PURE__*/React__namespace.createElement("div", {
|
|
12609
|
+
onMouseOver: handleMouseOver,
|
|
12610
|
+
onMouseLeave: handleMouseLeave,
|
|
12611
|
+
onFocus: handleMouseOver,
|
|
12612
|
+
onBlur: handleMouseLeave,
|
|
12613
|
+
"data-testid": "filterResultListItem"
|
|
12614
|
+
}, /*#__PURE__*/React__namespace.createElement(material.ListItem, {
|
|
12615
|
+
className: classes.listItem
|
|
12616
|
+
}, /*#__PURE__*/React__namespace.createElement(material.ListItemIcon, {
|
|
12617
|
+
className: classes.listItemIcon
|
|
12618
|
+
}, /*#__PURE__*/React__namespace.createElement(material.Checkbox, {
|
|
12619
|
+
color: "secondary",
|
|
12620
|
+
checked: keyword.checked,
|
|
12621
|
+
onChange: function onChange() {
|
|
12622
|
+
return toggleCheckbox(keyword.id);
|
|
12623
|
+
},
|
|
12624
|
+
className: classes.checkbox
|
|
12625
|
+
})), /*#__PURE__*/React__namespace.createElement(material.Typography, {
|
|
12626
|
+
variant: "body2",
|
|
12627
|
+
className: classes.listItemText
|
|
12628
|
+
}, keyword.id), hovering ? /*#__PURE__*/React__namespace.createElement(material.ListItemSecondaryAction, null, /*#__PURE__*/React__namespace.createElement(material.IconButton, {
|
|
12629
|
+
style: {
|
|
12630
|
+
backgroundColor: 'transparent'
|
|
12631
|
+
},
|
|
12632
|
+
edge: "end",
|
|
12633
|
+
size: "small",
|
|
12634
|
+
onClick: function onClick() {
|
|
12635
|
+
return selectOnlyOne(keyword.id);
|
|
12636
|
+
},
|
|
12637
|
+
"data-testid": "onlyButton"
|
|
12638
|
+
}, /*#__PURE__*/React__namespace.createElement(material.Typography, {
|
|
12639
|
+
className: classes.onlyByttonText
|
|
12640
|
+
}, "ONLY"))) : null));
|
|
12641
|
+
}
|
|
12642
|
+
|
|
12643
|
+
return null;
|
|
12644
|
+
};
|
|
12645
|
+
|
|
12646
|
+
/* *
|
|
12647
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12648
|
+
* you may not use this file except in compliance with the License.
|
|
12649
|
+
* You may obtain a copy of the License at
|
|
12650
|
+
*
|
|
12651
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12652
|
+
*
|
|
12653
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12654
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12655
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12656
|
+
* See the License for the specific language governing permissions and
|
|
12657
|
+
* limitations under the License.
|
|
12658
|
+
*
|
|
12659
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12660
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12661
|
+
* */
|
|
12662
|
+
|
|
12663
|
+
var KeywordFilterResultsListItemConnect = function KeywordFilterResultsListItemConnect(_a) {
|
|
12664
|
+
var keyword = _a.keyword;
|
|
12665
|
+
var dispatch = reactRedux.useDispatch();
|
|
12666
|
+
var toggleKeywords$1 = React__namespace.useCallback(function (keywords) {
|
|
12667
|
+
dispatch(toggleKeywords({
|
|
12668
|
+
keywords: keywords
|
|
12669
|
+
}));
|
|
12670
|
+
}, [dispatch]);
|
|
12671
|
+
var enableOnlyOneKeyword$1 = React__namespace.useCallback(function (keyword) {
|
|
12672
|
+
dispatch(enableOnlyOneKeyword({
|
|
12673
|
+
keyword: keyword
|
|
12674
|
+
}));
|
|
12675
|
+
}, [dispatch]);
|
|
12676
|
+
var keywordObject = reactRedux.useSelector(function (store) {
|
|
12677
|
+
return getKeywordObjectById(store, keyword);
|
|
12678
|
+
});
|
|
12679
|
+
return /*#__PURE__*/React__namespace.createElement(FilterListItem, {
|
|
12680
|
+
keyword: keywordObject,
|
|
12681
|
+
toggleKeywords: toggleKeywords$1,
|
|
12682
|
+
enableOnlyOneKeyword: enableOnlyOneKeyword$1
|
|
12683
|
+
});
|
|
12684
|
+
};
|
|
12685
|
+
|
|
12686
|
+
/* *
|
|
12687
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12688
|
+
* you may not use this file except in compliance with the License.
|
|
12689
|
+
* You may obtain a copy of the License at
|
|
12690
|
+
*
|
|
12691
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12692
|
+
*
|
|
12693
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12694
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12695
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12696
|
+
* See the License for the specific language governing permissions and
|
|
12697
|
+
* limitations under the License.
|
|
12698
|
+
*
|
|
12699
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12700
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12701
|
+
* */
|
|
12702
|
+
var CustomSwitch = withStyles__default["default"](function (theme) {
|
|
12703
|
+
return {
|
|
12704
|
+
switchBase: {
|
|
12705
|
+
'&$checked': {
|
|
12706
|
+
color: theme.palette.geowebColors.customSlider.thumb
|
|
12707
|
+
},
|
|
12708
|
+
'&$checked + $track': {
|
|
12709
|
+
backgroundColor: theme.palette.geowebColors.buttons.primary["default"].fill
|
|
12710
|
+
}
|
|
12711
|
+
},
|
|
12712
|
+
checked: {},
|
|
12713
|
+
track: {
|
|
12714
|
+
backgroundColor: theme.palette.geowebColors.customSlider.switchTrackDisabled,
|
|
12715
|
+
opacity: '1 !important'
|
|
12716
|
+
}
|
|
12717
|
+
};
|
|
12718
|
+
})(material.Switch);
|
|
12719
|
+
|
|
12720
|
+
/* *
|
|
12721
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12722
|
+
* you may not use this file except in compliance with the License.
|
|
12723
|
+
* You may obtain a copy of the License at
|
|
12724
|
+
*
|
|
12725
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12726
|
+
*
|
|
12727
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12728
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12729
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12730
|
+
* See the License for the specific language governing permissions and
|
|
12731
|
+
* limitations under the License.
|
|
12732
|
+
*
|
|
12733
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12734
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12735
|
+
* */
|
|
12169
12736
|
|
|
12170
|
-
|
|
12171
|
-
|
|
12172
|
-
|
|
12173
|
-
|
|
12174
|
-
|
|
12175
|
-
|
|
12176
|
-
|
|
12177
|
-
|
|
12178
|
-
|
|
12179
|
-
|
|
12180
|
-
|
|
12181
|
-
|
|
12182
|
-
|
|
12183
|
-
|
|
12184
|
-
|
|
12185
|
-
|
|
12186
|
-
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12191
|
-
|
|
12192
|
-
|
|
12193
|
-
})
|
|
12194
|
-
variant: "body2",
|
|
12195
|
-
className: classes.listItemText
|
|
12196
|
-
}, text), hovering ? /*#__PURE__*/React__namespace.createElement(material.ListItemSecondaryAction, null, /*#__PURE__*/React__namespace.createElement(material.IconButton, {
|
|
12197
|
-
style: {
|
|
12198
|
-
backgroundColor: 'transparent'
|
|
12199
|
-
},
|
|
12200
|
-
edge: "end",
|
|
12201
|
-
size: "small",
|
|
12202
|
-
onClick: function onClick() {
|
|
12203
|
-
return selectOnlyOne(index);
|
|
12204
|
-
},
|
|
12205
|
-
"data-testid": "onlyButton"
|
|
12206
|
-
}, /*#__PURE__*/React__namespace.createElement(material.Typography, {
|
|
12207
|
-
className: classes.onlyByttonText
|
|
12208
|
-
}, "ONLY"))) : null));
|
|
12737
|
+
var KeywordFilterSelectAllSwitchConnect = function KeywordFilterSelectAllSwitchConnect() {
|
|
12738
|
+
var dispatch = reactRedux.useDispatch();
|
|
12739
|
+
var allKeywordsActive = reactRedux.useSelector(function (store) {
|
|
12740
|
+
return isAllKeywordsChecked(store);
|
|
12741
|
+
});
|
|
12742
|
+
var allKeywordIds = reactRedux.useSelector(function (store) {
|
|
12743
|
+
return getAllKeywordIds(store);
|
|
12744
|
+
});
|
|
12745
|
+
var checkedKeywordIds = reactRedux.useSelector(function (store) {
|
|
12746
|
+
return getCheckedKeywordIds(store);
|
|
12747
|
+
});
|
|
12748
|
+
var toggleKeywords$1 = React__namespace.useCallback(function () {
|
|
12749
|
+
var keywords = allKeywordsActive ? checkedKeywordIds : allKeywordIds.filter(function (id) {
|
|
12750
|
+
return !checkedKeywordIds.includes(id);
|
|
12751
|
+
});
|
|
12752
|
+
dispatch(toggleKeywords({
|
|
12753
|
+
keywords: keywords
|
|
12754
|
+
}));
|
|
12755
|
+
}, [allKeywordIds, allKeywordsActive, checkedKeywordIds, dispatch]);
|
|
12756
|
+
return /*#__PURE__*/React__namespace.createElement(CustomSwitch, {
|
|
12757
|
+
checked: allKeywordsActive,
|
|
12758
|
+
onChange: toggleKeywords$1,
|
|
12759
|
+
"data-testid": "customSwitch"
|
|
12760
|
+
});
|
|
12209
12761
|
};
|
|
12210
12762
|
|
|
12211
12763
|
/* *
|
|
@@ -12243,7 +12795,7 @@
|
|
|
12243
12795
|
});
|
|
12244
12796
|
|
|
12245
12797
|
var KeywordFilterResults = function KeywordFilterResults(_a) {
|
|
12246
|
-
var
|
|
12798
|
+
var allKeywordIds = _a.allKeywordIds,
|
|
12247
12799
|
mapId = _a.mapId,
|
|
12248
12800
|
bounds = _a.bounds,
|
|
12249
12801
|
_b = _a.onClose,
|
|
@@ -12255,52 +12807,8 @@
|
|
|
12255
12807
|
_d = _a.order,
|
|
12256
12808
|
order = _d === void 0 ? 0 : _d,
|
|
12257
12809
|
_e = _a.source,
|
|
12258
|
-
source = _e === void 0 ? 'module' : _e
|
|
12259
|
-
updateKeywords = _a.updateKeywords;
|
|
12810
|
+
source = _e === void 0 ? 'module' : _e;
|
|
12260
12811
|
var classes = useStyles$j();
|
|
12261
|
-
|
|
12262
|
-
var _f = __read(React__namespace.useState(true), 2),
|
|
12263
|
-
allSelected = _f[0],
|
|
12264
|
-
setAllSelected = _f[1];
|
|
12265
|
-
|
|
12266
|
-
var toggleSelectAll = function toggleSelectAll() {
|
|
12267
|
-
var editedKeywords = keywordObjects.map(function (object) {
|
|
12268
|
-
return __assign(__assign({}, object), {
|
|
12269
|
-
checked: !allSelected
|
|
12270
|
-
});
|
|
12271
|
-
});
|
|
12272
|
-
setAllSelected(!allSelected);
|
|
12273
|
-
updateKeywords(editedKeywords);
|
|
12274
|
-
};
|
|
12275
|
-
|
|
12276
|
-
var toggleCheckbox = function toggleCheckbox(listIndex) {
|
|
12277
|
-
var editedKeywords = keywordObjects.map(function (object, index) {
|
|
12278
|
-
return listIndex === index ? __assign(__assign({}, object), {
|
|
12279
|
-
checked: !object.checked
|
|
12280
|
-
}) : object;
|
|
12281
|
-
});
|
|
12282
|
-
updateKeywords(editedKeywords);
|
|
12283
|
-
};
|
|
12284
|
-
|
|
12285
|
-
var selectOnlyOne = function selectOnlyOne(listIndex) {
|
|
12286
|
-
var editedKeywords = keywordObjects.map(function (object, index) {
|
|
12287
|
-
return listIndex === index ? __assign(__assign({}, object), {
|
|
12288
|
-
checked: true
|
|
12289
|
-
}) : __assign(__assign({}, object), {
|
|
12290
|
-
checked: false
|
|
12291
|
-
});
|
|
12292
|
-
});
|
|
12293
|
-
updateKeywords(editedKeywords);
|
|
12294
|
-
}; // If even one checkbox is unchecked, switch toggleAll off
|
|
12295
|
-
// If all checkboxes becomes checked, switch toggleAll on
|
|
12296
|
-
|
|
12297
|
-
|
|
12298
|
-
React__namespace.useEffect(function () {
|
|
12299
|
-
var checked = keywordObjects.every(function (object) {
|
|
12300
|
-
return object.checked === true;
|
|
12301
|
-
});
|
|
12302
|
-
setAllSelected(checked);
|
|
12303
|
-
}, [keywordObjects]);
|
|
12304
12812
|
return /*#__PURE__*/React__namespace.createElement(shared.ToolContainerDraggable, {
|
|
12305
12813
|
title: showTitle ? "Filter Results " + mapId : 'Filter Results',
|
|
12306
12814
|
"data-testid": "keywordFilterResults",
|
|
@@ -12338,27 +12846,15 @@
|
|
|
12338
12846
|
justifyContent: "flex-end",
|
|
12339
12847
|
alignContent: "center",
|
|
12340
12848
|
className: classes["switch"]
|
|
12341
|
-
}, /*#__PURE__*/React__namespace.createElement(
|
|
12342
|
-
checked: allSelected,
|
|
12343
|
-
onChange: toggleSelectAll,
|
|
12344
|
-
"data-testid": "customSwitch"
|
|
12345
|
-
}))), /*#__PURE__*/React__namespace.createElement(material.List, {
|
|
12849
|
+
}, /*#__PURE__*/React__namespace.createElement(KeywordFilterSelectAllSwitchConnect, null))), /*#__PURE__*/React__namespace.createElement(material.List, {
|
|
12346
12850
|
dense: true,
|
|
12347
12851
|
style: {
|
|
12348
12852
|
padding: '0px'
|
|
12349
12853
|
}
|
|
12350
|
-
},
|
|
12351
|
-
|
|
12352
|
-
|
|
12353
|
-
|
|
12354
|
-
if (amountVisible === 0) return null;
|
|
12355
|
-
return /*#__PURE__*/React__namespace.createElement(FilterListItem, {
|
|
12356
|
-
key: id + "-" + index,
|
|
12357
|
-
index: index,
|
|
12358
|
-
text: id,
|
|
12359
|
-
checked: checked,
|
|
12360
|
-
toggleCheckbox: toggleCheckbox,
|
|
12361
|
-
selectOnlyOne: selectOnlyOne
|
|
12854
|
+
}, allKeywordIds.map(function (keywordId) {
|
|
12855
|
+
return /*#__PURE__*/React__namespace.createElement(KeywordFilterResultsListItemConnect, {
|
|
12856
|
+
key: keywordId,
|
|
12857
|
+
keyword: keywordId
|
|
12362
12858
|
});
|
|
12363
12859
|
})));
|
|
12364
12860
|
};
|
|
@@ -12408,12 +12904,7 @@
|
|
|
12408
12904
|
});
|
|
12409
12905
|
var uiIsOrderedOnTop = reactRedux.useSelector(function (store) {
|
|
12410
12906
|
return getDialogIsOrderedOnTop(store, 'keywordFilter');
|
|
12411
|
-
});
|
|
12412
|
-
var updateKeywords$1 = React__namespace.useCallback(function (keywords) {
|
|
12413
|
-
dispatch(updateKeywords({
|
|
12414
|
-
keywords: keywords
|
|
12415
|
-
}));
|
|
12416
|
-
}, [dispatch]); // Check to ensure the currently active map is still present on screen - if not, close the dialog
|
|
12907
|
+
}); // Check to ensure the currently active map is still present on screen - if not, close the dialog
|
|
12417
12908
|
|
|
12418
12909
|
React__namespace.useEffect(function () {
|
|
12419
12910
|
if (mapId !== '' && !isMapPresent) {
|
|
@@ -12445,11 +12936,11 @@
|
|
|
12445
12936
|
unregisterDialog$1();
|
|
12446
12937
|
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12447
12938
|
}, []);
|
|
12448
|
-
var
|
|
12449
|
-
return
|
|
12939
|
+
var allKeywordIds = reactRedux.useSelector(function (store) {
|
|
12940
|
+
return getAllKeywordIds(store);
|
|
12450
12941
|
});
|
|
12451
12942
|
return /*#__PURE__*/React__namespace.createElement(KeywordFilterResults, {
|
|
12452
|
-
|
|
12943
|
+
allKeywordIds: allKeywordIds,
|
|
12453
12944
|
mapId: mapId,
|
|
12454
12945
|
bounds: bounds,
|
|
12455
12946
|
isOpen: isOpenInStore,
|
|
@@ -12457,8 +12948,7 @@
|
|
|
12457
12948
|
showTitle: showTitle,
|
|
12458
12949
|
onMouseDown: onOrderDialog,
|
|
12459
12950
|
order: uiOrder,
|
|
12460
|
-
source: uiSource
|
|
12461
|
-
updateKeywords: updateKeywords$1
|
|
12951
|
+
source: uiSource
|
|
12462
12952
|
});
|
|
12463
12953
|
};
|
|
12464
12954
|
|
|
@@ -12708,7 +13198,6 @@
|
|
|
12708
13198
|
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12709
13199
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
12710
13200
|
* */
|
|
12711
|
-
var width = 24;
|
|
12712
13201
|
|
|
12713
13202
|
var MapControlButton = function MapControlButton(_a) {
|
|
12714
13203
|
var onClick = _a.onClick,
|
|
@@ -12720,14 +13209,10 @@
|
|
|
12720
13209
|
isActive = _c === void 0 ? false : _c,
|
|
12721
13210
|
props = __rest(_a, ["onClick", "children", "title", "placement", "isActive"]);
|
|
12722
13211
|
|
|
12723
|
-
|
|
12724
|
-
width: width
|
|
12725
|
-
});
|
|
12726
|
-
return /*#__PURE__*/React__namespace.createElement(ToggleIconButton, __assign({
|
|
13212
|
+
return /*#__PURE__*/React__namespace.createElement(ToolButton, __assign({
|
|
12727
13213
|
onClick: onClick,
|
|
12728
13214
|
active: isActive
|
|
12729
13215
|
}, props), /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
12730
|
-
className: classes.button,
|
|
12731
13216
|
placement: placement,
|
|
12732
13217
|
title: title
|
|
12733
13218
|
}, children));
|
|
@@ -13635,7 +14120,7 @@
|
|
|
13635
14120
|
title: autoUpdateButton.title
|
|
13636
14121
|
}, /*#__PURE__*/React__namespace.createElement("span", {
|
|
13637
14122
|
"data-testid": "autoUpdateButtonTooltip"
|
|
13638
|
-
}, /*#__PURE__*/React__namespace.createElement(
|
|
14123
|
+
}, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
13639
14124
|
active: isAutoUpdating,
|
|
13640
14125
|
disabled: disabled,
|
|
13641
14126
|
onClick: function onClick() {
|
|
@@ -13699,7 +14184,7 @@
|
|
|
13699
14184
|
var loopButtonPath = isLooping ? svgLoopOffPath : svgLoopPath;
|
|
13700
14185
|
return /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
13701
14186
|
title: loopButtonPath.title
|
|
13702
|
-
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(
|
|
14187
|
+
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
13703
14188
|
onClick: function onClick() {
|
|
13704
14189
|
return onToggleLoop();
|
|
13705
14190
|
},
|
|
@@ -13811,7 +14296,7 @@
|
|
|
13811
14296
|
className: classes.speedButtonDiv
|
|
13812
14297
|
}, /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
13813
14298
|
title: "Speed"
|
|
13814
|
-
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(
|
|
14299
|
+
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
13815
14300
|
onClick: onClickButton,
|
|
13816
14301
|
active: true,
|
|
13817
14302
|
"data-testid": "speedButton"
|
|
@@ -14103,11 +14588,11 @@
|
|
|
14103
14588
|
className: classes.timeStepDiv
|
|
14104
14589
|
}, /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
14105
14590
|
title: "Time step"
|
|
14106
|
-
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(
|
|
14591
|
+
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
14107
14592
|
active: true,
|
|
14108
14593
|
onClick: onClickButton,
|
|
14109
14594
|
"data-testid": "timeStepButton",
|
|
14110
|
-
width:
|
|
14595
|
+
width: "58px"
|
|
14111
14596
|
}, /*#__PURE__*/React__namespace.createElement(material.SvgIcon, null, /*#__PURE__*/React__namespace.createElement("path", {
|
|
14112
14597
|
id: "lvnl598lea",
|
|
14113
14598
|
d: "M12.1 5.86c.247 0 .5.089.745.267l6.008 4.316c.368.265.58.65.58 1.057 0 .408-.211.793-.581 1.058l-6.005 4.316c-.248.177-.5.267-.747.267-.466 0-.967-.36-.967-1.147v-3.016l-5.419 3.896c-.207.148-.417.234-.624.26l-.124.007c-.465 0-.966-.36-.966-1.147V7.006c0-.787.5-1.147.966-1.147.247 0 .5.09.746.268l5.421 3.894V7.006c0-.735.436-1.097.873-1.142z"
|
|
@@ -14209,7 +14694,7 @@
|
|
|
14209
14694
|
var id = open ? 'simple-popover' : undefined;
|
|
14210
14695
|
return /*#__PURE__*/React__namespace.createElement("div", null, /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
14211
14696
|
title: "Options"
|
|
14212
|
-
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(
|
|
14697
|
+
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
14213
14698
|
onClick: onClickButton,
|
|
14214
14699
|
"data-testid": "optionsMenuButton",
|
|
14215
14700
|
active: open
|
|
@@ -14298,7 +14783,7 @@
|
|
|
14298
14783
|
var playButtonPath = isAnimating ? pausePath : playPath;
|
|
14299
14784
|
return /*#__PURE__*/React__namespace.createElement(material.Tooltip, {
|
|
14300
14785
|
title: playButtonPath.title
|
|
14301
|
-
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(
|
|
14786
|
+
}, /*#__PURE__*/React__namespace.createElement("span", null, /*#__PURE__*/React__namespace.createElement(ToolButton, {
|
|
14302
14787
|
onClick: onTogglePlay,
|
|
14303
14788
|
disabled: isDisabled,
|
|
14304
14789
|
"data-testid": "playButton",
|
|
@@ -17147,17 +17632,232 @@
|
|
|
17147
17632
|
selectedTime: selectedTime
|
|
17148
17633
|
});
|
|
17149
17634
|
};
|
|
17150
|
-
/**
|
|
17151
|
-
* TimeSliderScaleSlider component connected to the store displaying a scale slider of the time slider
|
|
17152
|
-
*
|
|
17153
|
-
* Expects the following props:
|
|
17154
|
-
* @param {string} mapId mapId: string - Id of the map
|
|
17155
|
-
* @example
|
|
17156
|
-
* ``` <TimeSliderScaleSliderConnect mapId={mapId} />```
|
|
17157
|
-
*/
|
|
17158
|
-
|
|
17635
|
+
/**
|
|
17636
|
+
* TimeSliderScaleSlider component connected to the store displaying a scale slider of the time slider
|
|
17637
|
+
*
|
|
17638
|
+
* Expects the following props:
|
|
17639
|
+
* @param {string} mapId mapId: string - Id of the map
|
|
17640
|
+
* @example
|
|
17641
|
+
* ``` <TimeSliderScaleSliderConnect mapId={mapId} />```
|
|
17642
|
+
*/
|
|
17643
|
+
|
|
17644
|
+
|
|
17645
|
+
var TimeSliderScaleSliderConnect = connectReduxTimeSliderScaleSlider(TimeSliderScaleSliderComponent);
|
|
17646
|
+
|
|
17647
|
+
/* *
|
|
17648
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17649
|
+
* you may not use this file except in compliance with the License.
|
|
17650
|
+
* You may obtain a copy of the License at
|
|
17651
|
+
*
|
|
17652
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17653
|
+
*
|
|
17654
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17655
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17656
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17657
|
+
* See the License for the specific language governing permissions and
|
|
17658
|
+
* limitations under the License.
|
|
17659
|
+
*
|
|
17660
|
+
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
17661
|
+
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
17662
|
+
* */
|
|
17663
|
+
var connectRedux = reactRedux.connect(function (store, props) {
|
|
17664
|
+
return {
|
|
17665
|
+
isTimeSliderHoverOn: isTimeSliderHoverOn(store, props.mapId)
|
|
17666
|
+
};
|
|
17667
|
+
}, {
|
|
17668
|
+
toggleTimeSliderHover: toggleTimeSliderHover
|
|
17669
|
+
});
|
|
17670
|
+
|
|
17671
|
+
var ConnectedTimeSlider = function ConnectedTimeSlider(_a) {
|
|
17672
|
+
var sourceId = _a.sourceId,
|
|
17673
|
+
mapId = _a.mapId,
|
|
17674
|
+
isTimeSliderHoverOn = _a.isTimeSliderHoverOn,
|
|
17675
|
+
toggleTimeSliderHover = _a.toggleTimeSliderHover;
|
|
17676
|
+
React__namespace.useEffect(function () {
|
|
17677
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
17678
|
+
if (event.ctrlKey && event.altKey && event.key === 'h') {
|
|
17679
|
+
toggleTimeSliderHover({
|
|
17680
|
+
mapId: mapId,
|
|
17681
|
+
isTimeSliderHoverOn: !isTimeSliderHoverOn
|
|
17682
|
+
});
|
|
17683
|
+
}
|
|
17684
|
+
};
|
|
17685
|
+
|
|
17686
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
17687
|
+
return function () {
|
|
17688
|
+
document.removeEventListener('keydown', handleKeyDown);
|
|
17689
|
+
};
|
|
17690
|
+
}, [mapId, isTimeSliderHoverOn, toggleTimeSliderHover]);
|
|
17691
|
+
return /*#__PURE__*/React__namespace.createElement(TimeSlider, {
|
|
17692
|
+
buttons: /*#__PURE__*/React__namespace.createElement(TimeSliderButtonsConnect, {
|
|
17693
|
+
mapId: mapId
|
|
17694
|
+
}),
|
|
17695
|
+
rail: /*#__PURE__*/React__namespace.createElement(TimeSliderRailConnect, {
|
|
17696
|
+
mapId: mapId,
|
|
17697
|
+
sourceId: sourceId
|
|
17698
|
+
}),
|
|
17699
|
+
scaleSlider: /*#__PURE__*/React__namespace.createElement(TimeSliderScaleSliderConnect, {
|
|
17700
|
+
mapId: mapId
|
|
17701
|
+
}),
|
|
17702
|
+
legend: /*#__PURE__*/React__namespace.createElement(TimeSliderLegendConnect$1, {
|
|
17703
|
+
mapId: mapId,
|
|
17704
|
+
sourceId: sourceId
|
|
17705
|
+
})
|
|
17706
|
+
});
|
|
17707
|
+
};
|
|
17708
|
+
/**
|
|
17709
|
+
* TimeSlider component with components connected to the store displaying the time slider
|
|
17710
|
+
*
|
|
17711
|
+
* Expects the following props:
|
|
17712
|
+
* @param {string} mapId mapId: string - Id of the map
|
|
17713
|
+
* @param {string} sourceId sourceId: string - Source Id of the timeslider
|
|
17714
|
+
* @example
|
|
17715
|
+
* ``` <TimeSliderConnect sourceId="timeslider-1" mapId={mapId} />```
|
|
17716
|
+
*/
|
|
17717
|
+
|
|
17718
|
+
|
|
17719
|
+
var TimeSliderConnect = connectRedux(ConnectedTimeSlider);
|
|
17720
|
+
|
|
17721
|
+
/* *
|
|
17722
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
17723
|
+
* you may not use this file except in compliance with the License.
|
|
17724
|
+
* You may obtain a copy of the License at
|
|
17725
|
+
*
|
|
17726
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17727
|
+
*
|
|
17728
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17729
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17730
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
17731
|
+
* See the License for the specific language governing permissions and
|
|
17732
|
+
* limitations under the License.
|
|
17733
|
+
*
|
|
17734
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
17735
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
17736
|
+
* */
|
|
17737
|
+
var DWD = {
|
|
17738
|
+
name: 'DWD',
|
|
17739
|
+
url: 'https://maps.dwd.de/geoserver/ows?',
|
|
17740
|
+
id: 'dwd'
|
|
17741
|
+
};
|
|
17742
|
+
var nationaalgeoregister = {
|
|
17743
|
+
name: 'nationaalgeoregister.nl',
|
|
17744
|
+
url: 'https://geodata.nationaalgeoregister.nl/cbsgebiedsindelingen/wms?request=GetCapabilities&service=wms',
|
|
17745
|
+
id: 'nationaalgeoregister'
|
|
17746
|
+
};
|
|
17747
|
+
var KNMImsgcpp = {
|
|
17748
|
+
name: 'KNMImsgcpp',
|
|
17749
|
+
url: 'https://adaguc-server-msg-cpp-portal.pmc.knmi.cloud/wms?DATASET=msgrt&',
|
|
17750
|
+
id: 'msgcpp-ogc-realtime'
|
|
17751
|
+
};
|
|
17752
|
+
var HeiGit = {
|
|
17753
|
+
name: 'HeiGit',
|
|
17754
|
+
url: 'https://maps.heigit.org/osm-wms/service',
|
|
17755
|
+
id: 'HeiGit-osm-wms'
|
|
17756
|
+
};
|
|
17757
|
+
var ArcGisCanvas = {
|
|
17758
|
+
name: 'ArcGisCanvas',
|
|
17759
|
+
url: 'https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/',
|
|
17760
|
+
id: 'ArcGisCanvas'
|
|
17761
|
+
};
|
|
17762
|
+
var KNMIgeoservicesBaselayers = {
|
|
17763
|
+
name: 'KNMIgeoservicesBaselayers',
|
|
17764
|
+
url: 'https://geoservices.knmi.nl/wms?DATASET=baselayers&',
|
|
17765
|
+
id: 'KNMIgeoservicesBaselayers'
|
|
17766
|
+
};
|
|
17767
|
+
var KNMIgeoservicesRadar = {
|
|
17768
|
+
name: 'KNMIgeoservicesRadar',
|
|
17769
|
+
url: 'https://geoservices.knmi.nl/wms?dataset=RADAR&',
|
|
17770
|
+
id: 'KNMIgeoservicesRadar'
|
|
17771
|
+
};
|
|
17772
|
+
var KNMIgeoservicesObs = {
|
|
17773
|
+
name: 'KNMIgeoservicesObs',
|
|
17774
|
+
url: 'https://geoservices.knmi.nl/adagucserver?dataset=OBS&service=WMS&',
|
|
17775
|
+
id: 'KNMIgeoservicesObs'
|
|
17776
|
+
};
|
|
17777
|
+
var KNMIgeoservicesKlimaatAtlas = {
|
|
17778
|
+
name: 'KNMIgeoservicesKlimaatAtlas',
|
|
17779
|
+
url: 'https://geoservices.knmi.nl/wms?DATASET=gsie-dataset&SERVICE=WMS&',
|
|
17780
|
+
id: 'KNMIgeoservicesKlimaatAtlas'
|
|
17781
|
+
};
|
|
17782
|
+
var KNMIgeoservicesHarmonie = {
|
|
17783
|
+
name: 'KNMIgeoservicesHarmonie',
|
|
17784
|
+
url: 'https://geoservices.knmi.nl/wms?DATASET=HARM_N25&',
|
|
17785
|
+
id: 'KNMIgeoservicesKliKNMIgeoservicesHarmoniemaatAtlas'
|
|
17786
|
+
};
|
|
17787
|
+
var KNMIgeoservicesHarmonieMLService = {
|
|
17788
|
+
name: 'KNMI Harmonie ML',
|
|
17789
|
+
url: 'https://geoservices.knmi.nl/wms?DATASET=HARM_N25_ML&SERVICE=WMS&',
|
|
17790
|
+
id: 'harmonieML'
|
|
17791
|
+
};
|
|
17792
|
+
var MetNorwayService = {
|
|
17793
|
+
name: 'MetNorwayService',
|
|
17794
|
+
url: 'https://wms-e1.geoweb.met.no/wms?',
|
|
17795
|
+
id: 'MetNorwayService'
|
|
17796
|
+
};
|
|
17797
|
+
var FMIopenwms = {
|
|
17798
|
+
name: 'FMIopenwms',
|
|
17799
|
+
url: 'https://openwms.fmi.fi/geoserver/wms?',
|
|
17800
|
+
id: 'FMIopenwms'
|
|
17801
|
+
};
|
|
17802
|
+
var DWDObservations = {
|
|
17803
|
+
name: 'DWDObservations',
|
|
17804
|
+
url: 'https://maps.dwd.de/geoserver/dwd/Wetter_Beobachtungen/ows?',
|
|
17805
|
+
id: 'DWDObservations'
|
|
17806
|
+
};
|
|
17807
|
+
var DWDWarnings = {
|
|
17808
|
+
name: 'DWDWarnings',
|
|
17809
|
+
url: 'https://maps.dwd.de/geoserver/dwd/Warnungen_Gemeinden_vereinigt/ows?',
|
|
17810
|
+
id: 'DWDWarnings'
|
|
17811
|
+
};
|
|
17812
|
+
var DWDWXProdukt = {
|
|
17813
|
+
name: 'DWDWXProdukt',
|
|
17814
|
+
url: 'https://maps.dwd.de/geoserver/dwd/WX-Produkt/ows?',
|
|
17815
|
+
id: 'DWDWXProdukt'
|
|
17816
|
+
};
|
|
17817
|
+
var EUMETSAT = {
|
|
17818
|
+
name: 'EUMETSAT',
|
|
17819
|
+
url: 'https://view.eumetsat.int/geoserver/wms?',
|
|
17820
|
+
id: 'EUMETSAT'
|
|
17821
|
+
};
|
|
17822
|
+
var eumetviewEUMETSAT = {
|
|
17823
|
+
name: 'eumetviewEUMETSAT',
|
|
17824
|
+
url: 'https://eumetview.eumetsat.int/geoserv/wms?',
|
|
17825
|
+
id: 'eumetviewEUMETSAT'
|
|
17826
|
+
};
|
|
17827
|
+
var ECMWFPublicService = {
|
|
17828
|
+
name: 'ECMWF',
|
|
17829
|
+
url: 'https://apps.ecmwf.int/wms/?token=public',
|
|
17830
|
+
id: 'ecmwf'
|
|
17831
|
+
};
|
|
17832
|
+
var MeteoCanada = {
|
|
17833
|
+
name: 'Meteo Canada',
|
|
17834
|
+
url: 'https://geo.weather.gc.ca/geomet/?lang=en&',
|
|
17835
|
+
id: 'MeteoCanada'
|
|
17836
|
+
};
|
|
17159
17837
|
|
|
17160
|
-
var
|
|
17838
|
+
var publicServices = /*#__PURE__*/Object.freeze({
|
|
17839
|
+
__proto__: null,
|
|
17840
|
+
DWD: DWD,
|
|
17841
|
+
nationaalgeoregister: nationaalgeoregister,
|
|
17842
|
+
KNMImsgcpp: KNMImsgcpp,
|
|
17843
|
+
HeiGit: HeiGit,
|
|
17844
|
+
ArcGisCanvas: ArcGisCanvas,
|
|
17845
|
+
KNMIgeoservicesBaselayers: KNMIgeoservicesBaselayers,
|
|
17846
|
+
KNMIgeoservicesRadar: KNMIgeoservicesRadar,
|
|
17847
|
+
KNMIgeoservicesObs: KNMIgeoservicesObs,
|
|
17848
|
+
KNMIgeoservicesKlimaatAtlas: KNMIgeoservicesKlimaatAtlas,
|
|
17849
|
+
KNMIgeoservicesHarmonie: KNMIgeoservicesHarmonie,
|
|
17850
|
+
KNMIgeoservicesHarmonieMLService: KNMIgeoservicesHarmonieMLService,
|
|
17851
|
+
MetNorwayService: MetNorwayService,
|
|
17852
|
+
FMIopenwms: FMIopenwms,
|
|
17853
|
+
DWDObservations: DWDObservations,
|
|
17854
|
+
DWDWarnings: DWDWarnings,
|
|
17855
|
+
DWDWXProdukt: DWDWXProdukt,
|
|
17856
|
+
EUMETSAT: EUMETSAT,
|
|
17857
|
+
eumetviewEUMETSAT: eumetviewEUMETSAT,
|
|
17858
|
+
ECMWFPublicService: ECMWFPublicService,
|
|
17859
|
+
MeteoCanada: MeteoCanada
|
|
17860
|
+
});
|
|
17161
17861
|
|
|
17162
17862
|
/* *
|
|
17163
17863
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17172,66 +17872,390 @@
|
|
|
17172
17872
|
* See the License for the specific language governing permissions and
|
|
17173
17873
|
* limitations under the License.
|
|
17174
17874
|
*
|
|
17175
|
-
* Copyright
|
|
17176
|
-
* Copyright
|
|
17875
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
17876
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
17177
17877
|
* */
|
|
17178
|
-
var
|
|
17179
|
-
|
|
17180
|
-
|
|
17181
|
-
|
|
17182
|
-
|
|
17183
|
-
|
|
17184
|
-
|
|
17878
|
+
var baseLayer$1 = {
|
|
17879
|
+
name: 'arcGisSat',
|
|
17880
|
+
title: 'arcGisSat',
|
|
17881
|
+
type: 'twms',
|
|
17882
|
+
layerType: LayerType.baseLayer,
|
|
17883
|
+
enabled: true,
|
|
17884
|
+
id: generateLayerId()
|
|
17885
|
+
}; // Base Layers List
|
|
17886
|
+
|
|
17887
|
+
var baseLayerGrey$1 = {
|
|
17888
|
+
id: generateLayerId(),
|
|
17889
|
+
name: 'WorldMap_Light_Grey_Canvas',
|
|
17890
|
+
type: 'twms',
|
|
17891
|
+
layerType: LayerType.baseLayer
|
|
17892
|
+
};
|
|
17893
|
+
var baseLayerOpenStreetMapNL$1 = {
|
|
17894
|
+
id: 'base-layer-2',
|
|
17895
|
+
name: 'OpenStreetMap_NL',
|
|
17896
|
+
type: 'twms',
|
|
17897
|
+
layerType: LayerType.baseLayer,
|
|
17898
|
+
enabled: true
|
|
17899
|
+
};
|
|
17900
|
+
var baseLayerArcGisCanvas$1 = {
|
|
17901
|
+
service: ArcGisCanvas.url,
|
|
17902
|
+
id: generateLayerId(),
|
|
17903
|
+
name: 'arcGisCanvas',
|
|
17904
|
+
type: 'twms',
|
|
17905
|
+
enabled: true,
|
|
17906
|
+
layerType: LayerType.baseLayer
|
|
17907
|
+
};
|
|
17908
|
+
var baseLayerWorldMap$1 = {
|
|
17909
|
+
id: generateLayerId(),
|
|
17910
|
+
name: 'WorldMap',
|
|
17911
|
+
type: 'twms',
|
|
17912
|
+
layerType: LayerType.baseLayer,
|
|
17913
|
+
enabled: true
|
|
17914
|
+
};
|
|
17915
|
+
var baseLayerHeiGit = {
|
|
17916
|
+
service: HeiGit.url,
|
|
17917
|
+
id: generateLayerId(),
|
|
17918
|
+
name: 'osm_auto:all',
|
|
17919
|
+
layerType: LayerType.baseLayer
|
|
17920
|
+
}; // Over Layers List
|
|
17921
|
+
|
|
17922
|
+
var overLayer$1 = {
|
|
17923
|
+
service: KNMIgeoservicesBaselayers.url,
|
|
17924
|
+
name: 'countryborders',
|
|
17925
|
+
format: 'image/png',
|
|
17926
|
+
enabled: true,
|
|
17927
|
+
id: generateLayerId(),
|
|
17928
|
+
layerType: LayerType.overLayer
|
|
17929
|
+
}; // KNMI msgcpp List
|
|
17930
|
+
|
|
17931
|
+
var msgCppLayer = {
|
|
17932
|
+
// doesn't work with https
|
|
17933
|
+
service: KNMImsgcpp.url,
|
|
17934
|
+
name: 'lwe_precipitation_rate',
|
|
17935
|
+
format: 'image/png',
|
|
17936
|
+
enabled: true,
|
|
17937
|
+
style: 'precip-transparent/nearest',
|
|
17938
|
+
id: generateLayerId(),
|
|
17939
|
+
layerType: LayerType.mapLayer
|
|
17940
|
+
}; // Nederlandse Nationaal Georegister Layers list
|
|
17941
|
+
|
|
17942
|
+
var veiligheidsRegiosGebiedsIndelingenLabels = {
|
|
17943
|
+
service: nationaalgeoregister.url,
|
|
17944
|
+
name: 'cbsgebiedsindelingen:cbs_veiligheidsregio_2020_labelpoint',
|
|
17945
|
+
style: 'CBS_Label',
|
|
17946
|
+
enabled: false,
|
|
17947
|
+
layerType: LayerType.mapLayer
|
|
17948
|
+
};
|
|
17949
|
+
var veiligheidsRegiosGebiedsIndelingen = {
|
|
17950
|
+
service: nationaalgeoregister.url,
|
|
17951
|
+
name: 'cbsgebiedsindelingen:cbs_veiligheidsregio_2020_gegeneraliseerd',
|
|
17952
|
+
style: 'CBS_Gebiedsindeling',
|
|
17953
|
+
enabled: false,
|
|
17954
|
+
layerType: LayerType.mapLayer
|
|
17955
|
+
}; // KNMI Geoservices Layers List
|
|
17956
|
+
|
|
17957
|
+
var radarLayer$1 = {
|
|
17958
|
+
service: KNMIgeoservicesRadar.url,
|
|
17959
|
+
name: 'RAD_NL25_PCP_CM',
|
|
17960
|
+
format: 'image/png',
|
|
17961
|
+
enabled: true,
|
|
17962
|
+
style: 'radar/nearest',
|
|
17963
|
+
id: generateLayerId(),
|
|
17964
|
+
layerType: LayerType.mapLayer
|
|
17965
|
+
};
|
|
17966
|
+
var radarLayerWithError = {
|
|
17967
|
+
service: KNMIgeoservicesRadar.url,
|
|
17968
|
+
name: 'radarLayer',
|
|
17969
|
+
format: 'image/png',
|
|
17970
|
+
enabled: true,
|
|
17971
|
+
style: 'knmiradar/nearest',
|
|
17972
|
+
id: generateLayerId(),
|
|
17973
|
+
layerType: LayerType.mapLayer
|
|
17974
|
+
};
|
|
17975
|
+
var obsAirTemperature = {
|
|
17976
|
+
service: KNMIgeoservicesObs.url,
|
|
17977
|
+
name: '10M/ta',
|
|
17978
|
+
id: generateLayerId(),
|
|
17979
|
+
layerType: LayerType.mapLayer
|
|
17980
|
+
};
|
|
17981
|
+
var obsWind = {
|
|
17982
|
+
service: KNMIgeoservicesObs.url,
|
|
17983
|
+
name: '10M/wind',
|
|
17984
|
+
id: generateLayerId(),
|
|
17985
|
+
layerType: LayerType.mapLayer
|
|
17986
|
+
};
|
|
17987
|
+
var obsAirPressureAtSeaLevel = {
|
|
17988
|
+
service: KNMIgeoservicesObs.url,
|
|
17989
|
+
name: '10M/pp',
|
|
17990
|
+
id: generateLayerId(),
|
|
17991
|
+
layerType: LayerType.mapLayer
|
|
17992
|
+
};
|
|
17993
|
+
var obsRelativeHumidity = {
|
|
17994
|
+
service: KNMIgeoservicesObs.url,
|
|
17995
|
+
name: '10M/rh',
|
|
17996
|
+
id: generateLayerId(),
|
|
17997
|
+
layerType: LayerType.mapLayer
|
|
17998
|
+
};
|
|
17999
|
+
var obsGlobalSolarRadiation = {
|
|
18000
|
+
service: KNMIgeoservicesObs.url,
|
|
18001
|
+
name: '10M/qg',
|
|
18002
|
+
id: generateLayerId(),
|
|
18003
|
+
layerType: LayerType.mapLayer
|
|
18004
|
+
};
|
|
18005
|
+
var obsPrecipitationIntensityPWS = {
|
|
18006
|
+
service: KNMIgeoservicesObs.url,
|
|
18007
|
+
name: '10M/pg',
|
|
18008
|
+
id: generateLayerId(),
|
|
18009
|
+
layerType: LayerType.mapLayer
|
|
18010
|
+
};
|
|
18011
|
+
var harmonieRelativeHumidityPl = {
|
|
18012
|
+
service: KNMIgeoservicesHarmonie.url,
|
|
18013
|
+
name: 'relative_humidity__at_pl',
|
|
18014
|
+
id: generateLayerId(),
|
|
18015
|
+
layerType: LayerType.mapLayer,
|
|
18016
|
+
enabled: true
|
|
18017
|
+
};
|
|
18018
|
+
var harmonieWindPl = {
|
|
18019
|
+
service: KNMIgeoservicesHarmonie.url,
|
|
18020
|
+
name: 'wind__at_pl',
|
|
18021
|
+
id: generateLayerId(),
|
|
18022
|
+
layerType: LayerType.mapLayer,
|
|
18023
|
+
enabled: true
|
|
18024
|
+
};
|
|
18025
|
+
var harmonieAirTemperature = {
|
|
18026
|
+
service: KNMIgeoservicesHarmonie.url,
|
|
18027
|
+
name: 'air_temperature__at_2m',
|
|
18028
|
+
id: generateLayerId(),
|
|
18029
|
+
layerType: LayerType.mapLayer,
|
|
18030
|
+
enabled: true
|
|
18031
|
+
};
|
|
18032
|
+
var harmoniePrecipitation = {
|
|
18033
|
+
service: KNMIgeoservicesHarmonie.url,
|
|
18034
|
+
name: 'precipitation_flux',
|
|
18035
|
+
id: generateLayerId(),
|
|
18036
|
+
layerType: LayerType.mapLayer,
|
|
18037
|
+
enabled: true
|
|
18038
|
+
};
|
|
18039
|
+
var harmoniePressure = {
|
|
18040
|
+
service: KNMIgeoservicesHarmonie.url,
|
|
18041
|
+
name: 'air_pressure_at_sea_level',
|
|
18042
|
+
id: generateLayerId(),
|
|
18043
|
+
layerType: LayerType.mapLayer,
|
|
18044
|
+
enabled: true
|
|
18045
|
+
};
|
|
18046
|
+
var harmonieWindFlags = {
|
|
18047
|
+
service: KNMIgeoservicesHarmonie.url,
|
|
18048
|
+
name: 'wind__at_10m',
|
|
18049
|
+
enabled: true,
|
|
18050
|
+
id: generateLayerId(),
|
|
18051
|
+
layerType: LayerType.mapLayer
|
|
18052
|
+
};
|
|
18053
|
+
var klimaatAtlasTG3 = {
|
|
18054
|
+
service: KNMIgeoservicesKlimaatAtlas.url,
|
|
18055
|
+
name: 'TG3',
|
|
18056
|
+
enabled: true,
|
|
18057
|
+
id: generateLayerId(),
|
|
18058
|
+
layerType: LayerType.mapLayer
|
|
18059
|
+
}; // DWD Layers List
|
|
18060
|
+
|
|
18061
|
+
var dwdWarningLayer = {
|
|
18062
|
+
service: DWDWarnings.url,
|
|
18063
|
+
name: 'Warnungen_Gemeinden_vereinigt',
|
|
18064
|
+
format: 'image/png',
|
|
18065
|
+
// style: 'warnungen_gemeinden_vereinigt_event_seamless_param',
|
|
18066
|
+
enabled: true,
|
|
18067
|
+
id: generateLayerId(),
|
|
18068
|
+
layerType: LayerType.mapLayer
|
|
18069
|
+
};
|
|
18070
|
+
var dwdRadarLayer = {
|
|
18071
|
+
service: DWDWXProdukt.url,
|
|
18072
|
+
name: 'WX-Produkt',
|
|
18073
|
+
format: 'image/png',
|
|
18074
|
+
enabled: true,
|
|
18075
|
+
id: generateLayerId(),
|
|
18076
|
+
layerType: LayerType.mapLayer
|
|
18077
|
+
}; // this needs authentication to work
|
|
17185
18078
|
|
|
17186
|
-
var
|
|
17187
|
-
|
|
17188
|
-
|
|
17189
|
-
|
|
17190
|
-
|
|
17191
|
-
|
|
17192
|
-
|
|
17193
|
-
|
|
17194
|
-
toggleTimeSliderHover({
|
|
17195
|
-
mapId: mapId,
|
|
17196
|
-
isTimeSliderHoverOn: !isTimeSliderHoverOn
|
|
17197
|
-
});
|
|
17198
|
-
}
|
|
17199
|
-
};
|
|
18079
|
+
var dwdObservationsWetterLayer = {
|
|
18080
|
+
service: DWDObservations.url,
|
|
18081
|
+
name: 'Wetter_Beobachtungen',
|
|
18082
|
+
style: 'Wetter_Symbole',
|
|
18083
|
+
format: 'image/png',
|
|
18084
|
+
enabled: true,
|
|
18085
|
+
id: generateLayerId(),
|
|
18086
|
+
layerType: LayerType.mapLayer // headers: [{ name: 'Authorization', value: 'Basic ...' }]
|
|
17200
18087
|
|
|
17201
|
-
document.addEventListener('keydown', handleKeyDown);
|
|
17202
|
-
return function () {
|
|
17203
|
-
document.removeEventListener('keydown', handleKeyDown);
|
|
17204
|
-
};
|
|
17205
|
-
}, [mapId, isTimeSliderHoverOn, toggleTimeSliderHover]);
|
|
17206
|
-
return /*#__PURE__*/React__namespace.createElement(TimeSlider, {
|
|
17207
|
-
buttons: /*#__PURE__*/React__namespace.createElement(TimeSliderButtonsConnect, {
|
|
17208
|
-
mapId: mapId
|
|
17209
|
-
}),
|
|
17210
|
-
rail: /*#__PURE__*/React__namespace.createElement(TimeSliderRailConnect, {
|
|
17211
|
-
mapId: mapId,
|
|
17212
|
-
sourceId: sourceId
|
|
17213
|
-
}),
|
|
17214
|
-
scaleSlider: /*#__PURE__*/React__namespace.createElement(TimeSliderScaleSliderConnect, {
|
|
17215
|
-
mapId: mapId
|
|
17216
|
-
}),
|
|
17217
|
-
legend: /*#__PURE__*/React__namespace.createElement(TimeSliderLegendConnect$1, {
|
|
17218
|
-
mapId: mapId,
|
|
17219
|
-
sourceId: sourceId
|
|
17220
|
-
})
|
|
17221
|
-
});
|
|
17222
18088
|
};
|
|
17223
|
-
|
|
17224
|
-
|
|
17225
|
-
|
|
17226
|
-
|
|
17227
|
-
|
|
17228
|
-
|
|
17229
|
-
|
|
17230
|
-
|
|
17231
|
-
|
|
18089
|
+
var dwdObservationsWetterLayerWithHeader = {
|
|
18090
|
+
service: DWDObservations.url,
|
|
18091
|
+
name: 'Wetter_Beobachtungen',
|
|
18092
|
+
style: 'Wetter_Symbole',
|
|
18093
|
+
format: 'image/png',
|
|
18094
|
+
enabled: true,
|
|
18095
|
+
id: generateLayerId(),
|
|
18096
|
+
layerType: LayerType.mapLayer,
|
|
18097
|
+
headers: [{
|
|
18098
|
+
name: 'authorization',
|
|
18099
|
+
value: 'Basic aW50cmFuZXQtdXNlcjpDQnMjMTEh'
|
|
18100
|
+
}]
|
|
18101
|
+
}; // this needs authentication to work
|
|
17232
18102
|
|
|
18103
|
+
var dwdObservationsWindLayer = {
|
|
18104
|
+
service: DWDObservations.url,
|
|
18105
|
+
name: 'Wetter_Beobachtungen',
|
|
18106
|
+
style: 'Wetter_Wind',
|
|
18107
|
+
format: 'image/png',
|
|
18108
|
+
enabled: true,
|
|
18109
|
+
id: generateLayerId(),
|
|
18110
|
+
layerType: LayerType.mapLayer
|
|
18111
|
+
}; // FMI open wms Layers List
|
|
17233
18112
|
|
|
17234
|
-
var
|
|
18113
|
+
var FMITemp = {
|
|
18114
|
+
service: FMIopenwms.url,
|
|
18115
|
+
name: 'temperature-forecast',
|
|
18116
|
+
format: 'image/png',
|
|
18117
|
+
enabled: true,
|
|
18118
|
+
id: generateLayerId(),
|
|
18119
|
+
layerType: LayerType.mapLayer
|
|
18120
|
+
}; // Met Norway Layers List
|
|
18121
|
+
|
|
18122
|
+
var MetNoTemp = {
|
|
18123
|
+
service: MetNorwayService.url,
|
|
18124
|
+
name: 'thredds_meps_latest_wind',
|
|
18125
|
+
format: 'image/png',
|
|
18126
|
+
enabled: true,
|
|
18127
|
+
id: generateLayerId(),
|
|
18128
|
+
layerType: LayerType.mapLayer
|
|
18129
|
+
};
|
|
18130
|
+
var metNorwayWind1 = {
|
|
18131
|
+
service: MetNorwayService.url,
|
|
18132
|
+
name: 'thredds_meps_latest_wind',
|
|
18133
|
+
format: 'image/png',
|
|
18134
|
+
enabled: true,
|
|
18135
|
+
id: generateLayerId(),
|
|
18136
|
+
layerType: LayerType.mapLayer
|
|
18137
|
+
};
|
|
18138
|
+
var metNorwayWind2 = {
|
|
18139
|
+
service: MetNorwayService.url,
|
|
18140
|
+
name: 'thredds_aromearctic_extracted_t',
|
|
18141
|
+
format: 'image/png',
|
|
18142
|
+
enabled: true,
|
|
18143
|
+
id: generateLayerId(),
|
|
18144
|
+
layerType: LayerType.mapLayer
|
|
18145
|
+
};
|
|
18146
|
+
var metNorwayWind3 = {
|
|
18147
|
+
service: MetNorwayService.url,
|
|
18148
|
+
name: 'thredds_nk800_temperature',
|
|
18149
|
+
format: 'image/png',
|
|
18150
|
+
enabled: true,
|
|
18151
|
+
id: generateLayerId(),
|
|
18152
|
+
layerType: LayerType.mapLayer
|
|
18153
|
+
};
|
|
18154
|
+
var metNorwayLatestT = {
|
|
18155
|
+
service: MetNorwayService.url,
|
|
18156
|
+
name: 'thredds_meps_latest_t',
|
|
18157
|
+
format: 'image/png',
|
|
18158
|
+
enabled: true,
|
|
18159
|
+
id: generateLayerId(),
|
|
18160
|
+
layerType: LayerType.mapLayer
|
|
18161
|
+
};
|
|
18162
|
+
var metNorwaySalinaty = {
|
|
18163
|
+
service: MetNorwayService.url,
|
|
18164
|
+
name: 'thredds_barents_2_5km_1h_salinity',
|
|
18165
|
+
format: 'image/png',
|
|
18166
|
+
enabled: true,
|
|
18167
|
+
id: generateLayerId(),
|
|
18168
|
+
layerType: LayerType.mapLayer
|
|
18169
|
+
};
|
|
18170
|
+
var msgFesEUMETSAT = {
|
|
18171
|
+
service: EUMETSAT.url,
|
|
18172
|
+
name: 'msg_fes:rgb_eview',
|
|
18173
|
+
enabled: true,
|
|
18174
|
+
id: generateLayerId(),
|
|
18175
|
+
layerType: LayerType.mapLayer
|
|
18176
|
+
};
|
|
18177
|
+
var msgNaturalenhncdEUMETSAT = {
|
|
18178
|
+
service: eumetviewEUMETSAT.url,
|
|
18179
|
+
name: 'meteosat:msg_naturalenhncd',
|
|
18180
|
+
enabled: true,
|
|
18181
|
+
id: generateLayerId(),
|
|
18182
|
+
layerType: LayerType.mapLayer
|
|
18183
|
+
};
|
|
18184
|
+
var msgAshEUMETSAT = {
|
|
18185
|
+
service: eumetviewEUMETSAT.url,
|
|
18186
|
+
name: 'meteosat:msg_ash',
|
|
18187
|
+
enabled: true,
|
|
18188
|
+
id: generateLayerId(),
|
|
18189
|
+
layerType: LayerType.mapLayer
|
|
18190
|
+
};
|
|
18191
|
+
var msgCthEUMETSAT = {
|
|
18192
|
+
service: eumetviewEUMETSAT.url,
|
|
18193
|
+
name: 'meteosat:msg_cth',
|
|
18194
|
+
enabled: true,
|
|
18195
|
+
id: generateLayerId(),
|
|
18196
|
+
layerType: LayerType.mapLayer
|
|
18197
|
+
};
|
|
18198
|
+
var msgFogEUMETSAT = {
|
|
18199
|
+
service: eumetviewEUMETSAT.url,
|
|
18200
|
+
name: 'meteosat:msg_fog',
|
|
18201
|
+
enabled: true,
|
|
18202
|
+
id: generateLayerId(),
|
|
18203
|
+
layerType: LayerType.mapLayer
|
|
18204
|
+
};
|
|
18205
|
+
var msgNaturalEUMETSAT = {
|
|
18206
|
+
service: eumetviewEUMETSAT.url,
|
|
18207
|
+
name: 'meteosat:msg_natural',
|
|
18208
|
+
enabled: true,
|
|
18209
|
+
id: generateLayerId(),
|
|
18210
|
+
layerType: LayerType.mapLayer
|
|
18211
|
+
};
|
|
18212
|
+
|
|
18213
|
+
var publicLayers = /*#__PURE__*/Object.freeze({
|
|
18214
|
+
__proto__: null,
|
|
18215
|
+
baseLayer: baseLayer$1,
|
|
18216
|
+
baseLayerGrey: baseLayerGrey$1,
|
|
18217
|
+
baseLayerOpenStreetMapNL: baseLayerOpenStreetMapNL$1,
|
|
18218
|
+
baseLayerArcGisCanvas: baseLayerArcGisCanvas$1,
|
|
18219
|
+
baseLayerWorldMap: baseLayerWorldMap$1,
|
|
18220
|
+
baseLayerHeiGit: baseLayerHeiGit,
|
|
18221
|
+
overLayer: overLayer$1,
|
|
18222
|
+
msgCppLayer: msgCppLayer,
|
|
18223
|
+
veiligheidsRegiosGebiedsIndelingenLabels: veiligheidsRegiosGebiedsIndelingenLabels,
|
|
18224
|
+
veiligheidsRegiosGebiedsIndelingen: veiligheidsRegiosGebiedsIndelingen,
|
|
18225
|
+
radarLayer: radarLayer$1,
|
|
18226
|
+
radarLayerWithError: radarLayerWithError,
|
|
18227
|
+
obsAirTemperature: obsAirTemperature,
|
|
18228
|
+
obsWind: obsWind,
|
|
18229
|
+
obsAirPressureAtSeaLevel: obsAirPressureAtSeaLevel,
|
|
18230
|
+
obsRelativeHumidity: obsRelativeHumidity,
|
|
18231
|
+
obsGlobalSolarRadiation: obsGlobalSolarRadiation,
|
|
18232
|
+
obsPrecipitationIntensityPWS: obsPrecipitationIntensityPWS,
|
|
18233
|
+
harmonieRelativeHumidityPl: harmonieRelativeHumidityPl,
|
|
18234
|
+
harmonieWindPl: harmonieWindPl,
|
|
18235
|
+
harmonieAirTemperature: harmonieAirTemperature,
|
|
18236
|
+
harmoniePrecipitation: harmoniePrecipitation,
|
|
18237
|
+
harmoniePressure: harmoniePressure,
|
|
18238
|
+
harmonieWindFlags: harmonieWindFlags,
|
|
18239
|
+
klimaatAtlasTG3: klimaatAtlasTG3,
|
|
18240
|
+
dwdWarningLayer: dwdWarningLayer,
|
|
18241
|
+
dwdRadarLayer: dwdRadarLayer,
|
|
18242
|
+
dwdObservationsWetterLayer: dwdObservationsWetterLayer,
|
|
18243
|
+
dwdObservationsWetterLayerWithHeader: dwdObservationsWetterLayerWithHeader,
|
|
18244
|
+
dwdObservationsWindLayer: dwdObservationsWindLayer,
|
|
18245
|
+
FMITemp: FMITemp,
|
|
18246
|
+
MetNoTemp: MetNoTemp,
|
|
18247
|
+
metNorwayWind1: metNorwayWind1,
|
|
18248
|
+
metNorwayWind2: metNorwayWind2,
|
|
18249
|
+
metNorwayWind3: metNorwayWind3,
|
|
18250
|
+
metNorwayLatestT: metNorwayLatestT,
|
|
18251
|
+
metNorwaySalinaty: metNorwaySalinaty,
|
|
18252
|
+
msgFesEUMETSAT: msgFesEUMETSAT,
|
|
18253
|
+
msgNaturalenhncdEUMETSAT: msgNaturalenhncdEUMETSAT,
|
|
18254
|
+
msgAshEUMETSAT: msgAshEUMETSAT,
|
|
18255
|
+
msgCthEUMETSAT: msgCthEUMETSAT,
|
|
18256
|
+
msgFogEUMETSAT: msgFogEUMETSAT,
|
|
18257
|
+
msgNaturalEUMETSAT: msgNaturalEUMETSAT
|
|
18258
|
+
});
|
|
17235
18259
|
|
|
17236
18260
|
/* *
|
|
17237
18261
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -21505,10 +22529,10 @@
|
|
|
21505
22529
|
var defaultBbox = {
|
|
21506
22530
|
srs: 'EPSG:3857',
|
|
21507
22531
|
bbox: {
|
|
21508
|
-
left:
|
|
21509
|
-
bottom:
|
|
21510
|
-
right:
|
|
21511
|
-
top:
|
|
22532
|
+
left: 58703.6377,
|
|
22533
|
+
bottom: 6408480.4514,
|
|
22534
|
+
right: 3967387.5161,
|
|
22535
|
+
top: 11520588.9031
|
|
21512
22536
|
}
|
|
21513
22537
|
};
|
|
21514
22538
|
var ConfigurableConnectedMap = function ConfigurableConnectedMap(_a) {
|
|
@@ -21600,6 +22624,14 @@
|
|
|
21600
22624
|
mapId: mapId,
|
|
21601
22625
|
animationDelay: getSpeedDelay(animationPayload.speed)
|
|
21602
22626
|
}));
|
|
22627
|
+
} // If animation interval set, set the timestep auto property to false
|
|
22628
|
+
|
|
22629
|
+
|
|
22630
|
+
if (animationPayload && animationPayload.interval) {
|
|
22631
|
+
dispatch(toggleTimestepAuto({
|
|
22632
|
+
mapId: mapId,
|
|
22633
|
+
timestepAuto: false
|
|
22634
|
+
}));
|
|
21603
22635
|
}
|
|
21604
22636
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
21605
22637
|
|
|
@@ -21662,93 +22694,35 @@
|
|
|
21662
22694
|
}
|
|
21663
22695
|
};
|
|
21664
22696
|
});
|
|
21665
|
-
|
|
21666
|
-
var makeIndexedMapId = function makeIndexedMapId(baseId, mapNo) {
|
|
21667
|
-
return baseId + "_" + mapNo;
|
|
21668
|
-
};
|
|
21669
|
-
|
|
21670
22697
|
var MultiMapViewConnect = function MultiMapViewConnect(_a) {
|
|
21671
22698
|
var maps = _a.maps,
|
|
21672
22699
|
rows = _a.rows,
|
|
21673
22700
|
cols = _a.cols,
|
|
21674
|
-
_b = _a.
|
|
21675
|
-
|
|
21676
|
-
_c = _a.
|
|
21677
|
-
|
|
21678
|
-
_d = _a.showTimeSlider,
|
|
21679
|
-
showTimeSlider = _d === void 0 ? true : _d,
|
|
21680
|
-
_e = _a.showZoomControls,
|
|
21681
|
-
showZoomControls = _e === void 0 ? true : _e;
|
|
21682
|
-
var id = React__default["default"].useRef(generateMapId()).current;
|
|
22701
|
+
_b = _a.showTimeSlider,
|
|
22702
|
+
showTimeSlider = _b === void 0 ? true : _b,
|
|
22703
|
+
_c = _a.showZoomControls,
|
|
22704
|
+
showZoomControls = _c === void 0 ? true : _c;
|
|
21683
22705
|
var classes = useStyles$3();
|
|
21684
22706
|
var dispatch = reactRedux.useDispatch();
|
|
21685
|
-
var syncGroupAddGroup$1 = React__default["default"].useCallback(function (payload) {
|
|
21686
|
-
return dispatch(syncGroupAddGroup(payload));
|
|
21687
|
-
}, [dispatch]);
|
|
21688
22707
|
var syncGroupAddTarget$1 = React__default["default"].useCallback(function (payload) {
|
|
21689
22708
|
return dispatch(syncGroupAddTarget(payload));
|
|
21690
22709
|
}, [dispatch]);
|
|
21691
22710
|
React__default["default"].useEffect(function () {
|
|
21692
|
-
|
|
21693
|
-
|
|
21694
|
-
groupId: "Time_" + id,
|
|
21695
|
-
title: "Time group for " + id,
|
|
21696
|
-
type: SYNCGROUPS_TYPE_SETTIME
|
|
21697
|
-
});
|
|
21698
|
-
syncGroupAddGroup$1({
|
|
21699
|
-
groupId: "Area_" + id,
|
|
21700
|
-
title: "Area group for " + id,
|
|
21701
|
-
type: SYNCGROUPS_TYPE_SETBBOX
|
|
21702
|
-
});
|
|
21703
|
-
/* Add this target to the group for area and time */
|
|
21704
|
-
|
|
21705
|
-
syncGroupAddTarget$1({
|
|
21706
|
-
groupId: "Time_" + id,
|
|
21707
|
-
targetId: id,
|
|
21708
|
-
linked: syncTime
|
|
21709
|
-
});
|
|
21710
|
-
syncGroupAddTarget$1({
|
|
21711
|
-
groupId: "Area_" + id,
|
|
21712
|
-
targetId: id,
|
|
21713
|
-
linked: syncArea
|
|
21714
|
-
});
|
|
21715
|
-
/* Also add all tiles to the syncgroup for area and time */
|
|
21716
|
-
|
|
21717
|
-
maps.forEach(function (map, mapIndex) {
|
|
21718
|
-
syncGroupAddTarget$1({
|
|
21719
|
-
groupId: "Time_" + id,
|
|
21720
|
-
targetId: makeIndexedMapId(id, mapIndex),
|
|
21721
|
-
linked: syncTime
|
|
21722
|
-
});
|
|
21723
|
-
syncGroupAddTarget$1({
|
|
21724
|
-
groupId: "Area_" + id,
|
|
21725
|
-
targetId: makeIndexedMapId(id, mapIndex),
|
|
21726
|
-
linked: syncArea
|
|
21727
|
-
});
|
|
21728
|
-
/* Layer sync groups */
|
|
21729
|
-
|
|
21730
|
-
var layerSyncGroup = map.layerSyncGroupId;
|
|
21731
|
-
|
|
21732
|
-
if (layerSyncGroup) {
|
|
21733
|
-
/* Always add the group, it does not harm if it is already defined previousely */
|
|
21734
|
-
syncGroupAddGroup$1({
|
|
21735
|
-
groupId: layerSyncGroup,
|
|
21736
|
-
title: "Layer group for " + id,
|
|
21737
|
-
type: SYNCGROUPS_TYPE_SETLAYERACTIONS
|
|
21738
|
-
});
|
|
22711
|
+
maps.forEach(function (map) {
|
|
22712
|
+
map.syncGroupsIds && map.syncGroupsIds.forEach(function (syncGroupsId) {
|
|
21739
22713
|
syncGroupAddTarget$1({
|
|
21740
|
-
groupId:
|
|
21741
|
-
targetId:
|
|
22714
|
+
groupId: syncGroupsId,
|
|
22715
|
+
targetId: map.id,
|
|
21742
22716
|
linked: true
|
|
21743
22717
|
});
|
|
21744
|
-
}
|
|
22718
|
+
});
|
|
21745
22719
|
});
|
|
21746
|
-
}, [
|
|
22720
|
+
}, [maps, syncGroupAddTarget$1]);
|
|
21747
22721
|
var mapStyle = {
|
|
21748
22722
|
width: Math.round(100 / cols) + "%",
|
|
21749
22723
|
height: Math.round(100 / rows) + "%"
|
|
21750
22724
|
};
|
|
21751
|
-
var firstMapId =
|
|
22725
|
+
var firstMapId = maps[0].id;
|
|
21752
22726
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
21753
22727
|
style: {
|
|
21754
22728
|
height: '100%',
|
|
@@ -21768,10 +22742,10 @@
|
|
|
21768
22742
|
width: '100%'
|
|
21769
22743
|
}
|
|
21770
22744
|
}, showTimeSlider && /*#__PURE__*/React__default["default"].createElement(TimeSliderConnect, {
|
|
21771
|
-
sourceId:
|
|
22745
|
+
sourceId: firstMapId,
|
|
21772
22746
|
mapId: firstMapId
|
|
21773
22747
|
})), maps.map(function (map, mapIndex) {
|
|
21774
|
-
var mapId =
|
|
22748
|
+
var mapId = map.id;
|
|
21775
22749
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
21776
22750
|
className: classes.box,
|
|
21777
22751
|
key: mapId,
|
|
@@ -21827,9 +22801,11 @@
|
|
|
21827
22801
|
/* Helper to make a map layer preset */
|
|
21828
22802
|
|
|
21829
22803
|
|
|
21830
|
-
var makeMapPreset = function makeMapPreset(timeIncrement, uniqueId, referenceTime, layers,
|
|
22804
|
+
var makeMapPreset = function makeMapPreset(timeIncrement, uniqueId, referenceTime, layers, syncGroupsIds, displayLayerManagerButtonInMap, displayDimensionSelectButtonInMap) {
|
|
21831
22805
|
var mapTime = moment__default["default"].utc(referenceTime).add(timeIncrement, 'h').format('YYYY-MM-DDTHH:mm:ss[Z]');
|
|
21832
22806
|
return {
|
|
22807
|
+
id: uniqueId,
|
|
22808
|
+
syncGroupsIds: syncGroupsIds,
|
|
21833
22809
|
title: "FC +" + timeIncrement,
|
|
21834
22810
|
displayTimeInMap: true,
|
|
21835
22811
|
bbox: {
|
|
@@ -21852,14 +22828,13 @@
|
|
|
21852
22828
|
});
|
|
21853
22829
|
}),
|
|
21854
22830
|
displayLayerManagerButtonInMap: displayLayerManagerButtonInMap,
|
|
21855
|
-
displayDimensionSelectButtonInMap: displayDimensionSelectButtonInMap
|
|
21856
|
-
layerSyncGroupId: layerSyncGroupId
|
|
22831
|
+
displayDimensionSelectButtonInMap: displayDimensionSelectButtonInMap
|
|
21857
22832
|
};
|
|
21858
22833
|
};
|
|
21859
22834
|
var HarmRefTimePreset = function HarmRefTimePreset(_a) {
|
|
21860
22835
|
var _b = _a.layers,
|
|
21861
22836
|
layers = _b === void 0 ? [harmoniePressure, harmonieWindFlags, harmoniePrecipitation] : _b,
|
|
21862
|
-
|
|
22837
|
+
syncGroupsIds = _a.syncGroupsIds;
|
|
21863
22838
|
/* Get latest reference time for this layer */
|
|
21864
22839
|
|
|
21865
22840
|
var latestReferenceTime = useGetLatestReferenceTime(layers[0]);
|
|
@@ -21870,7 +22845,7 @@
|
|
|
21870
22845
|
/* Add the layers with the different map times */
|
|
21871
22846
|
|
|
21872
22847
|
var maps = timeIncrements.map(function (increment, index) {
|
|
21873
|
-
return makeMapPreset(increment, "harm_precip" + increment, latestReferenceTime, layers,
|
|
22848
|
+
return makeMapPreset(increment, "harm_precip" + increment, latestReferenceTime, layers, syncGroupsIds, index === 0 || !syncGroupsIds, index === 0 || !syncGroupsIds);
|
|
21874
22849
|
});
|
|
21875
22850
|
return /*#__PURE__*/React__namespace.createElement(MultiMapViewConnect, {
|
|
21876
22851
|
rows: 3,
|
|
@@ -21926,13 +22901,21 @@
|
|
|
21926
22901
|
var layers = _a.layers;
|
|
21927
22902
|
/* Get all the reference times for this layer */
|
|
21928
22903
|
|
|
21929
|
-
var referenceTimes = useGetReferenceTimes(layers.
|
|
22904
|
+
var referenceTimes = useGetReferenceTimes(layers.topRow);
|
|
21930
22905
|
if (referenceTimes.length === 0) return /*#__PURE__*/React__namespace.createElement("div", null, "Loading...");
|
|
21931
22906
|
/* Helper to make a map layer prest */
|
|
21932
22907
|
|
|
21933
|
-
var makeMapPreset = function makeMapPreset(referenceTime, uniqueId, layer,
|
|
22908
|
+
var makeMapPreset = function makeMapPreset(referenceTime, uniqueId, layer, syncGroupsIds, col) {
|
|
21934
22909
|
return {
|
|
22910
|
+
id: uniqueId,
|
|
21935
22911
|
title: "Harmonie run " + ("" + referenceTime.substring(8, 13).replace('T', ' / ')),
|
|
22912
|
+
bbox: {
|
|
22913
|
+
left: -450651.2255879827,
|
|
22914
|
+
bottom: 6490531.093143953,
|
|
22915
|
+
right: 1428345.8183648037,
|
|
22916
|
+
top: 7438773.776232235
|
|
22917
|
+
},
|
|
22918
|
+
srs: 'EPSG:3857',
|
|
21936
22919
|
layers: [__assign(__assign({}, layer), {
|
|
21937
22920
|
id: uniqueId,
|
|
21938
22921
|
dimensions: [{
|
|
@@ -21940,9 +22923,9 @@
|
|
|
21940
22923
|
currentValue: referenceTime
|
|
21941
22924
|
}]
|
|
21942
22925
|
})],
|
|
21943
|
-
|
|
21944
|
-
displayLayerManagerButtonInMap: col === 0 || !
|
|
21945
|
-
displayDimensionSelectButtonInMap: col === 0 || !
|
|
22926
|
+
syncGroupsIds: syncGroupsIds,
|
|
22927
|
+
displayLayerManagerButtonInMap: col === 0 || !syncGroupsIds,
|
|
22928
|
+
displayDimensionSelectButtonInMap: col === 0 || !syncGroupsIds
|
|
21946
22929
|
};
|
|
21947
22930
|
};
|
|
21948
22931
|
/* Make the preset */
|
|
@@ -21953,14 +22936,14 @@
|
|
|
21953
22936
|
|
|
21954
22937
|
var mapsTemperature = __spreadArray([], __read(Array(nCols))).map(function (_, index) {
|
|
21955
22938
|
var refTime = referenceTimes[referenceTimes.length - nCols + index];
|
|
21956
|
-
return makeMapPreset(refTime, "harm_air" + index, layers.
|
|
22939
|
+
return makeMapPreset(refTime, "harm_air" + index, layers.topRow, layers.topRowSyncGroups, index);
|
|
21957
22940
|
});
|
|
21958
22941
|
/* Add the harmonie precipitation layers with the different referencetimes */
|
|
21959
22942
|
|
|
21960
22943
|
|
|
21961
22944
|
var mapsPrecipitation = __spreadArray([], __read(Array(nCols))).map(function (_, index) {
|
|
21962
22945
|
var refTime = referenceTimes[referenceTimes.length - nCols + index];
|
|
21963
|
-
return makeMapPreset(refTime, "harm_precip" + index, layers.
|
|
22946
|
+
return makeMapPreset(refTime, "harm_precip" + index, layers.bottomRow, layers.bottomRowSyncGroups, index);
|
|
21964
22947
|
});
|
|
21965
22948
|
|
|
21966
22949
|
var maps = mapsTemperature.concat(mapsPrecipitation);
|
|
@@ -22113,10 +23096,10 @@
|
|
|
22113
23096
|
{
|
|
22114
23097
|
var _c = initialProps,
|
|
22115
23098
|
layers = _c.layers,
|
|
22116
|
-
|
|
23099
|
+
syncGroupsIds = _c.syncGroupsIds;
|
|
22117
23100
|
return /*#__PURE__*/React__default["default"].createElement(HarmRefTimePreset, {
|
|
22118
23101
|
layers: layers || [],
|
|
22119
|
-
|
|
23102
|
+
syncGroupsIds: syncGroupsIds,
|
|
22120
23103
|
"data-testid": "coreHarmonieRefTimePreset"
|
|
22121
23104
|
});
|
|
22122
23105
|
}
|
|
@@ -22125,7 +23108,8 @@
|
|
|
22125
23108
|
{
|
|
22126
23109
|
var _d = initialProps,
|
|
22127
23110
|
mapPreset_1 = _d.mapPreset,
|
|
22128
|
-
shouldShowZoomControls = _d.shouldShowZoomControls
|
|
23111
|
+
shouldShowZoomControls = _d.shouldShowZoomControls,
|
|
23112
|
+
syncGroupsIds_1 = _d.syncGroupsIds;
|
|
22129
23113
|
if (!mapPreset_1 || mapPreset_1.length === 0) return null;
|
|
22130
23114
|
return /*#__PURE__*/React__default["default"].createElement(MultiMapViewConnect, {
|
|
22131
23115
|
rows: 2,
|
|
@@ -22134,6 +23118,7 @@
|
|
|
22134
23118
|
maps: mapPreset_1.map(function (p, i) {
|
|
22135
23119
|
return {
|
|
22136
23120
|
id: id + "_" + i,
|
|
23121
|
+
syncGroupsIds: syncGroupsIds_1,
|
|
22137
23122
|
layers: p.layers || [],
|
|
22138
23123
|
activeLayerId: p.activeLayerId || undefined,
|
|
22139
23124
|
baseLayer: p.baseLayer || undefined,
|
|
@@ -22528,9 +23513,7 @@
|
|
|
22528
23513
|
});
|
|
22529
23514
|
};
|
|
22530
23515
|
|
|
22531
|
-
return /*#__PURE__*/React__namespace.createElement(
|
|
22532
|
-
"data-testid": "syncGroupViewer"
|
|
22533
|
-
}, /*#__PURE__*/React__namespace.createElement(shared.ToolContainerDraggable, {
|
|
23516
|
+
return /*#__PURE__*/React__namespace.createElement(shared.ToolContainerDraggable, {
|
|
22534
23517
|
title: "Sync",
|
|
22535
23518
|
startSize: {
|
|
22536
23519
|
width: 349,
|
|
@@ -22538,7 +23521,8 @@
|
|
|
22538
23521
|
},
|
|
22539
23522
|
headerSize: "medium",
|
|
22540
23523
|
isOpen: isOpen,
|
|
22541
|
-
onClose: onClose
|
|
23524
|
+
onClose: onClose,
|
|
23525
|
+
"data-testid": "syncGroupViewer"
|
|
22542
23526
|
}, /*#__PURE__*/React__namespace.createElement("div", null, /*#__PURE__*/React__namespace.createElement(SyncGroupList, {
|
|
22543
23527
|
viewStateData: syncGroupViewState.zoompane,
|
|
22544
23528
|
title: "ZoomPane",
|
|
@@ -22575,7 +23559,7 @@
|
|
|
22575
23559
|
removeGroup: function removeGroup(groupId) {
|
|
22576
23560
|
return _removeGroup('level', groupId);
|
|
22577
23561
|
}
|
|
22578
|
-
})))
|
|
23562
|
+
})));
|
|
22579
23563
|
};
|
|
22580
23564
|
|
|
22581
23565
|
/* *
|
|
@@ -22843,11 +23827,19 @@
|
|
|
22843
23827
|
exports.coreModuleConfig = coreModuleConfig;
|
|
22844
23828
|
exports.dateFormat = dateFormat;
|
|
22845
23829
|
exports.defaultConfigurations = defaultConfigurations;
|
|
23830
|
+
exports.filterBaseLayers = filterBaseLayers;
|
|
23831
|
+
exports.filterBbox = filterBbox;
|
|
23832
|
+
exports.filterDimensions = filterDimensions;
|
|
23833
|
+
exports.filterMapLayers = filterMapLayers;
|
|
23834
|
+
exports.filterMapPresets = filterMapPresets;
|
|
22846
23835
|
exports.filterNonTimeDimensions = filterNonTimeDimensions;
|
|
23836
|
+
exports.filterServices = filterServices;
|
|
23837
|
+
exports.filterSrs = filterSrs;
|
|
22847
23838
|
exports.generateLayerId = generateLayerId;
|
|
22848
23839
|
exports.generateMapId = generateMapId;
|
|
22849
23840
|
exports.generateTimesliderId = generateTimesliderId;
|
|
22850
23841
|
exports.getFirstTimeStepForLayerId = getFirstTimeStepForLayerId;
|
|
23842
|
+
exports.getInitialPresets = getInitialPresets;
|
|
22851
23843
|
exports.getLastTimeStepForLayerId = getLastTimeStepForLayerId;
|
|
22852
23844
|
exports.getNextTimeStepForLayerId = getNextTimeStepForLayerId;
|
|
22853
23845
|
exports.getPreviousTimeStepForLayerId = getPreviousTimeStepForLayerId;
|