@opengeoweb/store 10.2.1-spike-ol.3 → 11.1.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 +962 -1315
- package/package.json +11 -31
- package/src/store/generic/syncGroups/types.d.ts +6 -7
- package/src/store/index.d.ts +1 -1
- package/src/store/map/index.d.ts +1 -1
- package/src/store/map/layer/types.d.ts +1 -1
- package/src/store/map/map/selectors.d.ts +1 -6
- package/src/store/map/map/types.d.ts +0 -6
- package/src/store/map/service/types.d.ts +4 -4
- package/src/store/store.d.ts +19 -2
- package/src/store/unifyReducerMaps.d.ts +3 -0
- package/src/store/map/map/olMapListenerAnimationUtils.d.ts +0 -46
- package/src/store/mapStore/openlayers/listener.d.ts +0 -2
- package/src/store/mapStore/openlayers/listener.spec.d.ts +0 -1
- package/src/store/mapStore/openlayers/syncGroupViewStore.d.ts +0 -26
- /package/src/store/{map/map/olMapListenerAnimationUtils.spec.d.ts → unifyReducermaps.spec.d.ts} +0 -0
package/index.esm.js
CHANGED
|
@@ -1,33 +1,321 @@
|
|
|
1
|
-
import { createSlice, createSelector, createAction, createListenerMiddleware, isAnyOf, createEntityAdapter, combineReducers, configureStore } from '@reduxjs/toolkit';
|
|
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
|
|
4
|
+
import { webmapUtils, parseISO8601IntervalToDateInterval, LayerType, getWMJSMapById, webmapTestSettings, WMLayer, getWMSRequests, handleDateUtilsISOString, isProjectionSupported, queryWMSLayers } 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
|
|
7
|
+
import { getGeoJson, moveFeature, createInterSections, getLastEmptyFeatureIndex, defaultLayers, addSelectionTypeToGeoJSON, getFeatureCollection, emptyGeoJSON, defaultIntersectionStyleProperties } 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
|
-
|
|
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
|
+
});
|
|
15
313
|
|
|
16
314
|
function _arrayLikeToArray(r, a) {
|
|
17
315
|
(null == a || a > r.length) && (a = r.length);
|
|
18
316
|
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
19
317
|
return n;
|
|
20
318
|
}
|
|
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
|
-
}
|
|
31
319
|
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
32
320
|
try {
|
|
33
321
|
var i = n[a](c),
|
|
@@ -53,171 +341,22 @@ function _asyncToGenerator(n) {
|
|
|
53
341
|
});
|
|
54
342
|
};
|
|
55
343
|
}
|
|
56
|
-
function
|
|
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) {
|
|
344
|
+
function _createForOfIteratorHelperLoose(r, e) {
|
|
74
345
|
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
return {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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;
|
|
199
|
-
}
|
|
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));
|
|
207
|
-
});
|
|
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
|
+
};
|
|
208
358
|
}
|
|
209
|
-
|
|
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;
|
|
359
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
221
360
|
}
|
|
222
361
|
function _objectWithoutPropertiesLoose(r, e) {
|
|
223
362
|
if (null == r) return {};
|
|
@@ -228,11 +367,6 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
228
367
|
}
|
|
229
368
|
return t;
|
|
230
369
|
}
|
|
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
|
-
}
|
|
236
370
|
function _regeneratorRuntime() {
|
|
237
371
|
_regeneratorRuntime = function () {
|
|
238
372
|
return e;
|
|
@@ -517,347 +651,30 @@ function _regeneratorRuntime() {
|
|
|
517
651
|
if (r.tryLoc === t) {
|
|
518
652
|
var n = r.completion;
|
|
519
653
|
if ("throw" === n.type) {
|
|
520
|
-
var o = n.arg;
|
|
521
|
-
resetTryEntry(r);
|
|
522
|
-
}
|
|
523
|
-
return o;
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
throw Error("illegal catch attempt");
|
|
527
|
-
},
|
|
528
|
-
delegateYield: function (e, r, n) {
|
|
529
|
-
return this.delegate = {
|
|
530
|
-
iterator: values(e),
|
|
531
|
-
resultName: r,
|
|
532
|
-
nextLoc: n
|
|
533
|
-
}, "next" === this.method && (this.arg = t), y;
|
|
534
|
-
}
|
|
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
|
-
}, {});
|
|
654
|
+
var o = n.arg;
|
|
655
|
+
resetTryEntry(r);
|
|
656
|
+
}
|
|
657
|
+
return o;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
throw Error("illegal catch attempt");
|
|
661
|
+
},
|
|
662
|
+
delegateYield: function (e, r, n) {
|
|
663
|
+
return this.delegate = {
|
|
664
|
+
iterator: values(e),
|
|
665
|
+
resultName: r,
|
|
666
|
+
nextLoc: n
|
|
667
|
+
}, "next" === this.method && (this.arg = t), y;
|
|
810
668
|
}
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
var
|
|
817
|
-
|
|
818
|
-
window.localStorage.setItem('userAddedServices', JSON.stringify(services));
|
|
819
|
-
} catch (e) {
|
|
820
|
-
console.error('Unable to write services to localStorage: ', e);
|
|
669
|
+
}, e;
|
|
670
|
+
}
|
|
671
|
+
function _unsupportedIterableToArray(r, a) {
|
|
672
|
+
if (r) {
|
|
673
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
674
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
675
|
+
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;
|
|
821
676
|
}
|
|
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
|
-
});
|
|
677
|
+
}
|
|
861
678
|
|
|
862
679
|
var dateFormat = dateUtils.DATE_FORMAT_UTC;
|
|
863
680
|
var createMap = function createMap(_ref) {
|
|
@@ -957,28 +774,20 @@ var createMap = function createMap(_ref) {
|
|
|
957
774
|
var checkValidLayersPayload = function checkValidLayersPayload(layers, mapId) {
|
|
958
775
|
/* Check for duplicate ids */
|
|
959
776
|
var layerIds = {};
|
|
960
|
-
var _iterator =
|
|
961
|
-
_step;
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
layerIds[layer.id] = true;
|
|
973
|
-
} else {
|
|
974
|
-
return false;
|
|
975
|
-
}
|
|
777
|
+
for (var _iterator = _createForOfIteratorHelperLoose(layers), _step; !(_step = _iterator()).done;) {
|
|
778
|
+
var layer = _step.value;
|
|
779
|
+
if (layer.id) {
|
|
780
|
+
/* Check if layer is already added to a different map */
|
|
781
|
+
if (layer.mapId && mapId && layer.mapId !== mapId) {
|
|
782
|
+
return false;
|
|
783
|
+
}
|
|
784
|
+
/* Check duplicate */
|
|
785
|
+
if (!layerIds[layer.id]) {
|
|
786
|
+
layerIds[layer.id] = true;
|
|
787
|
+
} else {
|
|
788
|
+
return false;
|
|
976
789
|
}
|
|
977
790
|
}
|
|
978
|
-
} catch (err) {
|
|
979
|
-
_iterator.e(err);
|
|
980
|
-
} finally {
|
|
981
|
-
_iterator.f();
|
|
982
791
|
}
|
|
983
792
|
return true;
|
|
984
793
|
};
|
|
@@ -1074,7 +883,7 @@ var produceDraftStateSetMapDimensionFromLayerChangeDimension = function produceD
|
|
|
1074
883
|
* @param newIndex New index of element in array
|
|
1075
884
|
*/
|
|
1076
885
|
function moveArrayElements(array, oldIndex, newIndex) {
|
|
1077
|
-
var newArray =
|
|
886
|
+
var newArray = [].concat(array);
|
|
1078
887
|
var indexNew = Math.min(newIndex, newArray.length - 1);
|
|
1079
888
|
newArray.splice(indexNew, 0, newArray.splice(oldIndex, 1)[0]);
|
|
1080
889
|
return newArray;
|
|
@@ -1179,14 +988,13 @@ var parseTimeDimToISO8601Interval = function parseTimeDimToISO8601Interval(timeI
|
|
|
1179
988
|
}
|
|
1180
989
|
var intervalList = timeInterval.split(',').map(function (interval) {
|
|
1181
990
|
var _interval$split = interval.split('/'),
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
duration = _interval$split2[2];
|
|
991
|
+
startTime = _interval$split[0],
|
|
992
|
+
endTime = _interval$split[1],
|
|
993
|
+
duration = _interval$split[2];
|
|
1186
994
|
return {
|
|
1187
|
-
startTime: startTime
|
|
1188
|
-
endTime: endTime
|
|
1189
|
-
duration: duration
|
|
995
|
+
startTime: startTime == null ? void 0 : startTime.trim(),
|
|
996
|
+
endTime: endTime == null ? void 0 : endTime.trim(),
|
|
997
|
+
duration: duration == null ? void 0 : duration.trim()
|
|
1190
998
|
};
|
|
1191
999
|
});
|
|
1192
1000
|
// Filter out intervals with missing start, end or duration
|
|
@@ -1212,6 +1020,23 @@ var utils$2 = /*#__PURE__*/Object.freeze({
|
|
|
1212
1020
|
produceDraftStateSetWebMapDimension: produceDraftStateSetWebMapDimension
|
|
1213
1021
|
});
|
|
1214
1022
|
|
|
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
|
+
* */
|
|
1215
1040
|
var replaceLayerIdsToEnsureUniqueLayerIdsInStore = function replaceLayerIdsToEnsureUniqueLayerIdsInStore(layerIds) {
|
|
1216
1041
|
var layers = layerIds.layers,
|
|
1217
1042
|
autoTimeStepLayerId = layerIds.autoTimeStepLayerId,
|
|
@@ -1237,16 +1062,16 @@ var replaceLayerIdsToEnsureUniqueLayerIdsInStore = function replaceLayerIdsToEns
|
|
|
1237
1062
|
});
|
|
1238
1063
|
var _layersWithNewIds = layers.map(function (layer, index) {
|
|
1239
1064
|
if (layer.id && index === autoTimeStepLayerIndex) {
|
|
1240
|
-
return
|
|
1065
|
+
return Object.assign({}, layer, {
|
|
1241
1066
|
id: autoTimeStepLayerIdNew
|
|
1242
1067
|
});
|
|
1243
1068
|
}
|
|
1244
1069
|
if (layer.id && index === autoUpdateLayerIndex) {
|
|
1245
|
-
return
|
|
1070
|
+
return Object.assign({}, layer, {
|
|
1246
1071
|
id: autoUpdateLayerIdNew
|
|
1247
1072
|
});
|
|
1248
1073
|
}
|
|
1249
|
-
return
|
|
1074
|
+
return Object.assign({}, layer, {
|
|
1250
1075
|
id: webmapUtils.generateLayerId()
|
|
1251
1076
|
});
|
|
1252
1077
|
});
|
|
@@ -1271,7 +1096,7 @@ var replaceLayerIdsToEnsureUniqueLayerIdsInStore = function replaceLayerIdsToEns
|
|
|
1271
1096
|
// The code below is executed if neither auto timestep
|
|
1272
1097
|
// nor auto update layer id was provided
|
|
1273
1098
|
var layersWithNewIds = layers.map(function (layer) {
|
|
1274
|
-
return
|
|
1099
|
+
return Object.assign({}, layer, {
|
|
1275
1100
|
id: webmapUtils.generateLayerId()
|
|
1276
1101
|
});
|
|
1277
1102
|
});
|
|
@@ -1285,11 +1110,11 @@ function replaceLayerIds(layers, autoLayerIdOld, autoLayerIdNew) {
|
|
|
1285
1110
|
});
|
|
1286
1111
|
var layersWithNewIds = layers.map(function (layer, index) {
|
|
1287
1112
|
if (layer.id && index === autoLayerIndex) {
|
|
1288
|
-
return
|
|
1113
|
+
return Object.assign({}, layer, {
|
|
1289
1114
|
id: autoLayerIdNew
|
|
1290
1115
|
});
|
|
1291
1116
|
}
|
|
1292
|
-
return
|
|
1117
|
+
return Object.assign({}, layer, {
|
|
1293
1118
|
id: webmapUtils.generateLayerId()
|
|
1294
1119
|
});
|
|
1295
1120
|
});
|
|
@@ -1456,6 +1281,23 @@ var types$3 = /*#__PURE__*/Object.freeze({
|
|
|
1456
1281
|
get LayerStatus () { return LayerStatus; }
|
|
1457
1282
|
});
|
|
1458
1283
|
|
|
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
|
+
* */
|
|
1459
1301
|
/**
|
|
1460
1302
|
* Sets a dimension value for a layer in the state. If the dimension does not exist it is added to the layer.
|
|
1461
1303
|
* @param draft The draft layerstate
|
|
@@ -1471,7 +1313,7 @@ var produceLayerDimensionDraftState = function produceLayerDimensionDraftState(d
|
|
|
1471
1313
|
return layerDim.name === dimensionValueToUpdate.name;
|
|
1472
1314
|
});
|
|
1473
1315
|
if (existingLayerDimIndex < 0) {
|
|
1474
|
-
layer.dimensions.push(
|
|
1316
|
+
layer.dimensions.push(Object.assign({}, dimensionValueToUpdate));
|
|
1475
1317
|
} else {
|
|
1476
1318
|
var layerDimension = layer.dimensions[existingLayerDimIndex];
|
|
1477
1319
|
if (dimensionValueToUpdate.currentValue) {
|
|
@@ -1505,7 +1347,7 @@ var isActionLayerSynced = function isActionLayerSynced(state, layerIdFromAction,
|
|
|
1505
1347
|
var produceDimensionActionForMapLayer = function produceDimensionActionForMapLayer(layerDim, wmjsDimension, newDimension) {
|
|
1506
1348
|
// If new value does not occur in the wmjsdimension - do not update the value but set the validSyncSelection to false
|
|
1507
1349
|
if (wmjsDimension.getIndexForValue(newDimension.currentValue) === -1) {
|
|
1508
|
-
return
|
|
1350
|
+
return Object.assign({}, layerDim, {
|
|
1509
1351
|
name: newDimension.name,
|
|
1510
1352
|
units: newDimension.units,
|
|
1511
1353
|
currentValue: layerDim.currentValue,
|
|
@@ -1513,7 +1355,7 @@ var produceDimensionActionForMapLayer = function produceDimensionActionForMapLay
|
|
|
1513
1355
|
});
|
|
1514
1356
|
}
|
|
1515
1357
|
// Otherwise, update to new value and set validSyncSelection to true
|
|
1516
|
-
return
|
|
1358
|
+
return Object.assign({}, layerDim, {
|
|
1517
1359
|
name: newDimension.name,
|
|
1518
1360
|
units: newDimension.units,
|
|
1519
1361
|
currentValue: newDimension.currentValue,
|
|
@@ -1537,20 +1379,20 @@ var produceDraftStateForAllLayersForDimensionWithinMap = function produceDraftSt
|
|
|
1537
1379
|
return;
|
|
1538
1380
|
}
|
|
1539
1381
|
var wmjsDimension = webmapUtils.getWMJSDimensionForLayerAndDimension(layerId, dimension.name);
|
|
1540
|
-
if (wmjsDimension
|
|
1382
|
+
if (wmjsDimension != null && wmjsDimension.linked && wmjsDimension.name === 'reference_time') {
|
|
1541
1383
|
wmjsDimension.linked = false;
|
|
1542
1384
|
}
|
|
1543
|
-
if (layerIdFromAction === layerId || wmjsDimension
|
|
1385
|
+
if (layerIdFromAction === layerId || wmjsDimension != null && wmjsDimension.linked) {
|
|
1544
1386
|
var evenWhenOutsideRange = true;
|
|
1545
1387
|
var closestValue = wmjsDimension ? wmjsDimension.getClosestValue(dimension.currentValue, evenWhenOutsideRange) : dimension.currentValue;
|
|
1546
1388
|
var synced = dimension.synced !== undefined ? {
|
|
1547
1389
|
synced: dimension.synced
|
|
1548
1390
|
} : {};
|
|
1549
|
-
var dimensionValueToUpdate =
|
|
1391
|
+
var dimensionValueToUpdate = Object.assign({
|
|
1550
1392
|
name: dimension.name,
|
|
1551
1393
|
units: dimension.units,
|
|
1552
1394
|
currentValue: closestValue
|
|
1553
|
-
}, synced
|
|
1395
|
+
}, synced, {
|
|
1554
1396
|
validSyncSelection: true
|
|
1555
1397
|
});
|
|
1556
1398
|
/* Set the dimension value for this layer */
|
|
@@ -1577,9 +1419,9 @@ var produceDraftStateForAllLayersForDimensionWithinMap = function produceDraftSt
|
|
|
1577
1419
|
*/
|
|
1578
1420
|
var filterNonTimeDimensions = function filterNonTimeDimensions(dimensions) {
|
|
1579
1421
|
var _dimensions$filter;
|
|
1580
|
-
return (_dimensions$filter = dimensions
|
|
1422
|
+
return (_dimensions$filter = dimensions == null ? void 0 : dimensions.filter(function (dim) {
|
|
1581
1423
|
return dim.name !== 'time';
|
|
1582
|
-
}))
|
|
1424
|
+
})) != null ? _dimensions$filter : [];
|
|
1583
1425
|
};
|
|
1584
1426
|
/**
|
|
1585
1427
|
* Returns the list of dimensions without the time dimension
|
|
@@ -1587,11 +1429,11 @@ var filterNonTimeDimensions = function filterNonTimeDimensions(dimensions) {
|
|
|
1587
1429
|
*/
|
|
1588
1430
|
var filterCurrentValueFromDimensions = function filterCurrentValueFromDimensions(dimensions) {
|
|
1589
1431
|
var _dimensions$map;
|
|
1590
|
-
return (_dimensions$map = dimensions
|
|
1432
|
+
return (_dimensions$map = dimensions == null ? void 0 : dimensions.map(function (dim) {
|
|
1591
1433
|
// eslint-disable-next-line no-param-reassign
|
|
1592
1434
|
dim.currentValue = '';
|
|
1593
1435
|
return dim;
|
|
1594
|
-
}))
|
|
1436
|
+
})) != null ? _dimensions$map : [];
|
|
1595
1437
|
};
|
|
1596
1438
|
/**
|
|
1597
1439
|
* The timeslider range is depending on values set via reference_time dimension.
|
|
@@ -1603,7 +1445,7 @@ var filterCurrentValueFromDimensions = function filterCurrentValueFromDimensions
|
|
|
1603
1445
|
* @returns
|
|
1604
1446
|
*/
|
|
1605
1447
|
var updateMinMaxValueWhenReferenceTimeChanges = function updateMinMaxValueWhenReferenceTimeChanges(draftLayer, dimensionValueToUpdate) {
|
|
1606
|
-
if (!(draftLayer
|
|
1448
|
+
if (!(draftLayer != null && draftLayer.id) || !(draftLayer != null && draftLayer.dimensions) || dimensionValueToUpdate.name !== 'reference_time') {
|
|
1607
1449
|
return;
|
|
1608
1450
|
}
|
|
1609
1451
|
// If dimension reference_time is updated, we might have to update the time minValue and maxValue as well.
|
|
@@ -1617,7 +1459,7 @@ var updateMinMaxValueWhenReferenceTimeChanges = function updateMinMaxValueWhenRe
|
|
|
1617
1459
|
if (reduxTimeDim && timeDimension && referenceTimeDimension) {
|
|
1618
1460
|
// When the reference time changes, a new set of timevalues needs to be set in the layer.
|
|
1619
1461
|
// From the new timevalues the min.max can be derived.
|
|
1620
|
-
timeDimension
|
|
1462
|
+
timeDimension == null || timeDimension.setTimeValuesForReferenceTime(dimensionValueToUpdate.currentValue, referenceTimeDimension);
|
|
1621
1463
|
reduxTimeDim.minValue = timeDimension.getFirstValue();
|
|
1622
1464
|
reduxTimeDim.maxValue = timeDimension.getLastValue();
|
|
1623
1465
|
}
|
|
@@ -1649,7 +1491,7 @@ var createLayer = function createLayer(_ref) {
|
|
|
1649
1491
|
status = _ref$status === void 0 ? 'default' : _ref$status,
|
|
1650
1492
|
_ref$useLatestReferen = _ref.useLatestReferenceTime,
|
|
1651
1493
|
useLatestReferenceTime = _ref$useLatestReferen === void 0 ? true : _ref$useLatestReferen,
|
|
1652
|
-
props =
|
|
1494
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
1653
1495
|
var wmjsLayer = webmapUtils.getWMLayerById(id);
|
|
1654
1496
|
var dimensions = props.dimensions || (wmjsLayer ? wmjsLayer.getDimensions() : []).map(function (dim) {
|
|
1655
1497
|
return {
|
|
@@ -1658,7 +1500,7 @@ var createLayer = function createLayer(_ref) {
|
|
|
1658
1500
|
units: dim.units
|
|
1659
1501
|
};
|
|
1660
1502
|
});
|
|
1661
|
-
return
|
|
1503
|
+
return Object.assign({}, props, {
|
|
1662
1504
|
dimensions: dimensions,
|
|
1663
1505
|
id: id,
|
|
1664
1506
|
opacity: opacity,
|
|
@@ -1691,7 +1533,7 @@ var slice$6 = createSlice({
|
|
|
1691
1533
|
}
|
|
1692
1534
|
if (!draft.byId[layerId]) {
|
|
1693
1535
|
// TODO: (Sander de Snaijer, 2020-03-19) remove layerIds from the layer utils
|
|
1694
|
-
draft.byId[layerId] = createLayer(
|
|
1536
|
+
draft.byId[layerId] = createLayer(Object.assign({}, layer, {
|
|
1695
1537
|
id: layerId,
|
|
1696
1538
|
mapId: mapId
|
|
1697
1539
|
}));
|
|
@@ -1705,7 +1547,7 @@ var slice$6 = createSlice({
|
|
|
1705
1547
|
mapId = _action$payload2.mapId;
|
|
1706
1548
|
var oldLayer = draft.byId[oldLayerId];
|
|
1707
1549
|
if (oldLayer && !draft.byId[newLayerId]) {
|
|
1708
|
-
draft.byId[newLayerId] = createLayer(
|
|
1550
|
+
draft.byId[newLayerId] = createLayer(Object.assign({}, draft.byId[oldLayerId], {
|
|
1709
1551
|
id: newLayerId,
|
|
1710
1552
|
mapId: mapId
|
|
1711
1553
|
}));
|
|
@@ -1777,7 +1619,7 @@ var slice$6 = createSlice({
|
|
|
1777
1619
|
sourceLayerId = _action$payload10.sourceLayerId;
|
|
1778
1620
|
if (draft.byId[layerId]) {
|
|
1779
1621
|
var _draft$byId$sourceLay;
|
|
1780
|
-
draft.byId[layerId].geojson = (_draft$byId$sourceLay = draft.byId[sourceLayerId])
|
|
1622
|
+
draft.byId[layerId].geojson = (_draft$byId$sourceLay = draft.byId[sourceLayerId]) == null ? void 0 : _draft$byId$sourceLay.geojson;
|
|
1781
1623
|
}
|
|
1782
1624
|
},
|
|
1783
1625
|
layerDelete: function layerDelete(draft, action) {
|
|
@@ -1830,7 +1672,7 @@ var slice$6 = createSlice({
|
|
|
1830
1672
|
Here we set the layers for the mapId from the action. byId and allIds is updated.
|
|
1831
1673
|
*/
|
|
1832
1674
|
layers.forEach(function (layer) {
|
|
1833
|
-
draft.byId[layer.id] = createLayer(
|
|
1675
|
+
draft.byId[layer.id] = createLayer(Object.assign({
|
|
1834
1676
|
id: layer.id,
|
|
1835
1677
|
mapId: mapId
|
|
1836
1678
|
}, layer));
|
|
@@ -1864,7 +1706,7 @@ var slice$6 = createSlice({
|
|
|
1864
1706
|
});
|
|
1865
1707
|
// set over and base layers
|
|
1866
1708
|
filtererdBaseLayers.forEach(function (layer) {
|
|
1867
|
-
draft.byId[layer.id] = createLayer(
|
|
1709
|
+
draft.byId[layer.id] = createLayer(Object.assign({
|
|
1868
1710
|
id: layer.id,
|
|
1869
1711
|
layerType: layer.layerType,
|
|
1870
1712
|
mapId: mapId
|
|
@@ -1878,7 +1720,7 @@ var slice$6 = createSlice({
|
|
|
1878
1720
|
return;
|
|
1879
1721
|
}
|
|
1880
1722
|
if (!draft.byId[layer.id]) {
|
|
1881
|
-
draft.byId[layer.id] = createLayer(
|
|
1723
|
+
draft.byId[layer.id] = createLayer(Object.assign({
|
|
1882
1724
|
id: layer.id,
|
|
1883
1725
|
layerType: layer.layerType
|
|
1884
1726
|
}, layer));
|
|
@@ -1899,7 +1741,7 @@ var slice$6 = createSlice({
|
|
|
1899
1741
|
return;
|
|
1900
1742
|
}
|
|
1901
1743
|
if (!draft.availableBaseLayers.byId[layer.id]) {
|
|
1902
|
-
draft.availableBaseLayers.byId[layer.id] = createLayer(
|
|
1744
|
+
draft.availableBaseLayers.byId[layer.id] = createLayer(Object.assign({
|
|
1903
1745
|
id: layer.id,
|
|
1904
1746
|
layerType: layer.layerType
|
|
1905
1747
|
}, layer));
|
|
@@ -1913,7 +1755,7 @@ var slice$6 = createSlice({
|
|
|
1913
1755
|
if (layer.layerType !== LayerType.baseLayer || draft.availableBaseLayers.byId[layer.id] || !layer.mapId) {
|
|
1914
1756
|
return;
|
|
1915
1757
|
}
|
|
1916
|
-
draft.availableBaseLayers.byId[layer.id] = createLayer(
|
|
1758
|
+
draft.availableBaseLayers.byId[layer.id] = createLayer(Object.assign({
|
|
1917
1759
|
id: layer.id,
|
|
1918
1760
|
layerType: layer.layerType
|
|
1919
1761
|
}, layer));
|
|
@@ -1938,7 +1780,7 @@ var slice$6 = createSlice({
|
|
|
1938
1780
|
if (layer.layerType !== LayerType.baseLayer || !layer.mapId) {
|
|
1939
1781
|
return;
|
|
1940
1782
|
}
|
|
1941
|
-
draft.availableBaseLayers.byId[layer.id] = createLayer(
|
|
1783
|
+
draft.availableBaseLayers.byId[layer.id] = createLayer(Object.assign({}, layer));
|
|
1942
1784
|
draft.availableBaseLayers.allIds.push(layer.id);
|
|
1943
1785
|
});
|
|
1944
1786
|
},
|
|
@@ -1957,7 +1799,7 @@ var slice$6 = createSlice({
|
|
|
1957
1799
|
layerStyle = _action$payload16.layerStyle,
|
|
1958
1800
|
layerDimensions = _action$payload16.layerDimensions;
|
|
1959
1801
|
if (layerStyle && draft.byId[layerStyle.layerId]) {
|
|
1960
|
-
draft.byId[layerStyle.layerId].style = layerStyle
|
|
1802
|
+
draft.byId[layerStyle.layerId].style = layerStyle == null ? void 0 : layerStyle.style;
|
|
1961
1803
|
}
|
|
1962
1804
|
if (!layerDimensions) {
|
|
1963
1805
|
return;
|
|
@@ -1974,9 +1816,7 @@ var slice$6 = createSlice({
|
|
|
1974
1816
|
var _reduxLayer$dimension;
|
|
1975
1817
|
var layerId = layerToUpdate.id;
|
|
1976
1818
|
var reduxLayer = draft.byId[layerId];
|
|
1977
|
-
|
|
1978
|
-
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
1979
|
-
(_reduxLayer$dimension = reduxLayer.dimensions) !== null && _reduxLayer$dimension !== void 0 ? _reduxLayer$dimension : reduxLayer.dimensions = [];
|
|
1819
|
+
(_reduxLayer$dimension = reduxLayer.dimensions) != null ? _reduxLayer$dimension : reduxLayer.dimensions = [];
|
|
1980
1820
|
// remove dimensions not in incoming list of dimensions
|
|
1981
1821
|
reduxLayer.dimensions = reduxLayer.dimensions.filter(function (dimension) {
|
|
1982
1822
|
return incomingDimensionNames.includes(dimension.name);
|
|
@@ -1984,10 +1824,12 @@ var slice$6 = createSlice({
|
|
|
1984
1824
|
var reduxDimensions = reduxLayer.dimensions;
|
|
1985
1825
|
/* Now update or insert the dimension for each layer */
|
|
1986
1826
|
layerDimensions.dimensions.forEach(function (newLayerDimension) {
|
|
1827
|
+
/* Find the wmLayer */
|
|
1828
|
+
var wmLayer = webmapUtils.getWMLayerById(layerId);
|
|
1987
1829
|
/* Find the wmDimension */
|
|
1988
|
-
var wmDimension = wmLayer
|
|
1830
|
+
var wmDimension = wmLayer == null ? void 0 : wmLayer.getDimension(newLayerDimension.name);
|
|
1989
1831
|
/* This will set the new range of start/stop values for this dimension, making getClosestValue work properly */
|
|
1990
|
-
wmDimension
|
|
1832
|
+
wmDimension == null || wmDimension.reInitializeValues(newLayerDimension.values);
|
|
1991
1833
|
var existingDimension = reduxDimensions.find(function (d) {
|
|
1992
1834
|
return d.name === newLayerDimension.name;
|
|
1993
1835
|
});
|
|
@@ -2004,24 +1846,9 @@ var slice$6 = createSlice({
|
|
|
2004
1846
|
}
|
|
2005
1847
|
} else if (layerId === layerDimensions.layerId) {
|
|
2006
1848
|
/* Otherwise add a new one, but only for this layer. */
|
|
2007
|
-
reduxDimensions.push(
|
|
1849
|
+
reduxDimensions.push(Object.assign({}, newLayerDimension));
|
|
2008
1850
|
}
|
|
2009
1851
|
});
|
|
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
|
-
}
|
|
2025
1852
|
});
|
|
2026
1853
|
},
|
|
2027
1854
|
// feature layer actions
|
|
@@ -2033,7 +1860,7 @@ var slice$6 = createSlice({
|
|
|
2033
1860
|
if (!layerId || layerIdsWithoutNewId.length === draft.allIds.length) {
|
|
2034
1861
|
return;
|
|
2035
1862
|
}
|
|
2036
|
-
var newLayerIds = [layerId].concat(
|
|
1863
|
+
var newLayerIds = [layerId].concat(layerIdsWithoutNewId);
|
|
2037
1864
|
draft.allIds = newLayerIds;
|
|
2038
1865
|
},
|
|
2039
1866
|
// feature layer actions
|
|
@@ -2080,7 +1907,7 @@ var slice$6 = createSlice({
|
|
|
2080
1907
|
return;
|
|
2081
1908
|
}
|
|
2082
1909
|
var bounds = intersectionBoundsLayer.geojson;
|
|
2083
|
-
var geoJSONProperties = intersectionLayer.defaultGeoJSONProperties || ((_currentLayer$geojson = currentLayer.geojson)
|
|
1910
|
+
var geoJSONProperties = intersectionLayer.defaultGeoJSONProperties || ((_currentLayer$geojson = currentLayer.geojson) == null || (_currentLayer$geojson = _currentLayer$geojson.features[0]) == null ? void 0 : _currentLayer$geojson.properties);
|
|
2084
1911
|
intersectionLayer.geojson = createInterSections(updatedGeoJSON, bounds, geoJSONProperties);
|
|
2085
1912
|
}
|
|
2086
1913
|
},
|
|
@@ -2134,7 +1961,7 @@ var slice$6 = createSlice({
|
|
|
2134
1961
|
var currentGeoJSON = draft.byId[layerId].geojson;
|
|
2135
1962
|
var lastFeatureIndex = currentGeoJSON !== undefined && getLastEmptyFeatureIndex(currentGeoJSON);
|
|
2136
1963
|
if (currentGeoJSON && lastFeatureIndex !== undefined) {
|
|
2137
|
-
var newGeoJSON =
|
|
1964
|
+
var newGeoJSON = Object.assign({}, currentGeoJSON, {
|
|
2138
1965
|
features: currentGeoJSON.features.filter(function (_feature, index) {
|
|
2139
1966
|
return index !== lastFeatureIndex;
|
|
2140
1967
|
})
|
|
@@ -2173,7 +2000,7 @@ var slice$6 = createSlice({
|
|
|
2173
2000
|
});
|
|
2174
2001
|
}
|
|
2175
2002
|
/* And then append the targets form the action */
|
|
2176
|
-
targets.push.apply(targets,
|
|
2003
|
+
targets.push.apply(targets, targetsFromAction);
|
|
2177
2004
|
targets.forEach(function (payload) {
|
|
2178
2005
|
var targetId = payload.targetId,
|
|
2179
2006
|
value = payload.value;
|
|
@@ -2222,11 +2049,28 @@ var slice$6 = createSlice({
|
|
|
2222
2049
|
var layerReducer = slice$6.reducer,
|
|
2223
2050
|
layerActions = slice$6.actions;
|
|
2224
2051
|
|
|
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
|
+
* */
|
|
2225
2069
|
var moveToTop = function moveToTop(list, element) {
|
|
2226
2070
|
var filteredList = list.filter(function (item) {
|
|
2227
2071
|
return item !== element;
|
|
2228
2072
|
});
|
|
2229
|
-
var newOrder = [element].concat(
|
|
2073
|
+
var newOrder = [element].concat(filteredList);
|
|
2230
2074
|
return newOrder;
|
|
2231
2075
|
};
|
|
2232
2076
|
var createUIDialogElement = function createUIDialogElement(_ref) {
|
|
@@ -2365,21 +2209,14 @@ var createLayersWithIds = function createLayersWithIds(state, layers) {
|
|
|
2365
2209
|
return layers;
|
|
2366
2210
|
}
|
|
2367
2211
|
return produce(layers, function (draft) {
|
|
2368
|
-
var _iterator =
|
|
2369
|
-
_step;
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
} else if (checkIfMapLayerIdIsAlreadyTaken(state, layer.id)) {
|
|
2376
|
-
console.warn("Warning: Layer id ".concat(layer.id, " was already set before."));
|
|
2377
|
-
}
|
|
2212
|
+
for (var _iterator = _createForOfIteratorHelperLoose(draft), _step; !(_step = _iterator()).done;) {
|
|
2213
|
+
var layer = _step.value;
|
|
2214
|
+
if (!layer.id) {
|
|
2215
|
+
layer.id = webmapUtils.generateLayerId();
|
|
2216
|
+
} else if (checkIfMapLayerIdIsAlreadyTaken(state, layer.id)) {
|
|
2217
|
+
console.warn("Warning: Layer id " + layer.id + " was already taken: Generating new one.");
|
|
2218
|
+
layer.id = webmapUtils.generateLayerId();
|
|
2378
2219
|
}
|
|
2379
|
-
} catch (err) {
|
|
2380
|
-
_iterator.e(err);
|
|
2381
|
-
} finally {
|
|
2382
|
-
_iterator.f();
|
|
2383
2220
|
}
|
|
2384
2221
|
});
|
|
2385
2222
|
};
|
|
@@ -2732,7 +2569,7 @@ var slice$4 = createSlice({
|
|
|
2732
2569
|
return;
|
|
2733
2570
|
}
|
|
2734
2571
|
if (checkIfMapLayerIdIsAlreadyTaken(draft, layerId)) {
|
|
2735
|
-
console.warn("Warning: Layer id "
|
|
2572
|
+
console.warn("Warning: Layer id " + layerId + " was already taken");
|
|
2736
2573
|
return;
|
|
2737
2574
|
}
|
|
2738
2575
|
if (!draft.byId[mapId].mapLayers.length) {
|
|
@@ -2753,7 +2590,7 @@ var slice$4 = createSlice({
|
|
|
2753
2590
|
return;
|
|
2754
2591
|
}
|
|
2755
2592
|
if (checkIfMapLayerIdIsAlreadyTaken(draft, newLayerId)) {
|
|
2756
|
-
console.warn("Warning: Layer id "
|
|
2593
|
+
console.warn("Warning: Layer id " + newLayerId + " was already taken");
|
|
2757
2594
|
return;
|
|
2758
2595
|
}
|
|
2759
2596
|
draft.byId[mapId].mapLayers.unshift(newLayerId);
|
|
@@ -2766,7 +2603,7 @@ var slice$4 = createSlice({
|
|
|
2766
2603
|
return;
|
|
2767
2604
|
}
|
|
2768
2605
|
if (checkIfMapLayerIdIsAlreadyTaken(draft, layerId)) {
|
|
2769
|
-
console.warn("Warning: Layer id "
|
|
2606
|
+
console.warn("Warning: Layer id " + layerId + " was already taken");
|
|
2770
2607
|
return;
|
|
2771
2608
|
}
|
|
2772
2609
|
if (layer.layerType === LayerType.baseLayer) {
|
|
@@ -2783,8 +2620,7 @@ var slice$4 = createSlice({
|
|
|
2783
2620
|
var id = _ref.id;
|
|
2784
2621
|
return id;
|
|
2785
2622
|
});
|
|
2786
|
-
var
|
|
2787
|
-
activeLayerId = _layerIds[0];
|
|
2623
|
+
var activeLayerId = layerIds[0];
|
|
2788
2624
|
if (draft.byId[mapId]) {
|
|
2789
2625
|
draft.byId[mapId].mapLayers = layerIds;
|
|
2790
2626
|
draft.byId[mapId].autoUpdateLayerId = activeLayerId;
|
|
@@ -2865,7 +2701,7 @@ var slice$4 = createSlice({
|
|
|
2865
2701
|
map.autoTimeStepLayerId = undefined;
|
|
2866
2702
|
return;
|
|
2867
2703
|
}
|
|
2868
|
-
var _map$mapLayers =
|
|
2704
|
+
var _map$mapLayers = map.mapLayers,
|
|
2869
2705
|
activeLayerId = _map$mapLayers[0];
|
|
2870
2706
|
if (map.autoUpdateLayerId === layerId) {
|
|
2871
2707
|
map.autoUpdateLayerId = activeLayerId;
|
|
@@ -2907,7 +2743,7 @@ var slice$4 = createSlice({
|
|
|
2907
2743
|
});
|
|
2908
2744
|
}
|
|
2909
2745
|
/* And then append the targets form the action */
|
|
2910
|
-
targets.push.apply(targets,
|
|
2746
|
+
targets.push.apply(targets, targetsFromAction);
|
|
2911
2747
|
targets.forEach(function (target) {
|
|
2912
2748
|
var targetId = target.targetId,
|
|
2913
2749
|
value = target.value;
|
|
@@ -2934,7 +2770,7 @@ var slice$4 = createSlice({
|
|
|
2934
2770
|
});
|
|
2935
2771
|
}
|
|
2936
2772
|
/* And then append the targets form the action */
|
|
2937
|
-
targets.push.apply(targets,
|
|
2773
|
+
targets.push.apply(targets, targetsFromAction);
|
|
2938
2774
|
targets.forEach(function (payload) {
|
|
2939
2775
|
var targetId = payload.targetId,
|
|
2940
2776
|
bbox = payload.bbox,
|
|
@@ -3010,14 +2846,14 @@ var slice$4 = createSlice({
|
|
|
3010
2846
|
});
|
|
3011
2847
|
}
|
|
3012
2848
|
});
|
|
3013
|
-
var mapActions =
|
|
2849
|
+
var mapActions = Object.assign({}, slice$4.actions, {
|
|
3014
2850
|
setMapPreset: setMapPreset,
|
|
3015
2851
|
mapChangeDimension: mapChangeDimension
|
|
3016
2852
|
});
|
|
3017
2853
|
var mapReducer = slice$4.reducer;
|
|
3018
2854
|
|
|
3019
2855
|
var layerStore = function layerStore(store) {
|
|
3020
|
-
return store
|
|
2856
|
+
return store == null ? void 0 : store.layers;
|
|
3021
2857
|
};
|
|
3022
2858
|
/**
|
|
3023
2859
|
* Gets a layer from the layers part of the store by its Id
|
|
@@ -3068,7 +2904,7 @@ var getLayerByIdWithoutTimeDimension = createSelector([layerStore, function (lay
|
|
|
3068
2904
|
*/
|
|
3069
2905
|
var getLayersById = createSelector(layerStore, function (store) {
|
|
3070
2906
|
var _store$byId;
|
|
3071
|
-
return (_store$byId = store
|
|
2907
|
+
return (_store$byId = store == null ? void 0 : store.byId) != null ? _store$byId : null;
|
|
3072
2908
|
}, selectorMemoizationOptions);
|
|
3073
2909
|
/**
|
|
3074
2910
|
* Retrieves all layerIds
|
|
@@ -3165,7 +3001,7 @@ var getFeatureLayers = createSelector(getAllLayers, function (layers) {
|
|
|
3165
3001
|
*/
|
|
3166
3002
|
var getLayerDimensions = createSelector(getLayerById, function (layer) {
|
|
3167
3003
|
var _layer$dimensions;
|
|
3168
|
-
return (_layer$dimensions = layer
|
|
3004
|
+
return (_layer$dimensions = layer == null ? void 0 : layer.dimensions) != null ? _layer$dimensions : [];
|
|
3169
3005
|
}, selectorMemoizationOptions);
|
|
3170
3006
|
/**
|
|
3171
3007
|
* Gets dimensions of the passed layer, excluding the time dimension
|
|
@@ -3187,7 +3023,7 @@ var getLayerNonTimeDimensions = createSelector(getLayerDimensions, function (dim
|
|
|
3187
3023
|
* @returns {object} returnType: object - object of layer time dimension
|
|
3188
3024
|
*/
|
|
3189
3025
|
var getLayerTimeDimension = createSelector(getLayerDimensions, function (dimensions) {
|
|
3190
|
-
return dimensions
|
|
3026
|
+
return dimensions == null ? void 0 : dimensions.find(function (dimension) {
|
|
3191
3027
|
return dimension.name === 'time';
|
|
3192
3028
|
});
|
|
3193
3029
|
}, selectorMemoizationOptions);
|
|
@@ -3203,7 +3039,7 @@ var getLayerHasTimeDimension = createSelector(getLayerTimeDimension, function (t
|
|
|
3203
3039
|
return !!timeDimension;
|
|
3204
3040
|
}, selectorMemoizationOptions);
|
|
3205
3041
|
var getLayerCurrentTime = createSelector(getLayerTimeDimension, function (dimension) {
|
|
3206
|
-
return dimension
|
|
3042
|
+
return dimension == null ? void 0 : dimension.currentValue;
|
|
3207
3043
|
}, selectorMemoizationOptions);
|
|
3208
3044
|
/**
|
|
3209
3045
|
* Gets specified dimension of the passed layer
|
|
@@ -3217,7 +3053,7 @@ var getLayerCurrentTime = createSelector(getLayerTimeDimension, function (dimens
|
|
|
3217
3053
|
var getLayerDimension = createSelector(getLayerDimensions, function (_store, _layerId, dimensionName) {
|
|
3218
3054
|
return dimensionName;
|
|
3219
3055
|
}, function (dimensions, dimensionName) {
|
|
3220
|
-
return dimensions
|
|
3056
|
+
return dimensions == null ? void 0 : dimensions.find(function (dimension) {
|
|
3221
3057
|
return dimension.name === dimensionName;
|
|
3222
3058
|
});
|
|
3223
3059
|
}, selectorMemoizationOptions);
|
|
@@ -3241,7 +3077,7 @@ var getLayerOpacity = createSelector(getLayerById, function (layer) {
|
|
|
3241
3077
|
* @returns {boolean} returnType: boolean - true if enabled, false if disabled
|
|
3242
3078
|
*/
|
|
3243
3079
|
var getLayerEnabled = createSelector(getLayerById, function (layer) {
|
|
3244
|
-
return Boolean(layer
|
|
3080
|
+
return Boolean(layer == null ? void 0 : layer.enabled);
|
|
3245
3081
|
}, selectorMemoizationOptions);
|
|
3246
3082
|
/**
|
|
3247
3083
|
* Gets layer name
|
|
@@ -3253,7 +3089,7 @@ var getLayerEnabled = createSelector(getLayerById, function (layer) {
|
|
|
3253
3089
|
*/
|
|
3254
3090
|
var getLayerName = createSelector(getLayerById, function (layer) {
|
|
3255
3091
|
var _layer$name;
|
|
3256
|
-
return (_layer$name = layer
|
|
3092
|
+
return (_layer$name = layer == null ? void 0 : layer.name) != null ? _layer$name : '';
|
|
3257
3093
|
}, selectorMemoizationOptions);
|
|
3258
3094
|
/**
|
|
3259
3095
|
* Gets layer service
|
|
@@ -3265,7 +3101,7 @@ var getLayerName = createSelector(getLayerById, function (layer) {
|
|
|
3265
3101
|
*/
|
|
3266
3102
|
var getLayerService = createSelector(getLayerById, function (layer) {
|
|
3267
3103
|
var _layer$service;
|
|
3268
|
-
return (_layer$service = layer
|
|
3104
|
+
return (_layer$service = layer == null ? void 0 : layer.service) != null ? _layer$service : '';
|
|
3269
3105
|
}, selectorMemoizationOptions);
|
|
3270
3106
|
/**
|
|
3271
3107
|
* Gets selected style of the passed layer
|
|
@@ -3320,7 +3156,7 @@ var getAvailableBaseLayersForMap = createSelector(layerStore, function (_store,
|
|
|
3320
3156
|
* @returns {number} selectedFeatureIndex: the index of the selected geojson feature
|
|
3321
3157
|
*/
|
|
3322
3158
|
var getSelectedFeatureIndex = createSelector(getLayerById, function (layer) {
|
|
3323
|
-
return layer
|
|
3159
|
+
return layer == null ? void 0 : layer.selectedFeatureIndex;
|
|
3324
3160
|
}, selectorMemoizationOptions);
|
|
3325
3161
|
/**
|
|
3326
3162
|
* Returns the layer is in edit mode
|
|
@@ -3331,18 +3167,20 @@ var getSelectedFeatureIndex = createSelector(getLayerById, function (layer) {
|
|
|
3331
3167
|
* @returns {number} isLayerInEditMode: boolean - isInEditMode
|
|
3332
3168
|
*/
|
|
3333
3169
|
var getIsLayerInEditMode = createSelector(getLayerById, function (layer) {
|
|
3334
|
-
return (layer
|
|
3170
|
+
return (layer == null ? void 0 : layer.isInEditMode) || false;
|
|
3335
3171
|
}, selectorMemoizationOptions);
|
|
3336
3172
|
var getFeatureLayerGeoJSON = createSelector(getLayerById, function (layer) {
|
|
3337
|
-
return (layer
|
|
3173
|
+
return (layer == null ? void 0 : layer.geojson) || undefined;
|
|
3338
3174
|
}, selectorMemoizationOptions);
|
|
3339
3175
|
var getHasFeatureLayerGeoJSON = createSelector(getFeatureLayerGeoJSON, function (geojson) {
|
|
3340
3176
|
return !!geojson;
|
|
3341
3177
|
}, selectorMemoizationOptions);
|
|
3342
|
-
var getFeatureLayerGeoJSONProperties = createSelector(getLayerById, getSelectedFeatureIndex, function (layer) {
|
|
3178
|
+
var getFeatureLayerGeoJSONProperties = createSelector(getLayerById, getSelectedFeatureIndex, function (layer, selecteFeatureIndex) {
|
|
3343
3179
|
var _layer$geojson;
|
|
3344
|
-
|
|
3345
|
-
|
|
3180
|
+
if (selecteFeatureIndex === void 0) {
|
|
3181
|
+
selecteFeatureIndex = 0;
|
|
3182
|
+
}
|
|
3183
|
+
return (layer == null || (_layer$geojson = layer.geojson) == null || (_layer$geojson = _layer$geojson.features[selecteFeatureIndex]) == null ? void 0 : _layer$geojson.properties) || {};
|
|
3346
3184
|
}, selectorMemoizationOptions);
|
|
3347
3185
|
/**
|
|
3348
3186
|
* Gets layerIds that contain passed dimension
|
|
@@ -3357,7 +3195,7 @@ var getDimensionLayerIds = createSelector(getLayersIds, getLayersById, function
|
|
|
3357
3195
|
}, function (layerIds, layers, dimensionName) {
|
|
3358
3196
|
return layerIds.reduce(function (list, layerId) {
|
|
3359
3197
|
var layer = layers[layerId];
|
|
3360
|
-
var dimensions = layer
|
|
3198
|
+
var dimensions = layer != null && layer.dimensions ? layer.dimensions : [];
|
|
3361
3199
|
if (dimensions.find(function (dimension) {
|
|
3362
3200
|
return dimension.name === dimensionName;
|
|
3363
3201
|
})) {
|
|
@@ -3367,13 +3205,13 @@ var getDimensionLayerIds = createSelector(getLayersIds, getLayersById, function
|
|
|
3367
3205
|
}, []);
|
|
3368
3206
|
}, selectorMemoizationOptions);
|
|
3369
3207
|
var getAcceptanceTimeInMinutes = createSelector(getLayerById, function (layer) {
|
|
3370
|
-
return layer
|
|
3208
|
+
return layer == null ? void 0 : layer.acceptanceTimeInMinutes;
|
|
3371
3209
|
}, selectorMemoizationOptions);
|
|
3372
3210
|
var getLayerIsInsideAcceptanceTime = createSelector(getAcceptanceTimeInMinutes, getLayerCurrentTime, function (state, _layerId, mapId) {
|
|
3373
3211
|
var _state$webmap;
|
|
3374
|
-
return (_state$webmap = state.webmap)
|
|
3212
|
+
return (_state$webmap = state.webmap) == null || (_state$webmap = _state$webmap.byId[mapId]) == null || (_state$webmap = _state$webmap.dimensions) == null || (_state$webmap = _state$webmap.find(function (dimension) {
|
|
3375
3213
|
return dimension.name === 'time';
|
|
3376
|
-
}))
|
|
3214
|
+
})) == null ? void 0 : _state$webmap.currentValue;
|
|
3377
3215
|
}, function (acceptanceTimeInMinutes, layerCurrentTime, mapCurrentTime) {
|
|
3378
3216
|
if (!mapCurrentTime || !layerCurrentTime) {
|
|
3379
3217
|
return 'equal';
|
|
@@ -3393,7 +3231,7 @@ var getLayerIsInsideAcceptanceTime = createSelector(getAcceptanceTimeInMinutes,
|
|
|
3393
3231
|
return 'inside';
|
|
3394
3232
|
}, selectorMemoizationOptions);
|
|
3395
3233
|
var getUseLatestReferenceTime = createSelector(getLayerById, function (layer) {
|
|
3396
|
-
return Boolean(layer
|
|
3234
|
+
return Boolean(layer == null ? void 0 : layer.useLatestReferenceTime);
|
|
3397
3235
|
}, selectorMemoizationOptions);
|
|
3398
3236
|
/**
|
|
3399
3237
|
* Returns the timestep for this layerId in seconds, or undefined if it has no time dimension or timeinterval.
|
|
@@ -3410,31 +3248,23 @@ var getTimeStepForLayerId = createSelector(getLayerTimeDimension, function (time
|
|
|
3410
3248
|
return isEmpty(timeInterval) ? undefined : getTimeStepFromDataInterval(timeInterval);
|
|
3411
3249
|
}
|
|
3412
3250
|
var iso8601Intervals = parseTimeDimToISO8601Interval(values);
|
|
3413
|
-
var _iterator =
|
|
3414
|
-
_step
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
})) {
|
|
3425
|
-
var parsedInterval = parseISO8601IntervalToDateInterval(duration);
|
|
3426
|
-
return getTimeStepFromDataInterval(parsedInterval);
|
|
3427
|
-
}
|
|
3251
|
+
for (var _iterator = _createForOfIteratorHelperLoose(iso8601Intervals), _step; !(_step = _iterator()).done;) {
|
|
3252
|
+
var _step$value = _step.value,
|
|
3253
|
+
startTime = _step$value.startTime,
|
|
3254
|
+
endTime = _step$value.endTime,
|
|
3255
|
+
duration = _step$value.duration;
|
|
3256
|
+
if (dateUtils.isWithinInterval(currentValue, {
|
|
3257
|
+
start: startTime,
|
|
3258
|
+
end: endTime
|
|
3259
|
+
})) {
|
|
3260
|
+
var parsedInterval = parseISO8601IntervalToDateInterval(duration);
|
|
3261
|
+
return getTimeStepFromDataInterval(parsedInterval);
|
|
3428
3262
|
}
|
|
3429
|
-
} catch (err) {
|
|
3430
|
-
_iterator.e(err);
|
|
3431
|
-
} finally {
|
|
3432
|
-
_iterator.f();
|
|
3433
3263
|
}
|
|
3434
3264
|
return getTimeStepFromDataInterval(timeInterval);
|
|
3435
3265
|
}, selectorMemoizationOptions);
|
|
3436
3266
|
var getActiveLayerInfo = createSelector(layerStore, function (store) {
|
|
3437
|
-
return store
|
|
3267
|
+
return store == null ? void 0 : store.activeLayerInfo;
|
|
3438
3268
|
});
|
|
3439
3269
|
|
|
3440
3270
|
var selectors$6 = /*#__PURE__*/Object.freeze({
|
|
@@ -3552,7 +3382,7 @@ var getDialogOrder = createSelector(function (store, dialogType) {
|
|
|
3552
3382
|
var order = store.ui.order;
|
|
3553
3383
|
var visibleOrder = order.filter(function (orderedDialogType) {
|
|
3554
3384
|
var _store$ui$dialogs$ord;
|
|
3555
|
-
return (_store$ui$dialogs$ord = store.ui.dialogs[orderedDialogType])
|
|
3385
|
+
return (_store$ui$dialogs$ord = store.ui.dialogs[orderedDialogType]) == null ? void 0 : _store$ui$dialogs$ord.isOpen;
|
|
3556
3386
|
});
|
|
3557
3387
|
if (!visibleOrder.includes(dialogType)) {
|
|
3558
3388
|
return 0;
|
|
@@ -3593,7 +3423,7 @@ var getDialogSource = createSelector(getDialogDetailsByType, function (details)
|
|
|
3593
3423
|
* @returns {string} active window id
|
|
3594
3424
|
*/
|
|
3595
3425
|
var getActiveWindowId = createSelector(getUiStore, function (store) {
|
|
3596
|
-
return store
|
|
3426
|
+
return store == null ? void 0 : store.activeWindowId;
|
|
3597
3427
|
}, selectorMemoizationOptions);
|
|
3598
3428
|
/**
|
|
3599
3429
|
* Gets the panelId of which the dialog is opened from
|
|
@@ -3604,9 +3434,9 @@ var getActiveWindowId = createSelector(getUiStore, function (store) {
|
|
|
3604
3434
|
*/
|
|
3605
3435
|
var getSourcePanelId = createSelector(function (store, dialogType) {
|
|
3606
3436
|
var _store$ui;
|
|
3607
|
-
return (_store$ui = store.ui)
|
|
3437
|
+
return (_store$ui = store.ui) == null ? void 0 : _store$ui.dialogs[dialogType];
|
|
3608
3438
|
}, function (dialog) {
|
|
3609
|
-
return (dialog
|
|
3439
|
+
return (dialog == null ? void 0 : dialog.sourcePanelId) || '';
|
|
3610
3440
|
}, selectorMemoizationOptions);
|
|
3611
3441
|
/**
|
|
3612
3442
|
* Gets if this is the active window
|
|
@@ -3618,7 +3448,7 @@ var getSourcePanelId = createSelector(function (store, dialogType) {
|
|
|
3618
3448
|
var getIsActiveWindowId = createSelector(getUiStore, function (_store, viewId) {
|
|
3619
3449
|
return viewId;
|
|
3620
3450
|
}, function (store, viewId) {
|
|
3621
|
-
return viewId === (store
|
|
3451
|
+
return viewId === (store == null ? void 0 : store.activeWindowId);
|
|
3622
3452
|
}, selectorMemoizationOptions);
|
|
3623
3453
|
var getDialogIsLoading = createSelector(getDialogDetailsByType, function (details) {
|
|
3624
3454
|
return details && details.isLoading || false;
|
|
@@ -3630,11 +3460,11 @@ var getUiDialogsByActiveMapId = function getUiDialogsByActiveMapId(store, mapId)
|
|
|
3630
3460
|
if (store && store.ui && store.ui.order) {
|
|
3631
3461
|
var foundDialogsIds = store.ui.order.filter(function (id) {
|
|
3632
3462
|
var _store$ui2;
|
|
3633
|
-
return ((_store$ui2 = store.ui)
|
|
3463
|
+
return ((_store$ui2 = store.ui) == null || (_store$ui2 = _store$ui2.dialogs[id]) == null ? void 0 : _store$ui2.activeMapId) === mapId;
|
|
3634
3464
|
});
|
|
3635
3465
|
var foundDialogs = foundDialogsIds.reduce(function (list, id) {
|
|
3636
3466
|
var _store$ui3;
|
|
3637
|
-
var dialog = (_store$ui3 = store.ui)
|
|
3467
|
+
var dialog = (_store$ui3 = store.ui) == null ? void 0 : _store$ui3.dialogs[id];
|
|
3638
3468
|
if (dialog) {
|
|
3639
3469
|
return list.concat(dialog);
|
|
3640
3470
|
}
|
|
@@ -3722,8 +3552,10 @@ var types$2 = /*#__PURE__*/Object.freeze({
|
|
|
3722
3552
|
* Copyright 2023 - Finnish Meteorological Institute (FMI)
|
|
3723
3553
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
3724
3554
|
* */
|
|
3725
|
-
var useSetupDialog = function useSetupDialog(dialogType) {
|
|
3726
|
-
|
|
3555
|
+
var useSetupDialog = function useSetupDialog(dialogType, source) {
|
|
3556
|
+
if (source === void 0) {
|
|
3557
|
+
source = 'app';
|
|
3558
|
+
}
|
|
3727
3559
|
var dispatch = useDispatch();
|
|
3728
3560
|
var onCloseDialog = useCallback(function () {
|
|
3729
3561
|
dispatch(uiActions.setToggleOpenDialog({
|
|
@@ -3858,6 +3690,23 @@ var removeInPlace = function removeInPlace(inDraftArray, condition) {
|
|
|
3858
3690
|
inDraftArray.length = j;
|
|
3859
3691
|
};
|
|
3860
3692
|
|
|
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
|
+
* */
|
|
3861
3710
|
var initialState$2 = {
|
|
3862
3711
|
sources: {
|
|
3863
3712
|
byId: {},
|
|
@@ -3916,7 +3765,7 @@ var slice$3 = createSlice({
|
|
|
3916
3765
|
var _action$payload2 = action.payload,
|
|
3917
3766
|
panelId = _action$payload2.panelId,
|
|
3918
3767
|
data = _action$payload2.data;
|
|
3919
|
-
draft.linkedState.sharedData[panelId] =
|
|
3768
|
+
draft.linkedState.sharedData[panelId] = Object.assign({}, draft.linkedState.sharedData[panelId], data);
|
|
3920
3769
|
},
|
|
3921
3770
|
deleteSharedData: function deleteSharedData(draft, action) {
|
|
3922
3771
|
var panelId = action.payload.panelId;
|
|
@@ -3967,7 +3816,7 @@ var slice$3 = createSlice({
|
|
|
3967
3816
|
linked = _action$payload4.linked;
|
|
3968
3817
|
var synchronizationGroup = draft.groups.byId[groupId];
|
|
3969
3818
|
if (!synchronizationGroup) {
|
|
3970
|
-
console.warn("SYNCGROUPS_ADD_TARGET: Group "
|
|
3819
|
+
console.warn("SYNCGROUPS_ADD_TARGET: Group " + groupId + " does not exist.");
|
|
3971
3820
|
return;
|
|
3972
3821
|
}
|
|
3973
3822
|
if (!targetId) {
|
|
@@ -3977,7 +3826,7 @@ var slice$3 = createSlice({
|
|
|
3977
3826
|
if (synchronizationGroup.targets.allIds.includes(targetId)) {
|
|
3978
3827
|
return;
|
|
3979
3828
|
}
|
|
3980
|
-
var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId])
|
|
3829
|
+
var isSourceLinked = (_synchronizationGroup = synchronizationGroup.targets.byId[targetId]) == null ? void 0 : _synchronizationGroup.linked;
|
|
3981
3830
|
synchronizationGroup.targets.allIds.push(targetId);
|
|
3982
3831
|
synchronizationGroup.targets.byId[targetId] = {
|
|
3983
3832
|
linked: linked !== false
|
|
@@ -4107,10 +3956,10 @@ var setBboxOrTimeSync = function setBboxOrTimeSync(draft, action) {
|
|
|
4107
3956
|
});
|
|
4108
3957
|
}
|
|
4109
3958
|
};
|
|
4110
|
-
var _slice$actions = slice$3.actions
|
|
4111
|
-
|
|
3959
|
+
var _slice$actions = slice$3.actions;
|
|
3960
|
+
_slice$actions.syncGroupAddGroup;
|
|
4112
3961
|
_slice$actions.syncGroupAddSource;
|
|
4113
|
-
|
|
3962
|
+
_slice$actions.syncGroupAddTarget;
|
|
4114
3963
|
_slice$actions.syncGroupClear;
|
|
4115
3964
|
_slice$actions.syncGroupLinkTarget;
|
|
4116
3965
|
_slice$actions.syncGroupRemoveGroup;
|
|
@@ -4120,6 +3969,23 @@ var _slice$actions = slice$3.actions,
|
|
|
4120
3969
|
var syncGroupsReducer = slice$3.reducer,
|
|
4121
3970
|
syncGroupsActions = slice$3.actions;
|
|
4122
3971
|
|
|
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
|
+
* */
|
|
4123
3989
|
var syncGroupStore = function syncGroupStore(store) {
|
|
4124
3990
|
return store.syncGroups || null;
|
|
4125
3991
|
};
|
|
@@ -4159,7 +4025,7 @@ var getTargets = createSelector([syncGroupStore, function (syncGroupStore, paylo
|
|
|
4159
4025
|
/* Remember that we have already added this target in the action payloads, prevents adding it twice */
|
|
4160
4026
|
targetsInActionPayload[targetId] = true;
|
|
4161
4027
|
/* Compose the payload */
|
|
4162
|
-
var newPayload =
|
|
4028
|
+
var newPayload = Object.assign({
|
|
4163
4029
|
targetId: targetId
|
|
4164
4030
|
}, payload);
|
|
4165
4031
|
actionPayloads.push(newPayload);
|
|
@@ -4179,7 +4045,7 @@ var getTargets = createSelector([syncGroupStore, function (syncGroupStore, paylo
|
|
|
4179
4045
|
/* Remember that we have already added this target in the action payloads, prevents adding it twice */
|
|
4180
4046
|
targetsInActionPayload[targetId] = true;
|
|
4181
4047
|
/* Compose the payload */
|
|
4182
|
-
var newPayload =
|
|
4048
|
+
var newPayload = Object.assign({
|
|
4183
4049
|
targetId: targetId
|
|
4184
4050
|
}, payload);
|
|
4185
4051
|
actionPayloads.push(newPayload);
|
|
@@ -4216,7 +4082,7 @@ var getSourceId = createSelector([syncGroupStore, function (syncGroupStore, sour
|
|
|
4216
4082
|
return typeof sourceId === 'string' ? sourceId : sourceId.sourceId;
|
|
4217
4083
|
}, selectorMemoizationOptions);
|
|
4218
4084
|
var getAllTargetGroupsForSource = createSelector([syncGroupStore, getSourceId], function (syncGroupStore, sourceId) {
|
|
4219
|
-
if (syncGroupStore
|
|
4085
|
+
if (syncGroupStore != null && syncGroupStore.groups) {
|
|
4220
4086
|
return syncGroupStore.groups.allIds.reduce(function (linkedSyncGroupIds, groupId) {
|
|
4221
4087
|
var syncronizationGroup = syncGroupStore.groups.byId[groupId];
|
|
4222
4088
|
var source = syncronizationGroup.targets.byId[sourceId];
|
|
@@ -4237,7 +4103,7 @@ var isTimeScrollingEnabled = createSelector(syncGroupStore, function (store) {
|
|
|
4237
4103
|
}, selectorMemoizationOptions);
|
|
4238
4104
|
var getSyncedMapIdsForTimeslider = createSelector(syncGroupStore, function (store) {
|
|
4239
4105
|
var _store$viewState$time, _store$viewState$time2;
|
|
4240
|
-
return (_store$viewState$time = (_store$viewState$time2 = store.viewState.timeslider.groups[0])
|
|
4106
|
+
return (_store$viewState$time = (_store$viewState$time2 = store.viewState.timeslider.groups[0]) == null ? void 0 : _store$viewState$time2.selected) != null ? _store$viewState$time : [];
|
|
4241
4107
|
}, selectorMemoizationOptions);
|
|
4242
4108
|
var getSyncGroupTargets = createSelector(syncGroupStore, function (store) {
|
|
4243
4109
|
if (!store || !store.groups) {
|
|
@@ -4328,7 +4194,7 @@ var createSyncGroupViewState = function createSyncGroupViewState(groups, sources
|
|
|
4328
4194
|
var _groupTypes$find;
|
|
4329
4195
|
var groupType = (_groupTypes$find = groupTypes.find(function (object) {
|
|
4330
4196
|
return object.syncType === groups.byId[id].type;
|
|
4331
|
-
}))
|
|
4197
|
+
})) == null ? void 0 : _groupTypes$find.groupType;
|
|
4332
4198
|
if (groupType) {
|
|
4333
4199
|
draft[groupType].groups.push({
|
|
4334
4200
|
id: id,
|
|
@@ -4529,7 +4395,7 @@ var getTime = createSelector(getSyncSourceBySourceId, function (store) {
|
|
|
4529
4395
|
return store && store.payloadByType && store.payloadByType[SYNCGROUPS_TYPE_SETTIME] ? store.payloadByType[SYNCGROUPS_TYPE_SETTIME].value : null;
|
|
4530
4396
|
}, selectorMemoizationOptions);
|
|
4531
4397
|
var selectLinkedState = createSelector(synchronizationGroupStore, function (syncState) {
|
|
4532
|
-
return (syncState
|
|
4398
|
+
return (syncState == null ? void 0 : syncState.linkedState) || {
|
|
4533
4399
|
links: {},
|
|
4534
4400
|
sharedData: {}
|
|
4535
4401
|
};
|
|
@@ -4561,7 +4427,7 @@ var selectLinkedPanelId = createSelector([selectLinkedState, function (_, mapVie
|
|
|
4561
4427
|
// Find the panelId where mapView(s) is linked
|
|
4562
4428
|
var panelId = Object.keys(linkedState.links).find(function (panelId) {
|
|
4563
4429
|
var _linkedState$links$pa;
|
|
4564
|
-
return (_linkedState$links$pa = linkedState.links[panelId])
|
|
4430
|
+
return (_linkedState$links$pa = linkedState.links[panelId]) == null ? void 0 : _linkedState$links$pa.includes(mapViewId);
|
|
4565
4431
|
});
|
|
4566
4432
|
return panelId;
|
|
4567
4433
|
});
|
|
@@ -4578,7 +4444,7 @@ var selectLinkedFeatures = createSelector([function (linkedState) {
|
|
|
4578
4444
|
}, getLinkedFeatureProviders], function (linkedState, featureProviders) {
|
|
4579
4445
|
var features = featureProviders.flatMap(function (providerId) {
|
|
4580
4446
|
var _linkedState$sharedDa;
|
|
4581
|
-
return ((_linkedState$sharedDa = linkedState.sharedData[providerId])
|
|
4447
|
+
return ((_linkedState$sharedDa = linkedState.sharedData[providerId]) == null ? void 0 : _linkedState$sharedDa.features) || [];
|
|
4582
4448
|
}).filter(function (f) {
|
|
4583
4449
|
return f !== undefined;
|
|
4584
4450
|
});
|
|
@@ -4589,7 +4455,7 @@ var selectLinkedFormFeatures = createSelector([function (linkedState) {
|
|
|
4589
4455
|
}, getLinkedFeatureProviders], function (linkedState, featureProviders) {
|
|
4590
4456
|
var features = featureProviders.flatMap(function (providerId) {
|
|
4591
4457
|
var _linkedState$sharedDa2;
|
|
4592
|
-
return ((_linkedState$sharedDa2 = linkedState.sharedData[providerId])
|
|
4458
|
+
return ((_linkedState$sharedDa2 = linkedState.sharedData[providerId]) == null ? void 0 : _linkedState$sharedDa2.formFeatures) || [];
|
|
4593
4459
|
}).filter(function (f) {
|
|
4594
4460
|
return f !== undefined;
|
|
4595
4461
|
});
|
|
@@ -4599,7 +4465,7 @@ var getSelectedFeature = createSelector([
|
|
|
4599
4465
|
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
4600
4466
|
function (state, mapId) {
|
|
4601
4467
|
var _state$linkedState;
|
|
4602
|
-
var sharedData = (_state$linkedState = state.linkedState)
|
|
4468
|
+
var sharedData = (_state$linkedState = state.linkedState) == null ? void 0 : _state$linkedState.sharedData[mapId];
|
|
4603
4469
|
var _ref = sharedData || {},
|
|
4604
4470
|
_ref$features = _ref.features,
|
|
4605
4471
|
features = _ref$features === void 0 ? [] : _ref$features,
|
|
@@ -4612,7 +4478,7 @@ function (state, mapId) {
|
|
|
4612
4478
|
var _features$;
|
|
4613
4479
|
var features = _ref2.features,
|
|
4614
4480
|
selectedFeatureId = _ref2.selectedFeatureId;
|
|
4615
|
-
var selectedFeature = (_features$ = features[0])
|
|
4481
|
+
var selectedFeature = (_features$ = features[0]) == null ? void 0 : _features$.geoJSON.features.find(function (feature) {
|
|
4616
4482
|
return feature.id === selectedFeatureId;
|
|
4617
4483
|
});
|
|
4618
4484
|
if (selectedFeature && selectedFeature.geometry.type === 'Point') {
|
|
@@ -4622,9 +4488,9 @@ function (state, mapId) {
|
|
|
4622
4488
|
lat: coordinates[1],
|
|
4623
4489
|
lon: coordinates[0],
|
|
4624
4490
|
id: selectedFeature.id,
|
|
4625
|
-
serviceId: (_selectedFeature$prop = selectedFeature.properties)
|
|
4626
|
-
collectionId: (_selectedFeature$prop2 = selectedFeature.properties)
|
|
4627
|
-
name: (_selectedFeature$prop3 = selectedFeature.properties)
|
|
4491
|
+
serviceId: (_selectedFeature$prop = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop.serviceId,
|
|
4492
|
+
collectionId: (_selectedFeature$prop2 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop2.collectionId,
|
|
4493
|
+
name: (_selectedFeature$prop3 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop3.name
|
|
4628
4494
|
};
|
|
4629
4495
|
}
|
|
4630
4496
|
if (selectedFeature) {
|
|
@@ -4634,9 +4500,9 @@ function (state, mapId) {
|
|
|
4634
4500
|
lat: center.geometry.coordinates[1],
|
|
4635
4501
|
lon: center.geometry.coordinates[0],
|
|
4636
4502
|
id: selectedFeature.id,
|
|
4637
|
-
serviceId: (_selectedFeature$prop4 = selectedFeature.properties)
|
|
4638
|
-
collectionId: (_selectedFeature$prop5 = selectedFeature.properties)
|
|
4639
|
-
name: (_selectedFeature$prop6 = selectedFeature.properties)
|
|
4503
|
+
serviceId: (_selectedFeature$prop4 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop4.serviceId,
|
|
4504
|
+
collectionId: (_selectedFeature$prop5 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop5.collectionId,
|
|
4505
|
+
name: (_selectedFeature$prop6 = selectedFeature.properties) == null ? void 0 : _selectedFeature$prop6.name
|
|
4640
4506
|
};
|
|
4641
4507
|
}
|
|
4642
4508
|
return null;
|
|
@@ -4656,6 +4522,23 @@ var selectors$3 = /*#__PURE__*/Object.freeze({
|
|
|
4656
4522
|
selectSharedData: selectSharedData
|
|
4657
4523
|
});
|
|
4658
4524
|
|
|
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
|
+
* */
|
|
4659
4542
|
var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
|
|
4660
4543
|
var sharedData = useSelector(function (state) {
|
|
4661
4544
|
return selectSharedData(state, panelId);
|
|
@@ -4665,8 +4548,8 @@ var useUpdateSharedData = function useUpdateSharedData(data, panelId) {
|
|
|
4665
4548
|
});
|
|
4666
4549
|
var dispatch = useDispatch();
|
|
4667
4550
|
useEffect(function () {
|
|
4668
|
-
var diff =
|
|
4669
|
-
if (panelId && (linkedMaps
|
|
4551
|
+
var diff = Object.assign({}, sharedData, data);
|
|
4552
|
+
if (panelId && (linkedMaps == null ? void 0 : linkedMaps.length) > 0 && !isEqual(diff, sharedData)) {
|
|
4670
4553
|
dispatch(syncGroupsActions.addSharedData({
|
|
4671
4554
|
panelId: panelId,
|
|
4672
4555
|
data: data
|
|
@@ -4785,7 +4668,7 @@ var slice$2 = createSlice({
|
|
|
4785
4668
|
// When one EDR is loading with a known id (panelId), do not set the any ANY_EDR_SERVICE as the panelId is known.
|
|
4786
4669
|
if (isEDRLoading && id === ANY_EDR_SERVICE && draft.ids.some(function (id) {
|
|
4787
4670
|
var _draft$entities$id;
|
|
4788
|
-
return (_draft$entities$id = draft.entities[id])
|
|
4671
|
+
return (_draft$entities$id = draft.entities[id]) == null ? void 0 : _draft$entities$id.isEDRLoading;
|
|
4789
4672
|
})) {
|
|
4790
4673
|
draft.entities[id].isEDRLoading = false;
|
|
4791
4674
|
} else {
|
|
@@ -4816,20 +4699,20 @@ var loadingIndicatorActions = slice$2.actions,
|
|
|
4816
4699
|
* */
|
|
4817
4700
|
var _loadingIndicatorAdap = loadingIndicatorAdapter.getSelectors(function (state) {
|
|
4818
4701
|
var _state$loadingIndicat;
|
|
4819
|
-
return (_state$loadingIndicat = state
|
|
4702
|
+
return (_state$loadingIndicat = state == null ? void 0 : state.loadingIndicator) != null ? _state$loadingIndicat : {
|
|
4820
4703
|
entities: {},
|
|
4821
4704
|
ids: []
|
|
4822
4705
|
};
|
|
4823
4706
|
}),
|
|
4824
4707
|
selectLoadingIndicatorById = _loadingIndicatorAdap.selectById;
|
|
4825
4708
|
var isGetMapLoading = createSelector(selectLoadingIndicatorById, function (loadingIndicator) {
|
|
4826
|
-
return (loadingIndicator
|
|
4709
|
+
return (loadingIndicator == null ? void 0 : loadingIndicator.isGetMapLoading) || false;
|
|
4827
4710
|
}, selectorMemoizationOptions);
|
|
4828
4711
|
var isGetCapabilitiesLoading = createSelector(selectLoadingIndicatorById, function (loadingIndicator) {
|
|
4829
|
-
return (loadingIndicator
|
|
4712
|
+
return (loadingIndicator == null ? void 0 : loadingIndicator.isGetCapabilitiesLoading) || false;
|
|
4830
4713
|
}, selectorMemoizationOptions);
|
|
4831
4714
|
var isAnyEdrTypeLoading = function isAnyEdrTypeLoading(loadingIndicator) {
|
|
4832
|
-
return (loadingIndicator
|
|
4715
|
+
return (loadingIndicator == null ? void 0 : loadingIndicator.isEDRLoading) || false;
|
|
4833
4716
|
};
|
|
4834
4717
|
var isEDRLoading = createSelector(selectLoadingIndicatorById, isAnyEdrTypeLoading, selectorMemoizationOptions);
|
|
4835
4718
|
var isAnyEDRLoading = createSelector([function (store) {
|
|
@@ -4848,7 +4731,24 @@ var selectors$2 = /*#__PURE__*/Object.freeze({
|
|
|
4848
4731
|
selectLoadingIndicatorById: selectLoadingIndicatorById
|
|
4849
4732
|
});
|
|
4850
4733
|
|
|
4851
|
-
|
|
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, {
|
|
4852
4752
|
initialSyncState: initialState$2,
|
|
4853
4753
|
setTime: setTime,
|
|
4854
4754
|
setBbox: setBbox
|
|
@@ -4924,7 +4824,7 @@ var getIsMapPresent = createSelector(getMapById, function (map) {
|
|
|
4924
4824
|
*/
|
|
4925
4825
|
var getLayerIds = createSelector(getMapById, function (map) {
|
|
4926
4826
|
var _map$mapLayers;
|
|
4927
|
-
return (_map$mapLayers = map
|
|
4827
|
+
return (_map$mapLayers = map == null ? void 0 : map.mapLayers) != null ? _map$mapLayers : [];
|
|
4928
4828
|
}, selectorMemoizationOptions);
|
|
4929
4829
|
/**
|
|
4930
4830
|
* Gets all layer states for a map
|
|
@@ -4936,7 +4836,7 @@ var getLayerIds = createSelector(getMapById, function (map) {
|
|
|
4936
4836
|
*/
|
|
4937
4837
|
var getMapLayers = createSelector(getLayerIds, getLayersById, function (layerIdsInMap, allLayers) {
|
|
4938
4838
|
var layersWithUndefined = layerIdsInMap.map(function (layerId) {
|
|
4939
|
-
return allLayers
|
|
4839
|
+
return allLayers == null ? void 0 : allLayers[layerId];
|
|
4940
4840
|
});
|
|
4941
4841
|
var layersWithoutUndefined = compact(layersWithUndefined);
|
|
4942
4842
|
return layersWithoutUndefined;
|
|
@@ -4953,7 +4853,7 @@ var getMapLayers = createSelector(getLayerIds, getLayersById, function (layerIds
|
|
|
4953
4853
|
*/
|
|
4954
4854
|
var getMapLayersWithoutDimensionCurrentValue = createSelector(getLayerIds, getLayersById, function (layerIdsInMap, allLayers) {
|
|
4955
4855
|
var layersWithUndefined = layerIdsInMap.map(function (layerId) {
|
|
4956
|
-
return allLayers
|
|
4856
|
+
return allLayers == null ? void 0 : allLayers[layerId];
|
|
4957
4857
|
});
|
|
4958
4858
|
var layersWithoutUndefined = compact(layersWithUndefined);
|
|
4959
4859
|
var layersWithoutTimeDim = layersWithoutUndefined.map(function (layer) {
|
|
@@ -5000,7 +4900,7 @@ var getMapOverLayersIds = createSelector(getMapById, function (store) {
|
|
|
5000
4900
|
return store ? store.overLayers : [];
|
|
5001
4901
|
}, selectorMemoizationOptions);
|
|
5002
4902
|
var getMapFeatureLayers = createSelector(getMapById, getFeatureLayers, function (store, featureLayers) {
|
|
5003
|
-
var featureLayersOnMap = (store
|
|
4903
|
+
var featureLayersOnMap = (store == null ? void 0 : store.featureLayers) || [];
|
|
5004
4904
|
return featureLayers.filter(function (layer) {
|
|
5005
4905
|
return featureLayersOnMap.indexOf(layer.id) !== -1;
|
|
5006
4906
|
});
|
|
@@ -5073,13 +4973,12 @@ var getSelectedTime = createSelector(function (store, mapId) {
|
|
|
5073
4973
|
var getDataLimitsFromLayers = createSelector(getMapLayers, function (layers) {
|
|
5074
4974
|
return layers.reduce(function (_ref, layer) {
|
|
5075
4975
|
var _layer$dimensions;
|
|
5076
|
-
var
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
var dimension = (_layer$dimensions = layer.dimensions) === null || _layer$dimensions === void 0 ? void 0 : _layer$dimensions.find(function (dimension) {
|
|
4976
|
+
var start = _ref[0],
|
|
4977
|
+
end = _ref[1];
|
|
4978
|
+
var dimension = (_layer$dimensions = layer.dimensions) == null ? void 0 : _layer$dimensions.find(function (dimension) {
|
|
5080
4979
|
return dimension.name === 'time';
|
|
5081
4980
|
});
|
|
5082
|
-
if (dimension
|
|
4981
|
+
if (dimension != null && dimension.minValue && dimension.maxValue) {
|
|
5083
4982
|
var lastValue = dateUtils.unix(new Date(dimension.maxValue));
|
|
5084
4983
|
var firstValue = dateUtils.unix(new Date(dimension.minValue));
|
|
5085
4984
|
var newLast = Math.max(lastValue, end);
|
|
@@ -5163,7 +5062,7 @@ var linkedMapAnimationInfo = createSelector(function (store, mapId) {
|
|
|
5163
5062
|
* @returns {string} returnType: string
|
|
5164
5063
|
*/
|
|
5165
5064
|
var getAnimationStartTime = createSelector(getMapById, function (store) {
|
|
5166
|
-
return store
|
|
5065
|
+
return store != null && store.animationStartTime ? store.animationStartTime : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
|
|
5167
5066
|
hours: 6
|
|
5168
5067
|
}), dateFormat);
|
|
5169
5068
|
}, selectorMemoizationOptions);
|
|
@@ -5176,7 +5075,7 @@ var getAnimationStartTime = createSelector(getMapById, function (store) {
|
|
|
5176
5075
|
* @returns {string} returnType: string
|
|
5177
5076
|
*/
|
|
5178
5077
|
var getAnimationEndTime = createSelector(getMapById, function (store) {
|
|
5179
|
-
return store
|
|
5078
|
+
return store != null && store.animationEndTime ? store.animationEndTime : dateUtils.dateToString(dateUtils.sub(dateUtils.utc(), {
|
|
5180
5079
|
minutes: 10
|
|
5181
5080
|
}), dateFormat);
|
|
5182
5081
|
}, selectorMemoizationOptions);
|
|
@@ -5210,7 +5109,7 @@ var shouldEndtimeOverride = createSelector(getMapById, function (store) {
|
|
|
5210
5109
|
* @param {string} mapId mapId: string - Id of the map
|
|
5211
5110
|
*/
|
|
5212
5111
|
var getActiveLayerId = createSelector(getMapById, function (store) {
|
|
5213
|
-
if (store
|
|
5112
|
+
if (store != null && store.autoUpdateLayerId && store.autoUpdateLayerId === store.autoTimeStepLayerId) {
|
|
5214
5113
|
return store.autoUpdateLayerId;
|
|
5215
5114
|
}
|
|
5216
5115
|
return undefined;
|
|
@@ -5223,7 +5122,7 @@ var getActiveLayerId = createSelector(getMapById, function (store) {
|
|
|
5223
5122
|
* @param {string} mapId mapId: string - Id of the map
|
|
5224
5123
|
*/
|
|
5225
5124
|
var getAutoUpdateLayerId = createSelector(getMapById, function (store) {
|
|
5226
|
-
return store
|
|
5125
|
+
return store == null ? void 0 : store.autoUpdateLayerId;
|
|
5227
5126
|
}, selectorMemoizationOptions);
|
|
5228
5127
|
/**
|
|
5229
5128
|
* Gets autoUpdateLayerId for map
|
|
@@ -5233,7 +5132,7 @@ var getAutoUpdateLayerId = createSelector(getMapById, function (store) {
|
|
|
5233
5132
|
* @param {string} mapId mapId: string - Id of the map
|
|
5234
5133
|
*/
|
|
5235
5134
|
var getAutoTimeStepLayerId = createSelector(getMapById, function (store) {
|
|
5236
|
-
return store
|
|
5135
|
+
return store == null ? void 0 : store.autoTimeStepLayerId;
|
|
5237
5136
|
}, selectorMemoizationOptions);
|
|
5238
5137
|
/**
|
|
5239
5138
|
* Gets span of a time slider of a map
|
|
@@ -5256,10 +5155,10 @@ var getMapTimeSliderSpan = createSelector(getMapById, function (store) {
|
|
|
5256
5155
|
*/
|
|
5257
5156
|
var getMapTimeStep = createSelector(getMapById, function (store) {
|
|
5258
5157
|
var _store$timeStep;
|
|
5259
|
-
return (_store$timeStep = store
|
|
5158
|
+
return (_store$timeStep = store == null ? void 0 : store.timeStep) != null ? _store$timeStep : defaultTimeStep;
|
|
5260
5159
|
}, selectorMemoizationOptions);
|
|
5261
5160
|
var getMapTimeStepWithoutDefault = createSelector(getMapById, function (store) {
|
|
5262
|
-
return store
|
|
5161
|
+
return store == null ? void 0 : store.timeStep;
|
|
5263
5162
|
}, selectorMemoizationOptions);
|
|
5264
5163
|
/**
|
|
5265
5164
|
* Returns the speed of animation
|
|
@@ -5294,20 +5193,6 @@ var getMapTimeSliderWidth = createSelector(getMapById, function (store) {
|
|
|
5294
5193
|
var getMapTimeSliderCenterTime = createSelector(getMapById, function (store) {
|
|
5295
5194
|
return store ? store.timeSliderCenterTime : dateUtils.unix(dateUtils.utc());
|
|
5296
5195
|
}, 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);
|
|
5311
5196
|
/**
|
|
5312
5197
|
* Returns the number of seconds per pixel on the time slider
|
|
5313
5198
|
*
|
|
@@ -5337,7 +5222,7 @@ var isTimestepAuto = createSelector(getMapById, function (store) {
|
|
|
5337
5222
|
* @returns {boolean} returnType: boolean
|
|
5338
5223
|
*/
|
|
5339
5224
|
var isAnimationLengthAuto = createSelector(getMapById, function (store) {
|
|
5340
|
-
return (store
|
|
5225
|
+
return (store == null ? void 0 : store.isAnimationLengthAuto) || false;
|
|
5341
5226
|
}, selectorMemoizationOptions);
|
|
5342
5227
|
/**
|
|
5343
5228
|
* Returns map is timespan auto
|
|
@@ -5406,7 +5291,7 @@ var getIsLayerActiveLayer = createSelector(getActiveLayerId, function (_store, _
|
|
|
5406
5291
|
* @returns {string} returnType: string - the mapId, or null if not found
|
|
5407
5292
|
*/
|
|
5408
5293
|
var getMapIdFromLayerId = createSelector(function (store) {
|
|
5409
|
-
return store
|
|
5294
|
+
return store == null ? void 0 : store.webmap;
|
|
5410
5295
|
}, function (_store, layerId) {
|
|
5411
5296
|
return layerId;
|
|
5412
5297
|
}, findMapIdFromLayerId, selectorMemoizationOptions);
|
|
@@ -5493,7 +5378,7 @@ var getAllUniqueDimensions = createSelector(getAllMapIds, function (store) {
|
|
|
5493
5378
|
* @returns {object} returnType: latitude and longitude of pin
|
|
5494
5379
|
*/
|
|
5495
5380
|
var getPinLocation = createSelector(getMapById, function (store) {
|
|
5496
|
-
return store
|
|
5381
|
+
return store == null ? void 0 : store.mapPinLocation;
|
|
5497
5382
|
}, selectorMemoizationOptions);
|
|
5498
5383
|
/**
|
|
5499
5384
|
* Returns the disable map pin boolean for the current map
|
|
@@ -5504,7 +5389,7 @@ var getPinLocation = createSelector(getMapById, function (store) {
|
|
|
5504
5389
|
* @returns {boolean} returnType: boolean
|
|
5505
5390
|
*/
|
|
5506
5391
|
var getDisableMapPin = createSelector([getMapById], function (map) {
|
|
5507
|
-
return map
|
|
5392
|
+
return map == null ? void 0 : map.disableMapPin;
|
|
5508
5393
|
}, selectorMemoizationOptions);
|
|
5509
5394
|
/**
|
|
5510
5395
|
* Returns the display map pin boolean for the current map
|
|
@@ -5538,15 +5423,15 @@ var getLegendId = createSelector(getMapById, function (store) {
|
|
|
5538
5423
|
*/
|
|
5539
5424
|
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) {
|
|
5540
5425
|
var _uiStore$dialogs$lege;
|
|
5541
|
-
var allLayers = [].concat(
|
|
5542
|
-
|
|
5543
|
-
var layer =
|
|
5426
|
+
var allLayers = [].concat(baseLayers, overLayers, mapLayers).map(function (_ref2) {
|
|
5427
|
+
_ref2.mapId;
|
|
5428
|
+
var layer = _objectWithoutPropertiesLoose(_ref2, _excluded$2);
|
|
5544
5429
|
if (layer.dimensions !== undefined) {
|
|
5545
5430
|
// Filter out (reference) time dimension as these should not be part of the preset for now
|
|
5546
5431
|
var dimensions = layer.dimensions.filter(function (dimension) {
|
|
5547
5432
|
return dimension.name !== 'time' && dimension.name !== 'reference_time';
|
|
5548
5433
|
});
|
|
5549
|
-
return
|
|
5434
|
+
return Object.assign({}, layer, {
|
|
5550
5435
|
dimensions: dimensions
|
|
5551
5436
|
});
|
|
5552
5437
|
}
|
|
@@ -5557,16 +5442,16 @@ var getMapPreset = createSelector(getMapLayers, getMapBaseLayers, getMapOverLaye
|
|
|
5557
5442
|
speed: mapAnimationDelay ? getSpeedFactor(mapAnimationDelay) : 1,
|
|
5558
5443
|
duration: getAnimationDuration(animationEndTime, animationStartTime)
|
|
5559
5444
|
};
|
|
5560
|
-
var shouldShowLegend = legendId ? uiStore
|
|
5561
|
-
return
|
|
5445
|
+
var shouldShowLegend = legendId ? uiStore == null || (_uiStore$dialogs$lege = uiStore.dialogs[legendId]) == null ? void 0 : _uiStore$dialogs$lege.isOpen : false;
|
|
5446
|
+
return Object.assign({
|
|
5562
5447
|
layers: allLayers
|
|
5563
5448
|
}, activeLayerId !== undefined && {
|
|
5564
5449
|
activeLayerId: activeLayerId
|
|
5565
|
-
}
|
|
5450
|
+
}, autoTimeStepLayerId !== undefined && {
|
|
5566
5451
|
autoTimeStepLayerId: autoTimeStepLayerId
|
|
5567
|
-
}
|
|
5452
|
+
}, autoUpdateLayerId !== undefined && {
|
|
5568
5453
|
autoUpdateLayerId: autoUpdateLayerId
|
|
5569
|
-
}
|
|
5454
|
+
}, {
|
|
5570
5455
|
proj: {
|
|
5571
5456
|
bbox: bbox,
|
|
5572
5457
|
srs: srs
|
|
@@ -5638,15 +5523,15 @@ var getAnimationList = createSelector(getLayersById, getMapById, getAnimationSta
|
|
|
5638
5523
|
// - start, end and interval for a continuous animation loop
|
|
5639
5524
|
// - timeList, for a custom timeList
|
|
5640
5525
|
// Here the animation is defined by a timeList
|
|
5641
|
-
if (mapStore
|
|
5526
|
+
if (mapStore != null && (_mapStore$timeList = mapStore.timeList) != null && _mapStore$timeList.length) {
|
|
5642
5527
|
return mapStore.timeList;
|
|
5643
5528
|
}
|
|
5644
|
-
var autoTimeStepLayerId = mapStore
|
|
5645
|
-
var timeDimension = autoTimeStepLayerId && (layers
|
|
5529
|
+
var autoTimeStepLayerId = mapStore == null ? void 0 : mapStore.autoTimeStepLayerId;
|
|
5530
|
+
var timeDimension = autoTimeStepLayerId && (layers == null || (_layers$autoTimeStepL = layers[autoTimeStepLayerId]) == null || (_layers$autoTimeStepL = _layers$autoTimeStepL.dimensions) == null ? void 0 : _layers$autoTimeStepL.find(function (dimension) {
|
|
5646
5531
|
return dimension.name === 'time';
|
|
5647
5532
|
}));
|
|
5648
|
-
var
|
|
5649
|
-
values =
|
|
5533
|
+
var _ref3 = timeDimension || {},
|
|
5534
|
+
values = _ref3.values;
|
|
5650
5535
|
var unixAnimationStart = roundWithTimeStep(Number(animationStart && dateUtils.unix(dateUtils.utc(animationStart))), animationInterval, 'ceil');
|
|
5651
5536
|
var unixAnimationEnd = roundWithTimeStep(Number(animationEnd && dateUtils.unix(dateUtils.utc(animationEnd))), animationInterval, 'floor');
|
|
5652
5537
|
var animationList = generateAnimationList(unixAnimationStart, unixAnimationEnd, values);
|
|
@@ -5671,12 +5556,12 @@ var getAnimationList = createSelector(getLayersById, getMapById, getAnimationSta
|
|
|
5671
5556
|
*/
|
|
5672
5557
|
var getAnimationRange = createSelector(getLayersById, getAutoTimeStepLayerId, getAnimationStartTime, getAnimationEndTime, isAnimationLengthAuto, function (layers, autoTimeStepLayerId, startTime, endTime, isAnimationLengthAuto) {
|
|
5673
5558
|
var _layers$autoTimeStepL2;
|
|
5674
|
-
var layerTimeDimension = autoTimeStepLayerId && (layers
|
|
5559
|
+
var layerTimeDimension = autoTimeStepLayerId && (layers == null || (_layers$autoTimeStepL2 = layers[autoTimeStepLayerId]) == null || (_layers$autoTimeStepL2 = _layers$autoTimeStepL2.dimensions) == null ? void 0 : _layers$autoTimeStepL2.find(function (dimension) {
|
|
5675
5560
|
return dimension.name === 'time';
|
|
5676
5561
|
}));
|
|
5677
|
-
var
|
|
5678
|
-
minValue =
|
|
5679
|
-
maxValue =
|
|
5562
|
+
var _ref4 = layerTimeDimension || {},
|
|
5563
|
+
minValue = _ref4.minValue,
|
|
5564
|
+
maxValue = _ref4.maxValue;
|
|
5680
5565
|
var hasTimeDimension = minValue && maxValue;
|
|
5681
5566
|
var animationStartTime = isAnimationLengthAuto && autoTimeStepLayerId && hasTimeDimension ? minValue : startTime;
|
|
5682
5567
|
var animationEndTime = isAnimationLengthAuto && autoTimeStepLayerId && hasTimeDimension ? maxValue : endTime;
|
|
@@ -5748,7 +5633,6 @@ var selectors$1 = /*#__PURE__*/Object.freeze({
|
|
|
5748
5633
|
getMapTimeSliderCenterTime: getMapTimeSliderCenterTime,
|
|
5749
5634
|
getMapTimeSliderSecondsPerPx: getMapTimeSliderSecondsPerPx,
|
|
5750
5635
|
getMapTimeSliderSpan: getMapTimeSliderSpan,
|
|
5751
|
-
getMapTimeSliderStartCenterEndAndStep: getMapTimeSliderStartCenterEndAndStep,
|
|
5752
5636
|
getMapTimeSliderWidth: getMapTimeSliderWidth,
|
|
5753
5637
|
getMapTimeStep: getMapTimeStep,
|
|
5754
5638
|
getMapTimeStepWithoutDefault: getMapTimeStepWithoutDefault,
|
|
@@ -5815,11 +5699,32 @@ var enums = /*#__PURE__*/Object.freeze({
|
|
|
5815
5699
|
* */
|
|
5816
5700
|
var IS_LEGEND_OPEN_BY_DEFAULT = false;
|
|
5817
5701
|
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5702
|
+
/* *
|
|
5703
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5704
|
+
* you may not use this file except in compliance with the License.
|
|
5705
|
+
* You may obtain a copy of the License at
|
|
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
|
+
}
|
|
5823
5728
|
return layers.reduce(function (layers, layer) {
|
|
5824
5729
|
var mapLayers = layers.mapLayers,
|
|
5825
5730
|
baseLayers = layers.baseLayers,
|
|
@@ -5860,9 +5765,9 @@ var parseBoolean = function parseBoolean(value) {
|
|
|
5860
5765
|
return typeof value === 'boolean' ? value : value === 'true';
|
|
5861
5766
|
};
|
|
5862
5767
|
var parseLayer = function parseLayer(layer) {
|
|
5863
|
-
return
|
|
5768
|
+
return Object.assign({}, layer, !layer.id && {
|
|
5864
5769
|
id: webmapUtils.generateLayerId()
|
|
5865
|
-
}
|
|
5770
|
+
}, layer.enabled && {
|
|
5866
5771
|
enabled: parseBoolean(layer.enabled)
|
|
5867
5772
|
});
|
|
5868
5773
|
};
|
|
@@ -5875,7 +5780,24 @@ var filterLayers$1 = /*#__PURE__*/Object.freeze({
|
|
|
5875
5780
|
parseLayer: parseLayer
|
|
5876
5781
|
});
|
|
5877
5782
|
|
|
5878
|
-
|
|
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, {
|
|
5879
5801
|
replaceLayerIdsToEnsureUniqueLayerIdsInStore: replaceLayerIdsToEnsureUniqueLayerIdsInStore
|
|
5880
5802
|
});
|
|
5881
5803
|
|
|
@@ -6137,7 +6059,7 @@ var getLayerActionsTargets = function getLayerActionsTargets(state, payload, act
|
|
|
6137
6059
|
var foundTargets = findTargets(state, payload, actionType, mapId);
|
|
6138
6060
|
return foundTargets.map(function (target) {
|
|
6139
6061
|
var payload = target.payload;
|
|
6140
|
-
return
|
|
6062
|
+
return Object.assign({}, payload, {
|
|
6141
6063
|
layerId: target.layerId,
|
|
6142
6064
|
origin: SyncGroupActionOrigin.layerActions,
|
|
6143
6065
|
mapId: payload.mapId
|
|
@@ -6158,9 +6080,9 @@ var getAddLayerActionsTargets = function getAddLayerActionsTargets(state, payloa
|
|
|
6158
6080
|
targetId = _ref.targetId;
|
|
6159
6081
|
var layer = payload.layer;
|
|
6160
6082
|
layer.id;
|
|
6161
|
-
var layerWithoutId =
|
|
6083
|
+
var layerWithoutId = _objectWithoutPropertiesLoose(layer, _excluded$1);
|
|
6162
6084
|
var layerId = webmapUtils.generateLayerId();
|
|
6163
|
-
return
|
|
6085
|
+
return Object.assign({}, payload, {
|
|
6164
6086
|
layer: layerWithoutId,
|
|
6165
6087
|
layerId: layerId,
|
|
6166
6088
|
mapId: targetId,
|
|
@@ -6178,7 +6100,7 @@ var getAddLayerActionsTargets = function getAddLayerActionsTargets(state, payloa
|
|
|
6178
6100
|
var getLayerDeleteActionsTargets = function getLayerDeleteActionsTargets(state, payload, actionType) {
|
|
6179
6101
|
var foundTargets = findTargets(state, payload, actionType, payload.mapId);
|
|
6180
6102
|
return foundTargets.map(function (target) {
|
|
6181
|
-
return
|
|
6103
|
+
return Object.assign({}, target.payload, {
|
|
6182
6104
|
mapId: target.targetId,
|
|
6183
6105
|
layerId: target.layerId,
|
|
6184
6106
|
origin: SyncGroupActionOrigin["delete"]
|
|
@@ -6195,7 +6117,7 @@ var getLayerDeleteActionsTargets = function getLayerDeleteActionsTargets(state,
|
|
|
6195
6117
|
var getLayerMoveActionsTargets = function getLayerMoveActionsTargets(state, payload, actionType) {
|
|
6196
6118
|
var foundTargets = findTargets(state, payload, actionType, payload.mapId);
|
|
6197
6119
|
return foundTargets.map(function (target) {
|
|
6198
|
-
return
|
|
6120
|
+
return Object.assign({}, target.payload, {
|
|
6199
6121
|
mapId: target.targetId,
|
|
6200
6122
|
origin: SyncGroupActionOrigin.move
|
|
6201
6123
|
});
|
|
@@ -6209,7 +6131,7 @@ var getLayerMoveActionsTargets = function getLayerMoveActionsTargets(state, payl
|
|
|
6209
6131
|
* @returns
|
|
6210
6132
|
*/
|
|
6211
6133
|
var getSetAutoLayerIdActionsTargets = function getSetAutoLayerIdActionsTargets(state, payload, actionType) {
|
|
6212
|
-
var payloadWithLayerId =
|
|
6134
|
+
var payloadWithLayerId = Object.assign({}, payload, {
|
|
6213
6135
|
layerId: payload.autoUpdateLayerId || payload.autoTimeStepLayerId || payload.layerId
|
|
6214
6136
|
});
|
|
6215
6137
|
var foundTargets = findTargets(state, payloadWithLayerId, actionType, payload.mapId);
|
|
@@ -6233,7 +6155,7 @@ var getMapBaseLayerActionsTargets = function getMapBaseLayerActionsTargets(state
|
|
|
6233
6155
|
return foundTargets.map(function (target) {
|
|
6234
6156
|
return {
|
|
6235
6157
|
layers: payload.layers.map(function (layer) {
|
|
6236
|
-
return
|
|
6158
|
+
return Object.assign({}, layer, {
|
|
6237
6159
|
id: webmapUtils.generateLayerId()
|
|
6238
6160
|
});
|
|
6239
6161
|
}),
|
|
@@ -6258,7 +6180,7 @@ genericListener.startListening({
|
|
|
6258
6180
|
value = payload.value, origin = payload.origin;
|
|
6259
6181
|
/* Test if the value is according to the expected time format */
|
|
6260
6182
|
if (!setTimeValidatorRexexp.test(value)) {
|
|
6261
|
-
console.error("setTime value "
|
|
6183
|
+
console.error("setTime value " + value + " does not conform to format [YYYY-MM-DDThh:mm:ssZ]. It was triggered by " + origin);
|
|
6262
6184
|
} else {
|
|
6263
6185
|
targets = getTargets(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
|
|
6264
6186
|
groups = getTargetGroups(listenerApi.getState(), payload, SYNCGROUPS_TYPE_SETTIME);
|
|
@@ -6526,9 +6448,9 @@ genericListener.startListening({
|
|
|
6526
6448
|
});
|
|
6527
6449
|
|
|
6528
6450
|
/* A map with all the timerIds and their current step */
|
|
6529
|
-
var stepMap
|
|
6451
|
+
var stepMap = new Map();
|
|
6530
6452
|
/* A map with a list of timers and their dwell */
|
|
6531
|
-
var timerDwellMap
|
|
6453
|
+
var timerDwellMap = new Map();
|
|
6532
6454
|
/**
|
|
6533
6455
|
* Returns the next step for given timerId.
|
|
6534
6456
|
* @param timerId The timer id
|
|
@@ -6536,9 +6458,11 @@ var timerDwellMap$1 = new Map();
|
|
|
6536
6458
|
* @param numStepsToGoForward Amount of steps to go forwards, defaults to 1. Can be positive and negative
|
|
6537
6459
|
* @returns
|
|
6538
6460
|
*/
|
|
6539
|
-
var getNextStep
|
|
6540
|
-
|
|
6541
|
-
|
|
6461
|
+
var getNextStep = function getNextStep(timerId, numberOfStepsInAnimation, numStepsToGoForward) {
|
|
6462
|
+
if (numStepsToGoForward === void 0) {
|
|
6463
|
+
numStepsToGoForward = 1;
|
|
6464
|
+
}
|
|
6465
|
+
var currentStep = getCurrentStep(timerId);
|
|
6542
6466
|
var nextStep = currentStep + numStepsToGoForward;
|
|
6543
6467
|
var nextStepClipped = (nextStep % numberOfStepsInAnimation + numberOfStepsInAnimation) % numberOfStepsInAnimation;
|
|
6544
6468
|
return nextStepClipped;
|
|
@@ -6550,19 +6474,21 @@ var getNextStep$1 = function getNextStep(timerId, numberOfStepsInAnimation) {
|
|
|
6550
6474
|
* @param dwell The number of steps to wait at the end of the animation sequence before to continue
|
|
6551
6475
|
* @returns
|
|
6552
6476
|
*/
|
|
6553
|
-
var handleTimerDwell
|
|
6554
|
-
|
|
6477
|
+
var handleTimerDwell = function handleTimerDwell(timerId, numberOfStepsInAnimation, dwell) {
|
|
6478
|
+
if (dwell === void 0) {
|
|
6479
|
+
dwell = 8;
|
|
6480
|
+
}
|
|
6555
6481
|
if (dwell > 0) {
|
|
6556
|
-
var currentStep = getCurrentStep
|
|
6482
|
+
var currentStep = getCurrentStep(timerId);
|
|
6557
6483
|
// Reset the dwell if we are not at the last animation step
|
|
6558
6484
|
if (currentStep < numberOfStepsInAnimation - 1) {
|
|
6559
|
-
timerDwellMap
|
|
6485
|
+
timerDwellMap.set(timerId, dwell);
|
|
6560
6486
|
return false;
|
|
6561
6487
|
}
|
|
6562
6488
|
// We are at the last animation step, check the dwell
|
|
6563
|
-
var timerDwell = timerDwellMap
|
|
6489
|
+
var timerDwell = timerDwellMap.has(timerId) && timerDwellMap.get(timerId) || 0;
|
|
6564
6490
|
if (currentStep === numberOfStepsInAnimation - 1 && timerDwell > 0) {
|
|
6565
|
-
timerDwellMap
|
|
6491
|
+
timerDwellMap.set(timerId, timerDwell - 1);
|
|
6566
6492
|
return true;
|
|
6567
6493
|
}
|
|
6568
6494
|
}
|
|
@@ -6573,16 +6499,16 @@ var handleTimerDwell$1 = function handleTimerDwell(timerId, numberOfStepsInAnima
|
|
|
6573
6499
|
* @param timerId
|
|
6574
6500
|
* @param timerStep
|
|
6575
6501
|
*/
|
|
6576
|
-
var setStep
|
|
6577
|
-
stepMap
|
|
6502
|
+
var setStep = function setStep(timerId, timerStep) {
|
|
6503
|
+
stepMap.set(timerId, timerStep);
|
|
6578
6504
|
};
|
|
6579
6505
|
/**
|
|
6580
6506
|
* Gets the current step for the timer
|
|
6581
6507
|
* @param timerId
|
|
6582
6508
|
* @returns
|
|
6583
6509
|
*/
|
|
6584
|
-
var getCurrentStep
|
|
6585
|
-
return stepMap
|
|
6510
|
+
var getCurrentStep = function getCurrentStep(timerId) {
|
|
6511
|
+
return stepMap.get(timerId) || 0;
|
|
6586
6512
|
};
|
|
6587
6513
|
var MAX_NUMBER_STEPS_FORWARD_TO_PREFETCH = 2;
|
|
6588
6514
|
var MAX_NUMBER_OF_PARALLEL_LOADING_IMAGES = 8;
|
|
@@ -6597,57 +6523,41 @@ var prefetchAnimationTargetsForMetronome = function prefetchAnimationTargetsForM
|
|
|
6597
6523
|
var timerShouldStepForward = true;
|
|
6598
6524
|
// The following code prefetches/buffers for all maps in the group
|
|
6599
6525
|
for (var numPrefetch = 0; numPrefetch < MAX_NUMBER_STEPS_FORWARD_TO_PREFETCH; numPrefetch += 1) {
|
|
6600
|
-
var nextStep = getNextStep
|
|
6526
|
+
var nextStep = getNextStep(timerId, animationListValues.length, numPrefetch + 1);
|
|
6601
6527
|
var nextTimeValueStepToCheck = animationListValues[nextStep];
|
|
6602
|
-
var _iterator =
|
|
6603
|
-
_step;
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6611
|
-
|
|
6612
|
-
|
|
6613
|
-
|
|
6614
|
-
|
|
6615
|
-
|
|
6616
|
-
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
var
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
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
|
-
}
|
|
6528
|
+
for (var _iterator = _createForOfIteratorHelperLoose(targets), _step; !(_step = _iterator()).done;) {
|
|
6529
|
+
var target = _step.value;
|
|
6530
|
+
var targetMapId = target.targetId;
|
|
6531
|
+
var wmMap = getWMJSMapById(targetMapId);
|
|
6532
|
+
if (!wmMap) {
|
|
6533
|
+
return true; // Map was not registered so there is nothing to prefetch, do not block going forward
|
|
6534
|
+
}
|
|
6535
|
+
var layersImageUrls = getWMSRequests(wmMap, [{
|
|
6536
|
+
name: 'time',
|
|
6537
|
+
currentValue: nextTimeValueStepToCheck
|
|
6538
|
+
}]);
|
|
6539
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(layersImageUrls), _step2; !(_step2 = _iterator2()).done;) {
|
|
6540
|
+
var layersImageUrl = _step2.value;
|
|
6541
|
+
var image = wmMap.getMapImageStore.getImage(layersImageUrl.url);
|
|
6542
|
+
if (!image.isLoaded()) {
|
|
6543
|
+
if (wmMap.getMapImageStore.getNumImagesLoading() < MAX_NUMBER_OF_PARALLEL_LOADING_IMAGES) {
|
|
6544
|
+
image.load();
|
|
6545
|
+
}
|
|
6546
|
+
if (numPrefetch === 0) {
|
|
6547
|
+
var altImage = wmMap.getAlternativeImage(layersImageUrl.url, wmMap.getBBOX(), true);
|
|
6548
|
+
// No alternative image available yet, so skipping animation.
|
|
6549
|
+
if (altImage.length === 0) {
|
|
6550
|
+
// This is useful to indicate that the map is loading and has nothing yet to display.
|
|
6551
|
+
// console.warn('No data available: Not stepping forward');
|
|
6552
|
+
timerShouldStepForward = false;
|
|
6639
6553
|
}
|
|
6640
6554
|
}
|
|
6641
|
-
}
|
|
6642
|
-
|
|
6643
|
-
|
|
6644
|
-
|
|
6555
|
+
} else if (image.isStale()) {
|
|
6556
|
+
if (wmMap.getMapImageStore.getNumImagesLoading() < MAX_NUMBER_OF_PARALLEL_LOADING_IMAGES) {
|
|
6557
|
+
image.forceReload(true);
|
|
6558
|
+
}
|
|
6645
6559
|
}
|
|
6646
6560
|
}
|
|
6647
|
-
} catch (err) {
|
|
6648
|
-
_iterator.e(err);
|
|
6649
|
-
} finally {
|
|
6650
|
-
_iterator.f();
|
|
6651
6561
|
}
|
|
6652
6562
|
}
|
|
6653
6563
|
return timerShouldStepForward;
|
|
@@ -6704,8 +6614,8 @@ mapListener.startListening({
|
|
|
6704
6614
|
var shouldAutoUpdate = isAutoUpdating(listenerApi.getState(), mapId);
|
|
6705
6615
|
var prevTimeDimension = getLayerTimeDimension(listenerApi.getState(), layerId);
|
|
6706
6616
|
var isAutoUpdateLayer = layerId === autoUpdateLayerId;
|
|
6707
|
-
var incomingMaxTime = newTimeDimension
|
|
6708
|
-
var isIncomingMaxTimeLaterThanCurrentLayerTime = incomingMaxTime && (prevTimeDimension
|
|
6617
|
+
var incomingMaxTime = newTimeDimension == null ? void 0 : newTimeDimension.maxValue;
|
|
6618
|
+
var isIncomingMaxTimeLaterThanCurrentLayerTime = incomingMaxTime && (prevTimeDimension == null ? void 0 : prevTimeDimension.currentValue) && prevTimeDimension.currentValue !== incomingMaxTime;
|
|
6709
6619
|
if (isAutoUpdateLayer &&
|
|
6710
6620
|
// only update the active layer
|
|
6711
6621
|
shouldAutoUpdate && isIncomingMaxTimeLaterThanCurrentLayerTime) {
|
|
@@ -6794,7 +6704,7 @@ mapListener.startListening({
|
|
|
6794
6704
|
autoUpdateLayerId = getAutoUpdateLayerId(listenerApi.getState(), mapId);
|
|
6795
6705
|
timeDimension = getLayerTimeDimension(listenerApi.getState(), autoUpdateLayerId);
|
|
6796
6706
|
syncedMapIds = getSyncedMapIdsForTimeslider(listenerApi.getState()); // go to end of active layer
|
|
6797
|
-
if (timeDimension
|
|
6707
|
+
if (timeDimension != null && timeDimension.maxValue && autoUpdateLayerId) {
|
|
6798
6708
|
listenerApi.dispatch(layerActions.layerChangeDimension({
|
|
6799
6709
|
layerId: autoUpdateLayerId,
|
|
6800
6710
|
origin: LayerActionOrigin.toggleAutoUpdateListener,
|
|
@@ -6867,11 +6777,11 @@ mapListener.startListening({
|
|
|
6867
6777
|
// In case of the timeList
|
|
6868
6778
|
if (timeList && timeList.length > 0) {
|
|
6869
6779
|
// Determine animation step based on initialTime and timeList
|
|
6870
|
-
var initalTimerStep = timeList
|
|
6780
|
+
var initalTimerStep = timeList == null ? void 0 : timeList.findIndex(function (timeNameValue) {
|
|
6871
6781
|
return timeNameValue.value === initialTime;
|
|
6872
6782
|
});
|
|
6873
6783
|
if (initalTimerStep !== -1) {
|
|
6874
|
-
setStep
|
|
6784
|
+
setStep(useMapId, initalTimerStep);
|
|
6875
6785
|
}
|
|
6876
6786
|
}
|
|
6877
6787
|
}
|
|
@@ -6903,14 +6813,14 @@ var handleBaseLayers = function handleBaseLayers(mapId, baseLayers, listenerApi)
|
|
|
6903
6813
|
// This happens when switching to a preset that has non-default baselayers
|
|
6904
6814
|
if (!activeAvailableBaseLayer && currentAvailableBaseLayers.length) {
|
|
6905
6815
|
listenerApi.dispatch(layerActions.addAvailableBaseLayers({
|
|
6906
|
-
layers: [
|
|
6816
|
+
layers: [Object.assign({}, baseLayer, {
|
|
6907
6817
|
mapId: mapId,
|
|
6908
6818
|
id: activeBaseLayerId
|
|
6909
6819
|
})]
|
|
6910
6820
|
}));
|
|
6911
6821
|
}
|
|
6912
6822
|
var baseLayersWithActiveId = baseLayers.map(function (layer, index) {
|
|
6913
|
-
return index === 0 ?
|
|
6823
|
+
return index === 0 ? Object.assign({}, layer, {
|
|
6914
6824
|
id: activeBaseLayerId || layer.id
|
|
6915
6825
|
}) : layer;
|
|
6916
6826
|
});
|
|
@@ -6958,10 +6868,10 @@ mapListener.startListening({
|
|
|
6958
6868
|
// make sure layer with new id exist and if not, default to first layer
|
|
6959
6869
|
newAutoUpdateLayerId = ((_newLayerIds$layers$f = newLayerIds.layers.find(function (layer) {
|
|
6960
6870
|
return layer.id === newLayerIds.autoUpdateLayerId;
|
|
6961
|
-
}))
|
|
6871
|
+
})) == null ? void 0 : _newLayerIds$layers$f.id) || ((_newLayerIds$layers$ = newLayerIds.layers[0]) == null ? void 0 : _newLayerIds$layers$.id);
|
|
6962
6872
|
newAutoTimeStepLayerId = ((_newLayerIds$layers$f2 = newLayerIds.layers.find(function (layer) {
|
|
6963
6873
|
return layer.id === newLayerIds.autoTimeStepLayerId;
|
|
6964
|
-
}))
|
|
6874
|
+
})) == null ? void 0 : _newLayerIds$layers$f2.id) || ((_newLayerIds$layers$2 = newLayerIds.layers[0]) == null ? void 0 : _newLayerIds$layers$2.id);
|
|
6965
6875
|
listenerApi.dispatch(mapActions.setAutoLayerId({
|
|
6966
6876
|
mapId: mapId,
|
|
6967
6877
|
autoUpdateLayerId: newAutoUpdateLayerId,
|
|
@@ -6969,16 +6879,16 @@ mapListener.startListening({
|
|
|
6969
6879
|
}));
|
|
6970
6880
|
}
|
|
6971
6881
|
customLayers = getdefaultMapSettingsLayers(listenerApi.getState());
|
|
6972
|
-
customBaseLayer = customLayers
|
|
6882
|
+
customBaseLayer = customLayers == null ? void 0 : customLayers.find(function (layer) {
|
|
6973
6883
|
return layer.layerType === LayerType.baseLayer;
|
|
6974
6884
|
});
|
|
6975
|
-
customOverLayer = customLayers
|
|
6885
|
+
customOverLayer = customLayers == null ? void 0 : customLayers.find(function (layer) {
|
|
6976
6886
|
return layer.layerType === LayerType.overLayer;
|
|
6977
6887
|
}); // sets (default) baseLayers
|
|
6978
6888
|
baseLayersWithDefaultLayer = baseLayers.length ? baseLayers : [customBaseLayer || defaultLayers.baseLayerGrey]; // sets (default) overLayers
|
|
6979
6889
|
overLayersWithDefaultLayer = overLayers.length ? overLayers : [customOverLayer || defaultLayers.overLayer];
|
|
6980
|
-
allBaseLayers = [].concat(
|
|
6981
|
-
return
|
|
6890
|
+
allBaseLayers = [].concat(baseLayersWithDefaultLayer, overLayersWithDefaultLayer).map(function (layer) {
|
|
6891
|
+
return Object.assign({}, layer, {
|
|
6982
6892
|
id: webmapUtils.generateLayerId()
|
|
6983
6893
|
});
|
|
6984
6894
|
});
|
|
@@ -6992,7 +6902,7 @@ mapListener.startListening({
|
|
|
6992
6902
|
_context2.next = 19;
|
|
6993
6903
|
break;
|
|
6994
6904
|
}
|
|
6995
|
-
throw new Error("Projection "
|
|
6905
|
+
throw new Error("Projection " + proj.srs + " is not supported");
|
|
6996
6906
|
case 19:
|
|
6997
6907
|
// set bbox
|
|
6998
6908
|
listenerApi.dispatch(mapActions.setBbox({
|
|
@@ -7225,9 +7135,8 @@ mapListener.startListening({
|
|
|
7225
7135
|
var timeStep = getMapTimeStep(listenerApi.getState(), mapId);
|
|
7226
7136
|
var currentTime = getSelectedTime(listenerApi.getState(), mapId);
|
|
7227
7137
|
var _mapSelectors$getData = getDataLimitsFromLayers(listenerApi.getState(), mapId),
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
dataEndTime = _mapSelectors$getData2[1];
|
|
7138
|
+
dataStartTime = _mapSelectors$getData[0],
|
|
7139
|
+
dataEndTime = _mapSelectors$getData[1];
|
|
7231
7140
|
if (dateUtils.isValid(currentTime)) {
|
|
7232
7141
|
var makeForwardStep = function makeForwardStep() {
|
|
7233
7142
|
var nextTime = currentTime + timeStep;
|
|
@@ -7258,186 +7167,6 @@ mapListener.startListening({
|
|
|
7258
7167
|
}
|
|
7259
7168
|
});
|
|
7260
7169
|
|
|
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
|
-
|
|
7441
7170
|
var _excluded = ["url"];
|
|
7442
7171
|
var serviceListener = createListenerMiddleware();
|
|
7443
7172
|
var fetchService = /*#__PURE__*/function () {
|
|
@@ -7451,7 +7180,7 @@ var fetchService = /*#__PURE__*/function () {
|
|
|
7451
7180
|
return queryWMSLayers(service.serviceUrl);
|
|
7452
7181
|
case 3:
|
|
7453
7182
|
layers = _context.sent;
|
|
7454
|
-
listenerApi.dispatch(serviceActions.serviceSetLayers(
|
|
7183
|
+
listenerApi.dispatch(serviceActions.serviceSetLayers(Object.assign({}, service, {
|
|
7455
7184
|
layers: layers
|
|
7456
7185
|
})));
|
|
7457
7186
|
_context.next = 10;
|
|
@@ -7487,8 +7216,8 @@ var fetchInitialServices = /*#__PURE__*/function () {
|
|
|
7487
7216
|
_context2.next = 5;
|
|
7488
7217
|
return Promise.all(payload.services.map(function (_ref3) {
|
|
7489
7218
|
var url = _ref3.url,
|
|
7490
|
-
service =
|
|
7491
|
-
return fetchService(
|
|
7219
|
+
service = _objectWithoutPropertiesLoose(_ref3, _excluded);
|
|
7220
|
+
return fetchService(Object.assign({}, service, {
|
|
7492
7221
|
serviceUrl: url
|
|
7493
7222
|
}), listenerApi);
|
|
7494
7223
|
}));
|
|
@@ -7619,6 +7348,23 @@ routerListener.startListening({
|
|
|
7619
7348
|
}()
|
|
7620
7349
|
});
|
|
7621
7350
|
|
|
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
|
+
* */
|
|
7622
7368
|
// reducer utils
|
|
7623
7369
|
var drawAdapter = createEntityAdapter({
|
|
7624
7370
|
selectId: function selectId(draw) {
|
|
@@ -7629,9 +7375,9 @@ var getDrawToolByLayerId = function getDrawToolByLayerId(draft, layerId) {
|
|
|
7629
7375
|
var drawTool = draft.ids.map(function (id) {
|
|
7630
7376
|
return draft.entities[id];
|
|
7631
7377
|
}).find(function (tool) {
|
|
7632
|
-
return (tool
|
|
7378
|
+
return (tool == null ? void 0 : tool.geoJSONLayerId) === layerId;
|
|
7633
7379
|
});
|
|
7634
|
-
return (drawTool
|
|
7380
|
+
return (drawTool == null ? void 0 : drawTool.drawToolId) || undefined;
|
|
7635
7381
|
};
|
|
7636
7382
|
var initialState = drawAdapter.getInitialState();
|
|
7637
7383
|
var slice = createSlice({
|
|
@@ -7678,11 +7424,11 @@ var slice = createSlice({
|
|
|
7678
7424
|
var tool = drawTool.drawModes.find(function (drawMode) {
|
|
7679
7425
|
return drawMode.drawModeId === drawModeId;
|
|
7680
7426
|
});
|
|
7681
|
-
if ((tool
|
|
7427
|
+
if ((tool == null ? void 0 : tool.isSelectable) === false) {
|
|
7682
7428
|
drawTool.activeDrawModeId = '';
|
|
7683
7429
|
return;
|
|
7684
7430
|
}
|
|
7685
|
-
if ((drawTool
|
|
7431
|
+
if ((drawTool == null ? void 0 : drawTool.activeDrawModeId) !== drawModeId || !shouldUpdateShape) {
|
|
7686
7432
|
drawTool.activeDrawModeId = drawModeId;
|
|
7687
7433
|
} else {
|
|
7688
7434
|
drawTool.activeDrawModeId = '';
|
|
@@ -7711,7 +7457,7 @@ var slice = createSlice({
|
|
|
7711
7457
|
}
|
|
7712
7458
|
var newModes = drawTool.drawModes.map(function (mode) {
|
|
7713
7459
|
if (mode.drawModeId === drawModeId) {
|
|
7714
|
-
return
|
|
7460
|
+
return Object.assign({}, mode, {
|
|
7715
7461
|
shape: shape
|
|
7716
7462
|
}, title && {
|
|
7717
7463
|
title: title
|
|
@@ -7750,11 +7496,11 @@ var slice = createSlice({
|
|
|
7750
7496
|
var entity = draft.entities[drawToolId];
|
|
7751
7497
|
if (drawToolId && entity !== undefined) {
|
|
7752
7498
|
var _entity$drawModes;
|
|
7753
|
-
var newDrawModes = entity
|
|
7499
|
+
var newDrawModes = entity == null || (_entity$drawModes = entity.drawModes) == null ? void 0 : _entity$drawModes.map(function (mode) {
|
|
7754
7500
|
if (mode.shape.type === 'Feature') {
|
|
7755
|
-
return
|
|
7756
|
-
shape:
|
|
7757
|
-
properties:
|
|
7501
|
+
return Object.assign({}, mode, {
|
|
7502
|
+
shape: Object.assign({}, mode.shape, {
|
|
7503
|
+
properties: Object.assign({}, mode.shape.properties, properties)
|
|
7758
7504
|
})
|
|
7759
7505
|
});
|
|
7760
7506
|
}
|
|
@@ -7806,7 +7552,7 @@ var getDrawingtoolStore = function getDrawingtoolStore(store) {
|
|
|
7806
7552
|
};
|
|
7807
7553
|
var _drawAdapter$getSelec = drawAdapter.getSelectors(function (state) {
|
|
7808
7554
|
var _state$drawingtools;
|
|
7809
|
-
return (_state$drawingtools = state
|
|
7555
|
+
return (_state$drawingtools = state == null ? void 0 : state.drawingtools) != null ? _state$drawingtools : {
|
|
7810
7556
|
entities: {},
|
|
7811
7557
|
ids: []
|
|
7812
7558
|
};
|
|
@@ -7814,35 +7560,35 @@ var _drawAdapter$getSelec = drawAdapter.getSelectors(function (state) {
|
|
|
7814
7560
|
selectDrawToolById = _drawAdapter$getSelec.selectById,
|
|
7815
7561
|
selectAllDrawingTools = _drawAdapter$getSelec.selectAll;
|
|
7816
7562
|
var getActiveDrawToolId = createSelector(selectAllDrawingTools, function (drawtools) {
|
|
7817
|
-
var activeDrawTool = drawtools
|
|
7563
|
+
var activeDrawTool = drawtools == null ? void 0 : drawtools.find(function (drawtool) {
|
|
7818
7564
|
return drawtool.activeDrawModeId !== '';
|
|
7819
7565
|
});
|
|
7820
|
-
return (activeDrawTool
|
|
7566
|
+
return (activeDrawTool == null ? void 0 : activeDrawTool.drawToolId) || '';
|
|
7821
7567
|
});
|
|
7822
7568
|
var getDrawModeById = createSelector(selectDrawToolById, function (_store, _drawToolId, drawModeId) {
|
|
7823
7569
|
return drawModeId;
|
|
7824
7570
|
}, function (draw, drawModeId) {
|
|
7825
|
-
return draw
|
|
7571
|
+
return draw == null ? void 0 : draw.drawModes.find(function (tool) {
|
|
7826
7572
|
return tool.drawModeId === drawModeId;
|
|
7827
7573
|
});
|
|
7828
7574
|
});
|
|
7829
7575
|
var getActiveDrawModeId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7830
|
-
return (drawingTool
|
|
7576
|
+
return (drawingTool == null ? void 0 : drawingTool.activeDrawModeId) || '';
|
|
7831
7577
|
});
|
|
7832
7578
|
var getDrawToolGeoJSONLayerId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7833
|
-
return (drawingTool
|
|
7579
|
+
return (drawingTool == null ? void 0 : drawingTool.geoJSONLayerId) || '';
|
|
7834
7580
|
});
|
|
7835
7581
|
var getGeoJSONIntersectionLayerId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7836
|
-
return drawingTool
|
|
7582
|
+
return drawingTool == null ? void 0 : drawingTool.geoJSONIntersectionLayerId;
|
|
7837
7583
|
});
|
|
7838
7584
|
var getGeoJSONIntersectionBoundsLayerId = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7839
|
-
return drawingTool
|
|
7585
|
+
return drawingTool == null ? void 0 : drawingTool.geoJSONIntersectionBoundsLayerId;
|
|
7840
7586
|
});
|
|
7841
7587
|
var getShouldAllowMultipleShapes = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7842
|
-
return (drawingTool
|
|
7588
|
+
return (drawingTool == null ? void 0 : drawingTool.shouldAllowMultipleShapes) || false;
|
|
7843
7589
|
});
|
|
7844
7590
|
var getActiveDrawMode = createSelector(selectDrawToolById, function (drawingTool) {
|
|
7845
|
-
return drawingTool
|
|
7591
|
+
return drawingTool == null ? void 0 : drawingTool.drawModes.find(function (mode) {
|
|
7846
7592
|
return mode.drawModeId === drawingTool.activeDrawModeId;
|
|
7847
7593
|
});
|
|
7848
7594
|
});
|
|
@@ -7963,10 +7709,10 @@ drawingToolListener.startListening({
|
|
|
7963
7709
|
drawMode: ''
|
|
7964
7710
|
}));
|
|
7965
7711
|
geoJSONLayer = getLayerById(listenerApi.getState(), drawingTool.geoJSONLayerId);
|
|
7966
|
-
geoJSON = geoJSONLayer
|
|
7712
|
+
geoJSON = geoJSONLayer == null ? void 0 : geoJSONLayer.geojson;
|
|
7967
7713
|
lastFeatureIndex = geoJSON !== undefined ? getLastEmptyFeatureIndex(geoJSON) : undefined;
|
|
7968
7714
|
if (lastFeatureIndex !== undefined) {
|
|
7969
|
-
newGeoJSON =
|
|
7715
|
+
newGeoJSON = Object.assign({}, geoJSON, {
|
|
7970
7716
|
features: geoJSON.features.filter(function (_feature, index) {
|
|
7971
7717
|
return index !== lastFeatureIndex;
|
|
7972
7718
|
})
|
|
@@ -8007,10 +7753,10 @@ drawingToolListener.startListening({
|
|
|
8007
7753
|
// check tool is selected of existing drawn shape
|
|
8008
7754
|
currentGeoJSONLayer = getLayerById(listenerApi.getState(), drawingTool.geoJSONLayerId);
|
|
8009
7755
|
_ref3 = currentGeoJSONLayer || {}, currentGeoJSON = _ref3.geojson, _ref3$selectedFeature = _ref3.selectedFeatureIndex, selectedFeatureIndex = _ref3$selectedFeature === void 0 ? 0 : _ref3$selectedFeature;
|
|
8010
|
-
currentSelectionType = currentGeoJSON
|
|
7756
|
+
currentSelectionType = currentGeoJSON == null || (_currentGeoJSON$featu = currentGeoJSON.features[selectedFeatureIndex]) == null || (_currentGeoJSON$featu = _currentGeoJSON$featu.properties) == null ? void 0 : _currentGeoJSON$featu.selectionType;
|
|
8011
7757
|
newSelectionType = newDrawMode.selectionType;
|
|
8012
7758
|
isNewToolSelected = currentSelectionType !== newSelectionType;
|
|
8013
|
-
shouldUpdateNewShape = !(currentGeoJSON
|
|
7759
|
+
shouldUpdateNewShape = !(currentGeoJSON != null && (_currentGeoJSON$featu2 = currentGeoJSON.features) != null && _currentGeoJSON$featu2.length) || isNewToolSelected || !newDrawMode.isSelectable && shouldAllowMultipleShapes; // don't change anything if same tool is selected again
|
|
8014
7760
|
if (shouldUpdateNewShape && shouldUpdateShape) {
|
|
8015
7761
|
shapeWithSelectionType = addSelectionTypeToGeoJSON(newDrawMode.shape, newDrawMode.selectionType);
|
|
8016
7762
|
geoJSONFeatureCollection = getFeatureCollection(shapeWithSelectionType, shouldAllowMultipleShapes, currentGeoJSON);
|
|
@@ -8022,12 +7768,12 @@ drawingToolListener.startListening({
|
|
|
8022
7768
|
layerId: drawingTool.geoJSONLayerId,
|
|
8023
7769
|
selectedFeatureIndex: _newGeoJSON.features.length - 1
|
|
8024
7770
|
}));
|
|
8025
|
-
listenerApi.dispatch(layerActions.updateFeature(
|
|
7771
|
+
listenerApi.dispatch(layerActions.updateFeature(Object.assign({
|
|
8026
7772
|
layerId: drawingTool.geoJSONLayerId,
|
|
8027
7773
|
geojson: _newGeoJSON
|
|
8028
7774
|
}, geoJSONIntersectionLayerId && {
|
|
8029
7775
|
geoJSONIntersectionLayerId: geoJSONIntersectionLayerId
|
|
8030
|
-
}
|
|
7776
|
+
}, geoJSONIntersectionBoundsLayerId && {
|
|
8031
7777
|
geoJSONIntersectionBoundsLayerId: geoJSONIntersectionBoundsLayerId
|
|
8032
7778
|
})));
|
|
8033
7779
|
}
|
|
@@ -8161,179 +7907,6 @@ layersListener.startListening({
|
|
|
8161
7907
|
}()
|
|
8162
7908
|
});
|
|
8163
7909
|
|
|
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
|
-
|
|
8337
7910
|
/**
|
|
8338
7911
|
* This handler is triggered by the metronome. An array of timerIds is given as argument.
|
|
8339
7912
|
* It will update the animation loop of multiple maps and sliders
|
|
@@ -8342,55 +7915,43 @@ var olMetronomeHandler = function olMetronomeHandler(timerIds, listenerApi) {
|
|
|
8342
7915
|
* @param listenerApi ListenerEffectAPI<CoreAppStore, Dispatch, unknown> listenerApi as received from listener
|
|
8343
7916
|
*/
|
|
8344
7917
|
var metronomeHandler = function metronomeHandler(timerIds, listenerApi) {
|
|
8345
|
-
if (isOpenLayersEnabled()) {
|
|
8346
|
-
olMetronomeHandler(timerIds, listenerApi);
|
|
8347
|
-
return;
|
|
8348
|
-
}
|
|
8349
7918
|
var targetsWithUpdateValue = [];
|
|
8350
|
-
var
|
|
8351
|
-
_step;
|
|
8352
|
-
|
|
8353
|
-
var
|
|
8354
|
-
|
|
8355
|
-
|
|
8356
|
-
|
|
8357
|
-
|
|
7919
|
+
var _loop = function _loop() {
|
|
7920
|
+
var timerId = _step.value;
|
|
7921
|
+
var animationListValuesNameAndValue = getAnimationList(listenerApi.getState(), timerId);
|
|
7922
|
+
var animationListValues = animationListValuesNameAndValue.map(function (nameAndValue) {
|
|
7923
|
+
return nameAndValue.value;
|
|
7924
|
+
});
|
|
7925
|
+
var targets = getTargets(listenerApi.getState(), {
|
|
7926
|
+
sourceId: timerId,
|
|
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: ''
|
|
8358
7934
|
});
|
|
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();
|
|
8387
7935
|
}
|
|
8388
|
-
|
|
8389
|
-
|
|
8390
|
-
|
|
8391
|
-
|
|
8392
|
-
|
|
7936
|
+
var timerIsInDwell = handleTimerDwell(timerId, animationListValues.length);
|
|
7937
|
+
var timerShouldStepForward = prefetchAnimationTargetsForMetronome(timerId, animationListValues, targets) && !timerIsInDwell;
|
|
7938
|
+
// Determine the next step
|
|
7939
|
+
var timerStep = timerShouldStepForward ? getNextStep(timerId, animationListValues.length) : getCurrentStep(timerId);
|
|
7940
|
+
setStep(timerId, timerStep);
|
|
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();
|
|
8393
7953
|
}
|
|
7954
|
+
// Update all targets of all sync groups in one action.
|
|
8394
7955
|
if (targetsWithUpdateValue.length > 0) {
|
|
8395
7956
|
listenerApi.dispatch(setTimeSync(null, targetsWithUpdateValue, ['metronomelistener']));
|
|
8396
7957
|
}
|
|
@@ -8420,6 +7981,41 @@ metronomeListener.startListening({
|
|
|
8420
7981
|
}()
|
|
8421
7982
|
});
|
|
8422
7983
|
|
|
7984
|
+
/* *
|
|
7985
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7986
|
+
* you may not use this file except in compliance with the License.
|
|
7987
|
+
* You may obtain a copy of the License at
|
|
7988
|
+
*
|
|
7989
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
7990
|
+
*
|
|
7991
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7992
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
7993
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
7994
|
+
* See the License for the specific language governing permissions and
|
|
7995
|
+
* limitations under the License.
|
|
7996
|
+
*
|
|
7997
|
+
* Copyright 2025 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
7998
|
+
* Copyright 2025 - Finnish Meteorological Institute (FMI)
|
|
7999
|
+
* Copyright 2025 - The Norwegian Meteorological Institute (MET Norway)
|
|
8000
|
+
* */
|
|
8001
|
+
var unifyReducerMaps = function unifyReducerMaps(reducerMaps) {
|
|
8002
|
+
var unifiedReducerMaps = {};
|
|
8003
|
+
for (var _iterator = _createForOfIteratorHelperLoose(reducerMaps), _step; !(_step = _iterator()).done;) {
|
|
8004
|
+
var reducersMap = _step.value;
|
|
8005
|
+
for (var _i = 0, _Object$entries = Object.entries(reducersMap); _i < _Object$entries.length; _i++) {
|
|
8006
|
+
var _Object$entries$_i = _Object$entries[_i],
|
|
8007
|
+
key = _Object$entries$_i[0],
|
|
8008
|
+
reducer = _Object$entries$_i[1];
|
|
8009
|
+
if (key in unifiedReducerMaps && unifiedReducerMaps[key] !== reducer) {
|
|
8010
|
+
throw new Error("Reducer key " + key + " is already defined with a different reducer");
|
|
8011
|
+
} else {
|
|
8012
|
+
unifiedReducerMaps[key] = reducer;
|
|
8013
|
+
}
|
|
8014
|
+
}
|
|
8015
|
+
}
|
|
8016
|
+
return unifiedReducerMaps;
|
|
8017
|
+
};
|
|
8018
|
+
|
|
8423
8019
|
/* *
|
|
8424
8020
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8425
8021
|
* you may not use this file except in compliance with the License.
|
|
@@ -8438,15 +8034,18 @@ metronomeListener.startListening({
|
|
|
8438
8034
|
* Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
|
|
8439
8035
|
* */
|
|
8440
8036
|
var getSingularDrawtoolDrawLayerId = function getSingularDrawtoolDrawLayerId(mapId) {
|
|
8441
|
-
return "drawlayer-"
|
|
8037
|
+
return "drawlayer-" + mapId;
|
|
8442
8038
|
};
|
|
8443
8039
|
|
|
8444
|
-
var createLayersState = function createLayersState(layerId) {
|
|
8445
|
-
var
|
|
8040
|
+
var createLayersState = function createLayersState(layerId, props) {
|
|
8041
|
+
var _byId;
|
|
8042
|
+
if (props === void 0) {
|
|
8043
|
+
props = {};
|
|
8044
|
+
}
|
|
8446
8045
|
return {
|
|
8447
|
-
byId:
|
|
8046
|
+
byId: (_byId = {}, _byId[layerId] = createLayer(Object.assign({
|
|
8448
8047
|
id: layerId
|
|
8449
|
-
}, props))),
|
|
8048
|
+
}, props)), _byId),
|
|
8450
8049
|
allIds: [layerId],
|
|
8451
8050
|
availableBaseLayers: {
|
|
8452
8051
|
allIds: [],
|
|
@@ -8463,26 +8062,18 @@ var createMultipleLayersState = function createMultipleLayersState(layers, mapId
|
|
|
8463
8062
|
byId: {}
|
|
8464
8063
|
}
|
|
8465
8064
|
};
|
|
8466
|
-
var _iterator =
|
|
8467
|
-
_step;
|
|
8468
|
-
|
|
8469
|
-
|
|
8470
|
-
|
|
8471
|
-
|
|
8472
|
-
|
|
8473
|
-
|
|
8474
|
-
|
|
8475
|
-
mockState.byId[layer.id] =
|
|
8476
|
-
mockState.allIds.push(layer.id);
|
|
8477
|
-
if (layer.layerType === LayerType.baseLayer) {
|
|
8478
|
-
mockState.availableBaseLayers.byId[layer.id] = _objectSpread2({}, layerState);
|
|
8479
|
-
mockState.availableBaseLayers.allIds.push(layer.id);
|
|
8480
|
-
}
|
|
8065
|
+
for (var _iterator = _createForOfIteratorHelperLoose(layers), _step; !(_step = _iterator()).done;) {
|
|
8066
|
+
var layer = _step.value;
|
|
8067
|
+
var layerState = createLayer(Object.assign({}, layer, {
|
|
8068
|
+
id: layer.id,
|
|
8069
|
+
mapId: mapId
|
|
8070
|
+
}));
|
|
8071
|
+
mockState.byId[layer.id] = Object.assign({}, layerState);
|
|
8072
|
+
mockState.allIds.push(layer.id);
|
|
8073
|
+
if (layer.layerType === LayerType.baseLayer) {
|
|
8074
|
+
mockState.availableBaseLayers.byId[layer.id] = Object.assign({}, layerState);
|
|
8075
|
+
mockState.availableBaseLayers.allIds.push(layer.id);
|
|
8481
8076
|
}
|
|
8482
|
-
} catch (err) {
|
|
8483
|
-
_iterator.e(err);
|
|
8484
|
-
} finally {
|
|
8485
|
-
_iterator.f();
|
|
8486
8077
|
}
|
|
8487
8078
|
return mockState;
|
|
8488
8079
|
};
|
|
@@ -8499,7 +8090,7 @@ var createWebmapState = function createWebmapState() {
|
|
|
8499
8090
|
var mapState = createMap({
|
|
8500
8091
|
id: mapId
|
|
8501
8092
|
});
|
|
8502
|
-
mockState.byId[mapId] =
|
|
8093
|
+
mockState.byId[mapId] = Object.assign({}, mapState);
|
|
8503
8094
|
mockState.allIds.push(mapId);
|
|
8504
8095
|
}
|
|
8505
8096
|
return mockState;
|
|
@@ -8517,7 +8108,7 @@ var createMapDimensionsState = function createMapDimensionsState(dimensions) {
|
|
|
8517
8108
|
var mapState = createMap({
|
|
8518
8109
|
id: mapId
|
|
8519
8110
|
});
|
|
8520
|
-
mockState.byId[mapId] =
|
|
8111
|
+
mockState.byId[mapId] = Object.assign({}, mapState);
|
|
8521
8112
|
mockState.byId[mapId].dimensions = dimensions;
|
|
8522
8113
|
mockState.allIds.push(mapId);
|
|
8523
8114
|
}
|
|
@@ -8562,7 +8153,7 @@ var mockStateMapWithLayer = function mockStateMapWithLayer(layer, mapId) {
|
|
|
8562
8153
|
service: layer.service,
|
|
8563
8154
|
dimensions: layer.dimensions
|
|
8564
8155
|
}),
|
|
8565
|
-
syncGroups:
|
|
8156
|
+
syncGroups: Object.assign({}, initialState$2, {
|
|
8566
8157
|
viewState: {
|
|
8567
8158
|
timeslider: {
|
|
8568
8159
|
groups: [{
|
|
@@ -8585,7 +8176,7 @@ var mockStateMapWithLayer = function mockStateMapWithLayer(layer, mapId) {
|
|
|
8585
8176
|
};
|
|
8586
8177
|
var mockLinkedState = function mockLinkedState() {
|
|
8587
8178
|
return {
|
|
8588
|
-
syncGroups:
|
|
8179
|
+
syncGroups: Object.assign({}, initialState$2, {
|
|
8589
8180
|
viewState: {
|
|
8590
8181
|
timeslider: {
|
|
8591
8182
|
groups: [{
|
|
@@ -8698,7 +8289,7 @@ var mockStateMapWithMultipleLayers = function mockStateMapWithMultipleLayers(lay
|
|
|
8698
8289
|
allIds: ['serviceid_1']
|
|
8699
8290
|
},
|
|
8700
8291
|
layers: createMultipleLayersState(layers, mapId),
|
|
8701
|
-
syncGroups:
|
|
8292
|
+
syncGroups: Object.assign({}, initialState$2, {
|
|
8702
8293
|
viewState: {
|
|
8703
8294
|
timeslider: {
|
|
8704
8295
|
groups: [{
|
|
@@ -8771,7 +8362,7 @@ var mockStateMapWithDimensions = function mockStateMapWithDimensions(layer, mapI
|
|
|
8771
8362
|
mapId: mapId,
|
|
8772
8363
|
service: layer.service,
|
|
8773
8364
|
dimensions: layer.dimensions,
|
|
8774
|
-
enabled: (layer
|
|
8365
|
+
enabled: (layer == null ? void 0 : layer.enabled) !== undefined ? layer.enabled : true
|
|
8775
8366
|
})
|
|
8776
8367
|
};
|
|
8777
8368
|
};
|
|
@@ -8861,7 +8452,7 @@ var storeReducerMap = {
|
|
|
8861
8452
|
drawingtools: drawingToolReducer,
|
|
8862
8453
|
router: routerReducer
|
|
8863
8454
|
};
|
|
8864
|
-
var storeMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, metronomeListener.middleware, syncGroupsListener.middleware, genericListener.middleware, drawingToolListener.middleware, routerListener.middleware
|
|
8455
|
+
var storeMiddlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, metronomeListener.middleware, syncGroupsListener.middleware, genericListener.middleware, drawingToolListener.middleware, routerListener.middleware];
|
|
8865
8456
|
var storeRootReducer = combineReducers(storeReducerMap);
|
|
8866
8457
|
var createMockStore = function createMockStore(mockState) {
|
|
8867
8458
|
return configureStore({
|
|
@@ -8872,5 +8463,61 @@ var createMockStore = function createMockStore(mockState) {
|
|
|
8872
8463
|
}
|
|
8873
8464
|
});
|
|
8874
8465
|
};
|
|
8466
|
+
var getDefaultEnhancers = function getDefaultEnhancers() {
|
|
8467
|
+
return new EnhancerArray();
|
|
8468
|
+
};
|
|
8469
|
+
/**
|
|
8470
|
+
* This creates an OpenGeoWeb redux store for redux connected components
|
|
8471
|
+
*
|
|
8472
|
+
* @param preloadedState Initial state for your application
|
|
8473
|
+
* @param extraReducers Additional reducers, you can pass your own reducers. See apps/geoweb/src/app/store.ts for how it is used in GeoWeb.
|
|
8474
|
+
* @param extraMiddleWares Additional middlewares
|
|
8475
|
+
* @param extraEnhancer Custom enhancers
|
|
8476
|
+
* @param enableDevTools Set to true to enable redux devtools.
|
|
8477
|
+
* @returns A redux store you can use with the core components
|
|
8478
|
+
*/
|
|
8479
|
+
var configureOpenGeoWebStore = function configureOpenGeoWebStore(preloadedState, extraReducers, extraMiddleWares, extraEnhancers, enableDevTools) {
|
|
8480
|
+
if (preloadedState === void 0) {
|
|
8481
|
+
preloadedState = {};
|
|
8482
|
+
}
|
|
8483
|
+
if (extraReducers === void 0) {
|
|
8484
|
+
extraReducers = {};
|
|
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
|
+
}
|
|
8495
|
+
var allReducers = unifyReducerMaps([storeReducerMap, extraReducers]);
|
|
8496
|
+
var openGeoWebReducers = combineReducers(allReducers);
|
|
8497
|
+
// Combine middlewares
|
|
8498
|
+
var middlewares = [mapListener.middleware, serviceListener.middleware, layersListener.middleware, genericListener.middleware].concat(extraMiddleWares);
|
|
8499
|
+
// Ensure we do not add middlewares twice
|
|
8500
|
+
var uniqueMiddlewares = Array.from(new Set(middlewares.map(function (obj) {
|
|
8501
|
+
return obj;
|
|
8502
|
+
})));
|
|
8503
|
+
return configureStore({
|
|
8504
|
+
reducer: openGeoWebReducers,
|
|
8505
|
+
preloadedState: preloadedState,
|
|
8506
|
+
enhancers: function enhancers(defaultEnhancers) {
|
|
8507
|
+
return [compose.apply(void 0, [].concat(defaultEnhancers, extraEnhancers))];
|
|
8508
|
+
},
|
|
8509
|
+
devTools: enableDevTools,
|
|
8510
|
+
middleware: function middleware(getDefaultMiddleware) {
|
|
8511
|
+
return [].concat(getDefaultMiddleware({
|
|
8512
|
+
serializableCheck: {
|
|
8513
|
+
warnAfter: 128
|
|
8514
|
+
},
|
|
8515
|
+
immutableCheck: {
|
|
8516
|
+
warnAfter: 128
|
|
8517
|
+
}
|
|
8518
|
+
})).concat(uniqueMiddlewares);
|
|
8519
|
+
}
|
|
8520
|
+
});
|
|
8521
|
+
};
|
|
8875
8522
|
|
|
8876
|
-
export { IS_LEGEND_OPEN_BY_DEFAULT,
|
|
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 };
|