@opengeoweb/store 11.1.0 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.esm.js +1358 -933
- package/package.json +31 -12
- package/src/store/index.d.ts +1 -0
- package/src/store/map/index.d.ts +1 -1
- package/src/store/map/map/olMapListenerAnimationUtils.d.ts +46 -0
- package/src/store/map/map/olMapListenerAnimationUtils.spec.d.ts +1 -0
- package/src/store/map/map/selectors.d.ts +6 -1
- package/src/store/map/map/types.d.ts +6 -0
- package/src/store/mapStore/openlayers/listener.d.ts +2 -0
- package/src/store/mapStore/openlayers/listener.spec.d.ts +1 -0
- package/src/store/mapStore/openlayers/syncGroupViewStore.d.ts +26 -0
- package/src/store/store.d.ts +1 -0
package/index.esm.js
CHANGED
|
@@ -1,321 +1,33 @@
|
|
|
1
1
|
import { createSlice, createSelector, createAction, createListenerMiddleware, isAnyOf, createEntityAdapter, combineReducers, configureStore, compose, EnhancerArray } from '@reduxjs/toolkit';
|
|
2
2
|
import { isEqual, isEmpty, compact } from 'lodash';
|
|
3
3
|
import { dateUtils, PROJECTION, defaultDelay } from '@opengeoweb/shared';
|
|
4
|
-
import { webmapUtils, parseISO8601IntervalToDateInterval, LayerType, getWMJSMapById, webmapTestSettings, WMLayer, getWMSRequests, handleDateUtilsISOString, isProjectionSupported, queryWMSLayers } from '@opengeoweb/webmap';
|
|
4
|
+
import { webmapUtils, parseISO8601IntervalToDateInterval, LayerType, getWMJSMapById, webmapTestSettings, WMLayer, getWMSRequests, handleDateUtilsISOString, isProjectionSupported, queryWMSLayers, getWMLayerById, WMInvalidDateValues } from '@opengeoweb/webmap';
|
|
5
5
|
import { defaultTimeStep, defaultTimeSpan, defaultAnimationDelayAtStart, defaultSecondsPerPx, roundWithTimeStep, getSpeedDelay } from '@opengeoweb/timeslider';
|
|
6
6
|
import { produce } from 'immer';
|
|
7
|
-
import { getGeoJson, moveFeature, createInterSections, getLastEmptyFeatureIndex, defaultLayers, addSelectionTypeToGeoJSON, getFeatureCollection, emptyGeoJSON, defaultIntersectionStyleProperties } from '@opengeoweb/webmap-react';
|
|
7
|
+
import { getGeoJson, moveFeature, createInterSections, getLastEmptyFeatureIndex, defaultLayers, addSelectionTypeToGeoJSON, getFeatureCollection, emptyGeoJSON, defaultIntersectionStyleProperties, isOpenLayersEnabled } from '@opengeoweb/webmap-react';
|
|
8
8
|
export { defaultLayers } from '@opengeoweb/webmap-react';
|
|
9
9
|
import { useSelector, useDispatch } from 'react-redux';
|
|
10
10
|
import { useCallback, useEffect } from 'react';
|
|
11
11
|
import * as turf from '@turf/turf';
|
|
12
12
|
import { metronome } from '@opengeoweb/metronome';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
16
|
-
* you may not use this file except in compliance with the License.
|
|
17
|
-
* You may obtain a copy of the License at
|
|
18
|
-
*
|
|
19
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
20
|
-
*
|
|
21
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
22
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
24
|
-
* See the License for the specific language governing permissions and
|
|
25
|
-
* limitations under the License.
|
|
26
|
-
*
|
|
27
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
28
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
29
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
30
|
-
* */
|
|
31
|
-
var initialState$6 = {
|
|
32
|
-
byId: {},
|
|
33
|
-
allIds: []
|
|
34
|
-
};
|
|
35
|
-
var slice$7 = createSlice({
|
|
36
|
-
initialState: initialState$6,
|
|
37
|
-
name: 'serviceReducer',
|
|
38
|
-
reducers: {
|
|
39
|
-
serviceSetLayers: function serviceSetLayers(draft, action) {
|
|
40
|
-
var id = action.payload.id;
|
|
41
|
-
draft.byId[id] = Object.assign({}, action.payload);
|
|
42
|
-
if (!draft.allIds.includes(id)) {
|
|
43
|
-
draft.allIds.push(id);
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
mapStoreRemoveService: function mapStoreRemoveService(draft, action) {
|
|
47
|
-
var foundServiceIndex = draft.allIds.findIndex(function (id) {
|
|
48
|
-
return draft.byId[id].serviceUrl === action.payload.serviceUrl;
|
|
49
|
-
});
|
|
50
|
-
if (foundServiceIndex !== -1) {
|
|
51
|
-
var serviceId = draft.allIds[foundServiceIndex];
|
|
52
|
-
draft.allIds = draft.allIds.filter(function (id) {
|
|
53
|
-
return id !== serviceId;
|
|
54
|
-
});
|
|
55
|
-
delete draft.byId[serviceId];
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
fetchInitialServices: function fetchInitialServices(
|
|
59
|
-
// eslint-disable-next-line no-unused-vars
|
|
60
|
-
draft,
|
|
61
|
-
// eslint-disable-next-line no-unused-vars
|
|
62
|
-
action) {
|
|
63
|
-
// This block is intentionally left empty so no code should be put in here
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
var serviceReducer = slice$7.reducer,
|
|
68
|
-
serviceActions = slice$7.actions;
|
|
69
|
-
|
|
70
|
-
/* *
|
|
71
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
72
|
-
* you may not use this file except in compliance with the License.
|
|
73
|
-
* You may obtain a copy of the License at
|
|
74
|
-
*
|
|
75
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
76
|
-
*
|
|
77
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
78
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
79
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
80
|
-
* See the License for the specific language governing permissions and
|
|
81
|
-
* limitations under the License.
|
|
82
|
-
*
|
|
83
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
84
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
85
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
86
|
-
* */
|
|
87
|
-
var selectorMemoizationOptions = {
|
|
88
|
-
memoizeOptions: {
|
|
89
|
-
maxSize: 1000,
|
|
90
|
-
resultEqualityCheck: isEqual
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
var utils$3 = /*#__PURE__*/Object.freeze({
|
|
95
|
-
__proto__: null,
|
|
96
|
-
selectorMemoizationOptions: selectorMemoizationOptions
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
/* *
|
|
100
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
101
|
-
* you may not use this file except in compliance with the License.
|
|
102
|
-
* You may obtain a copy of the License at
|
|
103
|
-
*
|
|
104
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
105
|
-
*
|
|
106
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
107
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
108
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
109
|
-
* See the License for the specific language governing permissions and
|
|
110
|
-
* limitations under the License.
|
|
111
|
-
*
|
|
112
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
113
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
114
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
115
|
-
* */
|
|
116
|
-
var getServicesStore = function getServicesStore(store) {
|
|
117
|
-
return store == null ? void 0 : store.services;
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Retrieves all serviceIds
|
|
121
|
-
*
|
|
122
|
-
* Example: serviceIds = getServiceIds(store)
|
|
123
|
-
* @param {object} store store: object - object from which the service state will be extracted
|
|
124
|
-
* @returns {array} returnType: array - an array of all serviceIds
|
|
125
|
-
*/
|
|
126
|
-
var getServiceIds = createSelector(getServicesStore, function (serviceState) {
|
|
127
|
-
var _serviceState$allIds;
|
|
128
|
-
return (_serviceState$allIds = serviceState == null ? void 0 : serviceState.allIds) != null ? _serviceState$allIds : [];
|
|
129
|
-
}, selectorMemoizationOptions);
|
|
130
|
-
/**
|
|
131
|
-
* Gets map services
|
|
132
|
-
*
|
|
133
|
-
* Example: services = getServices(store)
|
|
134
|
-
* @param {object} store store: object - Store object
|
|
135
|
-
* @returns {object} returnType: ServiceState
|
|
136
|
-
*/
|
|
137
|
-
var getServices = createSelector(getServicesStore, function (store) {
|
|
138
|
-
var _store$byId;
|
|
139
|
-
return (_store$byId = store == null ? void 0 : store.byId) != null ? _store$byId : {};
|
|
140
|
-
}, selectorMemoizationOptions);
|
|
141
|
-
/**
|
|
142
|
-
* Gets the service object by its url
|
|
143
|
-
*
|
|
144
|
-
* Example: service = getServiceByName(store, 'serviceName')
|
|
145
|
-
* @param {object} store store: object - Store object
|
|
146
|
-
* @returns {ReduxService} returnType: Service
|
|
147
|
-
*/
|
|
148
|
-
var getServiceByUrl = createSelector(getServicesStore, function (state, serviceUrl) {
|
|
149
|
-
return serviceUrl;
|
|
150
|
-
}, function (serviceState, serviceUrl) {
|
|
151
|
-
if (!serviceState) {
|
|
152
|
-
return undefined;
|
|
153
|
-
}
|
|
154
|
-
return Object.values(serviceState.byId).find(function (service) {
|
|
155
|
-
return service.serviceUrl === serviceUrl;
|
|
156
|
-
});
|
|
157
|
-
}, selectorMemoizationOptions);
|
|
158
|
-
/**
|
|
159
|
-
* Gets the layer from the store using the serviceUrl and layerName
|
|
160
|
-
*
|
|
161
|
-
* Example: layers = getLayersFromService(store, 'https://geoservices.knmi.nl/...')
|
|
162
|
-
* @param {object} store store: object - object from which the layers state will be extracted
|
|
163
|
-
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
164
|
-
* @returns {array} returnType: ServiceLayer[] - All layers within the service object.
|
|
165
|
-
*/
|
|
166
|
-
var getLayersFromServiceSelector = createSelector(getServiceByUrl, function (service) {
|
|
167
|
-
var _service$layers;
|
|
168
|
-
return (_service$layers = service == null ? void 0 : service.layers) != null ? _service$layers : [];
|
|
169
|
-
}, selectorMemoizationOptions);
|
|
170
|
-
/**
|
|
171
|
-
* Gets the layer from the store using the serviceUrl and layerName
|
|
172
|
-
*
|
|
173
|
-
* Example: layer = getLayerFromService(store, 'https://geoservices.knmi.nl/...', 'radar')
|
|
174
|
-
* @param {object} store store: object - The application store
|
|
175
|
-
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
176
|
-
* @param {string} layerName layerName: string - Name of the layer in the service
|
|
177
|
-
* @returns {ServiceLayer} returnType: ServiceLayer - The layer from the service object.
|
|
178
|
-
*/
|
|
179
|
-
var getLayerFromService = createSelector(getLayersFromServiceSelector, function (_store, _serviceUrl, layerName) {
|
|
180
|
-
return layerName;
|
|
181
|
-
}, function (layers, layerName) {
|
|
182
|
-
return layers.find(function (serviceLayer) {
|
|
183
|
-
return serviceLayer.name === layerName;
|
|
184
|
-
});
|
|
185
|
-
}, selectorMemoizationOptions);
|
|
186
|
-
/**
|
|
187
|
-
* Gets the layers stylelist from the servicestore using the serviceUrl and layerName
|
|
188
|
-
*
|
|
189
|
-
* Example: layerStyles = getLayerStyles(store, layerService, layerName);
|
|
190
|
-
* @param {object} store store: object - store from which the layers state will be extracted
|
|
191
|
-
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
192
|
-
* @param {string} layerName layerName: string - Name of the layer in the service
|
|
193
|
-
* @returns {array} returnType: Style[] - array containing layer styles
|
|
194
|
-
*/
|
|
195
|
-
var getLayerStyles = createSelector(getLayerFromService, function (layer) {
|
|
196
|
-
var _layer$styles;
|
|
197
|
-
return (_layer$styles = layer == null ? void 0 : layer.styles) != null ? _layer$styles : [];
|
|
198
|
-
}, selectorMemoizationOptions);
|
|
199
|
-
|
|
200
|
-
var selectors$7 = /*#__PURE__*/Object.freeze({
|
|
201
|
-
__proto__: null,
|
|
202
|
-
getLayerFromService: getLayerFromService,
|
|
203
|
-
getLayerStyles: getLayerStyles,
|
|
204
|
-
getLayersFromServiceSelector: getLayersFromServiceSelector,
|
|
205
|
-
getServiceByUrl: getServiceByUrl,
|
|
206
|
-
getServiceIds: getServiceIds,
|
|
207
|
-
getServices: getServices
|
|
208
|
-
});
|
|
209
|
-
|
|
210
|
-
/* *
|
|
211
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
212
|
-
* you may not use this file except in compliance with the License.
|
|
213
|
-
* You may obtain a copy of the License at
|
|
214
|
-
*
|
|
215
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
216
|
-
*
|
|
217
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
218
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
219
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
220
|
-
* See the License for the specific language governing permissions and
|
|
221
|
-
* limitations under the License.
|
|
222
|
-
*
|
|
223
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
224
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
225
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
226
|
-
* */
|
|
227
|
-
|
|
228
|
-
var types$5 = /*#__PURE__*/Object.freeze({
|
|
229
|
-
__proto__: null
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
/* *
|
|
233
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
234
|
-
* you may not use this file except in compliance with the License.
|
|
235
|
-
* You may obtain a copy of the License at
|
|
236
|
-
*
|
|
237
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
238
|
-
*
|
|
239
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
240
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
241
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
242
|
-
* See the License for the specific language governing permissions and
|
|
243
|
-
* limitations under the License.
|
|
244
|
-
*
|
|
245
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
246
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
247
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
248
|
-
* */
|
|
249
|
-
var getUserAddedServices = function getUserAddedServices() {
|
|
250
|
-
try {
|
|
251
|
-
var storedString = window.localStorage.getItem('userAddedServices');
|
|
252
|
-
var parsedData = JSON.parse(storedString);
|
|
253
|
-
if (parsedData && typeof parsedData === 'object') {
|
|
254
|
-
return Object.entries(parsedData).reduce(function (userServices, _ref) {
|
|
255
|
-
var _ref2;
|
|
256
|
-
var serviceUrl = _ref[0],
|
|
257
|
-
service = _ref[1];
|
|
258
|
-
return Object.assign({}, userServices, isNoIdService(service) ? (_ref2 = {}, _ref2[serviceUrl] = Object.assign({}, service, {
|
|
259
|
-
scope: 'user'
|
|
260
|
-
}), _ref2) : {});
|
|
261
|
-
}, {});
|
|
262
|
-
}
|
|
263
|
-
} catch (e) {
|
|
264
|
-
console.error('Unable to read services from localStorage: ', e);
|
|
265
|
-
}
|
|
266
|
-
return {};
|
|
267
|
-
};
|
|
268
|
-
var setUserAddedServices = function setUserAddedServices(services) {
|
|
269
|
-
try {
|
|
270
|
-
window.localStorage.setItem('userAddedServices', JSON.stringify(services));
|
|
271
|
-
} catch (e) {
|
|
272
|
-
console.error('Unable to write services to localStorage: ', e);
|
|
273
|
-
}
|
|
274
|
-
};
|
|
275
|
-
var isNoIdService = function isNoIdService(param) {
|
|
276
|
-
var serviceParam = param;
|
|
277
|
-
return !!(serviceParam != null && serviceParam.name && serviceParam != null && serviceParam.url);
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
/* *
|
|
281
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
282
|
-
* you may not use this file except in compliance with the License.
|
|
283
|
-
* You may obtain a copy of the License at
|
|
284
|
-
*
|
|
285
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
286
|
-
*
|
|
287
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
288
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
289
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
290
|
-
* See the License for the specific language governing permissions and
|
|
291
|
-
* limitations under the License.
|
|
292
|
-
*
|
|
293
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
294
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
295
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
296
|
-
* */
|
|
297
|
-
var AnimationLength;
|
|
298
|
-
(function (AnimationLength) {
|
|
299
|
-
AnimationLength[AnimationLength["Minutes15"] = 15] = "Minutes15";
|
|
300
|
-
AnimationLength[AnimationLength["Minutes30"] = 30] = "Minutes30";
|
|
301
|
-
AnimationLength[AnimationLength["Hours1"] = 60] = "Hours1";
|
|
302
|
-
AnimationLength[AnimationLength["Hours2"] = 120] = "Hours2";
|
|
303
|
-
AnimationLength[AnimationLength["Hours3"] = 180] = "Hours3";
|
|
304
|
-
AnimationLength[AnimationLength["Hours6"] = 360] = "Hours6";
|
|
305
|
-
AnimationLength[AnimationLength["Hours12"] = 720] = "Hours12";
|
|
306
|
-
AnimationLength[AnimationLength["Hours24"] = 1440] = "Hours24";
|
|
307
|
-
})(AnimationLength || (AnimationLength = {}));
|
|
308
|
-
|
|
309
|
-
var types$4 = /*#__PURE__*/Object.freeze({
|
|
310
|
-
__proto__: null,
|
|
311
|
-
get AnimationLength () { return AnimationLength; }
|
|
312
|
-
});
|
|
13
|
+
import { View, Observable } from 'ol';
|
|
14
|
+
import { boundingExtent, getCenter } from 'ol/extent';
|
|
313
15
|
|
|
314
16
|
function _arrayLikeToArray(r, a) {
|
|
315
17
|
(null == a || a > r.length) && (a = r.length);
|
|
316
18
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
317
19
|
return n;
|
|
318
20
|
}
|
|
21
|
+
function _arrayWithHoles(r) {
|
|
22
|
+
if (Array.isArray(r)) return r;
|
|
23
|
+
}
|
|
24
|
+
function _arrayWithoutHoles(r) {
|
|
25
|
+
if (Array.isArray(r)) return _arrayLikeToArray(r);
|
|
26
|
+
}
|
|
27
|
+
function _assertThisInitialized(e) {
|
|
28
|
+
if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
29
|
+
return e;
|
|
30
|
+
}
|
|
319
31
|
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
320
32
|
try {
|
|
321
33
|
var i = n[a](c),
|
|
@@ -323,40 +35,189 @@ function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
|
323
35
|
} catch (n) {
|
|
324
36
|
return void e(n);
|
|
325
37
|
}
|
|
326
|
-
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
38
|
+
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
39
|
+
}
|
|
40
|
+
function _asyncToGenerator(n) {
|
|
41
|
+
return function () {
|
|
42
|
+
var t = this,
|
|
43
|
+
e = arguments;
|
|
44
|
+
return new Promise(function (r, o) {
|
|
45
|
+
var a = n.apply(t, e);
|
|
46
|
+
function _next(n) {
|
|
47
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
48
|
+
}
|
|
49
|
+
function _throw(n) {
|
|
50
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
51
|
+
}
|
|
52
|
+
_next(void 0);
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function _callSuper(t, o, e) {
|
|
57
|
+
return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, [], _getPrototypeOf(t).constructor) : o.apply(t, e));
|
|
58
|
+
}
|
|
59
|
+
function _classCallCheck(a, n) {
|
|
60
|
+
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
61
|
+
}
|
|
62
|
+
function _defineProperties(e, r) {
|
|
63
|
+
for (var t = 0; t < r.length; t++) {
|
|
64
|
+
var o = r[t];
|
|
65
|
+
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
function _createClass(e, r, t) {
|
|
69
|
+
return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
|
|
70
|
+
writable: !1
|
|
71
|
+
}), e;
|
|
72
|
+
}
|
|
73
|
+
function _createForOfIteratorHelper(r, e) {
|
|
74
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
75
|
+
if (!t) {
|
|
76
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) {
|
|
77
|
+
t && (r = t);
|
|
78
|
+
var n = 0,
|
|
79
|
+
F = function () {};
|
|
80
|
+
return {
|
|
81
|
+
s: F,
|
|
82
|
+
n: function () {
|
|
83
|
+
return n >= r.length ? {
|
|
84
|
+
done: !0
|
|
85
|
+
} : {
|
|
86
|
+
done: !1,
|
|
87
|
+
value: r[n++]
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
e: function (r) {
|
|
91
|
+
throw r;
|
|
92
|
+
},
|
|
93
|
+
f: F
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
97
|
+
}
|
|
98
|
+
var o,
|
|
99
|
+
a = !0,
|
|
100
|
+
u = !1;
|
|
101
|
+
return {
|
|
102
|
+
s: function () {
|
|
103
|
+
t = t.call(r);
|
|
104
|
+
},
|
|
105
|
+
n: function () {
|
|
106
|
+
var r = t.next();
|
|
107
|
+
return a = r.done, r;
|
|
108
|
+
},
|
|
109
|
+
e: function (r) {
|
|
110
|
+
u = !0, o = r;
|
|
111
|
+
},
|
|
112
|
+
f: function () {
|
|
113
|
+
try {
|
|
114
|
+
a || null == t.return || t.return();
|
|
115
|
+
} finally {
|
|
116
|
+
if (u) throw o;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function _defineProperty(e, r, t) {
|
|
122
|
+
return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
123
|
+
value: t,
|
|
124
|
+
enumerable: !0,
|
|
125
|
+
configurable: !0,
|
|
126
|
+
writable: !0
|
|
127
|
+
}) : e[r] = t, e;
|
|
128
|
+
}
|
|
129
|
+
function _getPrototypeOf(t) {
|
|
130
|
+
return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
|
|
131
|
+
return t.__proto__ || Object.getPrototypeOf(t);
|
|
132
|
+
}, _getPrototypeOf(t);
|
|
133
|
+
}
|
|
134
|
+
function _inherits(t, e) {
|
|
135
|
+
if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
|
|
136
|
+
t.prototype = Object.create(e && e.prototype, {
|
|
137
|
+
constructor: {
|
|
138
|
+
value: t,
|
|
139
|
+
writable: !0,
|
|
140
|
+
configurable: !0
|
|
141
|
+
}
|
|
142
|
+
}), Object.defineProperty(t, "prototype", {
|
|
143
|
+
writable: !1
|
|
144
|
+
}), e && _setPrototypeOf(t, e);
|
|
145
|
+
}
|
|
146
|
+
function _isNativeReflectConstruct() {
|
|
147
|
+
try {
|
|
148
|
+
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
|
|
149
|
+
} catch (t) {}
|
|
150
|
+
return (_isNativeReflectConstruct = function () {
|
|
151
|
+
return !!t;
|
|
152
|
+
})();
|
|
153
|
+
}
|
|
154
|
+
function _iterableToArray(r) {
|
|
155
|
+
if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r);
|
|
156
|
+
}
|
|
157
|
+
function _iterableToArrayLimit(r, l) {
|
|
158
|
+
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
159
|
+
if (null != t) {
|
|
160
|
+
var e,
|
|
161
|
+
n,
|
|
162
|
+
i,
|
|
163
|
+
u,
|
|
164
|
+
a = [],
|
|
165
|
+
f = !0,
|
|
166
|
+
o = !1;
|
|
167
|
+
try {
|
|
168
|
+
if (i = (t = t.call(r)).next, 0 === l) {
|
|
169
|
+
if (Object(t) !== t) return;
|
|
170
|
+
f = !1;
|
|
171
|
+
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
172
|
+
} catch (r) {
|
|
173
|
+
o = !0, n = r;
|
|
174
|
+
} finally {
|
|
175
|
+
try {
|
|
176
|
+
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
|
177
|
+
} finally {
|
|
178
|
+
if (o) throw n;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return a;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
function _nonIterableRest() {
|
|
185
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
186
|
+
}
|
|
187
|
+
function _nonIterableSpread() {
|
|
188
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
189
|
+
}
|
|
190
|
+
function ownKeys(e, r) {
|
|
191
|
+
var t = Object.keys(e);
|
|
192
|
+
if (Object.getOwnPropertySymbols) {
|
|
193
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
194
|
+
r && (o = o.filter(function (r) {
|
|
195
|
+
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
196
|
+
})), t.push.apply(t, o);
|
|
197
|
+
}
|
|
198
|
+
return t;
|
|
327
199
|
}
|
|
328
|
-
function
|
|
329
|
-
|
|
330
|
-
var t =
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
|
|
336
|
-
}
|
|
337
|
-
function _throw(n) {
|
|
338
|
-
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
|
|
339
|
-
}
|
|
340
|
-
_next(void 0);
|
|
200
|
+
function _objectSpread2(e) {
|
|
201
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
202
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
203
|
+
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
|
204
|
+
_defineProperty(e, r, t[r]);
|
|
205
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
|
206
|
+
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
341
207
|
});
|
|
342
|
-
};
|
|
343
|
-
}
|
|
344
|
-
function _createForOfIteratorHelperLoose(r, e) {
|
|
345
|
-
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
346
|
-
if (t) return (t = t.call(r)).next.bind(t);
|
|
347
|
-
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) {
|
|
348
|
-
t && (r = t);
|
|
349
|
-
var o = 0;
|
|
350
|
-
return function () {
|
|
351
|
-
return o >= r.length ? {
|
|
352
|
-
done: !0
|
|
353
|
-
} : {
|
|
354
|
-
done: !1,
|
|
355
|
-
value: r[o++]
|
|
356
|
-
};
|
|
357
|
-
};
|
|
358
208
|
}
|
|
359
|
-
|
|
209
|
+
return e;
|
|
210
|
+
}
|
|
211
|
+
function _objectWithoutProperties(e, t) {
|
|
212
|
+
if (null == e) return {};
|
|
213
|
+
var o,
|
|
214
|
+
r,
|
|
215
|
+
i = _objectWithoutPropertiesLoose(e, t);
|
|
216
|
+
if (Object.getOwnPropertySymbols) {
|
|
217
|
+
var n = Object.getOwnPropertySymbols(e);
|
|
218
|
+
for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
|
|
219
|
+
}
|
|
220
|
+
return i;
|
|
360
221
|
}
|
|
361
222
|
function _objectWithoutPropertiesLoose(r, e) {
|
|
362
223
|
if (null == r) return {};
|
|
@@ -367,6 +228,11 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
367
228
|
}
|
|
368
229
|
return t;
|
|
369
230
|
}
|
|
231
|
+
function _possibleConstructorReturn(t, e) {
|
|
232
|
+
if (e && ("object" == typeof e || "function" == typeof e)) return e;
|
|
233
|
+
if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
|
|
234
|
+
return _assertThisInitialized(t);
|
|
235
|
+
}
|
|
370
236
|
function _regeneratorRuntime() {
|
|
371
237
|
_regeneratorRuntime = function () {
|
|
372
238
|
return e;
|
|
@@ -666,15 +532,332 @@ function _regeneratorRuntime() {
|
|
|
666
532
|
nextLoc: n
|
|
667
533
|
}, "next" === this.method && (this.arg = t), y;
|
|
668
534
|
}
|
|
669
|
-
}, e;
|
|
670
|
-
}
|
|
671
|
-
function
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
535
|
+
}, e;
|
|
536
|
+
}
|
|
537
|
+
function _setPrototypeOf(t, e) {
|
|
538
|
+
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
539
|
+
return t.__proto__ = e, t;
|
|
540
|
+
}, _setPrototypeOf(t, e);
|
|
541
|
+
}
|
|
542
|
+
function _slicedToArray(r, e) {
|
|
543
|
+
return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
|
|
544
|
+
}
|
|
545
|
+
function _toConsumableArray(r) {
|
|
546
|
+
return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
|
|
547
|
+
}
|
|
548
|
+
function _toPrimitive(t, r) {
|
|
549
|
+
if ("object" != typeof t || !t) return t;
|
|
550
|
+
var e = t[Symbol.toPrimitive];
|
|
551
|
+
if (void 0 !== e) {
|
|
552
|
+
var i = e.call(t, r || "default");
|
|
553
|
+
if ("object" != typeof i) return i;
|
|
554
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
555
|
+
}
|
|
556
|
+
return ("string" === r ? String : Number)(t);
|
|
557
|
+
}
|
|
558
|
+
function _toPropertyKey(t) {
|
|
559
|
+
var i = _toPrimitive(t, "string");
|
|
560
|
+
return "symbol" == typeof i ? i : i + "";
|
|
561
|
+
}
|
|
562
|
+
function _typeof(o) {
|
|
563
|
+
"@babel/helpers - typeof";
|
|
564
|
+
|
|
565
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
566
|
+
return typeof o;
|
|
567
|
+
} : function (o) {
|
|
568
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
569
|
+
}, _typeof(o);
|
|
570
|
+
}
|
|
571
|
+
function _unsupportedIterableToArray(r, a) {
|
|
572
|
+
if (r) {
|
|
573
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
574
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
575
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
var initialState$6 = {
|
|
580
|
+
byId: {},
|
|
581
|
+
allIds: []
|
|
582
|
+
};
|
|
583
|
+
var slice$7 = createSlice({
|
|
584
|
+
initialState: initialState$6,
|
|
585
|
+
name: 'serviceReducer',
|
|
586
|
+
reducers: {
|
|
587
|
+
serviceSetLayers: function serviceSetLayers(draft, action) {
|
|
588
|
+
var id = action.payload.id;
|
|
589
|
+
draft.byId[id] = _objectSpread2({}, action.payload);
|
|
590
|
+
if (!draft.allIds.includes(id)) {
|
|
591
|
+
draft.allIds.push(id);
|
|
592
|
+
}
|
|
593
|
+
},
|
|
594
|
+
mapStoreRemoveService: function mapStoreRemoveService(draft, action) {
|
|
595
|
+
var foundServiceIndex = draft.allIds.findIndex(function (id) {
|
|
596
|
+
return draft.byId[id].serviceUrl === action.payload.serviceUrl;
|
|
597
|
+
});
|
|
598
|
+
if (foundServiceIndex !== -1) {
|
|
599
|
+
var serviceId = draft.allIds[foundServiceIndex];
|
|
600
|
+
draft.allIds = draft.allIds.filter(function (id) {
|
|
601
|
+
return id !== serviceId;
|
|
602
|
+
});
|
|
603
|
+
delete draft.byId[serviceId];
|
|
604
|
+
}
|
|
605
|
+
},
|
|
606
|
+
fetchInitialServices: function fetchInitialServices(
|
|
607
|
+
// eslint-disable-next-line no-unused-vars
|
|
608
|
+
draft,
|
|
609
|
+
// eslint-disable-next-line no-unused-vars
|
|
610
|
+
action) {
|
|
611
|
+
// This block is intentionally left empty so no code should be put in here
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
var serviceReducer = slice$7.reducer,
|
|
616
|
+
serviceActions = slice$7.actions;
|
|
617
|
+
|
|
618
|
+
/* *
|
|
619
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
620
|
+
* you may not use this file except in compliance with the License.
|
|
621
|
+
* You may obtain a copy of the License at
|
|
622
|
+
*
|
|
623
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
624
|
+
*
|
|
625
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
626
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
627
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
628
|
+
* See the License for the specific language governing permissions and
|
|
629
|
+
* limitations under the License.
|
|
630
|
+
*
|
|
631
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
632
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
633
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
634
|
+
* */
|
|
635
|
+
var selectorMemoizationOptions = {
|
|
636
|
+
memoizeOptions: {
|
|
637
|
+
maxSize: 1000,
|
|
638
|
+
resultEqualityCheck: isEqual
|
|
639
|
+
}
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
var utils$3 = /*#__PURE__*/Object.freeze({
|
|
643
|
+
__proto__: null,
|
|
644
|
+
selectorMemoizationOptions: selectorMemoizationOptions
|
|
645
|
+
});
|
|
646
|
+
|
|
647
|
+
/* *
|
|
648
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
649
|
+
* you may not use this file except in compliance with the License.
|
|
650
|
+
* You may obtain a copy of the License at
|
|
651
|
+
*
|
|
652
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
653
|
+
*
|
|
654
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
655
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
656
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
657
|
+
* See the License for the specific language governing permissions and
|
|
658
|
+
* limitations under the License.
|
|
659
|
+
*
|
|
660
|
+
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
661
|
+
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
662
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
663
|
+
* */
|
|
664
|
+
var getServicesStore = function getServicesStore(store) {
|
|
665
|
+
return store === null || store === void 0 ? void 0 : store.services;
|
|
666
|
+
};
|
|
667
|
+
/**
|
|
668
|
+
* Retrieves all serviceIds
|
|
669
|
+
*
|
|
670
|
+
* Example: serviceIds = getServiceIds(store)
|
|
671
|
+
* @param {object} store store: object - object from which the service state will be extracted
|
|
672
|
+
* @returns {array} returnType: array - an array of all serviceIds
|
|
673
|
+
*/
|
|
674
|
+
var getServiceIds = createSelector(getServicesStore, function (serviceState) {
|
|
675
|
+
var _serviceState$allIds;
|
|
676
|
+
return (_serviceState$allIds = serviceState === null || serviceState === void 0 ? void 0 : serviceState.allIds) !== null && _serviceState$allIds !== void 0 ? _serviceState$allIds : [];
|
|
677
|
+
}, selectorMemoizationOptions);
|
|
678
|
+
/**
|
|
679
|
+
* Gets map services
|
|
680
|
+
*
|
|
681
|
+
* Example: services = getServices(store)
|
|
682
|
+
* @param {object} store store: object - Store object
|
|
683
|
+
* @returns {object} returnType: ServiceState
|
|
684
|
+
*/
|
|
685
|
+
var getServices = createSelector(getServicesStore, function (store) {
|
|
686
|
+
var _store$byId;
|
|
687
|
+
return (_store$byId = store === null || store === void 0 ? void 0 : store.byId) !== null && _store$byId !== void 0 ? _store$byId : {};
|
|
688
|
+
}, selectorMemoizationOptions);
|
|
689
|
+
/**
|
|
690
|
+
* Gets the service object by its url
|
|
691
|
+
*
|
|
692
|
+
* Example: service = getServiceByName(store, 'serviceName')
|
|
693
|
+
* @param {object} store store: object - Store object
|
|
694
|
+
* @returns {ReduxService} returnType: Service
|
|
695
|
+
*/
|
|
696
|
+
var getServiceByUrl = createSelector(getServicesStore, function (state, serviceUrl) {
|
|
697
|
+
return serviceUrl;
|
|
698
|
+
}, function (serviceState, serviceUrl) {
|
|
699
|
+
if (!serviceState) {
|
|
700
|
+
return undefined;
|
|
701
|
+
}
|
|
702
|
+
return Object.values(serviceState.byId).find(function (service) {
|
|
703
|
+
return service.serviceUrl === serviceUrl;
|
|
704
|
+
});
|
|
705
|
+
}, selectorMemoizationOptions);
|
|
706
|
+
/**
|
|
707
|
+
* Gets the layer from the store using the serviceUrl and layerName
|
|
708
|
+
*
|
|
709
|
+
* Example: layers = getLayersFromService(store, 'https://geoservices.knmi.nl/...')
|
|
710
|
+
* @param {object} store store: object - object from which the layers state will be extracted
|
|
711
|
+
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
712
|
+
* @returns {array} returnType: ServiceLayer[] - All layers within the service object.
|
|
713
|
+
*/
|
|
714
|
+
var getLayersFromServiceSelector = createSelector(getServiceByUrl, function (service) {
|
|
715
|
+
var _service$layers;
|
|
716
|
+
return (_service$layers = service === null || service === void 0 ? void 0 : service.layers) !== null && _service$layers !== void 0 ? _service$layers : [];
|
|
717
|
+
}, selectorMemoizationOptions);
|
|
718
|
+
/**
|
|
719
|
+
* Gets the layer from the store using the serviceUrl and layerName
|
|
720
|
+
*
|
|
721
|
+
* Example: layer = getLayerFromService(store, 'https://geoservices.knmi.nl/...', 'radar')
|
|
722
|
+
* @param {object} store store: object - The application store
|
|
723
|
+
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
724
|
+
* @param {string} layerName layerName: string - Name of the layer in the service
|
|
725
|
+
* @returns {ServiceLayer} returnType: ServiceLayer - The layer from the service object.
|
|
726
|
+
*/
|
|
727
|
+
var getLayerFromService = createSelector(getLayersFromServiceSelector, function (_store, _serviceUrl, layerName) {
|
|
728
|
+
return layerName;
|
|
729
|
+
}, function (layers, layerName) {
|
|
730
|
+
return layers.find(function (serviceLayer) {
|
|
731
|
+
return serviceLayer.name === layerName;
|
|
732
|
+
});
|
|
733
|
+
}, selectorMemoizationOptions);
|
|
734
|
+
/**
|
|
735
|
+
* Gets the layers stylelist from the servicestore using the serviceUrl and layerName
|
|
736
|
+
*
|
|
737
|
+
* Example: layerStyles = getLayerStyles(store, layerService, layerName);
|
|
738
|
+
* @param {object} store store: object - store from which the layers state will be extracted
|
|
739
|
+
* @param {string} serviceUrl serviceUrl: string - Url of the service where the layer belongs to
|
|
740
|
+
* @param {string} layerName layerName: string - Name of the layer in the service
|
|
741
|
+
* @returns {array} returnType: Style[] - array containing layer styles
|
|
742
|
+
*/
|
|
743
|
+
var getLayerStyles = createSelector(getLayerFromService, function (layer) {
|
|
744
|
+
var _layer$styles;
|
|
745
|
+
return (_layer$styles = layer === null || layer === void 0 ? void 0 : layer.styles) !== null && _layer$styles !== void 0 ? _layer$styles : [];
|
|
746
|
+
}, selectorMemoizationOptions);
|
|
747
|
+
|
|
748
|
+
var selectors$7 = /*#__PURE__*/Object.freeze({
|
|
749
|
+
__proto__: null,
|
|
750
|
+
getLayerFromService: getLayerFromService,
|
|
751
|
+
getLayerStyles: getLayerStyles,
|
|
752
|
+
getLayersFromServiceSelector: getLayersFromServiceSelector,
|
|
753
|
+
getServiceByUrl: getServiceByUrl,
|
|
754
|
+
getServiceIds: getServiceIds,
|
|
755
|
+
getServices: getServices
|
|
756
|
+
});
|
|
757
|
+
|
|
758
|
+
/* *
|
|
759
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
760
|
+
* you may not use this file except in compliance with the License.
|
|
761
|
+
* You may obtain a copy of the License at
|
|
762
|
+
*
|
|
763
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
764
|
+
*
|
|
765
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
766
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
767
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
768
|
+
* See the License for the specific language governing permissions and
|
|
769
|
+
* limitations under the License.
|
|
770
|
+
*
|
|
771
|
+
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
772
|
+
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
773
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
774
|
+
* */
|
|
775
|
+
|
|
776
|
+
var types$5 = /*#__PURE__*/Object.freeze({
|
|
777
|
+
__proto__: null
|
|
778
|
+
});
|
|
779
|
+
|
|
780
|
+
/* *
|
|
781
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
782
|
+
* you may not use this file except in compliance with the License.
|
|
783
|
+
* You may obtain a copy of the License at
|
|
784
|
+
*
|
|
785
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
786
|
+
*
|
|
787
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
788
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
789
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
790
|
+
* See the License for the specific language governing permissions and
|
|
791
|
+
* limitations under the License.
|
|
792
|
+
*
|
|
793
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
794
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
795
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
796
|
+
* */
|
|
797
|
+
var getUserAddedServices = function getUserAddedServices() {
|
|
798
|
+
try {
|
|
799
|
+
var storedString = window.localStorage.getItem('userAddedServices');
|
|
800
|
+
var parsedData = JSON.parse(storedString);
|
|
801
|
+
if (parsedData && _typeof(parsedData) === 'object') {
|
|
802
|
+
return Object.entries(parsedData).reduce(function (userServices, _ref) {
|
|
803
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
804
|
+
serviceUrl = _ref2[0],
|
|
805
|
+
service = _ref2[1];
|
|
806
|
+
return _objectSpread2(_objectSpread2({}, userServices), isNoIdService(service) ? _defineProperty({}, serviceUrl, _objectSpread2(_objectSpread2({}, service), {}, {
|
|
807
|
+
scope: 'user'
|
|
808
|
+
})) : {});
|
|
809
|
+
}, {});
|
|
810
|
+
}
|
|
811
|
+
} catch (e) {
|
|
812
|
+
console.error('Unable to read services from localStorage: ', e);
|
|
676
813
|
}
|
|
677
|
-
}
|
|
814
|
+
return {};
|
|
815
|
+
};
|
|
816
|
+
var setUserAddedServices = function setUserAddedServices(services) {
|
|
817
|
+
try {
|
|
818
|
+
window.localStorage.setItem('userAddedServices', JSON.stringify(services));
|
|
819
|
+
} catch (e) {
|
|
820
|
+
console.error('Unable to write services to localStorage: ', e);
|
|
821
|
+
}
|
|
822
|
+
};
|
|
823
|
+
var isNoIdService = function isNoIdService(param) {
|
|
824
|
+
var serviceParam = param;
|
|
825
|
+
return !!(serviceParam !== null && serviceParam !== void 0 && serviceParam.name && serviceParam !== null && serviceParam !== void 0 && serviceParam.url);
|
|
826
|
+
};
|
|
827
|
+
|
|
828
|
+
/* *
|
|
829
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
830
|
+
* you may not use this file except in compliance with the License.
|
|
831
|
+
* You may obtain a copy of the License at
|
|
832
|
+
*
|
|
833
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
834
|
+
*
|
|
835
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
836
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
837
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
838
|
+
* See the License for the specific language governing permissions and
|
|
839
|
+
* limitations under the License.
|
|
840
|
+
*
|
|
841
|
+
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
842
|
+
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
843
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
844
|
+
* */
|
|
845
|
+
var AnimationLength;
|
|
846
|
+
(function (AnimationLength) {
|
|
847
|
+
AnimationLength[AnimationLength["Minutes15"] = 15] = "Minutes15";
|
|
848
|
+
AnimationLength[AnimationLength["Minutes30"] = 30] = "Minutes30";
|
|
849
|
+
AnimationLength[AnimationLength["Hours1"] = 60] = "Hours1";
|
|
850
|
+
AnimationLength[AnimationLength["Hours2"] = 120] = "Hours2";
|
|
851
|
+
AnimationLength[AnimationLength["Hours3"] = 180] = "Hours3";
|
|
852
|
+
AnimationLength[AnimationLength["Hours6"] = 360] = "Hours6";
|
|
853
|
+
AnimationLength[AnimationLength["Hours12"] = 720] = "Hours12";
|
|
854
|
+
AnimationLength[AnimationLength["Hours24"] = 1440] = "Hours24";
|
|
855
|
+
})(AnimationLength || (AnimationLength = {}));
|
|
856
|
+
|
|
857
|
+
var types$4 = /*#__PURE__*/Object.freeze({
|
|
858
|
+
__proto__: null,
|
|
859
|
+
get AnimationLength () { return AnimationLength; }
|
|
860
|
+
});
|
|
678
861
|
|
|
679
862
|
var dateFormat = dateUtils.DATE_FORMAT_UTC;
|
|
680
863
|
var createMap = function createMap(_ref) {
|
|
@@ -774,20 +957,28 @@ var createMap = function createMap(_ref) {
|
|
|
774
957
|
var checkValidLayersPayload = function checkValidLayersPayload(layers, mapId) {
|
|
775
958
|
/* Check for duplicate ids */
|
|
776
959
|
var layerIds = {};
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
960
|
+
var _iterator = _createForOfIteratorHelper(layers),
|
|
961
|
+
_step;
|
|
962
|
+
try {
|
|
963
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
964
|
+
var layer = _step.value;
|
|
965
|
+
if (layer.id) {
|
|
966
|
+
/* Check if layer is already added to a different map */
|
|
967
|
+
if (layer.mapId && mapId && layer.mapId !== mapId) {
|
|
968
|
+
return false;
|
|
969
|
+
}
|
|
970
|
+
/* Check duplicate */
|
|
971
|
+
if (!layerIds[layer.id]) {
|
|
972
|
+
layerIds[layer.id] = true;
|
|
973
|
+
} else {
|
|
974
|
+
return false;
|
|
975
|
+
}
|
|
789
976
|
}
|
|
790
977
|
}
|
|
978
|
+
} catch (err) {
|
|
979
|
+
_iterator.e(err);
|
|
980
|
+
} finally {
|
|
981
|
+
_iterator.f();
|
|
791
982
|
}
|
|
792
983
|
return true;
|
|
793
984
|
};
|
|
@@ -883,7 +1074,7 @@ var produceDraftStateSetMapDimensionFromLayerChangeDimension = function produceD
|
|
|
883
1074
|
* @param newIndex New index of element in array
|
|
884
1075
|
*/
|
|
885
1076
|
function moveArrayElements(array, oldIndex, newIndex) {
|
|
886
|
-
var newArray =
|
|
1077
|
+
var newArray = _toConsumableArray(array);
|
|
887
1078
|
var indexNew = Math.min(newIndex, newArray.length - 1);
|
|
888
1079
|
newArray.splice(indexNew, 0, newArray.splice(oldIndex, 1)[0]);
|
|
889
1080
|
return newArray;
|
|
@@ -988,13 +1179,14 @@ var parseTimeDimToISO8601Interval = function parseTimeDimToISO8601Interval(timeI
|
|
|
988
1179
|
}
|
|
989
1180
|
var intervalList = timeInterval.split(',').map(function (interval) {
|
|
990
1181
|
var _interval$split = interval.split('/'),
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
1182
|
+
_interval$split2 = _slicedToArray(_interval$split, 3),
|
|
1183
|
+
startTime = _interval$split2[0],
|
|
1184
|
+
endTime = _interval$split2[1],
|
|
1185
|
+
duration = _interval$split2[2];
|
|
994
1186
|
return {
|
|
995
|
-
startTime: startTime
|
|
996
|
-
endTime: endTime
|
|
997
|
-
duration: duration
|
|
1187
|
+
startTime: startTime === null || startTime === void 0 ? void 0 : startTime.trim(),
|
|
1188
|
+
endTime: endTime === null || endTime === void 0 ? void 0 : endTime.trim(),
|
|
1189
|
+
duration: duration === null || duration === void 0 ? void 0 : duration.trim()
|
|
998
1190
|
};
|
|
999
1191
|
});
|
|
1000
1192
|
// Filter out intervals with missing start, end or duration
|
|
@@ -1020,23 +1212,6 @@ var utils$2 = /*#__PURE__*/Object.freeze({
|
|
|
1020
1212
|
produceDraftStateSetWebMapDimension: produceDraftStateSetWebMapDimension
|
|
1021
1213
|
});
|
|
1022
1214
|
|
|
1023
|
-
/* *
|
|
1024
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1025
|
-
* you may not use this file except in compliance with the License.
|
|
1026
|
-
* You may obtain a copy of the License at
|
|
1027
|
-
*
|
|
1028
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1029
|
-
*
|
|
1030
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1031
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1032
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1033
|
-
* See the License for the specific language governing permissions and
|
|
1034
|
-
* limitations under the License.
|
|
1035
|
-
*
|
|
1036
|
-
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1037
|
-
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
1038
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1039
|
-
* */
|
|
1040
1215
|
var replaceLayerIdsToEnsureUniqueLayerIdsInStore = function replaceLayerIdsToEnsureUniqueLayerIdsInStore(layerIds) {
|
|
1041
1216
|
var layers = layerIds.layers,
|
|
1042
1217
|
autoTimeStepLayerId = layerIds.autoTimeStepLayerId,
|
|
@@ -1062,16 +1237,16 @@ var replaceLayerIdsToEnsureUniqueLayerIdsInStore = function replaceLayerIdsToEns
|
|
|
1062
1237
|
});
|
|
1063
1238
|
var _layersWithNewIds = layers.map(function (layer, index) {
|
|
1064
1239
|
if (layer.id && index === autoTimeStepLayerIndex) {
|
|
1065
|
-
return
|
|
1240
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1066
1241
|
id: autoTimeStepLayerIdNew
|
|
1067
1242
|
});
|
|
1068
1243
|
}
|
|
1069
1244
|
if (layer.id && index === autoUpdateLayerIndex) {
|
|
1070
|
-
return
|
|
1245
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1071
1246
|
id: autoUpdateLayerIdNew
|
|
1072
1247
|
});
|
|
1073
1248
|
}
|
|
1074
|
-
return
|
|
1249
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1075
1250
|
id: webmapUtils.generateLayerId()
|
|
1076
1251
|
});
|
|
1077
1252
|
});
|
|
@@ -1096,7 +1271,7 @@ var replaceLayerIdsToEnsureUniqueLayerIdsInStore = function replaceLayerIdsToEns
|
|
|
1096
1271
|
// The code below is executed if neither auto timestep
|
|
1097
1272
|
// nor auto update layer id was provided
|
|
1098
1273
|
var layersWithNewIds = layers.map(function (layer) {
|
|
1099
|
-
return
|
|
1274
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1100
1275
|
id: webmapUtils.generateLayerId()
|
|
1101
1276
|
});
|
|
1102
1277
|
});
|
|
@@ -1110,11 +1285,11 @@ function replaceLayerIds(layers, autoLayerIdOld, autoLayerIdNew) {
|
|
|
1110
1285
|
});
|
|
1111
1286
|
var layersWithNewIds = layers.map(function (layer, index) {
|
|
1112
1287
|
if (layer.id && index === autoLayerIndex) {
|
|
1113
|
-
return
|
|
1288
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1114
1289
|
id: autoLayerIdNew
|
|
1115
1290
|
});
|
|
1116
1291
|
}
|
|
1117
|
-
return
|
|
1292
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1118
1293
|
id: webmapUtils.generateLayerId()
|
|
1119
1294
|
});
|
|
1120
1295
|
});
|
|
@@ -1281,23 +1456,6 @@ var types$3 = /*#__PURE__*/Object.freeze({
|
|
|
1281
1456
|
get LayerStatus () { return LayerStatus; }
|
|
1282
1457
|
});
|
|
1283
1458
|
|
|
1284
|
-
/* *
|
|
1285
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1286
|
-
* you may not use this file except in compliance with the License.
|
|
1287
|
-
* You may obtain a copy of the License at
|
|
1288
|
-
*
|
|
1289
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1290
|
-
*
|
|
1291
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
1292
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1293
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1294
|
-
* See the License for the specific language governing permissions and
|
|
1295
|
-
* limitations under the License.
|
|
1296
|
-
*
|
|
1297
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
1298
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
1299
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
1300
|
-
* */
|
|
1301
1459
|
/**
|
|
1302
1460
|
* Sets a dimension value for a layer in the state. If the dimension does not exist it is added to the layer.
|
|
1303
1461
|
* @param draft The draft layerstate
|
|
@@ -1313,7 +1471,7 @@ var produceLayerDimensionDraftState = function produceLayerDimensionDraftState(d
|
|
|
1313
1471
|
return layerDim.name === dimensionValueToUpdate.name;
|
|
1314
1472
|
});
|
|
1315
1473
|
if (existingLayerDimIndex < 0) {
|
|
1316
|
-
layer.dimensions.push(
|
|
1474
|
+
layer.dimensions.push(_objectSpread2({}, dimensionValueToUpdate));
|
|
1317
1475
|
} else {
|
|
1318
1476
|
var layerDimension = layer.dimensions[existingLayerDimIndex];
|
|
1319
1477
|
if (dimensionValueToUpdate.currentValue) {
|
|
@@ -1347,7 +1505,7 @@ var isActionLayerSynced = function isActionLayerSynced(state, layerIdFromAction,
|
|
|
1347
1505
|
var produceDimensionActionForMapLayer = function produceDimensionActionForMapLayer(layerDim, wmjsDimension, newDimension) {
|
|
1348
1506
|
// If new value does not occur in the wmjsdimension - do not update the value but set the validSyncSelection to false
|
|
1349
1507
|
if (wmjsDimension.getIndexForValue(newDimension.currentValue) === -1) {
|
|
1350
|
-
return
|
|
1508
|
+
return _objectSpread2(_objectSpread2({}, layerDim), {}, {
|
|
1351
1509
|
name: newDimension.name,
|
|
1352
1510
|
units: newDimension.units,
|
|
1353
1511
|
currentValue: layerDim.currentValue,
|
|
@@ -1355,7 +1513,7 @@ var produceDimensionActionForMapLayer = function produceDimensionActionForMapLay
|
|
|
1355
1513
|
});
|
|
1356
1514
|
}
|
|
1357
1515
|
// Otherwise, update to new value and set validSyncSelection to true
|
|
1358
|
-
return
|
|
1516
|
+
return _objectSpread2(_objectSpread2({}, layerDim), {}, {
|
|
1359
1517
|
name: newDimension.name,
|
|
1360
1518
|
units: newDimension.units,
|
|
1361
1519
|
currentValue: newDimension.currentValue,
|
|
@@ -1379,20 +1537,20 @@ var produceDraftStateForAllLayersForDimensionWithinMap = function produceDraftSt
|
|
|
1379
1537
|
return;
|
|
1380
1538
|
}
|
|
1381
1539
|
var wmjsDimension = webmapUtils.getWMJSDimensionForLayerAndDimension(layerId, dimension.name);
|
|
1382
|
-
if (wmjsDimension
|
|
1540
|
+
if (wmjsDimension !== null && wmjsDimension !== void 0 && wmjsDimension.linked && wmjsDimension.name === 'reference_time') {
|
|
1383
1541
|
wmjsDimension.linked = false;
|
|
1384
1542
|
}
|
|
1385
|
-
if (layerIdFromAction === layerId || wmjsDimension
|
|
1543
|
+
if (layerIdFromAction === layerId || wmjsDimension !== null && wmjsDimension !== void 0 && wmjsDimension.linked) {
|
|
1386
1544
|
var evenWhenOutsideRange = true;
|
|
1387
1545
|
var closestValue = wmjsDimension ? wmjsDimension.getClosestValue(dimension.currentValue, evenWhenOutsideRange) : dimension.currentValue;
|
|
1388
1546
|
var synced = dimension.synced !== undefined ? {
|
|
1389
1547
|
synced: dimension.synced
|
|
1390
1548
|
} : {};
|
|
1391
|
-
var dimensionValueToUpdate =
|
|
1549
|
+
var dimensionValueToUpdate = _objectSpread2(_objectSpread2({
|
|
1392
1550
|
name: dimension.name,
|
|
1393
1551
|
units: dimension.units,
|
|
1394
1552
|
currentValue: closestValue
|
|
1395
|
-
}, synced, {
|
|
1553
|
+
}, synced), {}, {
|
|
1396
1554
|
validSyncSelection: true
|
|
1397
1555
|
});
|
|
1398
1556
|
/* Set the dimension value for this layer */
|
|
@@ -1419,9 +1577,9 @@ var produceDraftStateForAllLayersForDimensionWithinMap = function produceDraftSt
|
|
|
1419
1577
|
*/
|
|
1420
1578
|
var filterNonTimeDimensions = function filterNonTimeDimensions(dimensions) {
|
|
1421
1579
|
var _dimensions$filter;
|
|
1422
|
-
return (_dimensions$filter = dimensions
|
|
1580
|
+
return (_dimensions$filter = dimensions === null || dimensions === void 0 ? void 0 : dimensions.filter(function (dim) {
|
|
1423
1581
|
return dim.name !== 'time';
|
|
1424
|
-
}))
|
|
1582
|
+
})) !== null && _dimensions$filter !== void 0 ? _dimensions$filter : [];
|
|
1425
1583
|
};
|
|
1426
1584
|
/**
|
|
1427
1585
|
* Returns the list of dimensions without the time dimension
|
|
@@ -1429,11 +1587,11 @@ var filterNonTimeDimensions = function filterNonTimeDimensions(dimensions) {
|
|
|
1429
1587
|
*/
|
|
1430
1588
|
var filterCurrentValueFromDimensions = function filterCurrentValueFromDimensions(dimensions) {
|
|
1431
1589
|
var _dimensions$map;
|
|
1432
|
-
return (_dimensions$map = dimensions
|
|
1590
|
+
return (_dimensions$map = dimensions === null || dimensions === void 0 ? void 0 : dimensions.map(function (dim) {
|
|
1433
1591
|
// eslint-disable-next-line no-param-reassign
|
|
1434
1592
|
dim.currentValue = '';
|
|
1435
1593
|
return dim;
|
|
1436
|
-
}))
|
|
1594
|
+
})) !== null && _dimensions$map !== void 0 ? _dimensions$map : [];
|
|
1437
1595
|
};
|
|
1438
1596
|
/**
|
|
1439
1597
|
* The timeslider range is depending on values set via reference_time dimension.
|
|
@@ -1445,7 +1603,7 @@ var filterCurrentValueFromDimensions = function filterCurrentValueFromDimensions
|
|
|
1445
1603
|
* @returns
|
|
1446
1604
|
*/
|
|
1447
1605
|
var updateMinMaxValueWhenReferenceTimeChanges = function updateMinMaxValueWhenReferenceTimeChanges(draftLayer, dimensionValueToUpdate) {
|
|
1448
|
-
if (!(draftLayer
|
|
1606
|
+
if (!(draftLayer !== null && draftLayer !== void 0 && draftLayer.id) || !(draftLayer !== null && draftLayer !== void 0 && draftLayer.dimensions) || dimensionValueToUpdate.name !== 'reference_time') {
|
|
1449
1607
|
return;
|
|
1450
1608
|
}
|
|
1451
1609
|
// If dimension reference_time is updated, we might have to update the time minValue and maxValue as well.
|
|
@@ -1459,7 +1617,7 @@ var updateMinMaxValueWhenReferenceTimeChanges = function updateMinMaxValueWhenRe
|
|
|
1459
1617
|
if (reduxTimeDim && timeDimension && referenceTimeDimension) {
|
|
1460
1618
|
// When the reference time changes, a new set of timevalues needs to be set in the layer.
|
|
1461
1619
|
// From the new timevalues the min.max can be derived.
|
|
1462
|
-
timeDimension
|
|
1620
|
+
timeDimension === null || timeDimension === void 0 || timeDimension.setTimeValuesForReferenceTime(dimensionValueToUpdate.currentValue, referenceTimeDimension);
|
|
1463
1621
|
reduxTimeDim.minValue = timeDimension.getFirstValue();
|
|
1464
1622
|
reduxTimeDim.maxValue = timeDimension.getLastValue();
|
|
1465
1623
|
}
|
|
@@ -1491,7 +1649,7 @@ var createLayer = function createLayer(_ref) {
|
|
|
1491
1649
|
status = _ref$status === void 0 ? 'default' : _ref$status,
|
|
1492
1650
|
_ref$useLatestReferen = _ref.useLatestReferenceTime,
|
|
1493
1651
|
useLatestReferenceTime = _ref$useLatestReferen === void 0 ? true : _ref$useLatestReferen,
|
|
1494
|
-
props =
|
|
1652
|
+
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
1495
1653
|
var wmjsLayer = webmapUtils.getWMLayerById(id);
|
|
1496
1654
|
var dimensions = props.dimensions || (wmjsLayer ? wmjsLayer.getDimensions() : []).map(function (dim) {
|
|
1497
1655
|
return {
|
|
@@ -1500,7 +1658,7 @@ var createLayer = function createLayer(_ref) {
|
|
|
1500
1658
|
units: dim.units
|
|
1501
1659
|
};
|
|
1502
1660
|
});
|
|
1503
|
-
return
|
|
1661
|
+
return _objectSpread2(_objectSpread2({}, props), {}, {
|
|
1504
1662
|
dimensions: dimensions,
|
|
1505
1663
|
id: id,
|
|
1506
1664
|
opacity: opacity,
|
|
@@ -1533,7 +1691,7 @@ var slice$6 = createSlice({
|
|
|
1533
1691
|
}
|
|
1534
1692
|
if (!draft.byId[layerId]) {
|
|
1535
1693
|
// TODO: (Sander de Snaijer, 2020-03-19) remove layerIds from the layer utils
|
|
1536
|
-
draft.byId[layerId] = createLayer(
|
|
1694
|
+
draft.byId[layerId] = createLayer(_objectSpread2(_objectSpread2({}, layer), {}, {
|
|
1537
1695
|
id: layerId,
|
|
1538
1696
|
mapId: mapId
|
|
1539
1697
|
}));
|
|
@@ -1547,7 +1705,7 @@ var slice$6 = createSlice({
|
|
|
1547
1705
|
mapId = _action$payload2.mapId;
|
|
1548
1706
|
var oldLayer = draft.byId[oldLayerId];
|
|
1549
1707
|
if (oldLayer && !draft.byId[newLayerId]) {
|
|
1550
|
-
draft.byId[newLayerId] = createLayer(
|
|
1708
|
+
draft.byId[newLayerId] = createLayer(_objectSpread2(_objectSpread2({}, draft.byId[oldLayerId]), {}, {
|
|
1551
1709
|
id: newLayerId,
|
|
1552
1710
|
mapId: mapId
|
|
1553
1711
|
}));
|
|
@@ -1619,7 +1777,7 @@ var slice$6 = createSlice({
|
|
|
1619
1777
|
sourceLayerId = _action$payload10.sourceLayerId;
|
|
1620
1778
|
if (draft.byId[layerId]) {
|
|
1621
1779
|
var _draft$byId$sourceLay;
|
|
1622
|
-
draft.byId[layerId].geojson = (_draft$byId$sourceLay = draft.byId[sourceLayerId])
|
|
1780
|
+
draft.byId[layerId].geojson = (_draft$byId$sourceLay = draft.byId[sourceLayerId]) === null || _draft$byId$sourceLay === void 0 ? void 0 : _draft$byId$sourceLay.geojson;
|
|
1623
1781
|
}
|
|
1624
1782
|
},
|
|
1625
1783
|
layerDelete: function layerDelete(draft, action) {
|
|
@@ -1672,7 +1830,7 @@ var slice$6 = createSlice({
|
|
|
1672
1830
|
Here we set the layers for the mapId from the action. byId and allIds is updated.
|
|
1673
1831
|
*/
|
|
1674
1832
|
layers.forEach(function (layer) {
|
|
1675
|
-
draft.byId[layer.id] = createLayer(
|
|
1833
|
+
draft.byId[layer.id] = createLayer(_objectSpread2({
|
|
1676
1834
|
id: layer.id,
|
|
1677
1835
|
mapId: mapId
|
|
1678
1836
|
}, layer));
|
|
@@ -1706,7 +1864,7 @@ var slice$6 = createSlice({
|
|
|
1706
1864
|
});
|
|
1707
1865
|
// set over and base layers
|
|
1708
1866
|
filtererdBaseLayers.forEach(function (layer) {
|
|
1709
|
-
draft.byId[layer.id] = createLayer(
|
|
1867
|
+
draft.byId[layer.id] = createLayer(_objectSpread2({
|
|
1710
1868
|
id: layer.id,
|
|
1711
1869
|
layerType: layer.layerType,
|
|
1712
1870
|
mapId: mapId
|
|
@@ -1720,7 +1878,7 @@ var slice$6 = createSlice({
|
|
|
1720
1878
|
return;
|
|
1721
1879
|
}
|
|
1722
1880
|
if (!draft.byId[layer.id]) {
|
|
1723
|
-
draft.byId[layer.id] = createLayer(
|
|
1881
|
+
draft.byId[layer.id] = createLayer(_objectSpread2({
|
|
1724
1882
|
id: layer.id,
|
|
1725
1883
|
layerType: layer.layerType
|
|
1726
1884
|
}, layer));
|
|
@@ -1741,7 +1899,7 @@ var slice$6 = createSlice({
|
|
|
1741
1899
|
return;
|
|
1742
1900
|
}
|
|
1743
1901
|
if (!draft.availableBaseLayers.byId[layer.id]) {
|
|
1744
|
-
draft.availableBaseLayers.byId[layer.id] = createLayer(
|
|
1902
|
+
draft.availableBaseLayers.byId[layer.id] = createLayer(_objectSpread2({
|
|
1745
1903
|
id: layer.id,
|
|
1746
1904
|
layerType: layer.layerType
|
|
1747
1905
|
}, layer));
|
|
@@ -1755,7 +1913,7 @@ var slice$6 = createSlice({
|
|
|
1755
1913
|
if (layer.layerType !== LayerType.baseLayer || draft.availableBaseLayers.byId[layer.id] || !layer.mapId) {
|
|
1756
1914
|
return;
|
|
1757
1915
|
}
|
|
1758
|
-
draft.availableBaseLayers.byId[layer.id] = createLayer(
|
|
1916
|
+
draft.availableBaseLayers.byId[layer.id] = createLayer(_objectSpread2({
|
|
1759
1917
|
id: layer.id,
|
|
1760
1918
|
layerType: layer.layerType
|
|
1761
1919
|
}, layer));
|
|
@@ -1780,7 +1938,7 @@ var slice$6 = createSlice({
|
|
|
1780
1938
|
if (layer.layerType !== LayerType.baseLayer || !layer.mapId) {
|
|
1781
1939
|
return;
|
|
1782
1940
|
}
|
|
1783
|
-
draft.availableBaseLayers.byId[layer.id] = createLayer(
|
|
1941
|
+
draft.availableBaseLayers.byId[layer.id] = createLayer(_objectSpread2({}, layer));
|
|
1784
1942
|
draft.availableBaseLayers.allIds.push(layer.id);
|
|
1785
1943
|
});
|
|
1786
1944
|
},
|
|
@@ -1799,7 +1957,7 @@ var slice$6 = createSlice({
|
|
|
1799
1957
|
layerStyle = _action$payload16.layerStyle,
|
|
1800
1958
|
layerDimensions = _action$payload16.layerDimensions;
|
|
1801
1959
|
if (layerStyle && draft.byId[layerStyle.layerId]) {
|
|
1802
|
-
draft.byId[layerStyle.layerId].style = layerStyle
|
|
1960
|
+
draft.byId[layerStyle.layerId].style = layerStyle === null || layerStyle === void 0 ? void 0 : layerStyle.style;
|
|
1803
1961
|
}
|
|
1804
1962
|
if (!layerDimensions) {
|
|
1805
1963
|
return;
|
|
@@ -1816,7 +1974,9 @@ var slice$6 = createSlice({
|
|
|
1816
1974
|
var _reduxLayer$dimension;
|
|
1817
1975
|
var layerId = layerToUpdate.id;
|
|
1818
1976
|
var reduxLayer = draft.byId[layerId];
|
|
1819
|
-
|
|
1977
|
+
/* Find the wmLayer */
|
|
1978
|
+
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
1979
|
+
(_reduxLayer$dimension = reduxLayer.dimensions) !== null && _reduxLayer$dimension !== void 0 ? _reduxLayer$dimension : reduxLayer.dimensions = [];
|
|
1820
1980
|
// remove dimensions not in incoming list of dimensions
|
|
1821
1981
|
reduxLayer.dimensions = reduxLayer.dimensions.filter(function (dimension) {
|
|
1822
1982
|
return incomingDimensionNames.includes(dimension.name);
|
|
@@ -1824,12 +1984,10 @@ var slice$6 = createSlice({
|
|
|
1824
1984
|
var reduxDimensions = reduxLayer.dimensions;
|
|
1825
1985
|
/* Now update or insert the dimension for each layer */
|
|
1826
1986
|
layerDimensions.dimensions.forEach(function (newLayerDimension) {
|
|
1827
|
-
/* Find the wmLayer */
|
|
1828
|
-
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
1829
1987
|
/* Find the wmDimension */
|
|
1830
|
-
var wmDimension = wmLayer
|
|
1988
|
+
var wmDimension = wmLayer === null || wmLayer === void 0 ? void 0 : wmLayer.getDimension(newLayerDimension.name);
|
|
1831
1989
|
/* This will set the new range of start/stop values for this dimension, making getClosestValue work properly */
|
|
1832
|
-
wmDimension
|
|
1990
|
+
wmDimension === null || wmDimension === void 0 || wmDimension.reInitializeValues(newLayerDimension.values);
|
|
1833
1991
|
var existingDimension = reduxDimensions.find(function (d) {
|
|
1834
1992
|
return d.name === newLayerDimension.name;
|
|
1835
1993
|
});
|
|
@@ -1846,9 +2004,24 @@ var slice$6 = createSlice({
|
|
|
1846
2004
|
}
|
|
1847
2005
|
} else if (layerId === layerDimensions.layerId) {
|
|
1848
2006
|
/* Otherwise add a new one, but only for this layer. */
|
|
1849
|
-
reduxDimensions.push(
|
|
2007
|
+
reduxDimensions.push(_objectSpread2({}, newLayerDimension));
|
|
1850
2008
|
}
|
|
1851
2009
|
});
|
|
2010
|
+
// Ensure that the time range is correctly set based on the current reference time value
|
|
2011
|
+
var timeDimension = layerDimensions.dimensions.find(function (layerDim) {
|
|
2012
|
+
return layerDim.name === 'time';
|
|
2013
|
+
});
|
|
2014
|
+
var refTimeDimension = layerDimensions.dimensions.find(function (layerDim) {
|
|
2015
|
+
return layerDim.name === 'reference_time';
|
|
2016
|
+
});
|
|
2017
|
+
if (timeDimension && refTimeDimension && wmLayer) {
|
|
2018
|
+
/* Find the wmDimension */
|
|
2019
|
+
var wmTimeDimension = wmLayer.getDimension('time');
|
|
2020
|
+
var wmRefTimeDimension = wmLayer.getDimension('reference_time');
|
|
2021
|
+
if (wmTimeDimension && wmRefTimeDimension) {
|
|
2022
|
+
wmTimeDimension === null || wmTimeDimension === void 0 || wmTimeDimension.setTimeValuesForReferenceTime(refTimeDimension.currentValue, wmRefTimeDimension);
|
|
2023
|
+
}
|
|
2024
|
+
}
|
|
1852
2025
|
});
|
|
1853
2026
|
},
|
|
1854
2027
|
// feature layer actions
|
|
@@ -1860,7 +2033,7 @@ var slice$6 = createSlice({
|
|
|
1860
2033
|
if (!layerId || layerIdsWithoutNewId.length === draft.allIds.length) {
|
|
1861
2034
|
return;
|
|
1862
2035
|
}
|
|
1863
|
-
var newLayerIds = [layerId].concat(layerIdsWithoutNewId);
|
|
2036
|
+
var newLayerIds = [layerId].concat(_toConsumableArray(layerIdsWithoutNewId));
|
|
1864
2037
|
draft.allIds = newLayerIds;
|
|
1865
2038
|
},
|
|
1866
2039
|
// feature layer actions
|
|
@@ -1907,7 +2080,7 @@ var slice$6 = createSlice({
|
|
|
1907
2080
|
return;
|
|
1908
2081
|
}
|
|
1909
2082
|
var bounds = intersectionBoundsLayer.geojson;
|
|
1910
|
-
var geoJSONProperties = intersectionLayer.defaultGeoJSONProperties || ((_currentLayer$geojson = currentLayer.geojson)
|
|
2083
|
+
var geoJSONProperties = intersectionLayer.defaultGeoJSONProperties || ((_currentLayer$geojson = currentLayer.geojson) === null || _currentLayer$geojson === void 0 || (_currentLayer$geojson = _currentLayer$geojson.features[0]) === null || _currentLayer$geojson === void 0 ? void 0 : _currentLayer$geojson.properties);
|
|
1911
2084
|
intersectionLayer.geojson = createInterSections(updatedGeoJSON, bounds, geoJSONProperties);
|
|
1912
2085
|
}
|
|
1913
2086
|
},
|
|
@@ -1961,7 +2134,7 @@ var slice$6 = createSlice({
|
|
|
1961
2134
|
var currentGeoJSON = draft.byId[layerId].geojson;
|
|
1962
2135
|
var lastFeatureIndex = currentGeoJSON !== undefined && getLastEmptyFeatureIndex(currentGeoJSON);
|
|
1963
2136
|
if (currentGeoJSON && lastFeatureIndex !== undefined) {
|
|
1964
|
-
var newGeoJSON =
|
|
2137
|
+
var newGeoJSON = _objectSpread2(_objectSpread2({}, currentGeoJSON), {}, {
|
|
1965
2138
|
features: currentGeoJSON.features.filter(function (_feature, index) {
|
|
1966
2139
|
return index !== lastFeatureIndex;
|
|
1967
2140
|
})
|
|
@@ -2000,7 +2173,7 @@ var slice$6 = createSlice({
|
|
|
2000
2173
|
});
|
|
2001
2174
|
}
|
|
2002
2175
|
/* And then append the targets form the action */
|
|
2003
|
-
targets.push.apply(targets, targetsFromAction);
|
|
2176
|
+
targets.push.apply(targets, _toConsumableArray(targetsFromAction));
|
|
2004
2177
|
targets.forEach(function (payload) {
|
|
2005
2178
|
var targetId = payload.targetId,
|
|
2006
2179
|
value = payload.value;
|
|
@@ -2049,28 +2222,11 @@ var slice$6 = createSlice({
|
|
|
2049
2222
|
var layerReducer = slice$6.reducer,
|
|
2050
2223
|
layerActions = slice$6.actions;
|
|
2051
2224
|
|
|
2052
|
-
/* *
|
|
2053
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2054
|
-
* you may not use this file except in compliance with the License.
|
|
2055
|
-
* You may obtain a copy of the License at
|
|
2056
|
-
*
|
|
2057
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2058
|
-
*
|
|
2059
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
2060
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2061
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2062
|
-
* See the License for the specific language governing permissions and
|
|
2063
|
-
* limitations under the License.
|
|
2064
|
-
*
|
|
2065
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
2066
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
2067
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
2068
|
-
* */
|
|
2069
2225
|
var moveToTop = function moveToTop(list, element) {
|
|
2070
2226
|
var filteredList = list.filter(function (item) {
|
|
2071
2227
|
return item !== element;
|
|
2072
2228
|
});
|
|
2073
|
-
var newOrder = [element].concat(filteredList);
|
|
2229
|
+
var newOrder = [element].concat(_toConsumableArray(filteredList));
|
|
2074
2230
|
return newOrder;
|
|
2075
2231
|
};
|
|
2076
2232
|
var createUIDialogElement = function createUIDialogElement(_ref) {
|
|
@@ -2209,14 +2365,19 @@ var createLayersWithIds = function createLayersWithIds(state, layers) {
|
|
|
2209
2365
|
return layers;
|
|
2210
2366
|
}
|
|
2211
2367
|
return produce(layers, function (draft) {
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2368
|
+
var _iterator = _createForOfIteratorHelper(draft),
|
|
2369
|
+
_step;
|
|
2370
|
+
try {
|
|
2371
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
2372
|
+
var layer = _step.value;
|
|
2373
|
+
if (!layer.id) {
|
|
2374
|
+
console.warn("Warning: Layer id was not provided");
|
|
2375
|
+
}
|
|
2219
2376
|
}
|
|
2377
|
+
} catch (err) {
|
|
2378
|
+
_iterator.e(err);
|
|
2379
|
+
} finally {
|
|
2380
|
+
_iterator.f();
|
|
2220
2381
|
}
|
|
2221
2382
|
});
|
|
2222
2383
|
};
|
|
@@ -2569,7 +2730,7 @@ var slice$4 = createSlice({
|
|
|
2569
2730
|
return;
|
|
2570
2731
|
}
|
|
2571
2732
|
if (checkIfMapLayerIdIsAlreadyTaken(draft, layerId)) {
|
|
2572
|
-
console.warn("Warning: Layer id "
|
|
2733
|
+
console.warn("Warning: Layer id ".concat(layerId, " was already taken"));
|
|
2573
2734
|
return;
|
|
2574
2735
|
}
|
|
2575
2736
|
if (!draft.byId[mapId].mapLayers.length) {
|
|
@@ -2590,7 +2751,7 @@ var slice$4 = createSlice({
|
|
|
2590
2751
|
return;
|
|
2591
2752
|
}
|
|
2592
2753
|
if (checkIfMapLayerIdIsAlreadyTaken(draft, newLayerId)) {
|
|
2593
|
-
console.warn("Warning: Layer id "
|
|
2754
|
+
console.warn("Warning: Layer id ".concat(newLayerId, " was already taken"));
|
|
2594
2755
|
return;
|
|
2595
2756
|
}
|
|
2596
2757
|
draft.byId[mapId].mapLayers.unshift(newLayerId);
|
|
@@ -2603,7 +2764,7 @@ var slice$4 = createSlice({
|
|
|
2603
2764
|
return;
|
|
2604
2765
|
}
|
|
2605
2766
|
if (checkIfMapLayerIdIsAlreadyTaken(draft, layerId)) {
|
|
2606
|
-
console.warn("Warning: Layer id "
|
|
2767
|
+
console.warn("Warning: Layer id ".concat(layerId, " was already taken"));
|
|
2607
2768
|
return;
|
|
2608
2769
|
}
|
|
2609
2770
|
if (layer.layerType === LayerType.baseLayer) {
|
|
@@ -2620,7 +2781,8 @@ var slice$4 = createSlice({
|
|
|
2620
2781
|
var id = _ref.id;
|
|
2621
2782
|
return id;
|
|
2622
2783
|
});
|
|
2623
|
-
var
|
|
2784
|
+
var _layerIds = _slicedToArray(layerIds, 1),
|
|
2785
|
+
activeLayerId = _layerIds[0];
|
|
2624
2786
|
if (draft.byId[mapId]) {
|
|
2625
2787
|
draft.byId[mapId].mapLayers = layerIds;
|
|
2626
2788
|
draft.byId[mapId].autoUpdateLayerId = activeLayerId;
|
|
@@ -2701,7 +2863,7 @@ var slice$4 = createSlice({
|
|
|
2701
2863
|
map.autoTimeStepLayerId = undefined;
|
|
2702
2864
|
return;
|
|
2703
2865
|
}
|
|
2704
|
-
var _map$mapLayers = map.mapLayers,
|
|
2866
|
+
var _map$mapLayers = _slicedToArray(map.mapLayers, 1),
|
|
2705
2867
|
activeLayerId = _map$mapLayers[0];
|
|
2706
2868
|
if (map.autoUpdateLayerId === layerId) {
|
|
2707
2869
|
map.autoUpdateLayerId = activeLayerId;
|
|
@@ -2743,7 +2905,7 @@ var slice$4 = createSlice({
|
|
|
2743
2905
|
});
|
|
2744
2906
|
}
|
|
2745
2907
|
/* And then append the targets form the action */
|
|
2746
|
-
targets.push.apply(targets, targetsFromAction);
|
|
2908
|
+
targets.push.apply(targets, _toConsumableArray(targetsFromAction));
|
|
2747
2909
|
targets.forEach(function (target) {
|
|
2748
2910
|
var targetId = target.targetId,
|
|
2749
2911
|
value = target.value;
|
|
@@ -2770,7 +2932,7 @@ var slice$4 = createSlice({
|
|
|
2770
2932
|
});
|
|
2771
2933
|
}
|
|
2772
2934
|
/* And then append the targets form the action */
|
|
2773
|
-
targets.push.apply(targets, targetsFromAction);
|
|
2935
|
+
targets.push.apply(targets, _toConsumableArray(targetsFromAction));
|
|
2774
2936
|
targets.forEach(function (payload) {
|
|
2775
2937
|
var targetId = payload.targetId,
|
|
2776
2938
|
bbox = payload.bbox,
|
|
@@ -2846,14 +3008,14 @@ var slice$4 = createSlice({
|
|
|
2846
3008
|
});
|
|
2847
3009
|
}
|
|
2848
3010
|
});
|
|
2849
|
-
var mapActions =
|
|
3011
|
+
var mapActions = _objectSpread2(_objectSpread2({}, slice$4.actions), {}, {
|
|
2850
3012
|
setMapPreset: setMapPreset,
|
|
2851
3013
|
mapChangeDimension: mapChangeDimension
|
|
2852
3014
|
});
|
|
2853
3015
|
var mapReducer = slice$4.reducer;
|
|
2854
3016
|
|
|
2855
3017
|
var layerStore = function layerStore(store) {
|
|
2856
|
-
return store
|
|
3018
|
+
return store === null || store === void 0 ? void 0 : store.layers;
|
|
2857
3019
|
};
|
|
2858
3020
|
/**
|
|
2859
3021
|
* Gets a layer from the layers part of the store by its Id
|
|
@@ -2904,7 +3066,7 @@ var getLayerByIdWithoutTimeDimension = createSelector([layerStore, function (lay
|
|
|
2904
3066
|
*/
|
|
2905
3067
|
var getLayersById = createSelector(layerStore, function (store) {
|
|
2906
3068
|
var _store$byId;
|
|
2907
|
-
return (_store$byId = store
|
|
3069
|
+
return (_store$byId = store === null || store === void 0 ? void 0 : store.byId) !== null && _store$byId !== void 0 ? _store$byId : null;
|
|
2908
3070
|
}, selectorMemoizationOptions);
|
|
2909
3071
|
/**
|
|
2910
3072
|
* Retrieves all layerIds
|
|
@@ -3001,7 +3163,7 @@ var getFeatureLayers = createSelector(getAllLayers, function (layers) {
|
|
|
3001
3163
|
*/
|
|
3002
3164
|
var getLayerDimensions = createSelector(getLayerById, function (layer) {
|
|
3003
3165
|
var _layer$dimensions;
|
|
3004
|
-
return (_layer$dimensions = layer
|
|
3166
|
+
return (_layer$dimensions = layer === null || layer === void 0 ? void 0 : layer.dimensions) !== null && _layer$dimensions !== void 0 ? _layer$dimensions : [];
|
|
3005
3167
|
}, selectorMemoizationOptions);
|
|
3006
3168
|
/**
|
|
3007
3169
|
* Gets dimensions of the passed layer, excluding the time dimension
|
|
@@ -3023,7 +3185,7 @@ var getLayerNonTimeDimensions = createSelector(getLayerDimensions, function (dim
|
|
|
3023
3185
|
* @returns {object} returnType: object - object of layer time dimension
|
|
3024
3186
|
*/
|
|
3025
3187
|
var getLayerTimeDimension = createSelector(getLayerDimensions, function (dimensions) {
|
|
3026
|
-
return dimensions
|
|
3188
|
+
return dimensions === null || dimensions === void 0 ? void 0 : dimensions.find(function (dimension) {
|
|
3027
3189
|
return dimension.name === 'time';
|
|
3028
3190
|
});
|
|
3029
3191
|
}, selectorMemoizationOptions);
|
|
@@ -3039,7 +3201,7 @@ var getLayerHasTimeDimension = createSelector(getLayerTimeDimension, function (t
|
|
|
3039
3201
|
return !!timeDimension;
|
|
3040
3202
|
}, selectorMemoizationOptions);
|
|
3041
3203
|
var getLayerCurrentTime = createSelector(getLayerTimeDimension, function (dimension) {
|
|
3042
|
-
return dimension
|
|
3204
|
+
return dimension === null || dimension === void 0 ? void 0 : dimension.currentValue;
|
|
3043
3205
|
}, selectorMemoizationOptions);
|
|
3044
3206
|
/**
|
|
3045
3207
|
* Gets specified dimension of the passed layer
|
|
@@ -3053,7 +3215,7 @@ var getLayerCurrentTime = createSelector(getLayerTimeDimension, function (dimens
|
|
|
3053
3215
|
var getLayerDimension = createSelector(getLayerDimensions, function (_store, _layerId, dimensionName) {
|
|
3054
3216
|
return dimensionName;
|
|
3055
3217
|
}, function (dimensions, dimensionName) {
|
|
3056
|
-
return dimensions
|
|
3218
|
+
return dimensions === null || dimensions === void 0 ? void 0 : dimensions.find(function (dimension) {
|
|
3057
3219
|
return dimension.name === dimensionName;
|
|
3058
3220
|
});
|
|
3059
3221
|
}, selectorMemoizationOptions);
|
|
@@ -3077,7 +3239,7 @@ var getLayerOpacity = createSelector(getLayerById, function (layer) {
|
|
|
3077
3239
|
* @returns {boolean} returnType: boolean - true if enabled, false if disabled
|
|
3078
3240
|
*/
|
|
3079
3241
|
var getLayerEnabled = createSelector(getLayerById, function (layer) {
|
|
3080
|
-
return Boolean(layer
|
|
3242
|
+
return Boolean(layer === null || layer === void 0 ? void 0 : layer.enabled);
|
|
3081
3243
|
}, selectorMemoizationOptions);
|
|
3082
3244
|
/**
|
|
3083
3245
|
* Gets layer name
|
|
@@ -3089,7 +3251,7 @@ var getLayerEnabled = createSelector(getLayerById, function (layer) {
|
|
|
3089
3251
|
*/
|
|
3090
3252
|
var getLayerName = createSelector(getLayerById, function (layer) {
|
|
3091
3253
|
var _layer$name;
|
|
3092
|
-
return (_layer$name = layer
|
|
3254
|
+
return (_layer$name = layer === null || layer === void 0 ? void 0 : layer.name) !== null && _layer$name !== void 0 ? _layer$name : '';
|
|
3093
3255
|
}, selectorMemoizationOptions);
|
|
3094
3256
|
/**
|
|
3095
3257
|
* Gets layer service
|
|
@@ -3101,7 +3263,7 @@ var getLayerName = createSelector(getLayerById, function (layer) {
|
|
|
3101
3263
|
*/
|
|
3102
3264
|
var getLayerService = createSelector(getLayerById, function (layer) {
|
|
3103
3265
|
var _layer$service;
|
|
3104
|
-
return (_layer$service = layer
|
|
3266
|
+
return (_layer$service = layer === null || layer === void 0 ? void 0 : layer.service) !== null && _layer$service !== void 0 ? _layer$service : '';
|
|
3105
3267
|
}, selectorMemoizationOptions);
|
|
3106
3268
|
/**
|
|
3107
3269
|
* Gets selected style of the passed layer
|
|
@@ -3156,7 +3318,7 @@ var getAvailableBaseLayersForMap = createSelector(layerStore, function (_store,
|
|
|
3156
3318
|
* @returns {number} selectedFeatureIndex: the index of the selected geojson feature
|
|
3157
3319
|
*/
|
|
3158
3320
|
var getSelectedFeatureIndex = createSelector(getLayerById, function (layer) {
|
|
3159
|
-
return layer
|
|
3321
|
+
return layer === null || layer === void 0 ? void 0 : layer.selectedFeatureIndex;
|
|
3160
3322
|
}, selectorMemoizationOptions);
|
|
3161
3323
|
/**
|
|
3162
3324
|
* Returns the layer is in edit mode
|
|
@@ -3167,20 +3329,18 @@ var getSelectedFeatureIndex = createSelector(getLayerById, function (layer) {
|
|
|
3167
3329
|
* @returns {number} isLayerInEditMode: boolean - isInEditMode
|
|
3168
3330
|
*/
|
|
3169
3331
|
var getIsLayerInEditMode = createSelector(getLayerById, function (layer) {
|
|
3170
|
-
return (layer
|
|
3332
|
+
return (layer === null || layer === void 0 ? void 0 : layer.isInEditMode) || false;
|
|
3171
3333
|
}, selectorMemoizationOptions);
|
|
3172
3334
|
var getFeatureLayerGeoJSON = createSelector(getLayerById, function (layer) {
|
|
3173
|
-
return (layer
|
|
3335
|
+
return (layer === null || layer === void 0 ? void 0 : layer.geojson) || undefined;
|
|
3174
3336
|
}, selectorMemoizationOptions);
|
|
3175
3337
|
var getHasFeatureLayerGeoJSON = createSelector(getFeatureLayerGeoJSON, function (geojson) {
|
|
3176
3338
|
return !!geojson;
|
|
3177
3339
|
}, selectorMemoizationOptions);
|
|
3178
|
-
var getFeatureLayerGeoJSONProperties = createSelector(getLayerById, getSelectedFeatureIndex, function (layer
|
|
3340
|
+
var getFeatureLayerGeoJSONProperties = createSelector(getLayerById, getSelectedFeatureIndex, function (layer) {
|
|
3179
3341
|
var _layer$geojson;
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
}
|
|
3183
|
-
return (layer == null || (_layer$geojson = layer.geojson) == null || (_layer$geojson = _layer$geojson.features[selecteFeatureIndex]) == null ? void 0 : _layer$geojson.properties) || {};
|
|
3342
|
+
var selecteFeatureIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
3343
|
+
return (layer === null || layer === void 0 || (_layer$geojson = layer.geojson) === null || _layer$geojson === void 0 || (_layer$geojson = _layer$geojson.features[selecteFeatureIndex]) === null || _layer$geojson === void 0 ? void 0 : _layer$geojson.properties) || {};
|
|
3184
3344
|
}, selectorMemoizationOptions);
|
|
3185
3345
|
/**
|
|
3186
3346
|
* Gets layerIds that contain passed dimension
|
|
@@ -3195,7 +3355,7 @@ var getDimensionLayerIds = createSelector(getLayersIds, getLayersById, function
|
|
|
3195
3355
|
}, function (layerIds, layers, dimensionName) {
|
|
3196
3356
|
return layerIds.reduce(function (list, layerId) {
|
|
3197
3357
|
var layer = layers[layerId];
|
|
3198
|
-
var dimensions = layer
|
|
3358
|
+
var dimensions = layer !== null && layer !== void 0 && layer.dimensions ? layer.dimensions : [];
|
|
3199
3359
|
if (dimensions.find(function (dimension) {
|
|
3200
3360
|
return dimension.name === dimensionName;
|
|
3201
3361
|
})) {
|
|
@@ -3205,13 +3365,13 @@ var getDimensionLayerIds = createSelector(getLayersIds, getLayersById, function
|
|
|
3205
3365
|
}, []);
|
|
3206
3366
|
}, selectorMemoizationOptions);
|
|
3207
3367
|
var getAcceptanceTimeInMinutes = createSelector(getLayerById, function (layer) {
|
|
3208
|
-
return layer
|
|
3368
|
+
return layer === null || layer === void 0 ? void 0 : layer.acceptanceTimeInMinutes;
|
|
3209
3369
|
}, selectorMemoizationOptions);
|
|
3210
3370
|
var getLayerIsInsideAcceptanceTime = createSelector(getAcceptanceTimeInMinutes, getLayerCurrentTime, function (state, _layerId, mapId) {
|
|
3211
3371
|
var _state$webmap;
|
|
3212
|
-
return (_state$webmap = state.webmap)
|
|
3372
|
+
return (_state$webmap = state.webmap) === null || _state$webmap === void 0 || (_state$webmap = _state$webmap.byId[mapId]) === null || _state$webmap === void 0 || (_state$webmap = _state$webmap.dimensions) === null || _state$webmap === void 0 || (_state$webmap = _state$webmap.find(function (dimension) {
|
|
3213
3373
|
return dimension.name === 'time';
|
|
3214
|
-
}))
|
|
3374
|
+
})) === null || _state$webmap === void 0 ? void 0 : _state$webmap.currentValue;
|
|
3215
3375
|
}, function (acceptanceTimeInMinutes, layerCurrentTime, mapCurrentTime) {
|
|
3216
3376
|
if (!mapCurrentTime || !layerCurrentTime) {
|
|
3217
3377
|
return 'equal';
|
|
@@ -3231,7 +3391,7 @@ var getLayerIsInsideAcceptanceTime = createSelector(getAcceptanceTimeInMinutes,
|
|
|
3231
3391
|
return 'inside';
|
|
3232
3392
|
}, selectorMemoizationOptions);
|
|
3233
3393
|
var getUseLatestReferenceTime = createSelector(getLayerById, function (layer) {
|
|
3234
|
-
return Boolean(layer
|
|
3394
|
+
return Boolean(layer === null || layer === void 0 ? void 0 : layer.useLatestReferenceTime);
|
|
3235
3395
|
}, selectorMemoizationOptions);
|
|
3236
3396
|
/**
|
|
3237
3397
|
* Returns the timestep for this layerId in seconds, or undefined if it has no time dimension or timeinterval.
|
|
@@ -3248,23 +3408,31 @@ var getTimeStepForLayerId = createSelector(getLayerTimeDimension, function (time
|
|
|
3248
3408
|
return isEmpty(timeInterval) ? undefined : getTimeStepFromDataInterval(timeInterval);
|
|
3249
3409
|
}
|
|
3250
3410
|
var iso8601Intervals = parseTimeDimToISO8601Interval(values);
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3260
|
-
|
|
3261
|
-
|
|
3411
|
+
var _iterator = _createForOfIteratorHelper(iso8601Intervals),
|
|
3412
|
+
_step;
|
|
3413
|
+
try {
|
|
3414
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3415
|
+
var _step$value = _step.value,
|
|
3416
|
+
startTime = _step$value.startTime,
|
|
3417
|
+
endTime = _step$value.endTime,
|
|
3418
|
+
duration = _step$value.duration;
|
|
3419
|
+
if (dateUtils.isWithinInterval(currentValue, {
|
|
3420
|
+
start: startTime,
|
|
3421
|
+
end: endTime
|
|
3422
|
+
})) {
|
|
3423
|
+
var parsedInterval = parseISO8601IntervalToDateInterval(duration);
|
|
3424
|
+
return getTimeStepFromDataInterval(parsedInterval);
|
|
3425
|
+
}
|
|
3262
3426
|
}
|
|
3427
|
+
} catch (err) {
|
|
3428
|
+
_iterator.e(err);
|
|
3429
|
+
} finally {
|
|
3430
|
+
_iterator.f();
|
|
3263
3431
|
}
|
|
3264
3432
|
return getTimeStepFromDataInterval(timeInterval);
|
|
3265
3433
|
}, selectorMemoizationOptions);
|
|
3266
3434
|
var getActiveLayerInfo = createSelector(layerStore, function (store) {
|
|
3267
|
-
return store
|
|
3435
|
+
return store === null || store === void 0 ? void 0 : store.activeLayerInfo;
|
|
3268
3436
|
});
|
|
3269
3437
|
|
|
3270
3438
|
var selectors$6 = /*#__PURE__*/Object.freeze({
|
|
@@ -3382,7 +3550,7 @@ var getDialogOrder = createSelector(function (store, dialogType) {
|
|
|
3382
3550
|
var order = store.ui.order;
|
|
3383
3551
|
var visibleOrder = order.filter(function (orderedDialogType) {
|
|
3384
3552
|
var _store$ui$dialogs$ord;
|
|
3385
|
-
return (_store$ui$dialogs$ord = store.ui.dialogs[orderedDialogType])
|
|
3553
|
+
return (_store$ui$dialogs$ord = store.ui.dialogs[orderedDialogType]) === null || _store$ui$dialogs$ord === void 0 ? void 0 : _store$ui$dialogs$ord.isOpen;
|
|
3386
3554
|
});
|
|
3387
3555
|
if (!visibleOrder.includes(dialogType)) {
|
|
3388
3556
|
return 0;
|
|
@@ -3423,7 +3591,7 @@ var getDialogSource = createSelector(getDialogDetailsByType, function (details)
|
|
|
3423
3591
|
* @returns {string} active window id
|
|
3424
3592
|
*/
|
|
3425
3593
|
var getActiveWindowId = createSelector(getUiStore, function (store) {
|
|
3426
|
-
return store
|
|
3594
|
+
return store === null || store === void 0 ? void 0 : store.activeWindowId;
|
|
3427
3595
|
}, selectorMemoizationOptions);
|
|
3428
3596
|
/**
|
|
3429
3597
|
* Gets the panelId of which the dialog is opened from
|
|
@@ -3434,9 +3602,9 @@ var getActiveWindowId = createSelector(getUiStore, function (store) {
|
|
|
3434
3602
|
*/
|
|
3435
3603
|
var getSourcePanelId = createSelector(function (store, dialogType) {
|
|
3436
3604
|
var _store$ui;
|
|
3437
|
-
return (_store$ui = store.ui)
|
|
3605
|
+
return (_store$ui = store.ui) === null || _store$ui === void 0 ? void 0 : _store$ui.dialogs[dialogType];
|
|
3438
3606
|
}, function (dialog) {
|
|
3439
|
-
return (dialog
|
|
3607
|
+
return (dialog === null || dialog === void 0 ? void 0 : dialog.sourcePanelId) || '';
|
|
3440
3608
|
}, selectorMemoizationOptions);
|
|
3441
3609
|
/**
|
|
3442
3610
|
* Gets if this is the active window
|
|
@@ -3448,7 +3616,7 @@ var getSourcePanelId = createSelector(function (store, dialogType) {
|
|
|
3448
3616
|
var getIsActiveWindowId = createSelector(getUiStore, function (_store, viewId) {
|
|
3449
3617
|
return viewId;
|
|
3450
3618
|
}, function (store, viewId) {
|
|
3451
|
-
return viewId === (store
|
|
3619
|
+
return viewId === (store === null || store === void 0 ? void 0 : store.activeWindowId);
|
|
3452
3620
|
}, selectorMemoizationOptions);
|
|
3453
3621
|
var getDialogIsLoading = createSelector(getDialogDetailsByType, function (details) {
|
|
3454
3622
|
return details && details.isLoading || false;
|
|
@@ -3460,11 +3628,11 @@ var getUiDialogsByActiveMapId = function getUiDialogsByActiveMapId(store, mapId)
|
|
|
3460
3628
|
if (store && store.ui && store.ui.order) {
|
|
3461
3629
|
var foundDialogsIds = store.ui.order.filter(function (id) {
|
|
3462
3630
|
var _store$ui2;
|
|
3463
|
-
return ((_store$ui2 = store.ui)
|
|
3631
|
+
return ((_store$ui2 = store.ui) === null || _store$ui2 === void 0 || (_store$ui2 = _store$ui2.dialogs[id]) === null || _store$ui2 === void 0 ? void 0 : _store$ui2.activeMapId) === mapId;
|
|
3464
3632
|
});
|
|
3465
3633
|
var foundDialogs = foundDialogsIds.reduce(function (list, id) {
|
|
3466
3634
|
var _store$ui3;
|
|
3467
|
-
var dialog = (_store$ui3 = store.ui)
|
|
3635
|
+
var dialog = (_store$ui3 = store.ui) === null || _store$ui3 === void 0 ? void 0 : _store$ui3.dialogs[id];
|
|
3468
3636
|
if (dialog) {
|
|
3469
3637
|
return list.concat(dialog);
|
|
3470
3638
|
}
|
|
@@ -3552,10 +3720,8 @@ var types$2 = /*#__PURE__*/Object.freeze({
|
|
|
3552
3720
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
3553
3721
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
3554
3722
|
* */
|
|
3555
|
-
var useSetupDialog = function useSetupDialog(dialogType
|
|
3556
|
-
|
|
3557
|
-
source = 'app';
|
|
3558
|
-
}
|
|
3723
|
+
var useSetupDialog = function useSetupDialog(dialogType) {
|
|
3724
|
+
var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'app';
|
|
3559
3725
|
var dispatch = useDispatch();
|
|
3560
3726
|
var onCloseDialog = useCallback(function () {
|
|
3561
3727
|
dispatch(uiActions.setToggleOpenDialog({
|
|
@@ -3690,23 +3856,6 @@ var removeInPlace = function removeInPlace(inDraftArray, condition) {
|
|
|
3690
3856
|
inDraftArray.length = j;
|
|
3691
3857
|
};
|
|
3692
3858
|
|
|
3693
|
-
/* *
|
|
3694
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3695
|
-
* you may not use this file except in compliance with the License.
|
|
3696
|
-
* You may obtain a copy of the License at
|
|
3697
|
-
*
|
|
3698
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3699
|
-
*
|
|
3700
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
3701
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3702
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3703
|
-
* See the License for the specific language governing permissions and
|
|
3704
|
-
* limitations under the License.
|
|
3705
|
-
*
|
|
3706
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3707
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
3708
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
3709
|
-
* */
|
|
3710
3859
|
var initialState$2 = {
|
|
3711
3860
|
sources: {
|
|
3712
3861
|
byId: {},
|
|
@@ -3765,7 +3914,7 @@ var slice$3 = createSlice({
|
|
|
3765
3914
|
var _action$payload2 = action.payload,
|
|
3766
3915
|
panelId = _action$payload2.panelId,
|
|
3767
3916
|
data = _action$payload2.data;
|
|
3768
|
-
draft.linkedState.sharedData[panelId] =
|
|
3917
|
+
draft.linkedState.sharedData[panelId] = _objectSpread2(_objectSpread2({}, draft.linkedState.sharedData[panelId]), data);
|
|
3769
3918
|
},
|
|
3770
3919
|
deleteSharedData: function deleteSharedData(draft, action) {
|
|
3771
3920
|
var panelId = action.payload.panelId;
|
|
@@ -3816,7 +3965,7 @@ var slice$3 = createSlice({
|
|
|
3816
3965
|
linked = _action$payload4.linked;
|
|
3817
3966
|
var synchronizationGroup = draft.groups.byId[groupId];
|
|
3818
3967
|
if (!synchronizationGroup) {
|
|
3819
|
-
console.warn("SYNCGROUPS_ADD_TARGET: Group "
|
|
3968
|
+
console.warn("SYNCGROUPS_ADD_TARGET: Group ".concat(groupId, " does not exist."));
|
|
3820
3969
|
return;
|
|
3821
3970
|
}
|
|
3822
3971
|
if (!targetId) {
|
|
@@ -3826,7 +3975,7 @@ var slice$3 = createSlice({
|
|
|
3826
3975
|
if (synchronizationGroup.targets.allIds.includes(targetId)) {
|
|
3827
3976
|
return;
|
|
3828
3977
|
}
|
|
3829
|
-
var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId])
|
|
3978
|
+
var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId]) === null || _synchronizationGroup === void 0 ? void 0 : _synchronizationGroup.linked;
|
|
3830
3979
|
synchronizationGroup.targets.allIds.push(targetId);
|
|
3831
3980
|
synchronizationGroup.targets.byId[targetId] = {
|
|
3832
3981
|
linked: linked !== false
|
|
@@ -3956,10 +4105,10 @@ var setBboxOrTimeSync = function setBboxOrTimeSync(draft, action) {
|
|
|
3956
4105
|
});
|
|
3957
4106
|
}
|
|
3958
4107
|
};
|
|
3959
|
-
var _slice$actions = slice$3.actions
|
|
3960
|
-
_slice$actions.syncGroupAddGroup;
|
|
4108
|
+
var _slice$actions = slice$3.actions,
|
|
4109
|
+
syncGroupAddGroup = _slice$actions.syncGroupAddGroup;
|
|
3961
4110
|
_slice$actions.syncGroupAddSource;
|
|
3962
|
-
_slice$actions.syncGroupAddTarget;
|
|
4111
|
+
var syncGroupAddTarget = _slice$actions.syncGroupAddTarget;
|
|
3963
4112
|
_slice$actions.syncGroupClear;
|
|
3964
4113
|
_slice$actions.syncGroupLinkTarget;
|
|
3965
4114
|
_slice$actions.syncGroupRemoveGroup;
|
|
@@ -3969,23 +4118,6 @@ var _slice$actions = slice$3.actions;
|
|
|
3969
4118
|
var syncGroupsReducer = slice$3.reducer,
|
|
3970
4119
|
syncGroupsActions = slice$3.actions;
|
|
3971
4120
|
|
|
3972
|
-
/* *
|
|
3973
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
3974
|
-
* you may not use this file except in compliance with the License.
|
|
3975
|
-
* You may obtain a copy of the License at
|
|
3976
|
-
*
|
|
3977
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
3978
|
-
*
|
|
3979
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
3980
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
3981
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
3982
|
-
* See the License for the specific language governing permissions and
|
|
3983
|
-
* limitations under the License.
|
|
3984
|
-
*
|
|
3985
|
-
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
3986
|
-
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
3987
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
3988
|
-
* */
|
|
3989
4121
|
var syncGroupStore = function syncGroupStore(store) {
|
|
3990
4122
|
return store.syncGroups || null;
|
|
3991
4123
|
};
|
|
@@ -4025,7 +4157,7 @@ var getTargets = createSelector([syncGroupStore, function (syncGroupStore, paylo
|
|
|
4025
4157
|
/* Remember that we have already added this target in the action payloads, prevents adding it twice */
|
|
4026
4158
|
targetsInActionPayload[targetId] = true;
|
|
4027
4159
|
/* Compose the payload */
|
|
4028
|
-
var newPayload =
|
|
4160
|
+
var newPayload = _objectSpread2({
|
|
4029
4161
|
targetId: targetId
|
|
4030
4162
|
}, payload);
|
|
4031
4163
|
actionPayloads.push(newPayload);
|
|
@@ -4045,7 +4177,7 @@ var getTargets = createSelector([syncGroupStore, function (syncGroupStore, paylo
|
|
|
4045
4177
|
/* Remember that we have already added this target in the action payloads, prevents adding it twice */
|
|
4046
4178
|
targetsInActionPayload[targetId] = true;
|
|
4047
4179
|
/* Compose the payload */
|
|
4048
|
-
var newPayload =
|
|
4180
|
+
var newPayload = _objectSpread2({
|
|
4049
4181
|
targetId: targetId
|
|
4050
4182
|
}, payload);
|
|
4051
4183
|
actionPayloads.push(newPayload);
|
|
@@ -4082,7 +4214,7 @@ var getSourceId = createSelector([syncGroupStore, function (syncGroupStore, sour
|
|
|
4082
4214
|
return typeof sourceId === 'string' ? sourceId : sourceId.sourceId;
|
|
4083
4215
|
}, selectorMemoizationOptions);
|
|
4084
4216
|
var getAllTargetGroupsForSource = createSelector([syncGroupStore, getSourceId], function (syncGroupStore, sourceId) {
|
|
4085
|
-
if (syncGroupStore
|
|
4217
|
+
if (syncGroupStore !== null && syncGroupStore !== void 0 && syncGroupStore.groups) {
|
|
4086
4218
|
return syncGroupStore.groups.allIds.reduce(function (linkedSyncGroupIds, groupId) {
|
|
4087
4219
|
var syncronizationGroup = syncGroupStore.groups.byId[groupId];
|
|
4088
4220
|
var source = syncronizationGroup.targets.byId[sourceId];
|
|
@@ -4103,7 +4235,7 @@ var isTimeScrollingEnabled = createSelector(syncGroupStore, function (store) {
|
|
|
4103
4235
|
}, selectorMemoizationOptions);
|
|
4104
4236
|
var getSyncedMapIdsForTimeslider = createSelector(syncGroupStore, function (store) {
|
|
4105
4237
|
var _store$viewState$time, _store$viewState$time2;
|
|
4106
|
-
return (_store$viewState$time = (_store$viewState$time2 = store.viewState.timeslider.groups[0])
|
|
4238
|
+
return (_store$viewState$time = (_store$viewState$time2 = store.viewState.timeslider.groups[0]) === null || _store$viewState$time2 === void 0 ? void 0 : _store$viewState$time2.selected) !== null && _store$viewState$time !== void 0 ? _store$viewState$time : [];
|
|
4107
4239
|
}, selectorMemoizationOptions);
|
|
4108
4240
|
var getSyncGroupTargets = createSelector(syncGroupStore, function (store) {
|
|
4109
4241
|
if (!store || !store.groups) {
|
|
@@ -4194,7 +4326,7 @@ var createSyncGroupViewState = function createSyncGroupViewState(groups, sources
|
|
|
4194
4326
|
var _groupTypes$find;
|
|
4195
4327
|
var groupType = (_groupTypes$find = groupTypes.find(function (object) {
|
|
4196
4328
|
return object.syncType === groups.byId[id].type;
|
|
4197
|
-
}))
|
|
4329
|
+
})) === null || _groupTypes$find === void 0 ? void 0 : _groupTypes$find.groupType;
|
|
4198
4330
|
if (groupType) {
|
|
4199
4331
|
draft[groupType].groups.push({
|
|
4200
4332
|
id: id,
|
|
@@ -4395,7 +4527,7 @@ var getTime = createSelector(getSyncSourceBySourceId, function (store) {
|
|
|
4395
4527
|
return store && store.payloadByType && store.payloadByType[SYNCGROUPS_TYPE_SETTIME] ? store.payloadByType[SYNCGROUPS_TYPE_SETTIME].value : null;
|
|
4396
4528
|
}, selectorMemoizationOptions);
|
|
4397
4529
|
var selectLinkedState = createSelector(synchronizationGroupStore, function (syncState) {
|
|
4398
|
-
return (syncState
|
|
4530
|
+
return (syncState === null || syncState === void 0 ? void 0 : syncState.linkedState) || {
|
|
4399
4531
|
links: {},
|
|
4400
4532
|
sharedData: {}
|
|
4401
4533
|
};
|
|
@@ -4427,7 +4559,7 @@ var selectLinkedPanelId = createSelector([selectLinkedState, function (_, mapVie
|
|
|
4427
4559
|
// Find the panelId where mapView(s) is linked
|
|
4428
4560
|
var panelId = Object.keys(linkedState.links).find(function (panelId) {
|
|
4429
4561
|
var _linkedState$links$pa;
|
|
4430
|
-
return (_linkedState$links$pa = linkedState.links[panelId])
|
|
4562
|
+
return (_linkedState$links$pa = linkedState.links[panelId]) === null || _linkedState$links$pa === void 0 ? void 0 : _linkedState$links$pa.includes(mapViewId);
|
|
4431
4563
|
});
|
|
4432
4564
|
return panelId;
|
|
4433
4565
|
});
|
|
@@ -4444,7 +4576,7 @@ var selectLinkedFeatures = createSelector([function (linkedState) {
|
|
|
4444
4576
|
}, getLinkedFeatureProviders], function (linkedState, featureProviders) {
|
|
4445
4577
|
var features = featureProviders.flatMap(function (providerId) {
|
|
4446
4578
|
var _linkedState$sharedDa;
|
|
4447
|
-
return ((_linkedState$sharedDa = linkedState.sharedData[providerId])
|
|
4579
|
+
return ((_linkedState$sharedDa = linkedState.sharedData[providerId]) === null || _linkedState$sharedDa === void 0 ? void 0 : _linkedState$sharedDa.features) || [];
|
|
4448
4580
|
}).filter(function (f) {
|
|
4449
4581
|
return f !== undefined;
|
|
4450
4582
|
});
|
|
@@ -4455,7 +4587,7 @@ var selectLinkedFormFeatures = createSelector([function (linkedState) {
|
|
|
4455
4587
|
}, getLinkedFeatureProviders], function (linkedState, featureProviders) {
|
|
4456
4588
|
var features = featureProviders.flatMap(function (providerId) {
|
|
4457
4589
|
var _linkedState$sharedDa2;
|
|
4458
|
-
return ((_linkedState$sharedDa2 = linkedState.sharedData[providerId])
|
|
4590
|
+
return ((_linkedState$sharedDa2 = linkedState.sharedData[providerId]) === null || _linkedState$sharedDa2 === void 0 ? void 0 : _linkedState$sharedDa2.formFeatures) || [];
|
|
4459
4591
|
}).filter(function (f) {
|
|
4460
4592
|
return f !== undefined;
|
|
4461
4593
|
});
|
|
@@ -4465,7 +4597,7 @@ var getSelectedFeature = createSelector([
|
|
|
4465
4597
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
4466
4598
|
function (state, mapId) {
|
|
4467
4599
|
var _state$linkedState;
|
|
4468
|
-
var sharedData = (_state$linkedState = state.linkedState)
|
|
4600
|
+
var sharedData = (_state$linkedState = state.linkedState) === null || _state$linkedState === void 0 ? void 0 : _state$linkedState.sharedData[mapId];
|
|
4469
4601
|
var _ref = sharedData || {},
|
|
4470
4602
|
_ref$features = _ref.features,
|
|
4471
4603
|
features = _ref$features === void 0 ? [] : _ref$features,
|
|
@@ -4478,7 +4610,7 @@ function (state, mapId) {
|
|
|
4478
4610
|
var _features$;
|
|
4479
4611
|
var features = _ref2.features,
|
|
4480
4612
|
selectedFeatureId = _ref2.selectedFeatureId;
|
|
4481
|
-
var selectedFeature = (_features$ = features[0])
|
|
4613
|
+
var selectedFeature = (_features$ = features[0]) === null || _features$ === void 0 ? void 0 : _features$.geoJSON.features.find(function (feature) {
|
|
4482
4614
|
return feature.id === selectedFeatureId;
|
|
4483
4615
|
});
|
|
4484
4616
|
if (selectedFeature && selectedFeature.geometry.type === 'Point') {
|
|
@@ -4488,9 +4620,9 @@ function (state, mapId) {
|
|
|
4488
4620
|
lat: coordinates[1],
|
|
4489
4621
|
lon: coordinates[0],
|
|
4490
4622
|
id: selectedFeature.id,
|
|
4491
|
-
serviceId: (_selectedFeature$prop = selectedFeature.properties)
|
|
4492
|
-
collectionId: (_selectedFeature$prop2 = selectedFeature.properties)
|
|
4493
|
-
name: (_selectedFeature$prop3 = selectedFeature.properties)
|
|
4623
|
+
serviceId: (_selectedFeature$prop = selectedFeature.properties) === null || _selectedFeature$prop === void 0 ? void 0 : _selectedFeature$prop.serviceId,
|
|
4624
|
+
collectionId: (_selectedFeature$prop2 = selectedFeature.properties) === null || _selectedFeature$prop2 === void 0 ? void 0 : _selectedFeature$prop2.collectionId,
|
|
4625
|
+
name: (_selectedFeature$prop3 = selectedFeature.properties) === null || _selectedFeature$prop3 === void 0 ? void 0 : _selectedFeature$prop3.name
|
|
4494
4626
|
};
|
|
4495
4627
|
}
|
|
4496
4628
|
if (selectedFeature) {
|
|
@@ -4500,9 +4632,9 @@ function (state, mapId) {
|
|
|
4500
4632
|
lat: center.geometry.coordinates[1],
|
|
4501
4633
|
lon: center.geometry.coordinates[0],
|
|
4502
4634
|
id: selectedFeature.id,
|
|
4503
|
-
serviceId: (_selectedFeature$prop4 = selectedFeature.properties)
|
|
4504
|
-
collectionId: (_selectedFeature$prop5 = selectedFeature.properties)
|
|
4505
|
-
name: (_selectedFeature$prop6 = selectedFeature.properties)
|
|
4635
|
+
serviceId: (_selectedFeature$prop4 = selectedFeature.properties) === null || _selectedFeature$prop4 === void 0 ? void 0 : _selectedFeature$prop4.serviceId,
|
|
4636
|
+
collectionId: (_selectedFeature$prop5 = selectedFeature.properties) === null || _selectedFeature$prop5 === void 0 ? void 0 : _selectedFeature$prop5.collectionId,
|
|
4637
|
+
name: (_selectedFeature$prop6 = selectedFeature.properties) === null || _selectedFeature$prop6 === void 0 ? void 0 : _selectedFeature$prop6.name
|
|
4506
4638
|
};
|
|
4507
4639
|
}
|
|
4508
4640
|
return null;
|
|
@@ -4522,23 +4654,6 @@ var selectors$3 = /*#__PURE__*/Object.freeze({
|
|
|
4522
4654
|
selectSharedData: selectSharedData
|
|
4523
4655
|
});
|
|
4524
4656
|
|
|
4525
|
-
/* *
|
|
4526
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4527
|
-
* you may not use this file except in compliance with the License.
|
|
4528
|
-
* You may obtain a copy of the License at
|
|
4529
|
-
*
|
|
4530
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
4531
|
-
*
|
|
4532
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
4533
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
4534
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4535
|
-
* See the License for the specific language governing permissions and
|
|
4536
|
-
* limitations under the License.
|
|
4537
|
-
*
|
|
4538
|
-
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
4539
|
-
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
4540
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
4541
|
-
* */
|
|
4542
4657
|
var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
|
|
4543
4658
|
var sharedData = useSelector(function (state) {
|
|
4544
4659
|
return selectSharedData(state, panelId);
|
|
@@ -4548,8 +4663,8 @@ var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
|
|
|
4548
4663
|
});
|
|
4549
4664
|
var dispatch = useDispatch();
|
|
4550
4665
|
useEffect(function () {
|
|
4551
|
-
var diff =
|
|
4552
|
-
if (panelId && (linkedMaps
|
|
4666
|
+
var diff = _objectSpread2(_objectSpread2({}, sharedData), data);
|
|
4667
|
+
if (panelId && (linkedMaps === null || linkedMaps === void 0 ? void 0 : linkedMaps.length) > 0 && !isEqual(diff, sharedData)) {
|
|
4553
4668
|
dispatch(syncGroupsActions.addSharedData({
|
|
4554
4669
|
panelId: panelId,
|
|
4555
4670
|
data: data
|
|
@@ -4668,7 +4783,7 @@ var slice$2 = createSlice({
|
|
|
4668
4783
|
// When one EDR is loading with a known id (panelId), do not set the any ANY_EDR_SERVICE as the panelId is known.
|
|
4669
4784
|
if (isEDRLoading && id === ANY_EDR_SERVICE && draft.ids.some(function (id) {
|
|
4670
4785
|
var _draft$entities$id;
|
|
4671
|
-
return (_draft$entities$id = draft.entities[id])
|
|
4786
|
+
return (_draft$entities$id = draft.entities[id]) === null || _draft$entities$id === void 0 ? void 0 : _draft$entities$id.isEDRLoading;
|
|
4672
4787
|
})) {
|
|
4673
4788
|
draft.entities[id].isEDRLoading = false;
|
|
4674
4789
|
} else {
|
|
@@ -4699,20 +4814,20 @@ var loadingIndicatorActions = slice$2.actions,
|
|
|
4699
4814
|
* */
|
|
4700
4815
|
var _loadingIndicatorAdap = loadingIndicatorAdapter.getSelectors(function (state) {
|
|
4701
4816
|
var _state$loadingIndicat;
|
|
4702
|
-
return (_state$loadingIndicat = state
|
|
4817
|
+
return (_state$loadingIndicat = state === null || state === void 0 ? void 0 : state.loadingIndicator) !== null && _state$loadingIndicat !== void 0 ? _state$loadingIndicat : {
|
|
4703
4818
|
entities: {},
|
|
4704
4819
|
ids: []
|
|
4705
4820
|
};
|
|
4706
4821
|
}),
|
|
4707
4822
|
selectLoadingIndicatorById = _loadingIndicatorAdap.selectById;
|
|
4708
4823
|
var isGetMapLoading = createSelector(selectLoadingIndicatorById, function (loadingIndicator) {
|
|
4709
|
-
return (loadingIndicator
|
|
4824
|
+
return (loadingIndicator === null || loadingIndicator === void 0 ? void 0 : loadingIndicator.isGetMapLoading) || false;
|
|
4710
4825
|
}, selectorMemoizationOptions);
|
|
4711
4826
|
var isGetCapabilitiesLoading = createSelector(selectLoadingIndicatorById, function (loadingIndicator) {
|
|
4712
|
-
return (loadingIndicator
|
|
4827
|
+
return (loadingIndicator === null || loadingIndicator === void 0 ? void 0 : loadingIndicator.isGetCapabilitiesLoading) || false;
|
|
4713
4828
|
}, selectorMemoizationOptions);
|
|
4714
4829
|
var isAnyEdrTypeLoading = function isAnyEdrTypeLoading(loadingIndicator) {
|
|
4715
|
-
return (loadingIndicator
|
|
4830
|
+
return (loadingIndicator === null || loadingIndicator === void 0 ? void 0 : loadingIndicator.isEDRLoading) || false;
|
|
4716
4831
|
};
|
|
4717
4832
|
var isEDRLoading = createSelector(selectLoadingIndicatorById, isAnyEdrTypeLoading, selectorMemoizationOptions);
|
|
4718
4833
|
var isAnyEDRLoading = createSelector([function (store) {
|
|
@@ -4731,24 +4846,7 @@ var selectors$2 = /*#__PURE__*/Object.freeze({
|
|
|
4731
4846
|
selectLoadingIndicatorById: selectLoadingIndicatorById
|
|
4732
4847
|
});
|
|
4733
4848
|
|
|
4734
|
-
|
|
4735
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4736
|
-
* you may not use this file except in compliance with the License.
|
|
4737
|
-
* You may obtain a copy of the License at
|
|
4738
|
-
*
|
|
4739
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
4740
|
-
*
|
|
4741
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
4742
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
4743
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4744
|
-
* See the License for the specific language governing permissions and
|
|
4745
|
-
* limitations under the License.
|
|
4746
|
-
*
|
|
4747
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
4748
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
4749
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
4750
|
-
* */
|
|
4751
|
-
var genericActions = Object.assign({}, syncGroupsActions, {
|
|
4849
|
+
var genericActions = _objectSpread2(_objectSpread2({}, syncGroupsActions), {}, {
|
|
4752
4850
|
initialSyncState: initialState$2,
|
|
4753
4851
|
setTime: setTime,
|
|
4754
4852
|
setBbox: setBbox
|
|
@@ -4824,7 +4922,7 @@ var getIsMapPresent = createSelector(getMapById, function (map) {
|
|
|
4824
4922
|
*/
|
|
4825
4923
|
var getLayerIds = createSelector(getMapById, function (map) {
|
|
4826
4924
|
var _map$mapLayers;
|
|
4827
|
-
return (_map$mapLayers = map
|
|
4925
|
+
return (_map$mapLayers = map === null || map === void 0 ? void 0 : map.mapLayers) !== null && _map$mapLayers !== void 0 ? _map$mapLayers : [];
|
|
4828
4926
|
}, selectorMemoizationOptions);
|
|
4829
4927
|
/**
|
|
4830
4928
|
* Gets all layer states for a map
|
|
@@ -4836,7 +4934,7 @@ var getLayerIds = createSelector(getMapById, function (map) {
|
|
|
4836
4934
|
*/
|
|
4837
4935
|
var getMapLayers = createSelector(getLayerIds, getLayersById, function (layerIdsInMap, allLayers) {
|
|
4838
4936
|
var layersWithUndefined = layerIdsInMap.map(function (layerId) {
|
|
4839
|
-
return allLayers
|
|
4937
|
+
return allLayers === null || allLayers === void 0 ? void 0 : allLayers[layerId];
|
|
4840
4938
|
});
|
|
4841
4939
|
var layersWithoutUndefined = compact(layersWithUndefined);
|
|
4842
4940
|
return layersWithoutUndefined;
|
|
@@ -4853,7 +4951,7 @@ var getMapLayers = createSelector(getLayerIds, getLayersById, function (layerIds
|
|
|
4853
4951
|
*/
|
|
4854
4952
|
var getMapLayersWithoutDimensionCurrentValue = createSelector(getLayerIds, getLayersById, function (layerIdsInMap, allLayers) {
|
|
4855
4953
|
var layersWithUndefined = layerIdsInMap.map(function (layerId) {
|
|
4856
|
-
return allLayers
|
|
4954
|
+
return allLayers === null || allLayers === void 0 ? void 0 : allLayers[layerId];
|
|
4857
4955
|
});
|
|
4858
4956
|
var layersWithoutUndefined = compact(layersWithUndefined);
|
|
4859
4957
|
var layersWithoutTimeDim = layersWithoutUndefined.map(function (layer) {
|
|
@@ -4900,7 +4998,7 @@ var getMapOverLayersIds = createSelector(getMapById, function (store) {
|
|
|
4900
4998
|
return store ? store.overLayers : [];
|
|
4901
4999
|
}, selectorMemoizationOptions);
|
|
4902
5000
|
var getMapFeatureLayers = createSelector(getMapById, getFeatureLayers, function (store, featureLayers) {
|
|
4903
|
-
var featureLayersOnMap = (store
|
|
5001
|
+
var featureLayersOnMap = (store === null || store === void 0 ? void 0 : store.featureLayers) || [];
|
|
4904
5002
|
return featureLayers.filter(function (layer) {
|
|
4905
5003
|
return featureLayersOnMap.indexOf(layer.id) !== -1;
|
|
4906
5004
|
});
|
|
@@ -4916,6 +5014,8 @@ var getMapFeatureLayers = createSelector(getMapById, getFeatureLayers, function
|
|
|
4916
5014
|
var getMapOverLayers = createSelector(getMapOverLayersIds, getLayersById, function (layerIds, layers) {
|
|
4917
5015
|
return layerIds.map(function (layerId) {
|
|
4918
5016
|
return layers[layerId];
|
|
5017
|
+
}).filter(function (layer) {
|
|
5018
|
+
return layer === null || layer === void 0 ? void 0 : layer.name;
|
|
4919
5019
|
});
|
|
4920
5020
|
}, selectorMemoizationOptions);
|
|
4921
5021
|
/**
|
|
@@ -4973,12 +5073,13 @@ var getSelectedTime = createSelector(function (store, mapId) {
|
|
|
4973
5073
|
var getDataLimitsFromLayers = createSelector(getMapLayers, function (layers) {
|
|
4974
5074
|
return layers.reduce(function (_ref, layer) {
|
|
4975
5075
|
var _layer$dimensions;
|
|
4976
|
-
var
|
|
4977
|
-
|
|
4978
|
-
|
|
5076
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
5077
|
+
start = _ref2[0],
|
|
5078
|
+
end = _ref2[1];
|
|
5079
|
+
var dimension = (_layer$dimensions = layer.dimensions) === null || _layer$dimensions === void 0 ? void 0 : _layer$dimensions.find(function (dimension) {
|
|
4979
5080
|
return dimension.name === 'time';
|
|
4980
5081
|
});
|
|
4981
|
-
if (dimension
|
|
5082
|
+
if (dimension !== null && dimension !== void 0 && dimension.minValue && dimension.maxValue) {
|
|
4982
5083
|
var lastValue = dateUtils.unix(new Date(dimension.maxValue));
|
|
4983
5084
|
var firstValue = dateUtils.unix(new Date(dimension.minValue));
|
|
4984
5085
|
var newLast = Math.max(lastValue, end);
|
|
@@ -5062,7 +5163,7 @@ var linkedMapAnimationInfo = createSelector(function (store, mapId) {
|
|
|
5062
5163
|
* @returns {string} returnType: string
|
|
5063
5164
|
*/
|
|
5064
5165
|
var getAnimationStartTime = createSelector(getMapById, function (store) {
|
|
5065
|
-
return store
|
|
5166
|
+
return store !== null && store !== void 0 && store.animationStartTime ? store.animationStartTime : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
|
|
5066
5167
|
hours: 6
|
|
5067
5168
|
}), dateFormat);
|
|
5068
5169
|
}, selectorMemoizationOptions);
|
|
@@ -5075,7 +5176,7 @@ var getAnimationStartTime = createSelector(getMapById, function (store) {
|
|
|
5075
5176
|
* @returns {string} returnType: string
|
|
5076
5177
|
*/
|
|
5077
5178
|
var getAnimationEndTime = createSelector(getMapById, function (store) {
|
|
5078
|
-
return store
|
|
5179
|
+
return store !== null && store !== void 0 && store.animationEndTime ? store.animationEndTime : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
|
|
5079
5180
|
minutes: 10
|
|
5080
5181
|
}), dateFormat);
|
|
5081
5182
|
}, selectorMemoizationOptions);
|
|
@@ -5109,7 +5210,7 @@ var shouldEndtimeOverride = createSelector(getMapById, function (store) {
|
|
|
5109
5210
|
* @param {string} mapId mapId: string - Id of the map
|
|
5110
5211
|
*/
|
|
5111
5212
|
var getActiveLayerId = createSelector(getMapById, function (store) {
|
|
5112
|
-
if (store
|
|
5213
|
+
if (store !== null && store !== void 0 && store.autoUpdateLayerId && store.autoUpdateLayerId === store.autoTimeStepLayerId) {
|
|
5113
5214
|
return store.autoUpdateLayerId;
|
|
5114
5215
|
}
|
|
5115
5216
|
return undefined;
|
|
@@ -5122,7 +5223,7 @@ var getActiveLayerId = createSelector(getMapById, function (store) {
|
|
|
5122
5223
|
* @param {string} mapId mapId: string - Id of the map
|
|
5123
5224
|
*/
|
|
5124
5225
|
var getAutoUpdateLayerId = createSelector(getMapById, function (store) {
|
|
5125
|
-
return store
|
|
5226
|
+
return store === null || store === void 0 ? void 0 : store.autoUpdateLayerId;
|
|
5126
5227
|
}, selectorMemoizationOptions);
|
|
5127
5228
|
/**
|
|
5128
5229
|
* Gets autoUpdateLayerId for map
|
|
@@ -5132,7 +5233,7 @@ var getAutoUpdateLayerId = createSelector(getMapById, function (store) {
|
|
|
5132
5233
|
* @param {string} mapId mapId: string - Id of the map
|
|
5133
5234
|
*/
|
|
5134
5235
|
var getAutoTimeStepLayerId = createSelector(getMapById, function (store) {
|
|
5135
|
-
return store
|
|
5236
|
+
return store === null || store === void 0 ? void 0 : store.autoTimeStepLayerId;
|
|
5136
5237
|
}, selectorMemoizationOptions);
|
|
5137
5238
|
/**
|
|
5138
5239
|
* Gets span of a time slider of a map
|
|
@@ -5155,10 +5256,10 @@ var getMapTimeSliderSpan = createSelector(getMapById, function (store) {
|
|
|
5155
5256
|
*/
|
|
5156
5257
|
var getMapTimeStep = createSelector(getMapById, function (store) {
|
|
5157
5258
|
var _store$timeStep;
|
|
5158
|
-
return (_store$timeStep = store
|
|
5259
|
+
return (_store$timeStep = store === null || store === void 0 ? void 0 : store.timeStep) !== null && _store$timeStep !== void 0 ? _store$timeStep : defaultTimeStep;
|
|
5159
5260
|
}, selectorMemoizationOptions);
|
|
5160
5261
|
var getMapTimeStepWithoutDefault = createSelector(getMapById, function (store) {
|
|
5161
|
-
return store
|
|
5262
|
+
return store === null || store === void 0 ? void 0 : store.timeStep;
|
|
5162
5263
|
}, selectorMemoizationOptions);
|
|
5163
5264
|
/**
|
|
5164
5265
|
* Returns the speed of animation
|
|
@@ -5193,6 +5294,20 @@ var getMapTimeSliderWidth = createSelector(getMapById, function (store) {
|
|
|
5193
5294
|
var getMapTimeSliderCenterTime = createSelector(getMapById, function (store) {
|
|
5194
5295
|
return store ? store.timeSliderCenterTime : dateUtils.unix(dateUtils.utc());
|
|
5195
5296
|
}, selectorMemoizationOptions);
|
|
5297
|
+
var getMapTimeSliderStartCenterEndAndStep = createSelector(getMapById, function (store) {
|
|
5298
|
+
var _store$timeStep2;
|
|
5299
|
+
var timeSliderWidth = ((store === null || store === void 0 ? void 0 : store.timeSliderWidth) || 0) * 60;
|
|
5300
|
+
var center = store ? store.timeSliderCenterTime : dateUtils.unix(dateUtils.utc());
|
|
5301
|
+
var start = center ? center - timeSliderWidth / 2 : undefined;
|
|
5302
|
+
var end = center ? center + timeSliderWidth / 2 : undefined;
|
|
5303
|
+
var step = (_store$timeStep2 = store === null || store === void 0 ? void 0 : store.timeStep) !== null && _store$timeStep2 !== void 0 ? _store$timeStep2 : defaultTimeStep;
|
|
5304
|
+
return {
|
|
5305
|
+
start: start,
|
|
5306
|
+
center: center,
|
|
5307
|
+
end: end,
|
|
5308
|
+
step: step
|
|
5309
|
+
};
|
|
5310
|
+
}, selectorMemoizationOptions);
|
|
5196
5311
|
/**
|
|
5197
5312
|
* Returns the number of seconds per pixel on the time slider
|
|
5198
5313
|
*
|
|
@@ -5222,7 +5337,7 @@ var isTimestepAuto = createSelector(getMapById, function (store) {
|
|
|
5222
5337
|
* @returns {boolean} returnType: boolean
|
|
5223
5338
|
*/
|
|
5224
5339
|
var isAnimationLengthAuto = createSelector(getMapById, function (store) {
|
|
5225
|
-
return (store
|
|
5340
|
+
return (store === null || store === void 0 ? void 0 : store.isAnimationLengthAuto) || false;
|
|
5226
5341
|
}, selectorMemoizationOptions);
|
|
5227
5342
|
/**
|
|
5228
5343
|
* Returns map is timespan auto
|
|
@@ -5291,7 +5406,7 @@ var getIsLayerActiveLayer = createSelector(getActiveLayerId, function (_store, _
|
|
|
5291
5406
|
* @returns {string} returnType: string - the mapId, or null if not found
|
|
5292
5407
|
*/
|
|
5293
5408
|
var getMapIdFromLayerId = createSelector(function (store) {
|
|
5294
|
-
return store
|
|
5409
|
+
return store === null || store === void 0 ? void 0 : store.webmap;
|
|
5295
5410
|
}, function (_store, layerId) {
|
|
5296
5411
|
return layerId;
|
|
5297
5412
|
}, findMapIdFromLayerId, selectorMemoizationOptions);
|
|
@@ -5378,7 +5493,7 @@ var getAllUniqueDimensions = createSelector(getAllMapIds, function (store) {
|
|
|
5378
5493
|
* @returns {object} returnType: latitude and longitude of pin
|
|
5379
5494
|
*/
|
|
5380
5495
|
var getPinLocation = createSelector(getMapById, function (store) {
|
|
5381
|
-
return store
|
|
5496
|
+
return store === null || store === void 0 ? void 0 : store.mapPinLocation;
|
|
5382
5497
|
}, selectorMemoizationOptions);
|
|
5383
5498
|
/**
|
|
5384
5499
|
* Returns the disable map pin boolean for the current map
|
|
@@ -5389,7 +5504,7 @@ var getPinLocation = createSelector(getMapById, function (store) {
|
|
|
5389
5504
|
* @returns {boolean} returnType: boolean
|
|
5390
5505
|
*/
|
|
5391
5506
|
var getDisableMapPin = createSelector([getMapById], function (map) {
|
|
5392
|
-
return map
|
|
5507
|
+
return map === null || map === void 0 ? void 0 : map.disableMapPin;
|
|
5393
5508
|
}, selectorMemoizationOptions);
|
|
5394
5509
|
/**
|
|
5395
5510
|
* Returns the display map pin boolean for the current map
|
|
@@ -5423,15 +5538,15 @@ var getLegendId = createSelector(getMapById, function (store) {
|
|
|
5423
5538
|
*/
|
|
5424
5539
|
var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLayers, getBbox, getSrs, getActiveLayerId, getAutoTimeStepLayerId, getAutoUpdateLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, getDisplayMapPin, isZoomControlsVisible, getMapTimeStep, getMapAnimationDelay, getAnimationStartTime, getAnimationEndTime, getMapTimeSliderSpan, isTimestepAuto, isTimeSpanAuto, getLegendId, getUiStore, function (mapLayers, baseLayers, overLayers, bbox, srs, activeLayerId, autoUpdateLayerId, autoTimeStepLayerId, isAnimating, isAutoUpdating, isTimeSliderVisible, displayMapPin, isZoomControlsVisible, mapTimeStep, mapAnimationDelay, animationStartTime, animationEndTime, timeSliderSpan, isTimestepAuto, isTimeSpanAuto, legendId, uiStore) {
|
|
5425
5540
|
var _uiStore$dialogs$lege;
|
|
5426
|
-
var allLayers = [].concat(baseLayers, overLayers, mapLayers).map(function (
|
|
5427
|
-
|
|
5428
|
-
var layer =
|
|
5541
|
+
var allLayers = [].concat(_toConsumableArray(baseLayers), _toConsumableArray(overLayers), _toConsumableArray(mapLayers)).map(function (_ref3) {
|
|
5542
|
+
_ref3.mapId;
|
|
5543
|
+
var layer = _objectWithoutProperties(_ref3, _excluded$2);
|
|
5429
5544
|
if (layer.dimensions !== undefined) {
|
|
5430
5545
|
// Filter out (reference) time dimension as these should not be part of the preset for now
|
|
5431
5546
|
var dimensions = layer.dimensions.filter(function (dimension) {
|
|
5432
5547
|
return dimension.name !== 'time' && dimension.name !== 'reference_time';
|
|
5433
5548
|
});
|
|
5434
|
-
return
|
|
5549
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
5435
5550
|
dimensions: dimensions
|
|
5436
5551
|
});
|
|
5437
5552
|
}
|
|
@@ -5442,16 +5557,16 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5442
5557
|
speed: mapAnimationDelay ? getSpeedFactor(mapAnimationDelay) : 1,
|
|
5443
5558
|
duration: getAnimationDuration(animationEndTime, animationStartTime)
|
|
5444
5559
|
};
|
|
5445
|
-
var shouldShowLegend = legendId ? uiStore
|
|
5446
|
-
return
|
|
5560
|
+
var shouldShowLegend = legendId ? uiStore === null || uiStore === void 0 || (_uiStore$dialogs$lege = uiStore.dialogs[legendId]) === null || _uiStore$dialogs$lege === void 0 ? void 0 : _uiStore$dialogs$lege.isOpen : false;
|
|
5561
|
+
return _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({
|
|
5447
5562
|
layers: allLayers
|
|
5448
5563
|
}, activeLayerId !== undefined && {
|
|
5449
5564
|
activeLayerId: activeLayerId
|
|
5450
|
-
}, autoTimeStepLayerId !== undefined && {
|
|
5565
|
+
}), autoTimeStepLayerId !== undefined && {
|
|
5451
5566
|
autoTimeStepLayerId: autoTimeStepLayerId
|
|
5452
|
-
}, autoUpdateLayerId !== undefined && {
|
|
5567
|
+
}), autoUpdateLayerId !== undefined && {
|
|
5453
5568
|
autoUpdateLayerId: autoUpdateLayerId
|
|
5454
|
-
}, {
|
|
5569
|
+
}), {}, {
|
|
5455
5570
|
proj: {
|
|
5456
5571
|
bbox: bbox,
|
|
5457
5572
|
srs: srs
|
|
@@ -5523,15 +5638,15 @@ var getAnimationList = createSelector(getLayersById, getMapById, getAnimationSta
|
|
|
5523
5638
|
// - start, end and interval for a continuous animation loop
|
|
5524
5639
|
// - timeList, for a custom timeList
|
|
5525
5640
|
// Here the animation is defined by a timeList
|
|
5526
|
-
if (mapStore
|
|
5641
|
+
if (mapStore !== null && mapStore !== void 0 && (_mapStore$timeList = mapStore.timeList) !== null && _mapStore$timeList !== void 0 && _mapStore$timeList.length) {
|
|
5527
5642
|
return mapStore.timeList;
|
|
5528
5643
|
}
|
|
5529
|
-
var autoTimeStepLayerId = mapStore
|
|
5530
|
-
var timeDimension = autoTimeStepLayerId && (layers
|
|
5644
|
+
var autoTimeStepLayerId = mapStore === null || mapStore === void 0 ? void 0 : mapStore.autoTimeStepLayerId;
|
|
5645
|
+
var timeDimension = autoTimeStepLayerId && (layers === null || layers === void 0 || (_layers$autoTimeStepL = layers[autoTimeStepLayerId]) === null || _layers$autoTimeStepL === void 0 || (_layers$autoTimeStepL = _layers$autoTimeStepL.dimensions) === null || _layers$autoTimeStepL === void 0 ? void 0 : _layers$autoTimeStepL.find(function (dimension) {
|
|
5531
5646
|
return dimension.name === 'time';
|
|
5532
5647
|
}));
|
|
5533
|
-
var
|
|
5534
|
-
values =
|
|
5648
|
+
var _ref4 = timeDimension || {},
|
|
5649
|
+
values = _ref4.values;
|
|
5535
5650
|
var unixAnimationStart = roundWithTimeStep(Number(animationStart && dateUtils.unix(dateUtils.utc(animationStart))), animationInterval, 'ceil');
|
|
5536
5651
|
var unixAnimationEnd = roundWithTimeStep(Number(animationEnd && dateUtils.unix(dateUtils.utc(animationEnd))), animationInterval, 'floor');
|
|
5537
5652
|
var animationList = generateAnimationList(unixAnimationStart, unixAnimationEnd, values);
|
|
@@ -5539,10 +5654,10 @@ var getAnimationList = createSelector(getLayersById, getMapById, getAnimationSta
|
|
|
5539
5654
|
if (!animationList.length) {
|
|
5540
5655
|
var timeList = [];
|
|
5541
5656
|
var intervalSeconds = animationInterval * 60;
|
|
5542
|
-
for (var
|
|
5657
|
+
for (var animTimeStep = unixAnimationStart; animTimeStep <= unixAnimationEnd; animTimeStep += intervalSeconds) {
|
|
5543
5658
|
timeList.push({
|
|
5544
5659
|
name: 'time',
|
|
5545
|
-
value: dateUtils.fromUnix(
|
|
5660
|
+
value: dateUtils.fromUnix(animTimeStep).toISOString()
|
|
5546
5661
|
});
|
|
5547
5662
|
}
|
|
5548
5663
|
return timeList;
|
|
@@ -5556,12 +5671,12 @@ var getAnimationList = createSelector(getLayersById, getMapById, getAnimationSta
|
|
|
5556
5671
|
*/
|
|
5557
5672
|
var getAnimationRange = createSelector(getLayersById, getAutoTimeStepLayerId, getAnimationStartTime, getAnimationEndTime, isAnimationLengthAuto, function (layers, autoTimeStepLayerId, startTime, endTime, isAnimationLengthAuto) {
|
|
5558
5673
|
var _layers$autoTimeStepL2;
|
|
5559
|
-
var layerTimeDimension = autoTimeStepLayerId && (layers
|
|
5674
|
+
var layerTimeDimension = autoTimeStepLayerId && (layers === null || layers === void 0 || (_layers$autoTimeStepL2 = layers[autoTimeStepLayerId]) === null || _layers$autoTimeStepL2 === void 0 || (_layers$autoTimeStepL2 = _layers$autoTimeStepL2.dimensions) === null || _layers$autoTimeStepL2 === void 0 ? void 0 : _layers$autoTimeStepL2.find(function (dimension) {
|
|
5560
5675
|
return dimension.name === 'time';
|
|
5561
5676
|
}));
|
|
5562
|
-
var
|
|
5563
|
-
minValue =
|
|
5564
|
-
maxValue =
|
|
5677
|
+
var _ref5 = layerTimeDimension || {},
|
|
5678
|
+
minValue = _ref5.minValue,
|
|
5679
|
+
maxValue = _ref5.maxValue;
|
|
5565
5680
|
var hasTimeDimension = minValue && maxValue;
|
|
5566
5681
|
var animationStartTime = isAnimationLengthAuto && autoTimeStepLayerId && hasTimeDimension ? minValue : startTime;
|
|
5567
5682
|
var animationEndTime = isAnimationLengthAuto && autoTimeStepLayerId && hasTimeDimension ? maxValue : endTime;
|
|
@@ -5633,6 +5748,7 @@ var selectors$1 = /*#__PURE__*/Object.freeze({
|
|
|
5633
5748
|
getMapTimeSliderCenterTime: getMapTimeSliderCenterTime,
|
|
5634
5749
|
getMapTimeSliderSecondsPerPx: getMapTimeSliderSecondsPerPx,
|
|
5635
5750
|
getMapTimeSliderSpan: getMapTimeSliderSpan,
|
|
5751
|
+
getMapTimeSliderStartCenterEndAndStep: getMapTimeSliderStartCenterEndAndStep,
|
|
5636
5752
|
getMapTimeSliderWidth: getMapTimeSliderWidth,
|
|
5637
5753
|
getMapTimeStep: getMapTimeStep,
|
|
5638
5754
|
getMapTimeStepWithoutDefault: getMapTimeStepWithoutDefault,
|
|
@@ -5699,32 +5815,11 @@ var enums = /*#__PURE__*/Object.freeze({
|
|
|
5699
5815
|
* */
|
|
5700
5816
|
var IS_LEGEND_OPEN_BY_DEFAULT = false;
|
|
5701
5817
|
|
|
5702
|
-
|
|
5703
|
-
|
|
5704
|
-
|
|
5705
|
-
|
|
5706
|
-
|
|
5707
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5708
|
-
*
|
|
5709
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
5710
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5711
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5712
|
-
* See the License for the specific language governing permissions and
|
|
5713
|
-
* limitations under the License.
|
|
5714
|
-
*
|
|
5715
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5716
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
5717
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
5718
|
-
* */
|
|
5719
|
-
var filterLayers = function filterLayers(layers, layerParser) {
|
|
5720
|
-
if (layers === void 0) {
|
|
5721
|
-
layers = [];
|
|
5722
|
-
}
|
|
5723
|
-
if (layerParser === void 0) {
|
|
5724
|
-
layerParser = function layerParser(layer) {
|
|
5725
|
-
return layer;
|
|
5726
|
-
};
|
|
5727
|
-
}
|
|
5818
|
+
var filterLayers = function filterLayers() {
|
|
5819
|
+
var layers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
5820
|
+
var layerParser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (layer) {
|
|
5821
|
+
return layer;
|
|
5822
|
+
};
|
|
5728
5823
|
return layers.reduce(function (layers, layer) {
|
|
5729
5824
|
var mapLayers = layers.mapLayers,
|
|
5730
5825
|
baseLayers = layers.baseLayers,
|
|
@@ -5765,39 +5860,22 @@ var parseBoolean = function parseBoolean(value) {
|
|
|
5765
5860
|
return typeof value === 'boolean' ? value : value === 'true';
|
|
5766
5861
|
};
|
|
5767
5862
|
var parseLayer = function parseLayer(layer) {
|
|
5768
|
-
return
|
|
5863
|
+
return _objectSpread2(_objectSpread2(_objectSpread2({}, layer), !layer.id && {
|
|
5769
5864
|
id: webmapUtils.generateLayerId()
|
|
5770
|
-
}, layer.enabled && {
|
|
5771
|
-
enabled: parseBoolean(layer.enabled)
|
|
5772
|
-
});
|
|
5773
|
-
};
|
|
5774
|
-
|
|
5775
|
-
var filterLayers$1 = /*#__PURE__*/Object.freeze({
|
|
5776
|
-
__proto__: null,
|
|
5777
|
-
createEmtpyFilteredList: createEmtpyFilteredList,
|
|
5778
|
-
filterLayers: filterLayers,
|
|
5779
|
-
parseBoolean: parseBoolean,
|
|
5780
|
-
parseLayer: parseLayer
|
|
5781
|
-
});
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5785
|
-
* you may not use this file except in compliance with the License.
|
|
5786
|
-
* You may obtain a copy of the License at
|
|
5787
|
-
*
|
|
5788
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5789
|
-
*
|
|
5790
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
5791
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5792
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5793
|
-
* See the License for the specific language governing permissions and
|
|
5794
|
-
* limitations under the License.
|
|
5795
|
-
*
|
|
5796
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
5797
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
5798
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
5799
|
-
* */
|
|
5800
|
-
var mapUtils = Object.assign({}, utils$2, {
|
|
5865
|
+
}), layer.enabled && {
|
|
5866
|
+
enabled: parseBoolean(layer.enabled)
|
|
5867
|
+
});
|
|
5868
|
+
};
|
|
5869
|
+
|
|
5870
|
+
var filterLayers$1 = /*#__PURE__*/Object.freeze({
|
|
5871
|
+
__proto__: null,
|
|
5872
|
+
createEmtpyFilteredList: createEmtpyFilteredList,
|
|
5873
|
+
filterLayers: filterLayers,
|
|
5874
|
+
parseBoolean: parseBoolean,
|
|
5875
|
+
parseLayer: parseLayer
|
|
5876
|
+
});
|
|
5877
|
+
|
|
5878
|
+
var mapUtils = _objectSpread2(_objectSpread2({}, utils$2), {}, {
|
|
5801
5879
|
replaceLayerIdsToEnsureUniqueLayerIdsInStore: replaceLayerIdsToEnsureUniqueLayerIdsInStore
|
|
5802
5880
|
});
|
|
5803
5881
|
|
|
@@ -6059,7 +6137,7 @@ var getLayerActionsTargets = function getLayerActionsTargets(state, payload, act
|
|
|
6059
6137
|
var foundTargets = findTargets(state, payload, actionType, mapId);
|
|
6060
6138
|
return foundTargets.map(function (target) {
|
|
6061
6139
|
var payload = target.payload;
|
|
6062
|
-
return
|
|
6140
|
+
return _objectSpread2(_objectSpread2({}, payload), {}, {
|
|
6063
6141
|
layerId: target.layerId,
|
|
6064
6142
|
origin: SyncGroupActionOrigin.layerActions,
|
|
6065
6143
|
mapId: payload.mapId
|
|
@@ -6080,9 +6158,9 @@ var getAddLayerActionsTargets = function getAddLayerActionsTargets(state, payloa
|
|
|
6080
6158
|
targetId = _ref.targetId;
|
|
6081
6159
|
var layer = payload.layer;
|
|
6082
6160
|
layer.id;
|
|
6083
|
-
var layerWithoutId =
|
|
6161
|
+
var layerWithoutId = _objectWithoutProperties(layer, _excluded$1);
|
|
6084
6162
|
var layerId = webmapUtils.generateLayerId();
|
|
6085
|
-
return
|
|
6163
|
+
return _objectSpread2(_objectSpread2({}, payload), {}, {
|
|
6086
6164
|
layer: layerWithoutId,
|
|
6087
6165
|
layerId: layerId,
|
|
6088
6166
|
mapId: targetId,
|
|
@@ -6100,7 +6178,7 @@ var getAddLayerActionsTargets = function getAddLayerActionsTargets(state, payloa
|
|
|
6100
6178
|
var getLayerDeleteActionsTargets = function getLayerDeleteActionsTargets(state, payload, actionType) {
|
|
6101
6179
|
var foundTargets = findTargets(state, payload, actionType, payload.mapId);
|
|
6102
6180
|
return foundTargets.map(function (target) {
|
|
6103
|
-
return
|
|
6181
|
+
return _objectSpread2(_objectSpread2({}, target.payload), {}, {
|
|
6104
6182
|
mapId: target.targetId,
|
|
6105
6183
|
layerId: target.layerId,
|
|
6106
6184
|
origin: SyncGroupActionOrigin["delete"]
|
|
@@ -6117,7 +6195,7 @@ var getLayerDeleteActionsTargets = function getLayerDeleteActionsTargets(state,
|
|
|
6117
6195
|
var getLayerMoveActionsTargets = function getLayerMoveActionsTargets(state, payload, actionType) {
|
|
6118
6196
|
var foundTargets = findTargets(state, payload, actionType, payload.mapId);
|
|
6119
6197
|
return foundTargets.map(function (target) {
|
|
6120
|
-
return
|
|
6198
|
+
return _objectSpread2(_objectSpread2({}, target.payload), {}, {
|
|
6121
6199
|
mapId: target.targetId,
|
|
6122
6200
|
origin: SyncGroupActionOrigin.move
|
|
6123
6201
|
});
|
|
@@ -6131,7 +6209,7 @@ var getLayerMoveActionsTargets = function getLayerMoveActionsTargets(state, payl
|
|
|
6131
6209
|
* @returns
|
|
6132
6210
|
*/
|
|
6133
6211
|
var getSetAutoLayerIdActionsTargets = function getSetAutoLayerIdActionsTargets(state, payload, actionType) {
|
|
6134
|
-
var payloadWithLayerId =
|
|
6212
|
+
var payloadWithLayerId = _objectSpread2(_objectSpread2({}, payload), {}, {
|
|
6135
6213
|
layerId: payload.autoUpdateLayerId || payload.autoTimeStepLayerId || payload.layerId
|
|
6136
6214
|
});
|
|
6137
6215
|
var foundTargets = findTargets(state, payloadWithLayerId, actionType, payload.mapId);
|
|
@@ -6155,7 +6233,7 @@ var getMapBaseLayerActionsTargets = function getMapBaseLayerActionsTargets(state
|
|
|
6155
6233
|
return foundTargets.map(function (target) {
|
|
6156
6234
|
return {
|
|
6157
6235
|
layers: payload.layers.map(function (layer) {
|
|
6158
|
-
return
|
|
6236
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
6159
6237
|
id: webmapUtils.generateLayerId()
|
|
6160
6238
|
});
|
|
6161
6239
|
}),
|
|
@@ -6180,7 +6258,7 @@ genericListener.startListening({
|
|
|
6180
6258
|
value = payload.value, origin = payload.origin;
|
|
6181
6259
|
/* Test if the value is according to the expected time format */
|
|
6182
6260
|
if (!setTimeValidatorRexexp.test(value)) {
|
|
6183
|
-
console.error("setTime value "
|
|
6261
|
+
console.error("setTime value ".concat(value, " does not conform to format [YYYY-MM-DDThh:mm:ssZ]. It was triggered by ").concat(origin));
|
|
6184
6262
|
} else {
|
|
6185
6263
|
targets = getTargets(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
|
|
6186
6264
|
groups = getTargetGroups(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
|
|
@@ -6448,9 +6526,9 @@ genericListener.startListening({
|
|
|
6448
6526
|
});
|
|
6449
6527
|
|
|
6450
6528
|
/* A map with all the timerIds and their current step */
|
|
6451
|
-
var stepMap = new Map();
|
|
6529
|
+
var stepMap$1 = new Map();
|
|
6452
6530
|
/* A map with a list of timers and their dwell */
|
|
6453
|
-
var timerDwellMap = new Map();
|
|
6531
|
+
var timerDwellMap$1 = new Map();
|
|
6454
6532
|
/**
|
|
6455
6533
|
* Returns the next step for given timerId.
|
|
6456
6534
|
* @param timerId The timer id
|
|
@@ -6458,11 +6536,9 @@ var timerDwellMap = new Map();
|
|
|
6458
6536
|
* @param numStepsToGoForward Amount of steps to go forwards, defaults to 1. Can be positive and negative
|
|
6459
6537
|
* @returns
|
|
6460
6538
|
*/
|
|
6461
|
-
var getNextStep = function getNextStep(timerId, numberOfStepsInAnimation
|
|
6462
|
-
|
|
6463
|
-
|
|
6464
|
-
}
|
|
6465
|
-
var currentStep = getCurrentStep(timerId);
|
|
6539
|
+
var getNextStep$1 = function getNextStep(timerId, numberOfStepsInAnimation) {
|
|
6540
|
+
var numStepsToGoForward = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
6541
|
+
var currentStep = getCurrentStep$1(timerId);
|
|
6466
6542
|
var nextStep = currentStep + numStepsToGoForward;
|
|
6467
6543
|
var nextStepClipped = (nextStep % numberOfStepsInAnimation + numberOfStepsInAnimation) % numberOfStepsInAnimation;
|
|
6468
6544
|
return nextStepClipped;
|
|
@@ -6474,21 +6550,19 @@ var getNextStep = function getNextStep(timerId, numberOfStepsInAnimation, numSte
|
|
|
6474
6550
|
* @param dwell The number of steps to wait at the end of the animation sequence before to continue
|
|
6475
6551
|
* @returns
|
|
6476
6552
|
*/
|
|
6477
|
-
var handleTimerDwell = function handleTimerDwell(timerId, numberOfStepsInAnimation
|
|
6478
|
-
|
|
6479
|
-
dwell = 8;
|
|
6480
|
-
}
|
|
6553
|
+
var handleTimerDwell$1 = function handleTimerDwell(timerId, numberOfStepsInAnimation) {
|
|
6554
|
+
var dwell = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;
|
|
6481
6555
|
if (dwell > 0) {
|
|
6482
|
-
var currentStep = getCurrentStep(timerId);
|
|
6556
|
+
var currentStep = getCurrentStep$1(timerId);
|
|
6483
6557
|
// Reset the dwell if we are not at the last animation step
|
|
6484
6558
|
if (currentStep < numberOfStepsInAnimation - 1) {
|
|
6485
|
-
timerDwellMap.set(timerId, dwell);
|
|
6559
|
+
timerDwellMap$1.set(timerId, dwell);
|
|
6486
6560
|
return false;
|
|
6487
6561
|
}
|
|
6488
6562
|
// We are at the last animation step, check the dwell
|
|
6489
|
-
var timerDwell = timerDwellMap.has(timerId) && timerDwellMap.get(timerId) || 0;
|
|
6563
|
+
var timerDwell = timerDwellMap$1.has(timerId) && timerDwellMap$1.get(timerId) || 0;
|
|
6490
6564
|
if (currentStep === numberOfStepsInAnimation - 1 && timerDwell > 0) {
|
|
6491
|
-
timerDwellMap.set(timerId, timerDwell - 1);
|
|
6565
|
+
timerDwellMap$1.set(timerId, timerDwell - 1);
|
|
6492
6566
|
return true;
|
|
6493
6567
|
}
|
|
6494
6568
|
}
|
|
@@ -6499,16 +6573,16 @@ var handleTimerDwell = function handleTimerDwell(timerId, numberOfStepsInAnimati
|
|
|
6499
6573
|
* @param timerId
|
|
6500
6574
|
* @param timerStep
|
|
6501
6575
|
*/
|
|
6502
|
-
var setStep = function setStep(timerId, timerStep) {
|
|
6503
|
-
stepMap.set(timerId, timerStep);
|
|
6576
|
+
var setStep$1 = function setStep(timerId, timerStep) {
|
|
6577
|
+
stepMap$1.set(timerId, timerStep);
|
|
6504
6578
|
};
|
|
6505
6579
|
/**
|
|
6506
6580
|
* Gets the current step for the timer
|
|
6507
6581
|
* @param timerId
|
|
6508
6582
|
* @returns
|
|
6509
6583
|
*/
|
|
6510
|
-
var getCurrentStep = function getCurrentStep(timerId) {
|
|
6511
|
-
return stepMap.get(timerId) || 0;
|
|
6584
|
+
var getCurrentStep$1 = function getCurrentStep(timerId) {
|
|
6585
|
+
return stepMap$1.get(timerId) || 0;
|
|
6512
6586
|
};
|
|
6513
6587
|
var MAX_NUMBER_STEPS_FORWARD_TO_PREFETCH = 2;
|
|
6514
6588
|
var MAX_NUMBER_OF_PARALLEL_LOADING_IMAGES = 8;
|
|
@@ -6523,41 +6597,57 @@ var prefetchAnimationTargetsForMetronome = function prefetchAnimationTargetsForM
|
|
|
6523
6597
|
var timerShouldStepForward = true;
|
|
6524
6598
|
// The following code prefetches/buffers for all maps in the group
|
|
6525
6599
|
for (var numPrefetch = 0; numPrefetch < MAX_NUMBER_STEPS_FORWARD_TO_PREFETCH; numPrefetch += 1) {
|
|
6526
|
-
var nextStep = getNextStep(timerId, animationListValues.length, numPrefetch + 1);
|
|
6600
|
+
var nextStep = getNextStep$1(timerId, animationListValues.length, numPrefetch + 1);
|
|
6527
6601
|
var nextTimeValueStepToCheck = animationListValues[nextStep];
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6535
|
-
|
|
6536
|
-
|
|
6537
|
-
|
|
6538
|
-
|
|
6539
|
-
|
|
6540
|
-
|
|
6541
|
-
|
|
6542
|
-
|
|
6543
|
-
|
|
6544
|
-
|
|
6545
|
-
|
|
6546
|
-
|
|
6547
|
-
var
|
|
6548
|
-
|
|
6549
|
-
|
|
6550
|
-
|
|
6551
|
-
|
|
6552
|
-
|
|
6602
|
+
var _iterator = _createForOfIteratorHelper(targets),
|
|
6603
|
+
_step;
|
|
6604
|
+
try {
|
|
6605
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
6606
|
+
var target = _step.value;
|
|
6607
|
+
var targetMapId = target.targetId;
|
|
6608
|
+
var wmMap = getWMJSMapById(targetMapId);
|
|
6609
|
+
if (!wmMap) {
|
|
6610
|
+
return true; // Map was not registered so there is nothing to prefetch, do not block going forward
|
|
6611
|
+
}
|
|
6612
|
+
var layersImageUrls = getWMSRequests(wmMap, [{
|
|
6613
|
+
name: 'time',
|
|
6614
|
+
currentValue: nextTimeValueStepToCheck
|
|
6615
|
+
}]);
|
|
6616
|
+
var _iterator2 = _createForOfIteratorHelper(layersImageUrls),
|
|
6617
|
+
_step2;
|
|
6618
|
+
try {
|
|
6619
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
6620
|
+
var layersImageUrl = _step2.value;
|
|
6621
|
+
var image = wmMap.getMapImageStore.getImage(layersImageUrl.url);
|
|
6622
|
+
if (!image.isLoaded()) {
|
|
6623
|
+
if (wmMap.getMapImageStore.getNumImagesLoading() < MAX_NUMBER_OF_PARALLEL_LOADING_IMAGES) {
|
|
6624
|
+
image.load();
|
|
6625
|
+
}
|
|
6626
|
+
if (numPrefetch === 0) {
|
|
6627
|
+
var altImage = wmMap.getAlternativeImage(layersImageUrl.url, wmMap.getBBOX(), true);
|
|
6628
|
+
// No alternative image available yet, so skipping animation.
|
|
6629
|
+
if (altImage.length === 0) {
|
|
6630
|
+
// This is useful to indicate that the map is loading and has nothing yet to display.
|
|
6631
|
+
// console.warn('No data available: Not stepping forward');
|
|
6632
|
+
timerShouldStepForward = false;
|
|
6633
|
+
}
|
|
6634
|
+
}
|
|
6635
|
+
} else if (image.isStale()) {
|
|
6636
|
+
if (wmMap.getMapImageStore.getNumImagesLoading() < MAX_NUMBER_OF_PARALLEL_LOADING_IMAGES) {
|
|
6637
|
+
image.forceReload(true);
|
|
6638
|
+
}
|
|
6553
6639
|
}
|
|
6554
6640
|
}
|
|
6555
|
-
}
|
|
6556
|
-
|
|
6557
|
-
|
|
6558
|
-
|
|
6641
|
+
} catch (err) {
|
|
6642
|
+
_iterator2.e(err);
|
|
6643
|
+
} finally {
|
|
6644
|
+
_iterator2.f();
|
|
6559
6645
|
}
|
|
6560
6646
|
}
|
|
6647
|
+
} catch (err) {
|
|
6648
|
+
_iterator.e(err);
|
|
6649
|
+
} finally {
|
|
6650
|
+
_iterator.f();
|
|
6561
6651
|
}
|
|
6562
6652
|
}
|
|
6563
6653
|
return timerShouldStepForward;
|
|
@@ -6614,8 +6704,8 @@ mapListener.startListening({
|
|
|
6614
6704
|
var shouldAutoUpdate = isAutoUpdating(listenerApi.getState(), mapId);
|
|
6615
6705
|
var prevTimeDimension = getLayerTimeDimension(listenerApi.getState(), layerId);
|
|
6616
6706
|
var isAutoUpdateLayer = layerId === autoUpdateLayerId;
|
|
6617
|
-
var incomingMaxTime = newTimeDimension
|
|
6618
|
-
var isIncomingMaxTimeLaterThanCurrentLayerTime = incomingMaxTime && (prevTimeDimension
|
|
6707
|
+
var incomingMaxTime = newTimeDimension === null || newTimeDimension === void 0 ? void 0 : newTimeDimension.maxValue;
|
|
6708
|
+
var isIncomingMaxTimeLaterThanCurrentLayerTime = incomingMaxTime && (prevTimeDimension === null || prevTimeDimension === void 0 ? void 0 : prevTimeDimension.currentValue) && prevTimeDimension.currentValue !== incomingMaxTime;
|
|
6619
6709
|
if (isAutoUpdateLayer &&
|
|
6620
6710
|
// only update the active layer
|
|
6621
6711
|
shouldAutoUpdate && isIncomingMaxTimeLaterThanCurrentLayerTime) {
|
|
@@ -6704,7 +6794,7 @@ mapListener.startListening({
|
|
|
6704
6794
|
autoUpdateLayerId = getAutoUpdateLayerId(listenerApi.getState(), mapId);
|
|
6705
6795
|
timeDimension = getLayerTimeDimension(listenerApi.getState(), autoUpdateLayerId);
|
|
6706
6796
|
syncedMapIds = getSyncedMapIdsForTimeslider(listenerApi.getState()); // go to end of active layer
|
|
6707
|
-
if (timeDimension
|
|
6797
|
+
if (timeDimension !== null && timeDimension !== void 0 && timeDimension.maxValue && autoUpdateLayerId) {
|
|
6708
6798
|
listenerApi.dispatch(layerActions.layerChangeDimension({
|
|
6709
6799
|
layerId: autoUpdateLayerId,
|
|
6710
6800
|
origin: LayerActionOrigin.toggleAutoUpdateListener,
|
|
@@ -6777,11 +6867,11 @@ mapListener.startListening({
|
|
|
6777
6867
|
// In case of the timeList
|
|
6778
6868
|
if (timeList && timeList.length > 0) {
|
|
6779
6869
|
// Determine animation step based on initialTime and timeList
|
|
6780
|
-
var initalTimerStep = timeList
|
|
6870
|
+
var initalTimerStep = timeList === null || timeList === void 0 ? void 0 : timeList.findIndex(function (timeNameValue) {
|
|
6781
6871
|
return timeNameValue.value === initialTime;
|
|
6782
6872
|
});
|
|
6783
6873
|
if (initalTimerStep !== -1) {
|
|
6784
|
-
setStep(useMapId, initalTimerStep);
|
|
6874
|
+
setStep$1(useMapId, initalTimerStep);
|
|
6785
6875
|
}
|
|
6786
6876
|
}
|
|
6787
6877
|
}
|
|
@@ -6813,14 +6903,14 @@ var handleBaseLayers = function handleBaseLayers(mapId, baseLayers, listenerApi)
|
|
|
6813
6903
|
// This happens when switching to a preset that has non-default baselayers
|
|
6814
6904
|
if (!activeAvailableBaseLayer && currentAvailableBaseLayers.length) {
|
|
6815
6905
|
listenerApi.dispatch(layerActions.addAvailableBaseLayers({
|
|
6816
|
-
layers: [
|
|
6906
|
+
layers: [_objectSpread2(_objectSpread2({}, baseLayer), {}, {
|
|
6817
6907
|
mapId: mapId,
|
|
6818
6908
|
id: activeBaseLayerId
|
|
6819
6909
|
})]
|
|
6820
6910
|
}));
|
|
6821
6911
|
}
|
|
6822
6912
|
var baseLayersWithActiveId = baseLayers.map(function (layer, index) {
|
|
6823
|
-
return index === 0 ?
|
|
6913
|
+
return index === 0 ? _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
6824
6914
|
id: activeBaseLayerId || layer.id
|
|
6825
6915
|
}) : layer;
|
|
6826
6916
|
});
|
|
@@ -6868,10 +6958,10 @@ mapListener.startListening({
|
|
|
6868
6958
|
// make sure layer with new id exist and if not, default to first layer
|
|
6869
6959
|
newAutoUpdateLayerId = ((_newLayerIds$layers$f = newLayerIds.layers.find(function (layer) {
|
|
6870
6960
|
return layer.id === newLayerIds.autoUpdateLayerId;
|
|
6871
|
-
}))
|
|
6961
|
+
})) === null || _newLayerIds$layers$f === void 0 ? void 0 : _newLayerIds$layers$f.id) || ((_newLayerIds$layers$ = newLayerIds.layers[0]) === null || _newLayerIds$layers$ === void 0 ? void 0 : _newLayerIds$layers$.id);
|
|
6872
6962
|
newAutoTimeStepLayerId = ((_newLayerIds$layers$f2 = newLayerIds.layers.find(function (layer) {
|
|
6873
6963
|
return layer.id === newLayerIds.autoTimeStepLayerId;
|
|
6874
|
-
}))
|
|
6964
|
+
})) === null || _newLayerIds$layers$f2 === void 0 ? void 0 : _newLayerIds$layers$f2.id) || ((_newLayerIds$layers$2 = newLayerIds.layers[0]) === null || _newLayerIds$layers$2 === void 0 ? void 0 : _newLayerIds$layers$2.id);
|
|
6875
6965
|
listenerApi.dispatch(mapActions.setAutoLayerId({
|
|
6876
6966
|
mapId: mapId,
|
|
6877
6967
|
autoUpdateLayerId: newAutoUpdateLayerId,
|
|
@@ -6879,16 +6969,16 @@ mapListener.startListening({
|
|
|
6879
6969
|
}));
|
|
6880
6970
|
}
|
|
6881
6971
|
customLayers = getdefaultMapSettingsLayers(listenerApi.getState());
|
|
6882
|
-
customBaseLayer = customLayers
|
|
6972
|
+
customBaseLayer = customLayers === null || customLayers === void 0 ? void 0 : customLayers.find(function (layer) {
|
|
6883
6973
|
return layer.layerType === LayerType.baseLayer;
|
|
6884
6974
|
});
|
|
6885
|
-
customOverLayer = customLayers
|
|
6975
|
+
customOverLayer = customLayers === null || customLayers === void 0 ? void 0 : customLayers.find(function (layer) {
|
|
6886
6976
|
return layer.layerType === LayerType.overLayer;
|
|
6887
6977
|
}); // sets (default) baseLayers
|
|
6888
6978
|
baseLayersWithDefaultLayer = baseLayers.length ? baseLayers : [customBaseLayer || defaultLayers.baseLayerGrey]; // sets (default) overLayers
|
|
6889
6979
|
overLayersWithDefaultLayer = overLayers.length ? overLayers : [customOverLayer || defaultLayers.overLayer];
|
|
6890
|
-
allBaseLayers = [].concat(baseLayersWithDefaultLayer, overLayersWithDefaultLayer).map(function (layer) {
|
|
6891
|
-
return
|
|
6980
|
+
allBaseLayers = [].concat(_toConsumableArray(baseLayersWithDefaultLayer), _toConsumableArray(overLayersWithDefaultLayer)).map(function (layer) {
|
|
6981
|
+
return _objectSpread2(_objectSpread2({}, layer), {}, {
|
|
6892
6982
|
id: webmapUtils.generateLayerId()
|
|
6893
6983
|
});
|
|
6894
6984
|
});
|
|
@@ -6902,7 +6992,7 @@ mapListener.startListening({
|
|
|
6902
6992
|
_context2.next = 19;
|
|
6903
6993
|
break;
|
|
6904
6994
|
}
|
|
6905
|
-
throw new Error("Projection "
|
|
6995
|
+
throw new Error("Projection ".concat(proj.srs, " is not supported"));
|
|
6906
6996
|
case 19:
|
|
6907
6997
|
// set bbox
|
|
6908
6998
|
listenerApi.dispatch(mapActions.setBbox({
|
|
@@ -7135,8 +7225,9 @@ mapListener.startListening({
|
|
|
7135
7225
|
var timeStep = getMapTimeStep(listenerApi.getState(), mapId);
|
|
7136
7226
|
var currentTime = getSelectedTime(listenerApi.getState(), mapId);
|
|
7137
7227
|
var _mapSelectors$getData = getDataLimitsFromLayers(listenerApi.getState(), mapId),
|
|
7138
|
-
|
|
7139
|
-
|
|
7228
|
+
_mapSelectors$getData2 = _slicedToArray(_mapSelectors$getData, 2),
|
|
7229
|
+
dataStartTime = _mapSelectors$getData2[0],
|
|
7230
|
+
dataEndTime = _mapSelectors$getData2[1];
|
|
7140
7231
|
if (dateUtils.isValid(currentTime)) {
|
|
7141
7232
|
var makeForwardStep = function makeForwardStep() {
|
|
7142
7233
|
var nextTime = currentTime + timeStep;
|
|
@@ -7167,6 +7258,186 @@ mapListener.startListening({
|
|
|
7167
7258
|
}
|
|
7168
7259
|
});
|
|
7169
7260
|
|
|
7261
|
+
var copyView = function copyView(view) {
|
|
7262
|
+
return new View({
|
|
7263
|
+
center: view.getCenter(),
|
|
7264
|
+
resolution: view.getResolution(),
|
|
7265
|
+
projection: view.getProjection()
|
|
7266
|
+
});
|
|
7267
|
+
};
|
|
7268
|
+
/**
|
|
7269
|
+
* The StoredView objects keep references to OpenLayers View objects that may be shared
|
|
7270
|
+
* between multiple maps (when maps are pan/zoom synced).
|
|
7271
|
+
* This file then offers and API for each map to retrieve the StoredView object
|
|
7272
|
+
* that is relevant for the current workspace configuration.
|
|
7273
|
+
*
|
|
7274
|
+
* React is functional, but OpenLayers is object oriented.
|
|
7275
|
+
* This component sits in between the two and thus you can make an argument for either style.
|
|
7276
|
+
* Object oriented was chosen since:
|
|
7277
|
+
* - This allows us to use OpenLayers's Observable as a base class to provide event handling,
|
|
7278
|
+
* which is useful for the implementation.
|
|
7279
|
+
* - For this mechanism to work smoothly with OpenLayers,
|
|
7280
|
+
* we need to pass the exact same View object reference for all maps that are synchronized. Redux stores cannot be used in this context and prop drilling and/or context providers would likely lead to more invasive implementations.
|
|
7281
|
+
*/
|
|
7282
|
+
var StoredView = /*#__PURE__*/function (_Observable) {
|
|
7283
|
+
function StoredView(name, view) {
|
|
7284
|
+
var _this;
|
|
7285
|
+
_classCallCheck(this, StoredView);
|
|
7286
|
+
_this = _callSuper(this, StoredView);
|
|
7287
|
+
_this.name = name;
|
|
7288
|
+
_this.view = view;
|
|
7289
|
+
return _this;
|
|
7290
|
+
}
|
|
7291
|
+
_inherits(StoredView, _Observable);
|
|
7292
|
+
return _createClass(StoredView, [{
|
|
7293
|
+
key: "setView",
|
|
7294
|
+
value: function setView(view) {
|
|
7295
|
+
this.view = view;
|
|
7296
|
+
this.changed();
|
|
7297
|
+
}
|
|
7298
|
+
}]);
|
|
7299
|
+
}(Observable);
|
|
7300
|
+
var VIEW_PER_SYNCGROUP = {};
|
|
7301
|
+
var VIEW_PER_MAP = {};
|
|
7302
|
+
var getViewObjectForMapId = function getViewObjectForMapId(id) {
|
|
7303
|
+
var storedView = VIEW_PER_MAP[id];
|
|
7304
|
+
if (!storedView) {
|
|
7305
|
+
var newStoredView = new StoredView("view:".concat(id), new View());
|
|
7306
|
+
VIEW_PER_MAP[id] = newStoredView;
|
|
7307
|
+
return newStoredView;
|
|
7308
|
+
}
|
|
7309
|
+
return storedView;
|
|
7310
|
+
};
|
|
7311
|
+
var createViewObjectForNewMap = function createViewObjectForNewMap(createFromId, newId) {
|
|
7312
|
+
var orig = VIEW_PER_MAP[createFromId];
|
|
7313
|
+
if (!orig) {
|
|
7314
|
+
return;
|
|
7315
|
+
}
|
|
7316
|
+
// If there already is a view for `newId`, use that one but set the view from createFromId
|
|
7317
|
+
// this can happen for example when switching presets
|
|
7318
|
+
if (VIEW_PER_MAP[newId] !== undefined) {
|
|
7319
|
+
VIEW_PER_MAP[newId].setView(copyView(orig.view));
|
|
7320
|
+
return;
|
|
7321
|
+
}
|
|
7322
|
+
VIEW_PER_MAP[newId] = new StoredView("view:".concat(newId), copyView(orig.view));
|
|
7323
|
+
};
|
|
7324
|
+
var getViewObjectForSyncGroup = function getViewObjectForSyncGroup(id) {
|
|
7325
|
+
var storedView = VIEW_PER_SYNCGROUP[id];
|
|
7326
|
+
if (!storedView) {
|
|
7327
|
+
var newStoredView = new StoredView("syncgroup:".concat(id), new View());
|
|
7328
|
+
VIEW_PER_SYNCGROUP[id] = newStoredView;
|
|
7329
|
+
return newStoredView;
|
|
7330
|
+
}
|
|
7331
|
+
return storedView;
|
|
7332
|
+
};
|
|
7333
|
+
|
|
7334
|
+
/* *
|
|
7335
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7336
|
+
* you may not use this file except in compliance with the License.
|
|
7337
|
+
* You may obtain a copy of the License at
|
|
7338
|
+
*
|
|
7339
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7340
|
+
*
|
|
7341
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7342
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7343
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7344
|
+
* See the License for the specific language governing permissions and
|
|
7345
|
+
* limitations under the License.
|
|
7346
|
+
*
|
|
7347
|
+
* Copyright 2024 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7348
|
+
* Copyright 2024 - Finnish Meteorological Institute (FMI)
|
|
7349
|
+
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7350
|
+
* */
|
|
7351
|
+
var openlayersListener = createListenerMiddleware();
|
|
7352
|
+
var getGroupForMap = function getGroupForMap(mapId, state) {
|
|
7353
|
+
var syncGroupState = getSynchronizationGroupState(state);
|
|
7354
|
+
return syncGroupState.groups.allIds.find(function (id) {
|
|
7355
|
+
var group = syncGroupState.groups.byId[id];
|
|
7356
|
+
return group.type === SYNCGROUPS_TYPE_SETBBOX && group.targets.allIds.indexOf(mapId) !== -1;
|
|
7357
|
+
});
|
|
7358
|
+
};
|
|
7359
|
+
// This is fired when the preset is set up and when the projection is changed
|
|
7360
|
+
openlayersListener.startListening({
|
|
7361
|
+
actionCreator: mapActions.setBbox,
|
|
7362
|
+
effect: function effect(_ref, listenerApi) {
|
|
7363
|
+
var payload = _ref.payload;
|
|
7364
|
+
var mapId = payload.mapId,
|
|
7365
|
+
bbox = payload.bbox,
|
|
7366
|
+
srs = payload.srs;
|
|
7367
|
+
var extent = boundingExtent([[bbox.left, bbox.bottom], [bbox.right, bbox.top]]);
|
|
7368
|
+
var storedViewForMap = getViewObjectForMapId(mapId);
|
|
7369
|
+
var view = new View({
|
|
7370
|
+
projection: srs,
|
|
7371
|
+
center: getCenter(extent)
|
|
7372
|
+
});
|
|
7373
|
+
storedViewForMap.setView(view);
|
|
7374
|
+
// 1024 is the current best guess for width / height of a map
|
|
7375
|
+
// Feature request made for OL to help us get this right https://github.com/openlayers/openlayers/issues/16572
|
|
7376
|
+
view.setViewportSize([1024, 1024]);
|
|
7377
|
+
var resolution = view.getResolutionForExtent(extent);
|
|
7378
|
+
view.setResolution(resolution);
|
|
7379
|
+
// Also: if this map is part of a group and the srs has changed => change group view
|
|
7380
|
+
var mapSyncGroup = getGroupForMap(mapId, listenerApi.getState());
|
|
7381
|
+
if (!mapSyncGroup) {
|
|
7382
|
+
return;
|
|
7383
|
+
}
|
|
7384
|
+
var groupView = getViewObjectForSyncGroup(mapSyncGroup);
|
|
7385
|
+
if (!groupView.view.isDef() || groupView.view.getProjection().getCode() !== srs) {
|
|
7386
|
+
groupView.setView(copyView(view));
|
|
7387
|
+
}
|
|
7388
|
+
}
|
|
7389
|
+
});
|
|
7390
|
+
// This is fired when the map view is updated (regardless of if the map is in a group or not)
|
|
7391
|
+
// When a map is in a group, this needs to ensure the view of the map is kept up-to-date
|
|
7392
|
+
openlayersListener.startListening({
|
|
7393
|
+
actionCreator: setBboxSync,
|
|
7394
|
+
effect: function effect(_ref2, listenerApi) {
|
|
7395
|
+
var _payload$source;
|
|
7396
|
+
var payload = _ref2.payload;
|
|
7397
|
+
var mapId = (_payload$source = payload.source) === null || _payload$source === void 0 ? void 0 : _payload$source.payload.sourceId;
|
|
7398
|
+
var mapSyncGroup = getGroupForMap(mapId, listenerApi.getState());
|
|
7399
|
+
if (!mapSyncGroup) {
|
|
7400
|
+
return;
|
|
7401
|
+
}
|
|
7402
|
+
var groupView = getViewObjectForSyncGroup(mapSyncGroup);
|
|
7403
|
+
var mapView = getViewObjectForMapId(mapId);
|
|
7404
|
+
if (mapView.view.getProjection() === groupView.view.getProjection()) {
|
|
7405
|
+
mapView.view.setCenter(groupView.view.getCenter());
|
|
7406
|
+
mapView.view.setResolution(groupView.view.getResolution());
|
|
7407
|
+
} else {
|
|
7408
|
+
mapView.setView(copyView(groupView.view));
|
|
7409
|
+
}
|
|
7410
|
+
}
|
|
7411
|
+
});
|
|
7412
|
+
openlayersListener.startListening({
|
|
7413
|
+
actionCreator: syncGroupAddGroup,
|
|
7414
|
+
effect: function effect(_ref3) {
|
|
7415
|
+
var payload = _ref3.payload;
|
|
7416
|
+
if (payload.type !== SYNCGROUPS_TYPE_SETBBOX) {
|
|
7417
|
+
return;
|
|
7418
|
+
}
|
|
7419
|
+
// Ensure there is an openlayers view for the sync group
|
|
7420
|
+
getViewObjectForSyncGroup(payload.groupId);
|
|
7421
|
+
}
|
|
7422
|
+
});
|
|
7423
|
+
// Ensure sync group view has contents: when a target is added to a group whose view is undefined, copy the view from the target
|
|
7424
|
+
openlayersListener.startListening({
|
|
7425
|
+
actionCreator: syncGroupAddTarget,
|
|
7426
|
+
effect: function effect(_ref4, listenerApi) {
|
|
7427
|
+
var payload = _ref4.payload;
|
|
7428
|
+
var group = getSynchronizationGroup(listenerApi.getState(), payload.groupId);
|
|
7429
|
+
if (!group || group.type !== SYNCGROUPS_TYPE_SETBBOX) {
|
|
7430
|
+
return;
|
|
7431
|
+
}
|
|
7432
|
+
var groupView = getViewObjectForSyncGroup(payload.groupId);
|
|
7433
|
+
if (groupView.view.isDef()) {
|
|
7434
|
+
return;
|
|
7435
|
+
}
|
|
7436
|
+
var mapView = getViewObjectForMapId(payload.targetId);
|
|
7437
|
+
groupView.setView(copyView(mapView.view));
|
|
7438
|
+
}
|
|
7439
|
+
});
|
|
7440
|
+
|
|
7170
7441
|
var _excluded = ["url"];
|
|
7171
7442
|
var serviceListener = createListenerMiddleware();
|
|
7172
7443
|
var fetchService = /*#__PURE__*/function () {
|
|
@@ -7180,7 +7451,7 @@ var fetchService = /*#__PURE__*/function () {
|
|
|
7180
7451
|
return queryWMSLayers(service.serviceUrl);
|
|
7181
7452
|
case 3:
|
|
7182
7453
|
layers = _context.sent;
|
|
7183
|
-
listenerApi.dispatch(serviceActions.serviceSetLayers(
|
|
7454
|
+
listenerApi.dispatch(serviceActions.serviceSetLayers(_objectSpread2(_objectSpread2({}, service), {}, {
|
|
7184
7455
|
layers: layers
|
|
7185
7456
|
})));
|
|
7186
7457
|
_context.next = 10;
|
|
@@ -7216,8 +7487,8 @@ var fetchInitialServices = /*#__PURE__*/function () {
|
|
|
7216
7487
|
_context2.next = 5;
|
|
7217
7488
|
return Promise.all(payload.services.map(function (_ref3) {
|
|
7218
7489
|
var url = _ref3.url,
|
|
7219
|
-
service =
|
|
7220
|
-
return fetchService(
|
|
7490
|
+
service = _objectWithoutProperties(_ref3, _excluded);
|
|
7491
|
+
return fetchService(_objectSpread2(_objectSpread2({}, service), {}, {
|
|
7221
7492
|
serviceUrl: url
|
|
7222
7493
|
}), listenerApi);
|
|
7223
7494
|
}));
|
|
@@ -7348,23 +7619,6 @@ routerListener.startListening({
|
|
|
7348
7619
|
}()
|
|
7349
7620
|
});
|
|
7350
7621
|
|
|
7351
|
-
/* *
|
|
7352
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7353
|
-
* you may not use this file except in compliance with the License.
|
|
7354
|
-
* You may obtain a copy of the License at
|
|
7355
|
-
*
|
|
7356
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7357
|
-
*
|
|
7358
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
7359
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7360
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7361
|
-
* See the License for the specific language governing permissions and
|
|
7362
|
-
* limitations under the License.
|
|
7363
|
-
*
|
|
7364
|
-
* Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7365
|
-
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
7366
|
-
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
7367
|
-
* */
|
|
7368
7622
|
// reducer utils
|
|
7369
7623
|
var drawAdapter = createEntityAdapter({
|
|
7370
7624
|
selectId: function selectId(draw) {
|
|
@@ -7375,9 +7629,9 @@ var getDrawToolByLayerId = function getDrawToolByLayerId(draft, layerId) {
|
|
|
7375
7629
|
var drawTool = draft.ids.map(function (id) {
|
|
7376
7630
|
return draft.entities[id];
|
|
7377
7631
|
}).find(function (tool) {
|
|
7378
|
-
return (tool
|
|
7632
|
+
return (tool === null || tool === void 0 ? void 0 : tool.geoJSONLayerId) === layerId;
|
|
7379
7633
|
});
|
|
7380
|
-
return (drawTool
|
|
7634
|
+
return (drawTool === null || drawTool === void 0 ? void 0 : drawTool.drawToolId) || undefined;
|
|
7381
7635
|
};
|
|
7382
7636
|
var initialState = drawAdapter.getInitialState();
|
|
7383
7637
|
var slice = createSlice({
|
|
@@ -7424,11 +7678,11 @@ var slice = createSlice({
|
|
|
7424
7678
|
var tool = drawTool.drawModes.find(function (drawMode) {
|
|
7425
7679
|
return drawMode.drawModeId === drawModeId;
|
|
7426
7680
|
});
|
|
7427
|
-
if ((tool
|
|
7681
|
+
if ((tool === null || tool === void 0 ? void 0 : tool.isSelectable) === false) {
|
|
7428
7682
|
drawTool.activeDrawModeId = '';
|
|
7429
7683
|
return;
|
|
7430
7684
|
}
|
|
7431
|
-
if ((drawTool
|
|
7685
|
+
if ((drawTool === null || drawTool === void 0 ? void 0 : drawTool.activeDrawModeId) !== drawModeId || !shouldUpdateShape) {
|
|
7432
7686
|
drawTool.activeDrawModeId = drawModeId;
|
|
7433
7687
|
} else {
|
|
7434
7688
|
drawTool.activeDrawModeId = '';
|
|
@@ -7457,7 +7711,7 @@ var slice = createSlice({
|
|
|
7457
7711
|
}
|
|
7458
7712
|
var newModes = drawTool.drawModes.map(function (mode) {
|
|
7459
7713
|
if (mode.drawModeId === drawModeId) {
|
|
7460
|
-
return
|
|
7714
|
+
return _objectSpread2(_objectSpread2({}, mode), {}, {
|
|
7461
7715
|
shape: shape
|
|
7462
7716
|
}, title && {
|
|
7463
7717
|
title: title
|
|
@@ -7496,11 +7750,11 @@ var slice = createSlice({
|
|
|
7496
7750
|
var entity = draft.entities[drawToolId];
|
|
7497
7751
|
if (drawToolId && entity !== undefined) {
|
|
7498
7752
|
var _entity$drawModes;
|
|
7499
|
-
var newDrawModes = entity
|
|
7753
|
+
var newDrawModes = entity === null || entity === void 0 || (_entity$drawModes = entity.drawModes) === null || _entity$drawModes === void 0 ? void 0 : _entity$drawModes.map(function (mode) {
|
|
7500
7754
|
if (mode.shape.type === 'Feature') {
|
|
7501
|
-
return
|
|
7502
|
-
shape:
|
|
7503
|
-
properties:
|
|
7755
|
+
return _objectSpread2(_objectSpread2({}, mode), {}, {
|
|
7756
|
+
shape: _objectSpread2(_objectSpread2({}, mode.shape), {}, {
|
|
7757
|
+
properties: _objectSpread2(_objectSpread2({}, mode.shape.properties), properties)
|
|
7504
7758
|
})
|
|
7505
7759
|
});
|
|
7506
7760
|
}
|
|
@@ -7552,7 +7806,7 @@ var getDrawingtoolStore = function getDrawingtoolStore(store) {
|
|
|
7552
7806
|
};
|
|
7553
7807
|
var _drawAdapter$getSelec = drawAdapter.getSelectors(function (state) {
|
|
7554
7808
|
var _state$drawingtools;
|
|
7555
|
-
return (_state$drawingtools = state
|
|
7809
|
+
return (_state$drawingtools = state === null || state === void 0 ? void 0 : state.drawingtools) !== null && _state$drawingtools !== void 0 ? _state$drawingtools : {
|
|
7556
7810
|
entities: {},
|
|
7557
7811
|
ids: []
|
|
7558
7812
|
};
|
|
@@ -7560,35 +7814,35 @@ var _drawAdapter$getSelec = drawAdapter.getSelectors(function (state) {
|
|
|
7560
7814
|
selectDrawToolById = _drawAdapter$getSelec.selectById,
|
|
7561
7815
|
selectAllDrawingTools = _drawAdapter$getSelec.selectAll;
|
|
7562
7816
|
var getActiveDrawToolId = createSelector(selectAllDrawingTools, function (drawtools) {
|
|
7563
|
-
var activeDrawTool = drawtools
|
|
7817
|
+
var activeDrawTool = drawtools === null || drawtools === void 0 ? void 0 : drawtools.find(function (drawtool) {
|
|
7564
7818
|
return drawtool.activeDrawModeId !== '';
|
|
7565
7819
|
});
|
|
7566
|
-
return (activeDrawTool
|
|
7820
|
+
return (activeDrawTool === null || activeDrawTool === void 0 ? void 0 : activeDrawTool.drawToolId) || '';
|
|
7567
7821
|
});
|
|
7568
7822
|
var getDrawModeById = createSelector(selectDrawToolById, function (_store, _drawToolId, drawModeId) {
|
|
7569
7823
|
return drawModeId;
|
|
7570
7824
|
}, function (draw, drawModeId) {
|
|
7571
|
-
return draw
|
|
7825
|
+
return draw === null || draw === void 0 ? void 0 : draw.drawModes.find(function (tool) {
|
|
7572
7826
|
return tool.drawModeId === drawModeId;
|
|
7573
7827
|
});
|
|
7574
7828
|
});
|
|
7575
7829
|
var getActiveDrawModeId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7576
|
-
return (drawingTool
|
|
7830
|
+
return (drawingTool === null || drawingTool === void 0 ? void 0 : drawingTool.activeDrawModeId) || '';
|
|
7577
7831
|
});
|
|
7578
7832
|
var getDrawToolGeoJSONLayerId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7579
|
-
return (drawingTool
|
|
7833
|
+
return (drawingTool === null || drawingTool === void 0 ? void 0 : drawingTool.geoJSONLayerId) || '';
|
|
7580
7834
|
});
|
|
7581
7835
|
var getGeoJSONIntersectionLayerId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7582
|
-
return drawingTool
|
|
7836
|
+
return drawingTool === null || drawingTool === void 0 ? void 0 : drawingTool.geoJSONIntersectionLayerId;
|
|
7583
7837
|
});
|
|
7584
7838
|
var getGeoJSONIntersectionBoundsLayerId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7585
|
-
return drawingTool
|
|
7839
|
+
return drawingTool === null || drawingTool === void 0 ? void 0 : drawingTool.geoJSONIntersectionBoundsLayerId;
|
|
7586
7840
|
});
|
|
7587
7841
|
var getShouldAllowMultipleShapes = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7588
|
-
return (drawingTool
|
|
7842
|
+
return (drawingTool === null || drawingTool === void 0 ? void 0 : drawingTool.shouldAllowMultipleShapes) || false;
|
|
7589
7843
|
});
|
|
7590
7844
|
var getActiveDrawMode = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7591
|
-
return drawingTool
|
|
7845
|
+
return drawingTool === null || drawingTool === void 0 ? void 0 : drawingTool.drawModes.find(function (mode) {
|
|
7592
7846
|
return mode.drawModeId === drawingTool.activeDrawModeId;
|
|
7593
7847
|
});
|
|
7594
7848
|
});
|
|
@@ -7709,10 +7963,10 @@ drawingToolListener.startListening({
|
|
|
7709
7963
|
drawMode: ''
|
|
7710
7964
|
}));
|
|
7711
7965
|
geoJSONLayer = getLayerById(listenerApi.getState(), drawingTool.geoJSONLayerId);
|
|
7712
|
-
geoJSON = geoJSONLayer
|
|
7966
|
+
geoJSON = geoJSONLayer === null || geoJSONLayer === void 0 ? void 0 : geoJSONLayer.geojson;
|
|
7713
7967
|
lastFeatureIndex = geoJSON !== undefined ? getLastEmptyFeatureIndex(geoJSON) : undefined;
|
|
7714
7968
|
if (lastFeatureIndex !== undefined) {
|
|
7715
|
-
newGeoJSON =
|
|
7969
|
+
newGeoJSON = _objectSpread2(_objectSpread2({}, geoJSON), {}, {
|
|
7716
7970
|
features: geoJSON.features.filter(function (_feature, index) {
|
|
7717
7971
|
return index !== lastFeatureIndex;
|
|
7718
7972
|
})
|
|
@@ -7753,10 +8007,10 @@ drawingToolListener.startListening({
|
|
|
7753
8007
|
// check tool is selected of existing drawn shape
|
|
7754
8008
|
currentGeoJSONLayer = getLayerById(listenerApi.getState(), drawingTool.geoJSONLayerId);
|
|
7755
8009
|
_ref3 = currentGeoJSONLayer || {}, currentGeoJSON = _ref3.geojson, _ref3$selectedFeature = _ref3.selectedFeatureIndex, selectedFeatureIndex = _ref3$selectedFeature === void 0 ? 0 : _ref3$selectedFeature;
|
|
7756
|
-
currentSelectionType = currentGeoJSON
|
|
8010
|
+
currentSelectionType = currentGeoJSON === null || currentGeoJSON === void 0 || (_currentGeoJSON$featu = currentGeoJSON.features[selectedFeatureIndex]) === null || _currentGeoJSON$featu === void 0 || (_currentGeoJSON$featu = _currentGeoJSON$featu.properties) === null || _currentGeoJSON$featu === void 0 ? void 0 : _currentGeoJSON$featu.selectionType;
|
|
7757
8011
|
newSelectionType = newDrawMode.selectionType;
|
|
7758
8012
|
isNewToolSelected = currentSelectionType !== newSelectionType;
|
|
7759
|
-
shouldUpdateNewShape = !(currentGeoJSON
|
|
8013
|
+
shouldUpdateNewShape = !(currentGeoJSON !== null && currentGeoJSON !== void 0 && (_currentGeoJSON$featu2 = currentGeoJSON.features) !== null && _currentGeoJSON$featu2 !== void 0 && _currentGeoJSON$featu2.length) || isNewToolSelected || !newDrawMode.isSelectable && shouldAllowMultipleShapes; // don't change anything if same tool is selected again
|
|
7760
8014
|
if (shouldUpdateNewShape && shouldUpdateShape) {
|
|
7761
8015
|
shapeWithSelectionType = addSelectionTypeToGeoJSON(newDrawMode.shape, newDrawMode.selectionType);
|
|
7762
8016
|
geoJSONFeatureCollection = getFeatureCollection(shapeWithSelectionType, shouldAllowMultipleShapes, currentGeoJSON);
|
|
@@ -7768,12 +8022,12 @@ drawingToolListener.startListening({
|
|
|
7768
8022
|
layerId: drawingTool.geoJSONLayerId,
|
|
7769
8023
|
selectedFeatureIndex: _newGeoJSON.features.length - 1
|
|
7770
8024
|
}));
|
|
7771
|
-
listenerApi.dispatch(layerActions.updateFeature(
|
|
8025
|
+
listenerApi.dispatch(layerActions.updateFeature(_objectSpread2(_objectSpread2({
|
|
7772
8026
|
layerId: drawingTool.geoJSONLayerId,
|
|
7773
8027
|
geojson: _newGeoJSON
|
|
7774
8028
|
}, geoJSONIntersectionLayerId && {
|
|
7775
8029
|
geoJSONIntersectionLayerId: geoJSONIntersectionLayerId
|
|
7776
|
-
}, geoJSONIntersectionBoundsLayerId && {
|
|
8030
|
+
}), geoJSONIntersectionBoundsLayerId && {
|
|
7777
8031
|
geoJSONIntersectionBoundsLayerId: geoJSONIntersectionBoundsLayerId
|
|
7778
8032
|
})));
|
|
7779
8033
|
}
|
|
@@ -7907,6 +8161,179 @@ layersListener.startListening({
|
|
|
7907
8161
|
}()
|
|
7908
8162
|
});
|
|
7909
8163
|
|
|
8164
|
+
/* A map with all the timerIds and their current step */
|
|
8165
|
+
var stepMap = new Map();
|
|
8166
|
+
/* A map with a list of timers and their dwell */
|
|
8167
|
+
var timerDwellMap = new Map();
|
|
8168
|
+
/**
|
|
8169
|
+
* Returns the next step for given timerId.
|
|
8170
|
+
* @param timerId The timer id
|
|
8171
|
+
* @param numberOfStepsInAnimation Animation length in steps
|
|
8172
|
+
* @param numStepsToGoForward Amount of steps to go forwards, defaults to 1. Can be positive and negative
|
|
8173
|
+
* @returns
|
|
8174
|
+
*/
|
|
8175
|
+
var getNextStep = function getNextStep(timerId, numberOfStepsInAnimation) {
|
|
8176
|
+
var numStepsToGoForward = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
8177
|
+
var currentStep = getCurrentStep(timerId);
|
|
8178
|
+
var nextStep = currentStep + numStepsToGoForward;
|
|
8179
|
+
var nextStepClipped = (nextStep % numberOfStepsInAnimation + numberOfStepsInAnimation) % numberOfStepsInAnimation;
|
|
8180
|
+
return nextStepClipped;
|
|
8181
|
+
};
|
|
8182
|
+
/**
|
|
8183
|
+
* Handles dwell at the end of the animation loop sequence. The number of steps to wait till proceed can be set by the dwell parameter.
|
|
8184
|
+
* @param timerId The timer id
|
|
8185
|
+
* @param numberOfStepsInAnimation Number of steps in the animation
|
|
8186
|
+
* @param dwell The number of steps to wait at the end of the animation sequence before to continue
|
|
8187
|
+
* @returns
|
|
8188
|
+
*/
|
|
8189
|
+
var handleTimerDwell = function handleTimerDwell(timerId, numberOfStepsInAnimation) {
|
|
8190
|
+
var dwell = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 8;
|
|
8191
|
+
if (dwell > 0) {
|
|
8192
|
+
var currentStep = getCurrentStep(timerId);
|
|
8193
|
+
// Reset the dwell if we are not at the last animation step
|
|
8194
|
+
if (currentStep < numberOfStepsInAnimation - 1) {
|
|
8195
|
+
timerDwellMap.set(timerId, dwell);
|
|
8196
|
+
return false;
|
|
8197
|
+
}
|
|
8198
|
+
// We are at the last animation step, check the dwell
|
|
8199
|
+
var timerDwell = timerDwellMap.has(timerId) && timerDwellMap.get(timerId) || 0;
|
|
8200
|
+
if (currentStep === numberOfStepsInAnimation - 1 && timerDwell > 0) {
|
|
8201
|
+
timerDwellMap.set(timerId, timerDwell - 1);
|
|
8202
|
+
return true;
|
|
8203
|
+
}
|
|
8204
|
+
}
|
|
8205
|
+
return false;
|
|
8206
|
+
};
|
|
8207
|
+
/**
|
|
8208
|
+
* Set step for the timerId
|
|
8209
|
+
* @param timerId
|
|
8210
|
+
* @param timerStep
|
|
8211
|
+
*/
|
|
8212
|
+
var setStep = function setStep(timerId, timerStep) {
|
|
8213
|
+
stepMap.set(timerId, timerStep);
|
|
8214
|
+
};
|
|
8215
|
+
/**
|
|
8216
|
+
* Gets the current step for the timer
|
|
8217
|
+
* @param timerId
|
|
8218
|
+
* @returns
|
|
8219
|
+
*/
|
|
8220
|
+
var getCurrentStep = function getCurrentStep(timerId) {
|
|
8221
|
+
return stepMap.get(timerId) || 0;
|
|
8222
|
+
};
|
|
8223
|
+
/**
|
|
8224
|
+
* Checks if the next step is available for all provided layers
|
|
8225
|
+
* @param reduxLayers
|
|
8226
|
+
* @param nextTimeString
|
|
8227
|
+
* @returns
|
|
8228
|
+
*/
|
|
8229
|
+
var isNextStepAvailable = function isNextStepAvailable(reduxLayers, nextTimeString) {
|
|
8230
|
+
// Get all wmLayers for the found id's
|
|
8231
|
+
var wmLayers = reduxLayers.map(function (reduxLayer) {
|
|
8232
|
+
return reduxLayer.id && getWMLayerById(reduxLayer.id);
|
|
8233
|
+
}).filter(function (l) {
|
|
8234
|
+
return !!l;
|
|
8235
|
+
});
|
|
8236
|
+
// Returns a layer which could have an image for the requested time, but which isn't loaded yet.
|
|
8237
|
+
var isThereSomethingNotAvailable = wmLayers.map(function (l) {
|
|
8238
|
+
var _l$getDimension;
|
|
8239
|
+
if (!l || !l.olSource) {
|
|
8240
|
+
// No OpenLayers source, do nothing, so do not flag that something is not available
|
|
8241
|
+
return {
|
|
8242
|
+
status: true
|
|
8243
|
+
};
|
|
8244
|
+
}
|
|
8245
|
+
// Check if there is a timevalue available
|
|
8246
|
+
var closestValue = (_l$getDimension = l.getDimension('time')) === null || _l$getDimension === void 0 ? void 0 : _l$getDimension.getClosestValue(nextTimeString);
|
|
8247
|
+
if (!closestValue || WMInvalidDateValues.has(closestValue)) {
|
|
8248
|
+
// No value available, so do not flag that something is not available
|
|
8249
|
+
return {
|
|
8250
|
+
status: true
|
|
8251
|
+
};
|
|
8252
|
+
}
|
|
8253
|
+
var olSource = l.olSource;
|
|
8254
|
+
var hasImageAvailableForRequestedTimeStep = olSource.hasImageForTimeValue(closestValue);
|
|
8255
|
+
// If there is no image available for requested timestep, return true and flag that this thing is not ready yet.
|
|
8256
|
+
if (hasImageAvailableForRequestedTimeStep) {
|
|
8257
|
+
return {
|
|
8258
|
+
status: true
|
|
8259
|
+
};
|
|
8260
|
+
}
|
|
8261
|
+
olSource.loadImageForTimeValue(closestValue);
|
|
8262
|
+
return {
|
|
8263
|
+
status: false
|
|
8264
|
+
};
|
|
8265
|
+
});
|
|
8266
|
+
var nextStepIsAvailable = isThereSomethingNotAvailable.filter(function (d) {
|
|
8267
|
+
return d.status === true;
|
|
8268
|
+
}).length === wmLayers.length;
|
|
8269
|
+
return nextStepIsAvailable;
|
|
8270
|
+
};
|
|
8271
|
+
/**
|
|
8272
|
+
* This handler is triggered by the metronome. An array of timerIds is given as argument.
|
|
8273
|
+
* It will update the animation loop of multiple maps and sliders
|
|
8274
|
+
* It will prefetch images for maps
|
|
8275
|
+
* @param timerIds string[] array of timerIds
|
|
8276
|
+
* @param listenerApi ListenerEffectAPI<CoreAppStore, Dispatch, unknown> listenerApi as received from listener
|
|
8277
|
+
*/
|
|
8278
|
+
var olMetronomeHandler = function olMetronomeHandler(timerIds, listenerApi) {
|
|
8279
|
+
var targetsWithUpdateValue = [];
|
|
8280
|
+
var _iterator = _createForOfIteratorHelper(timerIds),
|
|
8281
|
+
_step;
|
|
8282
|
+
try {
|
|
8283
|
+
var _loop = function _loop() {
|
|
8284
|
+
var timerId = _step.value;
|
|
8285
|
+
var animationListValuesNameAndValue = getAnimationList(listenerApi.getState(), timerId);
|
|
8286
|
+
var animationListValues = animationListValuesNameAndValue.map(function (nameAndValue) {
|
|
8287
|
+
return nameAndValue.value;
|
|
8288
|
+
});
|
|
8289
|
+
var targets = getTargets(listenerApi.getState(), {
|
|
8290
|
+
sourceId: timerId,
|
|
8291
|
+
origin: timerId
|
|
8292
|
+
}, SYNCGROUPS_TYPE_SETTIME);
|
|
8293
|
+
if (targets.length === 0) {
|
|
8294
|
+
// When there are no targets, default to one
|
|
8295
|
+
targets.push({
|
|
8296
|
+
targetId: timerId,
|
|
8297
|
+
value: ''
|
|
8298
|
+
});
|
|
8299
|
+
}
|
|
8300
|
+
var timerIsInDwell = handleTimerDwell(timerId, animationListValues.length);
|
|
8301
|
+
// Collect all layers for this syncgroups target
|
|
8302
|
+
var reduxLayers = [];
|
|
8303
|
+
targets.forEach(function (target) {
|
|
8304
|
+
reduxLayers.push.apply(reduxLayers, _toConsumableArray(getLayersByMapId(listenerApi.getState(), target.targetId).filter(function (l) {
|
|
8305
|
+
return l.layerType === LayerType.mapLayer;
|
|
8306
|
+
})));
|
|
8307
|
+
});
|
|
8308
|
+
var nextStep = getNextStep(timerId, animationListValues.length, 1);
|
|
8309
|
+
var timerShouldStepForward = isNextStepAvailable(reduxLayers, animationListValues[nextStep]) && !timerIsInDwell;
|
|
8310
|
+
// Determine the next step
|
|
8311
|
+
var timerStep = timerShouldStepForward ? getNextStep(timerId, animationListValues.length) : getCurrentStep(timerId);
|
|
8312
|
+
setStep(timerId, timerStep);
|
|
8313
|
+
var updatedValue = animationListValues[timerStep];
|
|
8314
|
+
targetsWithUpdateValue.push.apply(targetsWithUpdateValue, _toConsumableArray(targets.map(function (target) {
|
|
8315
|
+
return _objectSpread2(_objectSpread2({}, target), {}, {
|
|
8316
|
+
value: updatedValue
|
|
8317
|
+
});
|
|
8318
|
+
})));
|
|
8319
|
+
var speedDelay = getMapAnimationDelay(listenerApi.getState(), timerId);
|
|
8320
|
+
var speed = 1000 / (speedDelay || 1);
|
|
8321
|
+
metronome.setSpeed(timerId, speed);
|
|
8322
|
+
};
|
|
8323
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
8324
|
+
_loop();
|
|
8325
|
+
}
|
|
8326
|
+
// Update all targets of all sync groups in one action.
|
|
8327
|
+
} catch (err) {
|
|
8328
|
+
_iterator.e(err);
|
|
8329
|
+
} finally {
|
|
8330
|
+
_iterator.f();
|
|
8331
|
+
}
|
|
8332
|
+
if (targetsWithUpdateValue.length > 0) {
|
|
8333
|
+
listenerApi.dispatch(setTimeSync(null, targetsWithUpdateValue, ['metronomelistener']));
|
|
8334
|
+
}
|
|
8335
|
+
};
|
|
8336
|
+
|
|
7910
8337
|
/**
|
|
7911
8338
|
* This handler is triggered by the metronome. An array of timerIds is given as argument.
|
|
7912
8339
|
* It will update the animation loop of multiple maps and sliders
|
|
@@ -7915,43 +8342,55 @@ layersListener.startListening({
|
|
|
7915
8342
|
* @param listenerApi ListenerEffectAPI<CoreAppStore, Dispatch, unknown> listenerApi as received from listener
|
|
7916
8343
|
*/
|
|
7917
8344
|
var metronomeHandler = function metronomeHandler(timerIds, listenerApi) {
|
|
8345
|
+
if (isOpenLayersEnabled()) {
|
|
8346
|
+
olMetronomeHandler(timerIds, listenerApi);
|
|
8347
|
+
return;
|
|
8348
|
+
}
|
|
7918
8349
|
var targetsWithUpdateValue = [];
|
|
7919
|
-
var
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
var
|
|
7923
|
-
|
|
7924
|
-
|
|
7925
|
-
|
|
7926
|
-
|
|
7927
|
-
origin: timerId
|
|
7928
|
-
}, SYNCGROUPS_TYPE_SETTIME);
|
|
7929
|
-
if (targets.length === 0) {
|
|
7930
|
-
// When there are no targets, default to one
|
|
7931
|
-
targets.push({
|
|
7932
|
-
targetId: timerId,
|
|
7933
|
-
value: ''
|
|
8350
|
+
var _iterator = _createForOfIteratorHelper(timerIds),
|
|
8351
|
+
_step;
|
|
8352
|
+
try {
|
|
8353
|
+
var _loop = function _loop() {
|
|
8354
|
+
var timerId = _step.value;
|
|
8355
|
+
var animationListValuesNameAndValue = getAnimationList(listenerApi.getState(), timerId);
|
|
8356
|
+
var animationListValues = animationListValuesNameAndValue.map(function (nameAndValue) {
|
|
8357
|
+
return nameAndValue.value;
|
|
7934
8358
|
});
|
|
8359
|
+
var targets = getTargets(listenerApi.getState(), {
|
|
8360
|
+
sourceId: timerId,
|
|
8361
|
+
origin: timerId
|
|
8362
|
+
}, SYNCGROUPS_TYPE_SETTIME);
|
|
8363
|
+
if (targets.length === 0) {
|
|
8364
|
+
// When there are no targets, default to one
|
|
8365
|
+
targets.push({
|
|
8366
|
+
targetId: timerId,
|
|
8367
|
+
value: ''
|
|
8368
|
+
});
|
|
8369
|
+
}
|
|
8370
|
+
var timerIsInDwell = handleTimerDwell$1(timerId, animationListValues.length);
|
|
8371
|
+
var timerShouldStepForward = prefetchAnimationTargetsForMetronome(timerId, animationListValues, targets) && !timerIsInDwell;
|
|
8372
|
+
// Determine the next step
|
|
8373
|
+
var timerStep = timerShouldStepForward ? getNextStep$1(timerId, animationListValues.length) : getCurrentStep$1(timerId);
|
|
8374
|
+
setStep$1(timerId, timerStep);
|
|
8375
|
+
var updatedValue = animationListValues[timerStep];
|
|
8376
|
+
targetsWithUpdateValue.push.apply(targetsWithUpdateValue, _toConsumableArray(targets.map(function (target) {
|
|
8377
|
+
return _objectSpread2(_objectSpread2({}, target), {}, {
|
|
8378
|
+
value: updatedValue
|
|
8379
|
+
});
|
|
8380
|
+
})));
|
|
8381
|
+
var speedDelay = getMapAnimationDelay(listenerApi.getState(), timerId);
|
|
8382
|
+
var speed = 1000 / (speedDelay || 1);
|
|
8383
|
+
metronome.setSpeed(timerId, speed);
|
|
8384
|
+
};
|
|
8385
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
8386
|
+
_loop();
|
|
7935
8387
|
}
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
var updatedValue = animationListValues[timerStep];
|
|
7942
|
-
targetsWithUpdateValue.push.apply(targetsWithUpdateValue, targets.map(function (target) {
|
|
7943
|
-
return Object.assign({}, target, {
|
|
7944
|
-
value: updatedValue
|
|
7945
|
-
});
|
|
7946
|
-
}));
|
|
7947
|
-
var speedDelay = getMapAnimationDelay(listenerApi.getState(), timerId);
|
|
7948
|
-
var speed = 1000 / (speedDelay || 1);
|
|
7949
|
-
metronome.setSpeed(timerId, speed);
|
|
7950
|
-
};
|
|
7951
|
-
for (var _iterator = _createForOfIteratorHelperLoose(timerIds), _step; !(_step = _iterator()).done;) {
|
|
7952
|
-
_loop();
|
|
8388
|
+
// Update all targets of all sync groups in one action.
|
|
8389
|
+
} catch (err) {
|
|
8390
|
+
_iterator.e(err);
|
|
8391
|
+
} finally {
|
|
8392
|
+
_iterator.f();
|
|
7953
8393
|
}
|
|
7954
|
-
// Update all targets of all sync groups in one action.
|
|
7955
8394
|
if (targetsWithUpdateValue.length > 0) {
|
|
7956
8395
|
listenerApi.dispatch(setTimeSync(null, targetsWithUpdateValue, ['metronomelistener']));
|
|
7957
8396
|
}
|
|
@@ -8000,18 +8439,26 @@ metronomeListener.startListening({
|
|
|
8000
8439
|
* */
|
|
8001
8440
|
var unifyReducerMaps = function unifyReducerMaps(reducerMaps) {
|
|
8002
8441
|
var unifiedReducerMaps = {};
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8006
|
-
|
|
8007
|
-
|
|
8008
|
-
|
|
8009
|
-
|
|
8010
|
-
|
|
8011
|
-
|
|
8012
|
-
unifiedReducerMaps[key]
|
|
8442
|
+
var _iterator = _createForOfIteratorHelper(reducerMaps),
|
|
8443
|
+
_step;
|
|
8444
|
+
try {
|
|
8445
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
8446
|
+
var reducersMap = _step.value;
|
|
8447
|
+
for (var _i = 0, _Object$entries = Object.entries(reducersMap); _i < _Object$entries.length; _i++) {
|
|
8448
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
8449
|
+
key = _Object$entries$_i[0],
|
|
8450
|
+
reducer = _Object$entries$_i[1];
|
|
8451
|
+
if (key in unifiedReducerMaps && unifiedReducerMaps[key] !== reducer) {
|
|
8452
|
+
throw new Error("Reducer key ".concat(key, " is already defined with a different reducer"));
|
|
8453
|
+
} else {
|
|
8454
|
+
unifiedReducerMaps[key] = reducer;
|
|
8455
|
+
}
|
|
8013
8456
|
}
|
|
8014
8457
|
}
|
|
8458
|
+
} catch (err) {
|
|
8459
|
+
_iterator.e(err);
|
|
8460
|
+
} finally {
|
|
8461
|
+
_iterator.f();
|
|
8015
8462
|
}
|
|
8016
8463
|
return unifiedReducerMaps;
|
|
8017
8464
|
};
|
|
@@ -8034,18 +8481,15 @@ var unifyReducerMaps = function unifyReducerMaps(reducerMaps) {
|
|
|
8034
8481
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
8035
8482
|
* */
|
|
8036
8483
|
var getSingularDrawtoolDrawLayerId = function getSingularDrawtoolDrawLayerId(mapId) {
|
|
8037
|
-
return "drawlayer-"
|
|
8484
|
+
return "drawlayer-".concat(mapId);
|
|
8038
8485
|
};
|
|
8039
8486
|
|
|
8040
|
-
var createLayersState = function createLayersState(layerId
|
|
8041
|
-
var
|
|
8042
|
-
if (props === void 0) {
|
|
8043
|
-
props = {};
|
|
8044
|
-
}
|
|
8487
|
+
var createLayersState = function createLayersState(layerId) {
|
|
8488
|
+
var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8045
8489
|
return {
|
|
8046
|
-
byId: (
|
|
8490
|
+
byId: _defineProperty({}, layerId, createLayer(_objectSpread2({
|
|
8047
8491
|
id: layerId
|
|
8048
|
-
}, props))
|
|
8492
|
+
}, props))),
|
|
8049
8493
|
allIds: [layerId],
|
|
8050
8494
|
availableBaseLayers: {
|
|
8051
8495
|
allIds: [],
|
|
@@ -8062,18 +8506,26 @@ var createMultipleLayersState = function createMultipleLayersState(layers, mapId
|
|
|
8062
8506
|
byId: {}
|
|
8063
8507
|
}
|
|
8064
8508
|
};
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8068
|
-
|
|
8069
|
-
|
|
8070
|
-
|
|
8071
|
-
|
|
8072
|
-
|
|
8073
|
-
|
|
8074
|
-
mockState.
|
|
8075
|
-
mockState.
|
|
8509
|
+
var _iterator = _createForOfIteratorHelper(layers),
|
|
8510
|
+
_step;
|
|
8511
|
+
try {
|
|
8512
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
8513
|
+
var layer = _step.value;
|
|
8514
|
+
var layerState = createLayer(_objectSpread2(_objectSpread2({}, layer), {}, {
|
|
8515
|
+
id: layer.id,
|
|
8516
|
+
mapId: mapId
|
|
8517
|
+
}));
|
|
8518
|
+
mockState.byId[layer.id] = _objectSpread2({}, layerState);
|
|
8519
|
+
mockState.allIds.push(layer.id);
|
|
8520
|
+
if (layer.layerType === LayerType.baseLayer) {
|
|
8521
|
+
mockState.availableBaseLayers.byId[layer.id] = _objectSpread2({}, layerState);
|
|
8522
|
+
mockState.availableBaseLayers.allIds.push(layer.id);
|
|
8523
|
+
}
|
|
8076
8524
|
}
|
|
8525
|
+
} catch (err) {
|
|
8526
|
+
_iterator.e(err);
|
|
8527
|
+
} finally {
|
|
8528
|
+
_iterator.f();
|
|
8077
8529
|
}
|
|
8078
8530
|
return mockState;
|
|
8079
8531
|
};
|
|
@@ -8090,7 +8542,7 @@ var createWebmapState = function createWebmapState() {
|
|
|
8090
8542
|
var mapState = createMap({
|
|
8091
8543
|
id: mapId
|
|
8092
8544
|
});
|
|
8093
|
-
mockState.byId[mapId] =
|
|
8545
|
+
mockState.byId[mapId] = _objectSpread2({}, mapState);
|
|
8094
8546
|
mockState.allIds.push(mapId);
|
|
8095
8547
|
}
|
|
8096
8548
|
return mockState;
|
|
@@ -8108,7 +8560,7 @@ var createMapDimensionsState = function createMapDimensionsState(dimensions) {
|
|
|
8108
8560
|
var mapState = createMap({
|
|
8109
8561
|
id: mapId
|
|
8110
8562
|
});
|
|
8111
|
-
mockState.byId[mapId] =
|
|
8563
|
+
mockState.byId[mapId] = _objectSpread2({}, mapState);
|
|
8112
8564
|
mockState.byId[mapId].dimensions = dimensions;
|
|
8113
8565
|
mockState.allIds.push(mapId);
|
|
8114
8566
|
}
|
|
@@ -8153,7 +8605,7 @@ var mockStateMapWithLayer = function mockStateMapWithLayer(layer, mapId) {
|
|
|
8153
8605
|
service: layer.service,
|
|
8154
8606
|
dimensions: layer.dimensions
|
|
8155
8607
|
}),
|
|
8156
|
-
syncGroups:
|
|
8608
|
+
syncGroups: _objectSpread2(_objectSpread2({}, initialState$2), {}, {
|
|
8157
8609
|
viewState: {
|
|
8158
8610
|
timeslider: {
|
|
8159
8611
|
groups: [{
|
|
@@ -8176,7 +8628,7 @@ var mockStateMapWithLayer = function mockStateMapWithLayer(layer, mapId) {
|
|
|
8176
8628
|
};
|
|
8177
8629
|
var mockLinkedState = function mockLinkedState() {
|
|
8178
8630
|
return {
|
|
8179
|
-
syncGroups:
|
|
8631
|
+
syncGroups: _objectSpread2(_objectSpread2({}, initialState$2), {}, {
|
|
8180
8632
|
viewState: {
|
|
8181
8633
|
timeslider: {
|
|
8182
8634
|
groups: [{
|
|
@@ -8289,7 +8741,7 @@ var mockStateMapWithMultipleLayers = function mockStateMapWithMultipleLayers(lay
|
|
|
8289
8741
|
allIds: ['serviceid_1']
|
|
8290
8742
|
},
|
|
8291
8743
|
layers: createMultipleLayersState(layers, mapId),
|
|
8292
|
-
syncGroups:
|
|
8744
|
+
syncGroups: _objectSpread2(_objectSpread2({}, initialState$2), {}, {
|
|
8293
8745
|
viewState: {
|
|
8294
8746
|
timeslider: {
|
|
8295
8747
|
groups: [{
|
|
@@ -8362,7 +8814,7 @@ var mockStateMapWithDimensions = function mockStateMapWithDimensions(layer, mapI
|
|
|
8362
8814
|
mapId: mapId,
|
|
8363
8815
|
service: layer.service,
|
|
8364
8816
|
dimensions: layer.dimensions,
|
|
8365
|
-
enabled: (layer
|
|
8817
|
+
enabled: (layer === null || layer === void 0 ? void 0 : layer.enabled) !== undefined ? layer.enabled : true
|
|
8366
8818
|
})
|
|
8367
8819
|
};
|
|
8368
8820
|
};
|
|
@@ -8425,23 +8877,6 @@ var constants = /*#__PURE__*/Object.freeze({
|
|
|
8425
8877
|
supportedComponentTypesForLinking: supportedComponentTypesForLinking
|
|
8426
8878
|
});
|
|
8427
8879
|
|
|
8428
|
-
/* *
|
|
8429
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8430
|
-
* you may not use this file except in compliance with the License.
|
|
8431
|
-
* You may obtain a copy of the License at
|
|
8432
|
-
*
|
|
8433
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8434
|
-
*
|
|
8435
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
8436
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
8437
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8438
|
-
* See the License for the specific language governing permissions and
|
|
8439
|
-
* limitations under the License.
|
|
8440
|
-
*
|
|
8441
|
-
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8442
|
-
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
8443
|
-
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
8444
|
-
* */
|
|
8445
8880
|
var storeReducerMap = {
|
|
8446
8881
|
webmap: mapReducer,
|
|
8447
8882
|
services: serviceReducer,
|
|
@@ -8452,7 +8887,7 @@ var storeReducerMap = {
|
|
|
8452
8887
|
drawingtools: drawingToolReducer,
|
|
8453
8888
|
router: routerReducer
|
|
8454
8889
|
};
|
|
8455
|
-
var storeMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, metronomeListener.middleware, syncGroupsListener.middleware, genericListener.middleware, drawingToolListener.middleware, routerListener.middleware];
|
|
8890
|
+
var storeMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, metronomeListener.middleware, syncGroupsListener.middleware, genericListener.middleware, drawingToolListener.middleware, routerListener.middleware, openlayersListener.middleware];
|
|
8456
8891
|
var storeRootReducer = combineReducers(storeReducerMap);
|
|
8457
8892
|
var createMockStore = function createMockStore(mockState) {
|
|
8458
8893
|
return configureStore({
|
|
@@ -8476,26 +8911,16 @@ var getDefaultEnhancers = function getDefaultEnhancers() {
|
|
|
8476
8911
|
* @param enableDevTools Set to true to enable redux devtools.
|
|
8477
8912
|
* @returns A redux store you can use with the core components
|
|
8478
8913
|
*/
|
|
8479
|
-
var configureOpenGeoWebStore = function configureOpenGeoWebStore(
|
|
8480
|
-
|
|
8481
|
-
|
|
8482
|
-
|
|
8483
|
-
|
|
8484
|
-
|
|
8485
|
-
}
|
|
8486
|
-
if (extraMiddleWares === void 0) {
|
|
8487
|
-
extraMiddleWares = [];
|
|
8488
|
-
}
|
|
8489
|
-
if (extraEnhancers === void 0) {
|
|
8490
|
-
extraEnhancers = getDefaultEnhancers();
|
|
8491
|
-
}
|
|
8492
|
-
if (enableDevTools === void 0) {
|
|
8493
|
-
enableDevTools = false;
|
|
8494
|
-
}
|
|
8914
|
+
var configureOpenGeoWebStore = function configureOpenGeoWebStore() {
|
|
8915
|
+
var preloadedState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8916
|
+
var extraReducers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
8917
|
+
var extraMiddleWares = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
8918
|
+
var extraEnhancers = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : getDefaultEnhancers();
|
|
8919
|
+
var enableDevTools = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
8495
8920
|
var allReducers = unifyReducerMaps([storeReducerMap, extraReducers]);
|
|
8496
8921
|
var openGeoWebReducers = combineReducers(allReducers);
|
|
8497
8922
|
// Combine middlewares
|
|
8498
|
-
var middlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, genericListener.middleware].concat(extraMiddleWares);
|
|
8923
|
+
var middlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, genericListener.middleware].concat(_toConsumableArray(extraMiddleWares));
|
|
8499
8924
|
// Ensure we do not add middlewares twice
|
|
8500
8925
|
var uniqueMiddlewares = Array.from(new Set(middlewares.map(function (obj) {
|
|
8501
8926
|
return obj;
|
|
@@ -8504,11 +8929,11 @@ var configureOpenGeoWebStore = function configureOpenGeoWebStore(preloadedState,
|
|
|
8504
8929
|
reducer: openGeoWebReducers,
|
|
8505
8930
|
preloadedState: preloadedState,
|
|
8506
8931
|
enhancers: function enhancers(defaultEnhancers) {
|
|
8507
|
-
return [compose.apply(void 0, [].concat(defaultEnhancers, extraEnhancers))];
|
|
8932
|
+
return [compose.apply(void 0, [].concat(_toConsumableArray(defaultEnhancers), _toConsumableArray(extraEnhancers)))];
|
|
8508
8933
|
},
|
|
8509
8934
|
devTools: enableDevTools,
|
|
8510
8935
|
middleware: function middleware(getDefaultMiddleware) {
|
|
8511
|
-
return
|
|
8936
|
+
return _toConsumableArray(getDefaultMiddleware({
|
|
8512
8937
|
serializableCheck: {
|
|
8513
8938
|
warnAfter: 128
|
|
8514
8939
|
},
|
|
@@ -8520,4 +8945,4 @@ var configureOpenGeoWebStore = function configureOpenGeoWebStore(preloadedState,
|
|
|
8520
8945
|
});
|
|
8521
8946
|
};
|
|
8522
8947
|
|
|
8523
|
-
export { IS_LEGEND_OPEN_BY_DEFAULT, configureOpenGeoWebStore, createMockStore, drawingToolActions, drawingToolListener, drawingToolReducer, selectors as drawingToolSelectors, filterLayers$1 as filterLayers, genericActions, genericListener, selectors$3 as genericSelectors, types as genericTypes, getSingularDrawtoolDrawLayerId, getUserAddedServices, initialState$2 as initialState, layerActions, layerReducer, selectors$6 as layerSelectors, types$3 as layerTypes, utils$1 as layerUtils, layersListener, constants as linkComponentTypesConstants, loadingIndicatorActions, constants$1 as loadingIndicatorConstants, loadingIndicatorReducer, selectors$2 as loadingIndicatorSelectors, mapActions, enums as mapEnums, mapListener, mapReducer, selectors$1 as mapSelectors, types$4 as mapTypes, mapUtils, metronomeListener, routerActions, routerListener, routerReducer, utils as routerUtils, selectorMemoizationOptions, serviceActions, serviceListener, serviceReducer, selectors$7 as serviceSelectors, types$5 as serviceTypes, setUserAddedServices, storeMiddlewares, storeReducerMap, storeTestSettings, storeTestUtils, utils$3 as storeUtils, constants$2 as syncConstants, syncGroupsActions, syncGroupsListener, syncGroupsReducer, selector as syncGroupsSelector, selectors$4 as syncGroupsSelectors, types$1 as syncGroupsTypes, types$1 as types, uiActions, uiReducer, selectors$5 as uiSelectors, types$2 as uiTypes, unifyReducerMaps, useSetupDialog, useUpdateSharedData };
|
|
8948
|
+
export { IS_LEGEND_OPEN_BY_DEFAULT, configureOpenGeoWebStore, createMockStore, createViewObjectForNewMap, drawingToolActions, drawingToolListener, drawingToolReducer, selectors as drawingToolSelectors, filterLayers$1 as filterLayers, genericActions, genericListener, selectors$3 as genericSelectors, types as genericTypes, getSingularDrawtoolDrawLayerId, getUserAddedServices, getViewObjectForMapId, getViewObjectForSyncGroup, initialState$2 as initialState, layerActions, layerReducer, selectors$6 as layerSelectors, types$3 as layerTypes, utils$1 as layerUtils, layersListener, constants as linkComponentTypesConstants, loadingIndicatorActions, constants$1 as loadingIndicatorConstants, loadingIndicatorReducer, selectors$2 as loadingIndicatorSelectors, mapActions, enums as mapEnums, mapListener, mapReducer, selectors$1 as mapSelectors, types$4 as mapTypes, mapUtils, metronomeListener, openlayersListener, routerActions, routerListener, routerReducer, utils as routerUtils, selectorMemoizationOptions, serviceActions, serviceListener, serviceReducer, selectors$7 as serviceSelectors, types$5 as serviceTypes, setUserAddedServices, storeMiddlewares, storeReducerMap, storeTestSettings, storeTestUtils, utils$3 as storeUtils, constants$2 as syncConstants, syncGroupsActions, syncGroupsListener, syncGroupsReducer, selector as syncGroupsSelector, selectors$4 as syncGroupsSelectors, types$1 as syncGroupsTypes, types$1 as types, uiActions, uiReducer, selectors$5 as uiSelectors, types$2 as uiTypes, unifyReducerMaps, useSetupDialog, useUpdateSharedData };
|