@opengeoweb/core 4.1.0 → 4.2.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 +2024 -1482
- package/index.umd.js +2053 -1506
- package/lib/components/LayerManager/LayerManager.d.ts +13 -0
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResults.d.ts +4 -4
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResults.stories.d.ts +18 -2
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResultsConnect.d.ts +0 -1
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResultsListItem.d.ts +5 -5
- package/lib/components/LayerManager/LayerSelect/KeywordFilterResults/KeywordFilterResultsListItemConnect.d.ts +3 -2
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoButtonConnect.d.ts +11 -0
- package/lib/components/LayerManager/LayerSelect/{LayerSelectUtils.spec.d.ts → LayerInfo/LayerInfoButtonConnect.spec.d.ts} +0 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoDialog.d.ts +14 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoDialog.spec.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoDialog.stories.d.ts +25 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoDialogConnect.d.ts +3 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoList.d.ts +11 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoText.d.ts +7 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoUtils.d.ts +4 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/LayerInfoUtils.spec.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerInfo/index.d.ts +2 -0
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerList.d.ts +5 -3
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListConnect.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListRow.d.ts +1 -1
- package/lib/components/LayerManager/LayerSelect/LayerList/LayerListUtils.d.ts +1 -1
- package/lib/components/LayerManager/LayerSelect/LayerSelectConnect.d.ts +0 -2
- package/lib/components/LayerManager/LayerSelect/SearchField/SearchFieldButtonContainer.d.ts +1 -0
- package/lib/components/LayerManager/LayerSelect/ServiceList/ServiceChipConnect.d.ts +2 -1
- package/lib/components/LayerManager/LayerSelect/ServiceList/ServiceList.d.ts +1 -1
- package/lib/components/LayerManager/LayerSelect/ServiceList/ServiceListConnect.d.ts +3 -1
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsButton/ServiceOptionsButton.d.ts +4 -1
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialog.d.ts +13 -3
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialog.stories.d.ts +18 -2
- package/lib/components/LayerManager/LayerSelect/ServiceOptionsDialog/ServiceOptionsDialogConnect.d.ts +6 -1
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopup.d.ts +11 -5
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopup.stories.d.ts +49 -9
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopupConnect.d.ts +2 -1
- package/lib/components/LayerManager/LayerSelect/ServicePopup/ServicePopupConnect.stories.d.ts +9 -0
- package/lib/components/LayerManager/LayerSelect/ServicePopup/utils.d.ts +8 -0
- package/lib/components/LayerManager/LayerSelect/ServicePopup/utils.spec.d.ts +1 -0
- package/lib/components/LayerManager/useFetchServices.d.ts +4 -0
- package/lib/components/LayerManager/useFetchServices.spec.d.ts +1 -0
- package/lib/components/MultiMapDimensionSelect/DimensionSelectDialogConnect.d.ts +1 -1
- package/lib/components/ReactMapView/types.d.ts +2 -1
- package/lib/components/Snackbar/SnackbarWrapperConnect.spec.d.ts +7 -0
- package/lib/components/TimeSlider/TimeSliderButtons/SpeedButton/SpeedButton.d.ts +1 -1
- package/lib/components/TimeSlider/TimeSliderButtons/SpeedButton/SpeedButtonConnect.d.ts +1 -5
- package/lib/components/TimeSlider/TimeSliderButtons/TimeSliderMenu/TimeSliderMenu.d.ts +18 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeSliderMenu/TimeSliderMenu.spec.d.ts +1 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeSliderMenu/TimeSliderMenu.stories.d.ts +28 -0
- package/lib/components/TimeSlider/TimeSliderButtons/TimeStepButton/TimeStepButton.d.ts +1 -1
- package/lib/components/TimeSlider/TimeSliderButtons/TimeStepButton/TimeStepButton.stories.d.ts +24 -3
- package/lib/components/WMSLoader/services.d.ts +1 -0
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/useSetupDialog/index.d.ts +1 -0
- package/lib/hooks/useSetupDialog/useSetupDialog.d.ts +9 -0
- package/lib/hooks/useSetupDialog/useSetupDialog.spec.d.ts +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/store/layerSelect/reducer.d.ts +8 -5
- package/lib/store/layerSelect/sagas.d.ts +3 -2
- package/lib/store/layerSelect/selectors.d.ts +53 -6
- package/lib/store/layerSelect/types.d.ts +32 -13
- package/lib/store/mapStore/service/types.d.ts +4 -1
- package/lib/store/ui/types.d.ts +4 -1
- package/lib/utils/defaultTestSettings.d.ts +1 -0
- package/lib/utils/getCapabilities.d.ts +4 -1
- package/package.json +6 -6
- package/lib/components/LayerManager/LayerSelect/LayerSelectUtils.d.ts +0 -4
package/index.esm.js
CHANGED
|
@@ -2,16 +2,21 @@ import { createAction, createSlice, createSelector, createEntityAdapter } from '
|
|
|
2
2
|
import produce$1, { current, produce } from 'immer';
|
|
3
3
|
import moment from 'moment';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import React__default, { Component, useRef, useState, useEffect } from 'react';
|
|
6
|
-
import _, { isEqual, debounce, throttle, range } from 'lodash';
|
|
5
|
+
import React__default, { Component, useRef, useState, useEffect, useCallback } from 'react';
|
|
6
|
+
import _, { isEqual, debounce, groupBy, throttle, range } from 'lodash';
|
|
7
7
|
import { takeLatest, put, select, call, all, takeEvery, delay } from 'redux-saga/effects';
|
|
8
8
|
import { connect, useDispatch, useSelector, Provider } from 'react-redux';
|
|
9
9
|
import { Tooltip, Paper, Box, Typography, Grid, InputLabel, IconButton, CircularProgress, List, ListSubheader, ListItem, ListItemText, Dialog, DialogTitle, DialogContent, DialogContentText, TextField, DialogActions, Button, MenuItem, FormControl, LinearProgress, InputAdornment, ListItemSecondaryAction, ListItemIcon, Checkbox, Switch, styled, Slider, Menu, Popover, useTheme, SliderThumb, Snackbar } from '@mui/material';
|
|
10
|
-
import { ToolButton, ToolContainerDraggable, TooltipSelect, AlertIcon, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, ManagerButton, EnableButton, AlertBanner, ManagerDeleteButton, CustomToggleButton, useIsMounted } from '@opengeoweb/shared';
|
|
11
|
-
import { Pause, Play, Cached, Add, Copy, Flag, DragHandle as DragHandle$1, Filter, Close,
|
|
10
|
+
import { ToolButton, ToolContainerDraggable, TooltipSelect, AlertIcon, tooltipContainerStyles, sliderHeaderStyle, CustomSlider, ToggleMenu, ManagerButton, EnableButton, AlertBanner, ManagerDeleteButton, calculateDialogSizeAndPosition, CustomToggleButton, useIsMounted } from '@opengeoweb/shared';
|
|
11
|
+
import { Pause, Play, Cached, Add, Copy, Flag, DragHandle as DragHandle$1, Filter, Search, Clear, Close, Info, DimensionsTime, DimensionsRefTime, DimensionsElevation, DimensionsOther, Edit, Visibility, Delete, Home, Minus, Layers, Equalizer, Link, LinkOff, AutoUpdateActive, AutoUpdateInActive, TextIcon, Speed, FastForward, Options, SliderThumb as SliderThumb$1, List as List$1, ThemeWrapper, lightTheme } from '@opengeoweb/theme';
|
|
12
12
|
import { legendImageStore, WMImageEventType, getLegendGraphicURLForLayer, WMGetServiceFromStore, LayerType as LayerType$1, getMapImageStore, WMBBOX, debug, DebugType, WMJSMap, WMLayer } from '@opengeoweb/webmap';
|
|
13
13
|
import { Sortable, ReactSortable } from 'react-sortablejs';
|
|
14
|
+
import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
|
|
15
|
+
import { useFormContext } from 'react-hook-form';
|
|
14
16
|
import { FixedSizeList } from 'react-window';
|
|
17
|
+
import Box$1 from '@mui/material/Box';
|
|
18
|
+
import Typography$1 from '@mui/material/Typography';
|
|
19
|
+
import Grid$1 from '@mui/material/Grid';
|
|
15
20
|
import { debounce as debounce$1 } from 'throttle-debounce';
|
|
16
21
|
import cloneDeep from 'lodash.clonedeep';
|
|
17
22
|
import proj4 from 'proj4';
|
|
@@ -1946,7 +1951,7 @@ var getLayerFromService = createSelector(function (store, serviceUrl) {
|
|
|
1946
1951
|
* @returns {array} returnType: Style[] - array containing layer styles
|
|
1947
1952
|
*/
|
|
1948
1953
|
|
|
1949
|
-
var getLayerStyles = createSelector(getLayerFromService, function (layer) {
|
|
1954
|
+
var getLayerStyles$1 = createSelector(getLayerFromService, function (layer) {
|
|
1950
1955
|
return layer && layer.styles ? layer.styles : [];
|
|
1951
1956
|
}, selectorMemoizationOptions);
|
|
1952
1957
|
/**
|
|
@@ -4363,10 +4368,18 @@ var initialState$1 = {
|
|
|
4363
4368
|
byId: {},
|
|
4364
4369
|
allIds: []
|
|
4365
4370
|
},
|
|
4366
|
-
|
|
4371
|
+
filters: {
|
|
4367
4372
|
byId: {},
|
|
4368
4373
|
allIds: []
|
|
4369
4374
|
}
|
|
4375
|
+
},
|
|
4376
|
+
allServicesEnabled: true,
|
|
4377
|
+
activeLayerInfo: {
|
|
4378
|
+
name: '',
|
|
4379
|
+
text: '',
|
|
4380
|
+
leaf: true,
|
|
4381
|
+
path: [],
|
|
4382
|
+
serviceName: ''
|
|
4370
4383
|
}
|
|
4371
4384
|
};
|
|
4372
4385
|
var slice$1 = createSlice({
|
|
@@ -4377,86 +4390,84 @@ var slice$1 = createSlice({
|
|
|
4377
4390
|
var filterText = action.payload.filterText;
|
|
4378
4391
|
draft.filters.searchFilter = filterText;
|
|
4379
4392
|
},
|
|
4380
|
-
|
|
4393
|
+
setAllServicesEnabled: function setAllServicesEnabled(draft, action) {
|
|
4394
|
+
var allServicesEnabled = action.payload.allServicesEnabled;
|
|
4395
|
+
draft.allServicesEnabled = allServicesEnabled;
|
|
4396
|
+
},
|
|
4397
|
+
addFiltersAndActiveServices: function addFiltersAndActiveServices(draft, action) {
|
|
4381
4398
|
var _action$payload = action.payload,
|
|
4382
4399
|
serviceId = _action$payload.serviceId,
|
|
4383
4400
|
serviceName = _action$payload.serviceName,
|
|
4384
4401
|
serviceUrl = _action$payload.serviceUrl,
|
|
4402
|
+
_abstract = _action$payload["abstract"],
|
|
4385
4403
|
keywords = _action$payload.keywords,
|
|
4386
|
-
isUserAddedService = _action$payload.isUserAddedService
|
|
4404
|
+
isUserAddedService = _action$payload.isUserAddedService,
|
|
4405
|
+
groups = _action$payload.groups;
|
|
4387
4406
|
|
|
4388
4407
|
if (!draft.filters.activeServices.byId[serviceId]) {
|
|
4389
4408
|
draft.filters.activeServices.byId[serviceId] = {};
|
|
4390
4409
|
|
|
4391
|
-
var
|
|
4392
|
-
|
|
4410
|
+
var addFilters = function addFilters(filterNames, filterType) {
|
|
4411
|
+
filterNames.forEach(function (filterName) {
|
|
4412
|
+
var id = "".concat(filterType, "-").concat(filterName);
|
|
4393
4413
|
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
if (!draft.filters.keywords.byId[keyword]) {
|
|
4399
|
-
draft.filters.keywords.byId[keyword] = {
|
|
4400
|
-
id: keyword,
|
|
4414
|
+
if (!draft.filters.filters.byId[id]) {
|
|
4415
|
+
draft.filters.filters.byId[id] = {
|
|
4416
|
+
id: id,
|
|
4417
|
+
name: filterName,
|
|
4401
4418
|
amount: 1,
|
|
4402
4419
|
amountVisible: 1,
|
|
4403
|
-
checked: true
|
|
4420
|
+
checked: true,
|
|
4421
|
+
type: filterType
|
|
4404
4422
|
};
|
|
4405
|
-
draft.filters.
|
|
4423
|
+
draft.filters.filters.allIds.push(id);
|
|
4406
4424
|
} else {
|
|
4407
|
-
draft.filters.
|
|
4408
|
-
draft.filters.
|
|
4425
|
+
draft.filters.filters.byId[id].amount += 1;
|
|
4426
|
+
draft.filters.filters.byId[id].amountVisible += 1;
|
|
4409
4427
|
}
|
|
4410
|
-
}
|
|
4411
|
-
}
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
}
|
|
4428
|
+
});
|
|
4429
|
+
};
|
|
4430
|
+
|
|
4431
|
+
addFilters(groups, 'group');
|
|
4432
|
+
addFilters(keywords, 'keyword');
|
|
4416
4433
|
}
|
|
4417
4434
|
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4435
|
+
var filterIds = groups.map(function (group) {
|
|
4436
|
+
return "group-".concat(group);
|
|
4437
|
+
}).concat(keywords.map(function (keyword) {
|
|
4438
|
+
return "keyword-".concat(keyword);
|
|
4439
|
+
}));
|
|
4440
|
+
draft.filters.activeServices.byId[serviceId] = {
|
|
4441
|
+
serviceId: serviceId,
|
|
4442
|
+
enabled: draft.allServicesEnabled,
|
|
4443
|
+
filterIds: filterIds,
|
|
4444
|
+
isUserAddedService: isUserAddedService,
|
|
4445
|
+
serviceName: serviceName,
|
|
4446
|
+
serviceUrl: serviceUrl,
|
|
4447
|
+
"abstract": _abstract
|
|
4448
|
+
};
|
|
4423
4449
|
if (!draft.filters.activeServices.allIds.includes(serviceId)) draft.filters.activeServices.allIds.push(serviceId);
|
|
4424
4450
|
},
|
|
4425
|
-
|
|
4451
|
+
layerSelectRemoveService: function layerSelectRemoveService(draft, action) {
|
|
4426
4452
|
var serviceId = action.payload.serviceId; // 1. Find a service that is to be removed
|
|
4427
4453
|
|
|
4428
4454
|
var foundService = draft.filters.activeServices.byId[serviceId]; // 2. Go through all keywords for removed service, and decrement the amount of all found keywords
|
|
4429
4455
|
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
try {
|
|
4434
|
-
var _loop = function _loop() {
|
|
4435
|
-
var keyword = _step2.value;
|
|
4436
|
-
var foundObject = draft.filters.keywords.byId[keyword];
|
|
4437
|
-
|
|
4438
|
-
if (foundObject && foundObject.amount) {
|
|
4439
|
-
foundObject.amount -= 1;
|
|
4440
|
-
foundObject.amountVisible -= 1;
|
|
4441
|
-
}
|
|
4442
|
-
|
|
4443
|
-
if (foundObject && foundObject.amount === 0) {
|
|
4444
|
-
delete draft.filters.keywords.byId[keyword];
|
|
4445
|
-
draft.filters.keywords.allIds = draft.filters.keywords.allIds.filter(function (serviceId) {
|
|
4446
|
-
return serviceId !== keyword;
|
|
4447
|
-
});
|
|
4448
|
-
}
|
|
4449
|
-
};
|
|
4456
|
+
foundService.filterIds.forEach(function (filterId) {
|
|
4457
|
+
var foundObject = draft.filters.filters.byId[filterId];
|
|
4450
4458
|
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4459
|
+
if (foundObject && foundObject.amount) {
|
|
4460
|
+
foundObject.amount -= 1;
|
|
4461
|
+
foundObject.amountVisible -= 1;
|
|
4462
|
+
}
|
|
4454
4463
|
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4464
|
+
if (foundObject && foundObject.amount === 0) {
|
|
4465
|
+
delete draft.filters.filters.byId[filterId];
|
|
4466
|
+
draft.filters.filters.allIds = draft.filters.filters.allIds.filter(function (serviceId) {
|
|
4467
|
+
return serviceId !== filterId;
|
|
4468
|
+
});
|
|
4469
|
+
}
|
|
4470
|
+
}); // Finally remove object from activeServices, so if the service is added again later on, new object and keywords will be re-added
|
|
4460
4471
|
|
|
4461
4472
|
delete draft.filters.activeServices.byId[serviceId];
|
|
4462
4473
|
draft.filters.activeServices.allIds = draft.filters.activeServices.allIds.filter(function (id) {
|
|
@@ -4466,66 +4477,59 @@ var slice$1 = createSlice({
|
|
|
4466
4477
|
enableActiveService: function enableActiveService(draft, action) {
|
|
4467
4478
|
var _action$payload2 = action.payload,
|
|
4468
4479
|
serviceId = _action$payload2.serviceId,
|
|
4469
|
-
keywords = _action$payload2.
|
|
4480
|
+
keywords = _action$payload2.filters;
|
|
4470
4481
|
draft.filters.activeServices.byId[serviceId].enabled = true;
|
|
4471
4482
|
|
|
4472
|
-
var
|
|
4473
|
-
|
|
4483
|
+
var _iterator = _createForOfIteratorHelper(keywords),
|
|
4484
|
+
_step;
|
|
4474
4485
|
|
|
4475
4486
|
try {
|
|
4476
|
-
for (
|
|
4477
|
-
var keyword =
|
|
4478
|
-
draft.filters.
|
|
4487
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
4488
|
+
var keyword = _step.value;
|
|
4489
|
+
draft.filters.filters.byId[keyword].amountVisible += 1;
|
|
4479
4490
|
}
|
|
4480
4491
|
} catch (err) {
|
|
4481
|
-
|
|
4492
|
+
_iterator.e(err);
|
|
4482
4493
|
} finally {
|
|
4483
|
-
|
|
4494
|
+
_iterator.f();
|
|
4484
4495
|
}
|
|
4485
4496
|
},
|
|
4486
4497
|
disableActiveService: function disableActiveService(draft, action) {
|
|
4487
4498
|
var _action$payload3 = action.payload,
|
|
4488
4499
|
serviceId = _action$payload3.serviceId,
|
|
4489
|
-
keywords = _action$payload3.
|
|
4500
|
+
keywords = _action$payload3.filters;
|
|
4490
4501
|
draft.filters.activeServices.byId[serviceId].enabled = false;
|
|
4491
4502
|
|
|
4492
|
-
var
|
|
4493
|
-
|
|
4503
|
+
var _iterator2 = _createForOfIteratorHelper(keywords),
|
|
4504
|
+
_step2;
|
|
4494
4505
|
|
|
4495
4506
|
try {
|
|
4496
|
-
for (
|
|
4497
|
-
var keyword =
|
|
4498
|
-
draft.filters.
|
|
4507
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
4508
|
+
var keyword = _step2.value;
|
|
4509
|
+
draft.filters.filters.byId[keyword].amountVisible -= 1;
|
|
4499
4510
|
}
|
|
4500
4511
|
} catch (err) {
|
|
4501
|
-
|
|
4512
|
+
_iterator2.e(err);
|
|
4502
4513
|
} finally {
|
|
4503
|
-
|
|
4514
|
+
_iterator2.f();
|
|
4504
4515
|
}
|
|
4505
4516
|
},
|
|
4506
|
-
|
|
4507
|
-
var
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
|
|
4511
|
-
|
|
4512
|
-
try {
|
|
4513
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
4514
|
-
var keyword = _step5.value;
|
|
4515
|
-
draft.filters.keywords.byId[keyword].checked = !draft.filters.keywords.byId[keyword].checked;
|
|
4516
|
-
}
|
|
4517
|
-
} catch (err) {
|
|
4518
|
-
_iterator5.e(err);
|
|
4519
|
-
} finally {
|
|
4520
|
-
_iterator5.f();
|
|
4521
|
-
}
|
|
4517
|
+
toggleFilter: function toggleFilter(draft, action) {
|
|
4518
|
+
var filterIds = action.payload.filterIds;
|
|
4519
|
+
filterIds.forEach(function (filterId) {
|
|
4520
|
+
draft.filters.filters.byId[filterId].checked = !draft.filters.filters.byId[filterId].checked;
|
|
4521
|
+
});
|
|
4522
4522
|
},
|
|
4523
|
-
|
|
4524
|
-
var
|
|
4525
|
-
draft.filters.
|
|
4526
|
-
draft.filters.
|
|
4523
|
+
enableOnlyOneFilter: function enableOnlyOneFilter(draft, action) {
|
|
4524
|
+
var filterId = action.payload.filterId;
|
|
4525
|
+
draft.filters.filters.allIds.forEach(function (filterId) {
|
|
4526
|
+
draft.filters.filters.byId[filterId].checked = false;
|
|
4527
4527
|
});
|
|
4528
|
-
draft.filters.
|
|
4528
|
+
draft.filters.filters.byId[filterId].checked = true;
|
|
4529
|
+
},
|
|
4530
|
+
setActiveLayerInfo: function setActiveLayerInfo(draft, action) {
|
|
4531
|
+
var layer = action.payload.layer;
|
|
4532
|
+
draft.activeLayerInfo = layer;
|
|
4529
4533
|
}
|
|
4530
4534
|
}
|
|
4531
4535
|
});
|
|
@@ -4577,6 +4581,21 @@ var getActiveServices = createSelector(layerSelectStore, function (store) {
|
|
|
4577
4581
|
|
|
4578
4582
|
return store ? (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.activeServices.byId : {};
|
|
4579
4583
|
}, selectorMemoizationOptions);
|
|
4584
|
+
/**
|
|
4585
|
+
* Returns active services by id
|
|
4586
|
+
*
|
|
4587
|
+
* Example getActiveServices(store, 'server-id');
|
|
4588
|
+
* @param {object} store store: object - store object
|
|
4589
|
+
* @param {serverId} serverId serverId: string - active server id
|
|
4590
|
+
* @returns {object} returnType: object of active service
|
|
4591
|
+
*/
|
|
4592
|
+
|
|
4593
|
+
var getActiveServiceById = function getActiveServiceById(store, serviceId) {
|
|
4594
|
+
var _a, _b;
|
|
4595
|
+
|
|
4596
|
+
var enabledServices = ((_b = (_a = store === null || store === void 0 ? void 0 : store.layerSelect) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.activeServices.byId[serviceId]) || {};
|
|
4597
|
+
return enabledServices;
|
|
4598
|
+
};
|
|
4580
4599
|
/**
|
|
4581
4600
|
* Returns all ids of enabled services
|
|
4582
4601
|
*
|
|
@@ -4603,18 +4622,18 @@ var getEnabledServiceIds = createSelector(layerSelectStore, function (store) {
|
|
|
4603
4622
|
* @returns {array} returnType: array of keyword ids that are checked
|
|
4604
4623
|
*/
|
|
4605
4624
|
|
|
4606
|
-
var
|
|
4625
|
+
var getCheckedFilterIds = createSelector(layerSelectStore, function (store) {
|
|
4607
4626
|
var _a, _b;
|
|
4608
4627
|
|
|
4609
|
-
var
|
|
4610
|
-
var _a;
|
|
4628
|
+
var checkedFilters = (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.filters.allIds.filter(function (filterId) {
|
|
4629
|
+
var _a, _b;
|
|
4611
4630
|
|
|
4612
|
-
return (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.
|
|
4631
|
+
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.filters.byId[filterId]) === null || _b === void 0 ? void 0 : _b.checked;
|
|
4613
4632
|
})) !== null && _b !== void 0 ? _b : [];
|
|
4614
|
-
return
|
|
4633
|
+
return checkedFilters.map(function (filterId) {
|
|
4615
4634
|
var _a;
|
|
4616
4635
|
|
|
4617
|
-
return (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.
|
|
4636
|
+
return (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.filters.byId[filterId].id;
|
|
4618
4637
|
});
|
|
4619
4638
|
}, selectorMemoizationOptions);
|
|
4620
4639
|
/**
|
|
@@ -4625,11 +4644,28 @@ var getCheckedKeywordIds = createSelector(layerSelectStore, function (store) {
|
|
|
4625
4644
|
* @returns {array} returnType: array of all keyword ids
|
|
4626
4645
|
*/
|
|
4627
4646
|
|
|
4628
|
-
var
|
|
4647
|
+
var getAllFilterIds = createSelector(layerSelectStore, function (store) {
|
|
4629
4648
|
var _a, _b;
|
|
4630
4649
|
|
|
4631
|
-
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.
|
|
4650
|
+
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.filters.allIds) !== null && _b !== void 0 ? _b : [];
|
|
4632
4651
|
}, selectorMemoizationOptions);
|
|
4652
|
+
/**
|
|
4653
|
+
* Returns all filters
|
|
4654
|
+
*
|
|
4655
|
+
* Example getAllFilters(store);
|
|
4656
|
+
* @param {object} store store: object - store object
|
|
4657
|
+
* @returns {array} returnType: array of all filters
|
|
4658
|
+
*/
|
|
4659
|
+
|
|
4660
|
+
var getAllFilters = createSelector(layerSelectStore, function (store) {
|
|
4661
|
+
var filters = store === null || store === void 0 ? void 0 : store.filters.filters.byId;
|
|
4662
|
+
|
|
4663
|
+
if (filters) {
|
|
4664
|
+
return Object.values(filters);
|
|
4665
|
+
}
|
|
4666
|
+
|
|
4667
|
+
return [];
|
|
4668
|
+
});
|
|
4633
4669
|
/**
|
|
4634
4670
|
* Returns if all keywords are checked
|
|
4635
4671
|
*
|
|
@@ -4638,29 +4674,26 @@ var getAllKeywordIds = createSelector(layerSelectStore, function (store) {
|
|
|
4638
4674
|
* @returns {array} returnType: boolean if all keywords are checked
|
|
4639
4675
|
*/
|
|
4640
4676
|
|
|
4641
|
-
var
|
|
4677
|
+
var isAllFiltersChecked = createSelector(layerSelectStore, function (store) {
|
|
4642
4678
|
var _a, _b;
|
|
4643
4679
|
|
|
4644
|
-
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.
|
|
4645
|
-
var _a, _b;
|
|
4680
|
+
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.allIds.every(function (filterId) {
|
|
4681
|
+
var _a, _b, _c;
|
|
4646
4682
|
|
|
4647
|
-
return (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.
|
|
4683
|
+
return (_c = (_b = (_a = store === null || store === void 0 ? void 0 : store.filters) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.byId[filterId]) === null || _c === void 0 ? void 0 : _c.checked;
|
|
4648
4684
|
});
|
|
4649
4685
|
});
|
|
4650
4686
|
/**
|
|
4651
|
-
*
|
|
4687
|
+
* Returns the active layer info
|
|
4652
4688
|
*
|
|
4653
|
-
* Example
|
|
4654
|
-
* @param {object} store object
|
|
4655
|
-
* @
|
|
4656
|
-
* @returns {object} object containing keyword information (id, amount, amountVisible, checked)
|
|
4689
|
+
* Example getActiveLayerInfo(store);
|
|
4690
|
+
* @param {object} store store: object - store object
|
|
4691
|
+
* @returns {object} returnType: ActiveLayerObject
|
|
4657
4692
|
*/
|
|
4658
4693
|
|
|
4659
|
-
var
|
|
4660
|
-
|
|
4661
|
-
|
|
4662
|
-
return (_d = (_c = (_b = (_a = store === null || store === void 0 ? void 0 : store.layerSelect) === null || _a === void 0 ? void 0 : _a.filters) === null || _b === void 0 ? void 0 : _b.keywords) === null || _c === void 0 ? void 0 : _c.byId[keywordId]) !== null && _d !== void 0 ? _d : {};
|
|
4663
|
-
};
|
|
4694
|
+
var getActiveLayerInfo = createSelector(layerSelectStore, function (store) {
|
|
4695
|
+
return store === null || store === void 0 ? void 0 : store.activeLayerInfo;
|
|
4696
|
+
});
|
|
4664
4697
|
|
|
4665
4698
|
/* *
|
|
4666
4699
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -4736,8 +4769,15 @@ var getFirstSnackbarMessage = createSelector(getCurrentSnackbarMessages, functio
|
|
|
4736
4769
|
return currentMessages.length > 0 ? currentMessages[0] : undefined;
|
|
4737
4770
|
});
|
|
4738
4771
|
|
|
4772
|
+
var DialogTypes;
|
|
4773
|
+
|
|
4774
|
+
(function (DialogTypes) {
|
|
4775
|
+
DialogTypes["LayerInfo"] = "layerInfo";
|
|
4776
|
+
})(DialogTypes || (DialogTypes = {}));
|
|
4777
|
+
|
|
4739
4778
|
var types = /*#__PURE__*/Object.freeze({
|
|
4740
|
-
__proto__: null
|
|
4779
|
+
__proto__: null,
|
|
4780
|
+
get DialogTypes () { return DialogTypes; }
|
|
4741
4781
|
});
|
|
4742
4782
|
|
|
4743
4783
|
/* *
|
|
@@ -5977,7 +6017,7 @@ var PlayButton = function PlayButton(_ref) {
|
|
|
5977
6017
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
5978
6018
|
* */
|
|
5979
6019
|
var animationIntervalDefault = 5;
|
|
5980
|
-
var connectRedux$
|
|
6020
|
+
var connectRedux$5 = connect(function (store, props) {
|
|
5981
6021
|
return {
|
|
5982
6022
|
animationStartTime: getAnimationStartTime(store, props.mapId),
|
|
5983
6023
|
animationEndTime: getAnimationEndTime(store, props.mapId),
|
|
@@ -5988,7 +6028,7 @@ var connectRedux$6 = connect(function (store, props) {
|
|
|
5988
6028
|
mapStartAnimation: mapActions$1.mapStartAnimation,
|
|
5989
6029
|
mapStopAnimation: mapActions$1.mapStopAnimation
|
|
5990
6030
|
});
|
|
5991
|
-
var PlayButtonConnect = connectRedux$
|
|
6031
|
+
var PlayButtonConnect = connectRedux$5(function (_ref) {
|
|
5992
6032
|
var mapId = _ref.mapId,
|
|
5993
6033
|
animationStartTime = _ref.animationStartTime,
|
|
5994
6034
|
animationEndTime = _ref.animationEndTime,
|
|
@@ -8204,16 +8244,6 @@ var moduleConfig = {
|
|
|
8204
8244
|
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8205
8245
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
8206
8246
|
* */
|
|
8207
|
-
var mergePresetsAndUserAddedServices = function mergePresetsAndUserAddedServices(presets, userAddedServices) {
|
|
8208
|
-
return Object.values(Object.assign(Object.assign({}, presets.reduce(function (byUrl, preset) {
|
|
8209
|
-
return Object.assign(Object.assign({}, byUrl), _defineProperty({}, preset.url, preset));
|
|
8210
|
-
}, {})), userAddedServices));
|
|
8211
|
-
};
|
|
8212
|
-
var isNoIdService = function isNoIdService(param) {
|
|
8213
|
-
var serviceParam = param;
|
|
8214
|
-
return !!((serviceParam === null || serviceParam === void 0 ? void 0 : serviceParam.name) && (serviceParam === null || serviceParam === void 0 ? void 0 : serviceParam.url));
|
|
8215
|
-
};
|
|
8216
|
-
|
|
8217
8247
|
var getUserAddedServices = function getUserAddedServices() {
|
|
8218
8248
|
try {
|
|
8219
8249
|
var storedString = window.localStorage.getItem('userAddedServices');
|
|
@@ -8244,70 +8274,124 @@ var setUserAddedServices = function setUserAddedServices(services) {
|
|
|
8244
8274
|
}
|
|
8245
8275
|
};
|
|
8246
8276
|
|
|
8277
|
+
var isNoIdService = function isNoIdService(param) {
|
|
8278
|
+
var serviceParam = param;
|
|
8279
|
+
return !!((serviceParam === null || serviceParam === void 0 ? void 0 : serviceParam.name) && (serviceParam === null || serviceParam === void 0 ? void 0 : serviceParam.url));
|
|
8280
|
+
};
|
|
8281
|
+
|
|
8247
8282
|
var _marked$1 = /*#__PURE__*/regeneratorRuntime.mark(newServiceAddedSaga),
|
|
8248
|
-
_marked2$1 = /*#__PURE__*/regeneratorRuntime.mark(
|
|
8283
|
+
_marked2$1 = /*#__PURE__*/regeneratorRuntime.mark(layerSelectRemoveServiceSaga),
|
|
8249
8284
|
_marked3 = /*#__PURE__*/regeneratorRuntime.mark(rootSaga$1);
|
|
8250
8285
|
function newServiceAddedSaga(capturedAction) {
|
|
8251
|
-
var addedService, id, serviceUrl, name, isUserAddedService, keywords;
|
|
8286
|
+
var addedService, id, serviceUrl, name, isUserAddedService, _abstract, keywords, groups;
|
|
8287
|
+
|
|
8252
8288
|
return regeneratorRuntime.wrap(function newServiceAddedSaga$(_context) {
|
|
8253
8289
|
while (1) {
|
|
8254
8290
|
switch (_context.prev = _context.next) {
|
|
8255
8291
|
case 0:
|
|
8256
8292
|
addedService = capturedAction.payload;
|
|
8257
|
-
id = addedService.id, serviceUrl = addedService.serviceUrl, name = addedService.name, isUserAddedService = addedService.isUserAddedService;
|
|
8258
|
-
keywords = addedService.layers.reduce(function (
|
|
8259
|
-
|
|
8293
|
+
id = addedService.id, serviceUrl = addedService.serviceUrl, name = addedService.name, isUserAddedService = addedService.isUserAddedService, _abstract = addedService["abstract"];
|
|
8294
|
+
keywords = addedService.layers.reduce(function (keywords, layer) {
|
|
8295
|
+
var _a;
|
|
8296
|
+
|
|
8297
|
+
if (layer.leaf) {
|
|
8298
|
+
return keywords.concat((_a = layer.keywords) !== null && _a !== void 0 ? _a : []);
|
|
8299
|
+
}
|
|
8300
|
+
|
|
8301
|
+
return keywords;
|
|
8302
|
+
}, []);
|
|
8303
|
+
groups = addedService.layers.reduce(function (groups, layer) {
|
|
8304
|
+
var _a;
|
|
8305
|
+
|
|
8306
|
+
if (layer.leaf) {
|
|
8307
|
+
return groups.concat((_a = layer.path) !== null && _a !== void 0 ? _a : []);
|
|
8308
|
+
}
|
|
8309
|
+
|
|
8310
|
+
return groups;
|
|
8260
8311
|
}, []);
|
|
8261
|
-
_context.next =
|
|
8262
|
-
return put(layerSelectActions.
|
|
8312
|
+
_context.next = 6;
|
|
8313
|
+
return put(layerSelectActions.addFiltersAndActiveServices({
|
|
8263
8314
|
serviceId: id,
|
|
8264
8315
|
serviceName: name,
|
|
8265
8316
|
serviceUrl: serviceUrl,
|
|
8266
8317
|
keywords: keywords,
|
|
8267
|
-
isUserAddedService: isUserAddedService
|
|
8318
|
+
isUserAddedService: isUserAddedService,
|
|
8319
|
+
groups: groups,
|
|
8320
|
+
"abstract": _abstract
|
|
8268
8321
|
}));
|
|
8269
8322
|
|
|
8270
|
-
case
|
|
8323
|
+
case 6:
|
|
8271
8324
|
case "end":
|
|
8272
8325
|
return _context.stop();
|
|
8273
8326
|
}
|
|
8274
8327
|
}
|
|
8275
8328
|
}, _marked$1);
|
|
8276
8329
|
}
|
|
8277
|
-
function
|
|
8278
|
-
var removedService, serviceId;
|
|
8279
|
-
return regeneratorRuntime.wrap(function
|
|
8330
|
+
function layerSelectRemoveServiceSaga(capturedAction) {
|
|
8331
|
+
var removedService, serviceId, serviceUrl, results, services, servicesEnabled;
|
|
8332
|
+
return regeneratorRuntime.wrap(function layerSelectRemoveServiceSaga$(_context2) {
|
|
8280
8333
|
while (1) {
|
|
8281
8334
|
switch (_context2.prev = _context2.next) {
|
|
8282
8335
|
case 0:
|
|
8283
8336
|
removedService = capturedAction.payload;
|
|
8284
|
-
serviceId = removedService.
|
|
8337
|
+
serviceId = removedService.serviceId, serviceUrl = removedService.serviceUrl;
|
|
8285
8338
|
_context2.next = 4;
|
|
8286
|
-
return
|
|
8287
|
-
serviceId: serviceId
|
|
8288
|
-
}));
|
|
8339
|
+
return select(getActiveServices);
|
|
8289
8340
|
|
|
8290
8341
|
case 4:
|
|
8342
|
+
results = _context2.sent;
|
|
8343
|
+
services = results;
|
|
8344
|
+
servicesEnabled = Object.values(services).find(function (service) {
|
|
8345
|
+
return service.enabled;
|
|
8346
|
+
});
|
|
8347
|
+
|
|
8348
|
+
if (!(servicesEnabled === undefined)) {
|
|
8349
|
+
_context2.next = 10;
|
|
8350
|
+
break;
|
|
8351
|
+
}
|
|
8352
|
+
|
|
8353
|
+
_context2.next = 10;
|
|
8354
|
+
return all(Object.entries(services).map(function (_ref) {
|
|
8355
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
8356
|
+
serviceId = _ref2[0],
|
|
8357
|
+
service = _ref2[1];
|
|
8358
|
+
|
|
8359
|
+
return put(layerSelectActions.enableActiveService({
|
|
8360
|
+
serviceId: serviceId,
|
|
8361
|
+
filters: service.filterIds
|
|
8362
|
+
}));
|
|
8363
|
+
}));
|
|
8364
|
+
|
|
8365
|
+
case 10:
|
|
8366
|
+
_context2.next = 12;
|
|
8367
|
+
return put(serviceActions.mapStoreRemoveService({
|
|
8368
|
+
id: serviceId,
|
|
8369
|
+
serviceUrl: serviceUrl
|
|
8370
|
+
}));
|
|
8371
|
+
|
|
8372
|
+
case 12:
|
|
8291
8373
|
case "end":
|
|
8292
8374
|
return _context2.stop();
|
|
8293
8375
|
}
|
|
8294
8376
|
}
|
|
8295
8377
|
}, _marked2$1);
|
|
8296
8378
|
}
|
|
8297
|
-
function addServiceToLocalStorageSaga(
|
|
8298
|
-
var payload =
|
|
8379
|
+
function addServiceToLocalStorageSaga(_ref3) {
|
|
8380
|
+
var payload = _ref3.payload;
|
|
8299
8381
|
var isUserAddedService = payload.isUserAddedService,
|
|
8300
8382
|
name = payload.name,
|
|
8301
|
-
serviceUrl = payload.serviceUrl
|
|
8383
|
+
serviceUrl = payload.serviceUrl,
|
|
8384
|
+
_abstract2 = payload["abstract"];
|
|
8302
8385
|
if (!isUserAddedService) return;
|
|
8303
8386
|
var localStorageServices = getUserAddedServices();
|
|
8304
8387
|
setUserAddedServices(Object.assign(Object.assign({}, localStorageServices), _defineProperty({}, serviceUrl, {
|
|
8305
8388
|
name: name,
|
|
8306
|
-
url: serviceUrl
|
|
8389
|
+
url: serviceUrl,
|
|
8390
|
+
"abstract": _abstract2
|
|
8307
8391
|
})));
|
|
8308
8392
|
}
|
|
8309
|
-
function removeServiceFromLocalStorageSaga(
|
|
8310
|
-
var payload =
|
|
8393
|
+
function removeServiceFromLocalStorageSaga(_ref4) {
|
|
8394
|
+
var payload = _ref4.payload;
|
|
8311
8395
|
var serviceUrl = payload.serviceUrl;
|
|
8312
8396
|
var localStorageServices = getUserAddedServices();
|
|
8313
8397
|
if (!localStorageServices[serviceUrl]) return;
|
|
@@ -8325,7 +8409,7 @@ function rootSaga$1() {
|
|
|
8325
8409
|
|
|
8326
8410
|
case 2:
|
|
8327
8411
|
_context3.next = 4;
|
|
8328
|
-
return takeEvery(
|
|
8412
|
+
return takeEvery(layerSelectActions.layerSelectRemoveService.type, layerSelectRemoveServiceSaga);
|
|
8329
8413
|
|
|
8330
8414
|
case 4:
|
|
8331
8415
|
_context3.next = 6;
|
|
@@ -8516,7 +8600,9 @@ var recurseNodes = function recurseNodes(nodesToRecur) {
|
|
|
8516
8600
|
children: [],
|
|
8517
8601
|
keywords: nodesToRecur.keywords || [],
|
|
8518
8602
|
"abstract": nodesToRecur["abstract"] || '',
|
|
8519
|
-
styles: nodesToRecur.styles || []
|
|
8603
|
+
styles: nodesToRecur.styles || [],
|
|
8604
|
+
dimensions: nodesToRecur.dimensions || [],
|
|
8605
|
+
geographicBoundingBox: nodesToRecur.geographicBoundingBox || null
|
|
8520
8606
|
};
|
|
8521
8607
|
|
|
8522
8608
|
if (nodesToRecur.children) {
|
|
@@ -8774,7 +8860,7 @@ var WMSLayerTree = function WMSLayerTree(_ref) {
|
|
|
8774
8860
|
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
8775
8861
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
8776
8862
|
* */
|
|
8777
|
-
var connectRedux$
|
|
8863
|
+
var connectRedux$4 = connect(function (store, props) {
|
|
8778
8864
|
return {
|
|
8779
8865
|
loadedLayers: getMapLayers(store, props.mapId)
|
|
8780
8866
|
};
|
|
@@ -8838,7 +8924,7 @@ var ConnectedTree = function ConnectedTree(_ref) {
|
|
|
8838
8924
|
});
|
|
8839
8925
|
};
|
|
8840
8926
|
|
|
8841
|
-
var WMSLayerTreeConnect = connectRedux$
|
|
8927
|
+
var WMSLayerTreeConnect = connectRedux$4(ConnectedTree);
|
|
8842
8928
|
|
|
8843
8929
|
var WMSServerList = function WMSServerList(_ref) {
|
|
8844
8930
|
var availableServices = _ref.availableServices,
|
|
@@ -9012,7 +9098,7 @@ var defaultConfigurations = /*#__PURE__*/Object.freeze({
|
|
|
9012
9098
|
preloadedDefaultMapServices: preloadedDefaultMapServices
|
|
9013
9099
|
});
|
|
9014
9100
|
|
|
9015
|
-
var validateServiceUrl = function validateServiceUrl(url) {
|
|
9101
|
+
var validateServiceUrl$1 = function validateServiceUrl(url) {
|
|
9016
9102
|
if (url === '' || url === null || typeof url === 'undefined') return false;
|
|
9017
9103
|
var matcher = /^(?:\w+:)?\/\/([^\s.]+\.\S{2}|[0-9a-zA-Z]+[:?\d]*)\S*$/;
|
|
9018
9104
|
if (!matcher.test(url)) return false;
|
|
@@ -9082,7 +9168,7 @@ var AddLayersPopup = function AddLayersPopup(_ref) {
|
|
|
9082
9168
|
setServiceURL('');
|
|
9083
9169
|
setUrlError('');
|
|
9084
9170
|
setLoading(false); // Check if valid URL was passed
|
|
9085
|
-
} else if (validateServiceUrl(serviceURL)) {
|
|
9171
|
+
} else if (validateServiceUrl$1(serviceURL)) {
|
|
9086
9172
|
// Check if service is WMS server
|
|
9087
9173
|
getLayersFromService(serviceURL).then(function (layerTreeFromPromise) {
|
|
9088
9174
|
// Shorten URL as a naming backup
|
|
@@ -9743,7 +9829,7 @@ var RenderLayers = function RenderLayers(_ref) {
|
|
|
9743
9829
|
}));
|
|
9744
9830
|
};
|
|
9745
9831
|
|
|
9746
|
-
var marks$
|
|
9832
|
+
var marks$2 = [{
|
|
9747
9833
|
value: 0,
|
|
9748
9834
|
label: '0 %'
|
|
9749
9835
|
}, {
|
|
@@ -9870,7 +9956,7 @@ var OpacitySelect = function OpacitySelect(_ref) {
|
|
|
9870
9956
|
step: 0.01,
|
|
9871
9957
|
max: 1,
|
|
9872
9958
|
min: 0,
|
|
9873
|
-
marks: marks$
|
|
9959
|
+
marks: marks$2,
|
|
9874
9960
|
onChange: function onChange(event, newValue) {
|
|
9875
9961
|
event.stopPropagation();
|
|
9876
9962
|
onLayerChangeOpacity(newValue);
|
|
@@ -10428,7 +10514,7 @@ var RenderStylesConnect = function RenderStylesConnect(_ref) {
|
|
|
10428
10514
|
return getLayerName(store, layerId);
|
|
10429
10515
|
});
|
|
10430
10516
|
var layerStyles = useSelector(function (store) {
|
|
10431
|
-
return getLayerStyles(store, layerService, layerName);
|
|
10517
|
+
return getLayerStyles$1(store, layerService, layerName);
|
|
10432
10518
|
});
|
|
10433
10519
|
var currentLayerStyle = useSelector(function (store) {
|
|
10434
10520
|
return getLayerStyle(store, layerId);
|
|
@@ -11132,6 +11218,16 @@ var styles$2 = {
|
|
|
11132
11218
|
boxSizing: 'border-box'
|
|
11133
11219
|
}
|
|
11134
11220
|
};
|
|
11221
|
+
var calculateStartSize = function calculateStartSize(minSize, prefSize, startPosition) {
|
|
11222
|
+
var _calculateDialogSizeA = calculateDialogSizeAndPosition(),
|
|
11223
|
+
calcWidth = _calculateDialogSizeA.width,
|
|
11224
|
+
calcHeight = _calculateDialogSizeA.height;
|
|
11225
|
+
|
|
11226
|
+
return {
|
|
11227
|
+
width: Math.max(minSize.width, Math.min(prefSize.width, calcWidth)),
|
|
11228
|
+
height: Math.max(minSize.height, Math.min(prefSize.height, calcHeight - startPosition.top))
|
|
11229
|
+
};
|
|
11230
|
+
};
|
|
11135
11231
|
|
|
11136
11232
|
var LayerManager = function LayerManager(_ref) {
|
|
11137
11233
|
var mapId = _ref.mapId,
|
|
@@ -11157,8 +11253,21 @@ var LayerManager = function LayerManager(_ref) {
|
|
|
11157
11253
|
_ref$isLoading = _ref.isLoading,
|
|
11158
11254
|
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
11159
11255
|
error = _ref.error;
|
|
11256
|
+
var minSize = {
|
|
11257
|
+
width: 300,
|
|
11258
|
+
height: 126
|
|
11259
|
+
};
|
|
11260
|
+
var prefSize = {
|
|
11261
|
+
width: 720,
|
|
11262
|
+
height: 300
|
|
11263
|
+
};
|
|
11264
|
+
var startPosition = {
|
|
11265
|
+
top: 96,
|
|
11266
|
+
left: 50
|
|
11267
|
+
};
|
|
11268
|
+
var startSize = calculateStartSize(minSize, prefSize, startPosition);
|
|
11160
11269
|
|
|
11161
|
-
var _React$useState = React.useState(
|
|
11270
|
+
var _React$useState = React.useState(widthToWidthClass(startSize.width)),
|
|
11162
11271
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
11163
11272
|
layerManagerWidth = _React$useState2[0],
|
|
11164
11273
|
setLayerManagerWidth = _React$useState2[1];
|
|
@@ -11170,16 +11279,10 @@ var LayerManager = function LayerManager(_ref) {
|
|
|
11170
11279
|
|
|
11171
11280
|
return /*#__PURE__*/React.createElement(ToolContainerDraggable, {
|
|
11172
11281
|
title: showTitle ? "Layer Manager ".concat(mapId) : 'Layer Manager',
|
|
11173
|
-
startSize:
|
|
11174
|
-
|
|
11175
|
-
|
|
11176
|
-
|
|
11177
|
-
minWidth: 300,
|
|
11178
|
-
minHeight: 126,
|
|
11179
|
-
startPosition: {
|
|
11180
|
-
top: 96,
|
|
11181
|
-
left: 50
|
|
11182
|
-
},
|
|
11282
|
+
startSize: startSize,
|
|
11283
|
+
minWidth: minSize.width,
|
|
11284
|
+
minHeight: minSize.height,
|
|
11285
|
+
startPosition: startPosition,
|
|
11183
11286
|
isOpen: isOpen,
|
|
11184
11287
|
onChangeSize: onChangeSize,
|
|
11185
11288
|
onClose: onClose,
|
|
@@ -11274,42 +11377,141 @@ var KeywordFilterButtonConnect = function KeywordFilterButtonConnect(_ref) {
|
|
|
11274
11377
|
}, /*#__PURE__*/React.createElement(Filter, null));
|
|
11275
11378
|
};
|
|
11276
11379
|
|
|
11277
|
-
|
|
11278
|
-
|
|
11279
|
-
|
|
11280
|
-
|
|
11281
|
-
|
|
11282
|
-
|
|
11283
|
-
|
|
11380
|
+
/* *
|
|
11381
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11382
|
+
* you may not use this file except in compliance with the License.
|
|
11383
|
+
* You may obtain a copy of the License at
|
|
11384
|
+
*
|
|
11385
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11386
|
+
*
|
|
11387
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11388
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11389
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11390
|
+
* See the License for the specific language governing permissions and
|
|
11391
|
+
* limitations under the License.
|
|
11392
|
+
*
|
|
11393
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11394
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
11395
|
+
* */
|
|
11396
|
+
var isURL = function isURL(string) {
|
|
11397
|
+
return /^https?:\/\//.test(string);
|
|
11398
|
+
};
|
|
11399
|
+
|
|
11400
|
+
var SearchFieldButtonContainer = function SearchFieldButtonContainer(_ref) {
|
|
11401
|
+
var localSearchString = _ref.localSearchString,
|
|
11402
|
+
onClickClear = _ref.onClickClear,
|
|
11403
|
+
setPopupIsOpen = _ref.setPopupIsOpen;
|
|
11404
|
+
|
|
11405
|
+
var ClearButton = function ClearButton() {
|
|
11406
|
+
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
11407
|
+
title: "Clear",
|
|
11408
|
+
placement: "top"
|
|
11409
|
+
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
11410
|
+
edge: "end",
|
|
11411
|
+
onClick: function onClick() {
|
|
11412
|
+
onClickClear();
|
|
11413
|
+
},
|
|
11414
|
+
size: "large"
|
|
11415
|
+
}, /*#__PURE__*/React__default.createElement(Clear, null)));
|
|
11416
|
+
};
|
|
11417
|
+
|
|
11418
|
+
if (isURL(localSearchString)) return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
11419
|
+
style: {
|
|
11420
|
+
marginRight: '15px'
|
|
11284
11421
|
}
|
|
11285
|
-
},
|
|
11286
|
-
|
|
11287
|
-
|
|
11288
|
-
|
|
11289
|
-
|
|
11290
|
-
|
|
11291
|
-
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11297
|
-
|
|
11298
|
-
|
|
11299
|
-
|
|
11422
|
+
}, /*#__PURE__*/React__default.createElement(ClearButton, null)), /*#__PURE__*/React__default.createElement(Button, {
|
|
11423
|
+
variant: "tertiary",
|
|
11424
|
+
onClick: function onClick() {
|
|
11425
|
+
return setPopupIsOpen(true);
|
|
11426
|
+
}
|
|
11427
|
+
}, "Save"));
|
|
11428
|
+
if (localSearchString) return /*#__PURE__*/React__default.createElement(ClearButton, null);
|
|
11429
|
+
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
11430
|
+
title: "Search",
|
|
11431
|
+
placement: "top"
|
|
11432
|
+
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
11433
|
+
edge: "end",
|
|
11434
|
+
size: "large"
|
|
11435
|
+
}, /*#__PURE__*/React__default.createElement(Search, null)));
|
|
11436
|
+
};
|
|
11437
|
+
|
|
11438
|
+
/* *
|
|
11439
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11440
|
+
* you may not use this file except in compliance with the License.
|
|
11441
|
+
* You may obtain a copy of the License at
|
|
11442
|
+
*
|
|
11443
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11444
|
+
*
|
|
11445
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11446
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11447
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11448
|
+
* See the License for the specific language governing permissions and
|
|
11449
|
+
* limitations under the License.
|
|
11450
|
+
*
|
|
11451
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11452
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
11453
|
+
* */
|
|
11454
|
+
var VALIDATIONS_NAME_EXISTING = 'This name already exists. Choose another name.';
|
|
11455
|
+
var VALIDATIONS_SERVICE_EXISTING = 'URL already exists.';
|
|
11456
|
+
var VALIDATIONS_SERVICE_VALID_URL = 'Not a valid URL.';
|
|
11457
|
+
var VALIDATIONS_REQUEST_FAILED = 'Download failed. Check the URL.';
|
|
11458
|
+
var validateServiceName = function validateServiceName(value, services) {
|
|
11459
|
+
var ownServiceName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
11460
|
+
var serviceName = value === null || value === void 0 ? void 0 : value.toLowerCase();
|
|
11461
|
+
var foundName = Object.keys(services).find(function (serviceId) {
|
|
11462
|
+
return services[serviceId].serviceName.toLowerCase() === serviceName && serviceName !== ownServiceName.toLocaleLowerCase();
|
|
11463
|
+
});
|
|
11464
|
+
return foundName === undefined ? true : VALIDATIONS_NAME_EXISTING;
|
|
11465
|
+
};
|
|
11466
|
+
|
|
11467
|
+
var isValidUrl = function isValidUrl(url) {
|
|
11468
|
+
if (url === '' || url === null || typeof url === 'undefined') {
|
|
11469
|
+
return false;
|
|
11470
|
+
}
|
|
11471
|
+
|
|
11472
|
+
var matcher = /^(?:\w+:)?\/\/([^\s.]+\.\S{2}|[0-9a-zA-Z]+[:?\d]*)\S*$/;
|
|
11473
|
+
|
|
11474
|
+
if (!matcher.test(url)) {
|
|
11475
|
+
return false;
|
|
11476
|
+
}
|
|
11477
|
+
|
|
11478
|
+
return true;
|
|
11479
|
+
};
|
|
11480
|
+
|
|
11481
|
+
var validateServiceUrl = function validateServiceUrl(value, services) {
|
|
11482
|
+
var serviceUrl = value; // validate valid url
|
|
11483
|
+
|
|
11484
|
+
var isServiceUrlValid = isValidUrl(serviceUrl);
|
|
11485
|
+
|
|
11486
|
+
if (!isServiceUrlValid) {
|
|
11487
|
+
return VALIDATIONS_SERVICE_VALID_URL;
|
|
11488
|
+
} // check url existing
|
|
11489
|
+
|
|
11490
|
+
|
|
11491
|
+
var foundUrl = Object.keys(services).find(function (serviceId) {
|
|
11492
|
+
return services[serviceId].serviceUrl === serviceUrl;
|
|
11493
|
+
});
|
|
11494
|
+
|
|
11495
|
+
if (foundUrl) {
|
|
11496
|
+
return VALIDATIONS_SERVICE_EXISTING;
|
|
11497
|
+
}
|
|
11498
|
+
|
|
11499
|
+
return true;
|
|
11500
|
+
};
|
|
11501
|
+
|
|
11502
|
+
var style$1 = {
|
|
11300
11503
|
textField: {
|
|
11301
|
-
width: '100%'
|
|
11302
|
-
|
|
11303
|
-
dialogContent: {
|
|
11304
|
-
padding: '8px 16px'
|
|
11305
|
-
},
|
|
11306
|
-
footerContent: {
|
|
11307
|
-
padding: '16px'
|
|
11504
|
+
width: '100%',
|
|
11505
|
+
marginBottom: 2
|
|
11308
11506
|
}
|
|
11309
11507
|
};
|
|
11310
11508
|
var ADD_HEADING = 'Add a new service';
|
|
11311
11509
|
var EDIT_HEADING = 'Edit service';
|
|
11312
11510
|
var SAVE_HEADING = 'Save service';
|
|
11511
|
+
var COPY_URL_MESSAGE = 'Service URL copied to clipboard';
|
|
11512
|
+
var getSuccesMessage = function getSuccesMessage(serviceName) {
|
|
11513
|
+
return "Service \"".concat(serviceName, "\" has been saved succesfully");
|
|
11514
|
+
};
|
|
11313
11515
|
|
|
11314
11516
|
var getTitleForVariant = function getTitleForVariant(variant) {
|
|
11315
11517
|
switch (variant) {
|
|
@@ -11319,109 +11521,130 @@ var getTitleForVariant = function getTitleForVariant(variant) {
|
|
|
11319
11521
|
case 'edit':
|
|
11320
11522
|
return EDIT_HEADING;
|
|
11321
11523
|
|
|
11322
|
-
|
|
11524
|
+
case 'save':
|
|
11323
11525
|
return SAVE_HEADING;
|
|
11526
|
+
|
|
11527
|
+
default:
|
|
11528
|
+
return 'Service';
|
|
11324
11529
|
}
|
|
11325
11530
|
};
|
|
11326
11531
|
|
|
11327
|
-
var
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
|
|
11331
|
-
|
|
11332
|
-
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
|
|
11532
|
+
var fields = {
|
|
11533
|
+
serviceUrl: {
|
|
11534
|
+
name: 'serviceUrl',
|
|
11535
|
+
label: 'This service refers to this URL'
|
|
11536
|
+
},
|
|
11537
|
+
serviceName: {
|
|
11538
|
+
name: 'serviceName',
|
|
11539
|
+
label: 'Service name'
|
|
11540
|
+
},
|
|
11541
|
+
serviceAbstracts: {
|
|
11542
|
+
name: 'serviceAbstracts',
|
|
11543
|
+
label: 'Abstracts'
|
|
11544
|
+
}
|
|
11545
|
+
};
|
|
11337
11546
|
|
|
11338
|
-
|
|
11339
|
-
|
|
11340
|
-
|
|
11341
|
-
|
|
11547
|
+
var InitialValidationsTrigger = function InitialValidationsTrigger(_ref) {
|
|
11548
|
+
var trigger = _ref.trigger,
|
|
11549
|
+
getValues = _ref.getValues,
|
|
11550
|
+
onValidField = _ref.onValidField;
|
|
11551
|
+
React.useEffect(function () {
|
|
11552
|
+
var value = getValues(fields.serviceUrl.name);
|
|
11342
11553
|
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
|
|
11347
|
-
|
|
11348
|
-
var _React$useState5 = React.useState(''),
|
|
11349
|
-
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
11350
|
-
_abstract = _React$useState6[0],
|
|
11351
|
-
setAbstract = _React$useState6[1];
|
|
11352
|
-
|
|
11353
|
-
var _React$useState7 = React.useState(false),
|
|
11354
|
-
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
11355
|
-
disableButton = _React$useState8[0],
|
|
11356
|
-
setDisableButton = _React$useState8[1];
|
|
11357
|
-
|
|
11358
|
-
var _React$useState9 = React.useState(false),
|
|
11359
|
-
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
11360
|
-
isLoading = _React$useState10[0],
|
|
11361
|
-
setIsLoading = _React$useState10[1];
|
|
11362
|
-
|
|
11363
|
-
var _React$useState11 = React.useState(false),
|
|
11364
|
-
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
11365
|
-
serviceNameHasError = _React$useState12[0],
|
|
11366
|
-
setServiceNameHasError = _React$useState12[1];
|
|
11554
|
+
if (value) {
|
|
11555
|
+
trigger(fields.serviceUrl.name).then(function (isValid) {
|
|
11556
|
+
return isValid && onValidField(value);
|
|
11557
|
+
});
|
|
11558
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11367
11559
|
|
|
11368
|
-
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
setServiceNameHelperText = _React$useState14[1];
|
|
11560
|
+
}, []);
|
|
11561
|
+
return null;
|
|
11562
|
+
};
|
|
11372
11563
|
|
|
11373
|
-
|
|
11374
|
-
|
|
11375
|
-
|
|
11376
|
-
|
|
11564
|
+
var ServicePopup = function ServicePopup(_ref2) {
|
|
11565
|
+
var servicePopupVariant = _ref2.servicePopupVariant,
|
|
11566
|
+
_ref2$hideBackdrop = _ref2.hideBackdrop,
|
|
11567
|
+
hideBackdrop = _ref2$hideBackdrop === void 0 ? false : _ref2$hideBackdrop,
|
|
11568
|
+
isOpen = _ref2.isOpen,
|
|
11569
|
+
closePopup = _ref2.closePopup,
|
|
11570
|
+
services = _ref2.services,
|
|
11571
|
+
serviceSetLayers = _ref2.serviceSetLayers,
|
|
11572
|
+
serviceUrl = _ref2.serviceUrl,
|
|
11573
|
+
serviceName = _ref2.serviceName,
|
|
11574
|
+
serviceAbstracts = _ref2.serviceAbstracts,
|
|
11575
|
+
_ref2$showSnackbar = _ref2.showSnackbar,
|
|
11576
|
+
showSnackbar = _ref2$showSnackbar === void 0 ? function () {} : _ref2$showSnackbar;
|
|
11577
|
+
|
|
11578
|
+
var _useFormContext = useFormContext(),
|
|
11579
|
+
reset = _useFormContext.reset,
|
|
11580
|
+
errors = _useFormContext.formState.errors,
|
|
11581
|
+
handleSubmit = _useFormContext.handleSubmit,
|
|
11582
|
+
setError = _useFormContext.setError,
|
|
11583
|
+
clearErrors = _useFormContext.clearErrors,
|
|
11584
|
+
watch = _useFormContext.watch,
|
|
11585
|
+
trigger = _useFormContext.trigger,
|
|
11586
|
+
getValues = _useFormContext.getValues,
|
|
11587
|
+
setValue = _useFormContext.setValue;
|
|
11377
11588
|
|
|
11378
|
-
var _React$
|
|
11379
|
-
_React$
|
|
11380
|
-
|
|
11381
|
-
|
|
11589
|
+
var _React$useState = React.useState(false),
|
|
11590
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
11591
|
+
isLoading = _React$useState2[0],
|
|
11592
|
+
setIsLoading = _React$useState2[1];
|
|
11382
11593
|
|
|
11383
|
-
|
|
11384
|
-
|
|
11594
|
+
var fetchServiceData = function fetchServiceData(newServiceUrl) {
|
|
11595
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
11596
|
+
var service;
|
|
11597
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
11598
|
+
while (1) {
|
|
11599
|
+
switch (_context.prev = _context.next) {
|
|
11600
|
+
case 0:
|
|
11601
|
+
_context.prev = 0;
|
|
11602
|
+
setIsLoading(true);
|
|
11603
|
+
_context.next = 4;
|
|
11604
|
+
return getLayersFromService(newServiceUrl);
|
|
11385
11605
|
|
|
11386
|
-
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11606
|
+
case 4:
|
|
11607
|
+
service = WMGetServiceFromStore(newServiceUrl);
|
|
11608
|
+
setValue(fields.serviceName.name, service.title);
|
|
11609
|
+
setValue(fields.serviceAbstracts.name, service["abstract"]);
|
|
11610
|
+
setIsLoading(false);
|
|
11611
|
+
_context.next = 14;
|
|
11612
|
+
break;
|
|
11390
11613
|
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11394
|
-
|
|
11614
|
+
case 10:
|
|
11615
|
+
_context.prev = 10;
|
|
11616
|
+
_context.t0 = _context["catch"](0);
|
|
11617
|
+
setIsLoading(false);
|
|
11618
|
+
setError(fields.serviceUrl.name, {
|
|
11619
|
+
message: VALIDATIONS_REQUEST_FAILED,
|
|
11620
|
+
type: 'SYSTEM'
|
|
11621
|
+
});
|
|
11395
11622
|
|
|
11396
|
-
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11400
|
-
|
|
11623
|
+
case 14:
|
|
11624
|
+
case "end":
|
|
11625
|
+
return _context.stop();
|
|
11626
|
+
}
|
|
11627
|
+
}
|
|
11628
|
+
}, _callee, null, [[0, 10]]);
|
|
11629
|
+
}));
|
|
11401
11630
|
};
|
|
11402
11631
|
|
|
11403
|
-
var addNewService = function addNewService() {
|
|
11404
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function
|
|
11632
|
+
var addNewService = function addNewService(formValues) {
|
|
11633
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
11405
11634
|
var layers, serviceLayers, _iterator, _step, object, service;
|
|
11406
11635
|
|
|
11407
|
-
return regeneratorRuntime.wrap(function
|
|
11636
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
11408
11637
|
while (1) {
|
|
11409
|
-
switch (
|
|
11638
|
+
switch (_context2.prev = _context2.next) {
|
|
11410
11639
|
case 0:
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
if (!validateServiceUrl(serviceUrl)) {
|
|
11414
|
-
_context.next = 15;
|
|
11415
|
-
break;
|
|
11416
|
-
}
|
|
11417
|
-
|
|
11640
|
+
clearErrors(fields.serviceUrl.name);
|
|
11418
11641
|
setIsLoading(true);
|
|
11419
|
-
|
|
11420
|
-
|
|
11421
|
-
return getLayersFromService(serviceUrl);
|
|
11642
|
+
_context2.prev = 2;
|
|
11643
|
+
_context2.next = 5;
|
|
11644
|
+
return getLayersFromService(formValues.serviceUrl);
|
|
11422
11645
|
|
|
11423
|
-
case
|
|
11424
|
-
layers =
|
|
11646
|
+
case 5:
|
|
11647
|
+
layers = _context2.sent;
|
|
11425
11648
|
|
|
11426
11649
|
if (layers.children) {
|
|
11427
11650
|
serviceLayers = [];
|
|
@@ -11437,7 +11660,9 @@ var ServicePopup = function ServicePopup(_ref) {
|
|
|
11437
11660
|
path: object.path,
|
|
11438
11661
|
keywords: object.keywords ? object.keywords : [],
|
|
11439
11662
|
"abstract": object["abstract"] ? object["abstract"] : '',
|
|
11440
|
-
styles: object.styles ? object.styles : []
|
|
11663
|
+
styles: object.styles ? object.styles : [],
|
|
11664
|
+
dimensions: object.dimensions || [],
|
|
11665
|
+
geographicBoundingBox: object.geographicBoundingBox || null
|
|
11441
11666
|
});
|
|
11442
11667
|
}
|
|
11443
11668
|
} catch (err) {
|
|
@@ -11446,197 +11671,251 @@ var ServicePopup = function ServicePopup(_ref) {
|
|
|
11446
11671
|
_iterator.f();
|
|
11447
11672
|
}
|
|
11448
11673
|
|
|
11449
|
-
service = WMGetServiceFromStore(serviceUrl);
|
|
11674
|
+
service = WMGetServiceFromStore(formValues.serviceUrl);
|
|
11450
11675
|
serviceSetLayers({
|
|
11451
11676
|
id: service.id,
|
|
11452
|
-
name: serviceName,
|
|
11453
|
-
serviceUrl: serviceUrl,
|
|
11677
|
+
name: formValues.serviceName,
|
|
11678
|
+
serviceUrl: formValues.serviceUrl,
|
|
11679
|
+
"abstract": formValues.serviceAbstracts,
|
|
11454
11680
|
layers: serviceLayers,
|
|
11455
11681
|
isUserAddedService: true
|
|
11456
11682
|
});
|
|
11457
11683
|
setIsLoading(false);
|
|
11458
|
-
|
|
11684
|
+
showSnackbar(getSuccesMessage(formValues.serviceName));
|
|
11685
|
+
closePopup();
|
|
11459
11686
|
}
|
|
11460
11687
|
|
|
11461
|
-
|
|
11688
|
+
_context2.next = 13;
|
|
11462
11689
|
break;
|
|
11463
11690
|
|
|
11464
|
-
case
|
|
11465
|
-
|
|
11466
|
-
|
|
11691
|
+
case 9:
|
|
11692
|
+
_context2.prev = 9;
|
|
11693
|
+
_context2.t0 = _context2["catch"](2);
|
|
11467
11694
|
setIsLoading(false);
|
|
11468
|
-
|
|
11469
|
-
|
|
11695
|
+
setError(fields.serviceUrl.name, {
|
|
11696
|
+
message: VALIDATIONS_REQUEST_FAILED,
|
|
11697
|
+
type: 'SYSTEM'
|
|
11698
|
+
});
|
|
11470
11699
|
|
|
11471
|
-
case
|
|
11700
|
+
case 13:
|
|
11472
11701
|
case "end":
|
|
11473
|
-
return
|
|
11702
|
+
return _context2.stop();
|
|
11474
11703
|
}
|
|
11475
11704
|
}
|
|
11476
|
-
},
|
|
11705
|
+
}, _callee2, null, [[2, 9]]);
|
|
11477
11706
|
}));
|
|
11478
11707
|
};
|
|
11479
11708
|
|
|
11480
|
-
var
|
|
11481
|
-
|
|
11482
|
-
var foundName = Object.keys(services).find(function (serviceId) {
|
|
11483
|
-
return services[serviceId].serviceName.toLowerCase() === (serviceName === null || serviceName === void 0 ? void 0 : serviceName.toLowerCase());
|
|
11484
|
-
});
|
|
11485
|
-
return foundName !== undefined;
|
|
11486
|
-
}
|
|
11487
|
-
|
|
11488
|
-
return false;
|
|
11709
|
+
var onValidateServiceUrl = function onValidateServiceUrl(value) {
|
|
11710
|
+
return validateServiceUrl(value, services);
|
|
11489
11711
|
};
|
|
11490
11712
|
|
|
11491
|
-
var
|
|
11492
|
-
if (
|
|
11493
|
-
|
|
11494
|
-
return services[serviceId].serviceUrl === serviceUrl;
|
|
11495
|
-
});
|
|
11496
|
-
return foundUrl !== undefined;
|
|
11713
|
+
var onFocusServiceUrl = function onFocusServiceUrl() {
|
|
11714
|
+
if (!errors[fields.serviceUrl.name]) {
|
|
11715
|
+
trigger(fields.serviceUrl.name);
|
|
11497
11716
|
}
|
|
11717
|
+
};
|
|
11498
11718
|
|
|
11499
|
-
|
|
11500
|
-
|
|
11501
|
-
|
|
11719
|
+
var onBlurServiceUrl = function onBlurServiceUrl() {
|
|
11720
|
+
if (!errors[fields.serviceUrl.name]) {
|
|
11721
|
+
fetchServiceData(getValues(fields.serviceUrl.name));
|
|
11722
|
+
}
|
|
11723
|
+
};
|
|
11502
11724
|
|
|
11503
|
-
|
|
11504
|
-
|
|
11505
|
-
|
|
11725
|
+
var onValidateServiceName = function onValidateServiceName(value) {
|
|
11726
|
+
return validateServiceName(value, services, serviceName);
|
|
11727
|
+
};
|
|
11506
11728
|
|
|
11507
|
-
|
|
11508
|
-
|
|
11509
|
-
|
|
11510
|
-
|
|
11511
|
-
|
|
11512
|
-
setServiceNameHelperText('');
|
|
11513
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11729
|
+
var getFormAreRequiredFieldsEmpty = function getFormAreRequiredFieldsEmpty() {
|
|
11730
|
+
var serviceNameField = watch(fields.serviceName.name);
|
|
11731
|
+
var serviceUrlField = watch(fields.serviceUrl.name);
|
|
11732
|
+
return serviceNameField === '' || serviceNameField === undefined || serviceUrlField === '' || serviceUrlField === undefined;
|
|
11733
|
+
};
|
|
11514
11734
|
|
|
11515
|
-
|
|
11735
|
+
var getFormHasformErrors = function getFormHasformErrors() {
|
|
11736
|
+
var totalErrors = Object.keys(errors).length;
|
|
11516
11737
|
|
|
11517
|
-
|
|
11518
|
-
|
|
11519
|
-
|
|
11520
|
-
|
|
11521
|
-
|
|
11522
|
-
setServiceUrlHelperText('Error: Not a valid URL.');
|
|
11523
|
-
} else if (UrlInRedux()) {
|
|
11524
|
-
setServiceUrlHasError(true);
|
|
11525
|
-
setServiceUrlHelperText('Error: URL already exists.');
|
|
11526
|
-
} else {
|
|
11527
|
-
setServiceUrlHasError(false);
|
|
11528
|
-
setServiceNameHelperText('');
|
|
11529
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11738
|
+
if (totalErrors > 0) {
|
|
11739
|
+
// prevent SYSTEM error types from blocking the save button
|
|
11740
|
+
if (totalErrors === 1 && errors.serviceUrl) {
|
|
11741
|
+
return errors.serviceUrl.type !== undefined && errors.serviceUrl.type !== 'SYSTEM';
|
|
11742
|
+
}
|
|
11530
11743
|
|
|
11531
|
-
|
|
11744
|
+
return true;
|
|
11745
|
+
}
|
|
11532
11746
|
|
|
11533
|
-
|
|
11534
|
-
if (!serviceNameHasError && !serviceUrlHasError && validateServiceUrl(serviceUrl) && serviceName.length > 0) {
|
|
11535
|
-
setDisableButton(false);
|
|
11536
|
-
} else setDisableButton(true);
|
|
11537
|
-
}, [serviceNameHasError, serviceUrlHasError, serviceName, serviceUrl]);
|
|
11538
|
-
|
|
11539
|
-
var closePopupAndResetState = function closePopupAndResetState() {
|
|
11540
|
-
setServiceName('');
|
|
11541
|
-
setServiceUrl('');
|
|
11542
|
-
setAbstract('');
|
|
11543
|
-
closePopup();
|
|
11747
|
+
return false;
|
|
11544
11748
|
};
|
|
11545
11749
|
|
|
11750
|
+
var isSubmitDisabled = getFormHasformErrors() || getFormAreRequiredFieldsEmpty();
|
|
11751
|
+
React.useEffect(function () {
|
|
11752
|
+
reset({
|
|
11753
|
+
serviceUrl: serviceUrl,
|
|
11754
|
+
serviceName: serviceName,
|
|
11755
|
+
serviceAbstracts: serviceAbstracts
|
|
11756
|
+
});
|
|
11757
|
+
}, [serviceUrl, serviceName, serviceAbstracts, reset]);
|
|
11758
|
+
var isShowPopup = servicePopupVariant === 'show';
|
|
11759
|
+
var isServiceUrlDisabled = isShowPopup || servicePopupVariant === 'edit';
|
|
11546
11760
|
return /*#__PURE__*/React.createElement(Dialog, {
|
|
11547
11761
|
open: isOpen,
|
|
11548
11762
|
hideBackdrop: hideBackdrop,
|
|
11549
11763
|
fullWidth: true,
|
|
11550
11764
|
maxWidth: "xs",
|
|
11551
11765
|
"data-testid": "servicePopup",
|
|
11552
|
-
sx:
|
|
11766
|
+
sx: {
|
|
11767
|
+
'& .MuiDialog-paper': {
|
|
11768
|
+
backgroundColor: "geowebColors.cards.cardContainer",
|
|
11769
|
+
maxWidth: 458
|
|
11770
|
+
}
|
|
11771
|
+
}
|
|
11772
|
+
}, /*#__PURE__*/React.createElement("form", {
|
|
11773
|
+
onSubmit: handleSubmit(addNewService)
|
|
11553
11774
|
}, /*#__PURE__*/React.createElement(DialogTitle, {
|
|
11554
|
-
sx:
|
|
11775
|
+
sx: {
|
|
11776
|
+
alignItems: 'center',
|
|
11777
|
+
padding: '16px 16px 24px 16px'
|
|
11778
|
+
}
|
|
11779
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
11780
|
+
sx: {
|
|
11781
|
+
display: 'flex',
|
|
11782
|
+
justifyContent: 'space-between',
|
|
11783
|
+
alignItems: 'center',
|
|
11784
|
+
' span': {
|
|
11785
|
+
fontSize: '1rem',
|
|
11786
|
+
fontWeight: 500,
|
|
11787
|
+
fontStyle: 'normal',
|
|
11788
|
+
lineHeight: '1.38',
|
|
11789
|
+
letterSpacing: '0.12px'
|
|
11790
|
+
}
|
|
11791
|
+
}
|
|
11555
11792
|
}, /*#__PURE__*/React.createElement(Typography, {
|
|
11556
11793
|
variant: "h5",
|
|
11557
11794
|
component: "span"
|
|
11558
11795
|
}, getTitleForVariant(servicePopupVariant)), /*#__PURE__*/React.createElement(IconButton, {
|
|
11796
|
+
"aria-label": "close",
|
|
11559
11797
|
size: "small",
|
|
11560
|
-
onClick:
|
|
11798
|
+
onClick: closePopup,
|
|
11561
11799
|
"data-testid": "closePopupButtonCross",
|
|
11562
|
-
sx:
|
|
11563
|
-
|
|
11564
|
-
|
|
11565
|
-
|
|
11800
|
+
sx: {
|
|
11801
|
+
color: 'geowebColors.captions.captionDisabled.color',
|
|
11802
|
+
marginTop: 'auto',
|
|
11803
|
+
marginBottom: 'auto'
|
|
11804
|
+
}
|
|
11805
|
+
}, /*#__PURE__*/React.createElement(Close, null))), isLoading && /*#__PURE__*/React.createElement(Box, {
|
|
11806
|
+
sx: {
|
|
11807
|
+
position: 'relative'
|
|
11808
|
+
}
|
|
11809
|
+
}, /*#__PURE__*/React.createElement(LinearProgress, {
|
|
11810
|
+
"data-testid": "loadingIndicator",
|
|
11811
|
+
color: "secondary",
|
|
11812
|
+
sx: {
|
|
11813
|
+
position: 'absolute',
|
|
11814
|
+
width: '100%',
|
|
11815
|
+
top: 8
|
|
11816
|
+
}
|
|
11817
|
+
}))), /*#__PURE__*/React.createElement(DialogContent, {
|
|
11818
|
+
sx: {
|
|
11819
|
+
padding: '8px 16px'
|
|
11820
|
+
}
|
|
11821
|
+
}, /*#__PURE__*/React.createElement(ReactHookFormTextField, {
|
|
11822
|
+
name: fields.serviceUrl.name,
|
|
11823
|
+
label: fields.serviceUrl.label,
|
|
11824
|
+
onFocus: onFocusServiceUrl,
|
|
11825
|
+
onBlur: onBlurServiceUrl,
|
|
11566
11826
|
sx: style$1.textField,
|
|
11567
|
-
|
|
11568
|
-
|
|
11569
|
-
|
|
11570
|
-
|
|
11827
|
+
rules: {
|
|
11828
|
+
required: true,
|
|
11829
|
+
validate: Object.assign({}, !isServiceUrlDisabled && {
|
|
11830
|
+
onValidateServiceUrl: onValidateServiceUrl
|
|
11831
|
+
})
|
|
11571
11832
|
},
|
|
11572
|
-
|
|
11573
|
-
|
|
11574
|
-
|
|
11833
|
+
disabled: isServiceUrlDisabled || isLoading,
|
|
11834
|
+
InputProps: {
|
|
11835
|
+
readOnly: isShowPopup,
|
|
11836
|
+
disableUnderline: isShowPopup,
|
|
11837
|
+
endAdornment: isShowPopup && /*#__PURE__*/React.createElement(InputAdornment, {
|
|
11838
|
+
position: "end"
|
|
11839
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
11840
|
+
"aria-label": "copy url",
|
|
11841
|
+
onClick: function onClick() {
|
|
11842
|
+
navigator.clipboard.writeText(serviceUrl);
|
|
11843
|
+
showSnackbar(COPY_URL_MESSAGE);
|
|
11844
|
+
}
|
|
11845
|
+
}, /*#__PURE__*/React.createElement(Copy, null)))
|
|
11575
11846
|
},
|
|
11576
|
-
|
|
11577
|
-
|
|
11578
|
-
|
|
11579
|
-
|
|
11580
|
-
|
|
11581
|
-
|
|
11582
|
-
|
|
11583
|
-
|
|
11584
|
-
|
|
11585
|
-
return setServiceUrl(event.target.value);
|
|
11847
|
+
defaultValue: serviceUrl
|
|
11848
|
+
}), /*#__PURE__*/React.createElement(ReactHookFormTextField, {
|
|
11849
|
+
name: fields.serviceName.name,
|
|
11850
|
+
label: fields.serviceName.label,
|
|
11851
|
+
rules: {
|
|
11852
|
+
required: true,
|
|
11853
|
+
validate: {
|
|
11854
|
+
onValidateServiceName: onValidateServiceName
|
|
11855
|
+
}
|
|
11586
11856
|
},
|
|
11587
|
-
|
|
11588
|
-
|
|
11589
|
-
|
|
11590
|
-
|
|
11857
|
+
disabled: isShowPopup || isLoading,
|
|
11858
|
+
InputProps: {
|
|
11859
|
+
readOnly: isShowPopup,
|
|
11860
|
+
disableUnderline: isShowPopup
|
|
11591
11861
|
},
|
|
11592
|
-
error: serviceUrlHasError,
|
|
11593
|
-
helperText: serviceUrlHelperText
|
|
11594
|
-
})), /*#__PURE__*/React.createElement(DialogContent, {
|
|
11595
|
-
sx: style$1.dialogContent
|
|
11596
|
-
}, /*#__PURE__*/React.createElement(TextField, {
|
|
11597
11862
|
sx: style$1.textField,
|
|
11598
|
-
|
|
11863
|
+
defaultValue: serviceName
|
|
11864
|
+
}), /*#__PURE__*/React.createElement(ReactHookFormTextField, {
|
|
11599
11865
|
multiline: true,
|
|
11600
11866
|
rows: 4,
|
|
11601
|
-
|
|
11602
|
-
|
|
11603
|
-
|
|
11604
|
-
|
|
11867
|
+
name: fields.serviceAbstracts.name,
|
|
11868
|
+
label: fields.serviceAbstracts.label,
|
|
11869
|
+
disabled: isShowPopup || isLoading,
|
|
11870
|
+
rules: {},
|
|
11871
|
+
InputProps: {
|
|
11872
|
+
readOnly: isShowPopup,
|
|
11873
|
+
disableUnderline: isShowPopup
|
|
11605
11874
|
},
|
|
11606
|
-
|
|
11607
|
-
|
|
11608
|
-
|
|
11875
|
+
helperText: !isShowPopup && 'Short description of what this service does',
|
|
11876
|
+
sx: style$1.textField,
|
|
11877
|
+
defaultValue: ""
|
|
11878
|
+
}), !isServiceUrlDisabled && /*#__PURE__*/React.createElement(InitialValidationsTrigger, {
|
|
11879
|
+
trigger: trigger,
|
|
11880
|
+
getValues: getValues,
|
|
11881
|
+
onValidField: fetchServiceData
|
|
11609
11882
|
})), /*#__PURE__*/React.createElement(DialogActions, {
|
|
11610
|
-
sx:
|
|
11611
|
-
|
|
11612
|
-
|
|
11883
|
+
sx: {
|
|
11884
|
+
padding: 2
|
|
11885
|
+
}
|
|
11886
|
+
}, isShowPopup ? /*#__PURE__*/React.createElement(Button, {
|
|
11887
|
+
onClick: function onClick() {
|
|
11888
|
+
return closePopup();
|
|
11889
|
+
},
|
|
11890
|
+
variant: "tertiary",
|
|
11891
|
+
sx: {
|
|
11892
|
+
width: '117px'
|
|
11893
|
+
}
|
|
11894
|
+
}, "close") : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
|
|
11895
|
+
onClick: closePopup,
|
|
11613
11896
|
"data-testid": "closePopupButtonCancel",
|
|
11614
11897
|
variant: "tertiary",
|
|
11615
11898
|
sx: {
|
|
11616
11899
|
width: '117px'
|
|
11617
11900
|
}
|
|
11618
|
-
}, "cancel"),
|
|
11901
|
+
}, "cancel"), /*#__PURE__*/React.createElement(Button, {
|
|
11902
|
+
type: "submit",
|
|
11619
11903
|
variant: "primary",
|
|
11620
|
-
disabled:
|
|
11621
|
-
onClick: addNewService,
|
|
11904
|
+
disabled: isSubmitDisabled || isLoading,
|
|
11622
11905
|
"data-testid": "saveServiceButton",
|
|
11623
11906
|
sx: {
|
|
11624
11907
|
width: '117px',
|
|
11625
11908
|
marginLeft: '16px!important'
|
|
11626
11909
|
}
|
|
11627
|
-
}, "save")
|
|
11628
|
-
|
|
11629
|
-
|
|
11630
|
-
|
|
11631
|
-
|
|
11632
|
-
|
|
11633
|
-
|
|
11634
|
-
|
|
11635
|
-
|
|
11636
|
-
}
|
|
11637
|
-
}, /*#__PURE__*/React.createElement(CircularProgress, {
|
|
11638
|
-
size: 35
|
|
11639
|
-
}))));
|
|
11910
|
+
}, "save")))));
|
|
11911
|
+
};
|
|
11912
|
+
|
|
11913
|
+
var ServicePopupWrapper = function ServicePopupWrapper(_a) {
|
|
11914
|
+
var props = __rest(_a, []);
|
|
11915
|
+
|
|
11916
|
+
return /*#__PURE__*/React.createElement(ReactHookFormProvider, {
|
|
11917
|
+
options: defaultFormOptions
|
|
11918
|
+
}, /*#__PURE__*/React.createElement(ServicePopup, Object.assign({}, props)));
|
|
11640
11919
|
};
|
|
11641
11920
|
|
|
11642
11921
|
/* *
|
|
@@ -11670,74 +11949,28 @@ var ServicePopupConnect = function ServicePopupConnect(_ref) {
|
|
|
11670
11949
|
var serviceSetLayers = React__default.useCallback(function (payload) {
|
|
11671
11950
|
dispatch(serviceActions.serviceSetLayers(payload));
|
|
11672
11951
|
}, [dispatch]);
|
|
11673
|
-
|
|
11952
|
+
var activeService = useSelector(function (store) {
|
|
11953
|
+
return getActiveServiceById(store, serviceId);
|
|
11954
|
+
});
|
|
11955
|
+
var showSnackbar = React__default.useCallback(function (message) {
|
|
11956
|
+
dispatch(snackbarActions.openSnackbar({
|
|
11957
|
+
message: message
|
|
11958
|
+
}));
|
|
11959
|
+
}, [dispatch]);
|
|
11960
|
+
return /*#__PURE__*/React__default.createElement(ServicePopupWrapper, {
|
|
11674
11961
|
servicePopupVariant: servicePopupVariant,
|
|
11675
11962
|
hideBackdrop: hideBackdrop,
|
|
11676
11963
|
isOpen: isOpen,
|
|
11677
11964
|
closePopup: closePopup,
|
|
11678
|
-
serviceId: serviceId,
|
|
11679
11965
|
services: services,
|
|
11680
11966
|
serviceSetLayers: serviceSetLayers,
|
|
11681
|
-
url:
|
|
11967
|
+
serviceUrl: url || (activeService === null || activeService === void 0 ? void 0 : activeService.serviceUrl),
|
|
11968
|
+
serviceName: activeService === null || activeService === void 0 ? void 0 : activeService.serviceName,
|
|
11969
|
+
serviceAbstracts: activeService === null || activeService === void 0 ? void 0 : activeService["abstract"],
|
|
11970
|
+
showSnackbar: showSnackbar
|
|
11682
11971
|
});
|
|
11683
11972
|
};
|
|
11684
11973
|
|
|
11685
|
-
var isURL = function isURL(string) {
|
|
11686
|
-
return /^https?:\/\//.test(string);
|
|
11687
|
-
};
|
|
11688
|
-
|
|
11689
|
-
var SearchFieldButtonContainer = function SearchFieldButtonContainer(_ref) {
|
|
11690
|
-
var localSearchString = _ref.localSearchString,
|
|
11691
|
-
onClickClear = _ref.onClickClear;
|
|
11692
|
-
|
|
11693
|
-
var _React$useState = React__default.useState(false),
|
|
11694
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
11695
|
-
isPopupOpen = _React$useState2[0],
|
|
11696
|
-
setPopupOpen = _React$useState2[1];
|
|
11697
|
-
|
|
11698
|
-
React__default.useEffect(function () {
|
|
11699
|
-
if (isPopupOpen === false) {
|
|
11700
|
-
onClickClear();
|
|
11701
|
-
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11702
|
-
|
|
11703
|
-
}, [isPopupOpen]);
|
|
11704
|
-
var ClearButton = /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
11705
|
-
title: "Clear",
|
|
11706
|
-
placement: "top"
|
|
11707
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
11708
|
-
edge: "end",
|
|
11709
|
-
onClick: function onClick() {
|
|
11710
|
-
onClickClear();
|
|
11711
|
-
},
|
|
11712
|
-
size: "large"
|
|
11713
|
-
}, /*#__PURE__*/React__default.createElement(Clear, null)));
|
|
11714
|
-
if (isURL(localSearchString)) return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
|
|
11715
|
-
style: {
|
|
11716
|
-
marginRight: '15px'
|
|
11717
|
-
}
|
|
11718
|
-
}, ClearButton), /*#__PURE__*/React__default.createElement(Button, {
|
|
11719
|
-
variant: "tertiary",
|
|
11720
|
-
onClick: function onClick() {
|
|
11721
|
-
return setPopupOpen(true);
|
|
11722
|
-
}
|
|
11723
|
-
}, "Save"), /*#__PURE__*/React__default.createElement(ServicePopupConnect, {
|
|
11724
|
-
servicePopupVariant: "save",
|
|
11725
|
-
isOpen: isPopupOpen,
|
|
11726
|
-
closePopup: function closePopup() {
|
|
11727
|
-
return setPopupOpen(false);
|
|
11728
|
-
},
|
|
11729
|
-
url: localSearchString
|
|
11730
|
-
}));
|
|
11731
|
-
if (localSearchString) return ClearButton;
|
|
11732
|
-
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
11733
|
-
title: "Search",
|
|
11734
|
-
placement: "top"
|
|
11735
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
11736
|
-
edge: "end",
|
|
11737
|
-
size: "large"
|
|
11738
|
-
}, /*#__PURE__*/React__default.createElement(Search, null)));
|
|
11739
|
-
};
|
|
11740
|
-
|
|
11741
11974
|
var SearchField = function SearchField(_ref) {
|
|
11742
11975
|
var searchFilter = _ref.searchFilter,
|
|
11743
11976
|
setSearchFilter = _ref.setSearchFilter;
|
|
@@ -11745,13 +11978,18 @@ var SearchField = function SearchField(_ref) {
|
|
|
11745
11978
|
var _React$useState = React.useState(''),
|
|
11746
11979
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
11747
11980
|
localSearchString = _React$useState2[0],
|
|
11748
|
-
setLocalSearchString = _React$useState2[1];
|
|
11981
|
+
setLocalSearchString = _React$useState2[1];
|
|
11749
11982
|
|
|
11983
|
+
var _React$useState3 = React.useState(false),
|
|
11984
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
11985
|
+
urlIsValid = _React$useState4[0],
|
|
11986
|
+
setUrlIsValid = _React$useState4[1];
|
|
11987
|
+
|
|
11988
|
+
var _React$useState5 = React.useState(false),
|
|
11989
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
11990
|
+
popupIsOpen = _React$useState6[0],
|
|
11991
|
+
setPopupIsOpen = _React$useState6[1]; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11750
11992
|
|
|
11751
|
-
React.useEffect(function () {
|
|
11752
|
-
if (isURL(localSearchString)) return;
|
|
11753
|
-
setLocalSearchString(searchFilter); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11754
|
-
}, [searchFilter]); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11755
11993
|
|
|
11756
11994
|
var setSearchFilterDebounced = React.useCallback(debounce(setSearchFilter, 300), []);
|
|
11757
11995
|
|
|
@@ -11760,7 +11998,33 @@ var SearchField = function SearchField(_ref) {
|
|
|
11760
11998
|
if (!isURL(text)) setSearchFilterDebounced(text);else if (searchFilter) setSearchFilterDebounced('');
|
|
11761
11999
|
};
|
|
11762
12000
|
|
|
11763
|
-
|
|
12001
|
+
React.useEffect(function () {
|
|
12002
|
+
if (isURL(localSearchString)) {
|
|
12003
|
+
setUrlIsValid(true);
|
|
12004
|
+
}
|
|
12005
|
+
}, [localSearchString]);
|
|
12006
|
+
React.useEffect(function () {
|
|
12007
|
+
var keyDownHandler = function keyDownHandler(event) {
|
|
12008
|
+
if (event.key === 'Enter') {
|
|
12009
|
+
event.preventDefault();
|
|
12010
|
+
|
|
12011
|
+
if (urlIsValid) {
|
|
12012
|
+
setPopupIsOpen(true);
|
|
12013
|
+
}
|
|
12014
|
+
}
|
|
12015
|
+
};
|
|
12016
|
+
|
|
12017
|
+
document.addEventListener('keydown', keyDownHandler);
|
|
12018
|
+
return function () {
|
|
12019
|
+
document.removeEventListener('keydown', keyDownHandler);
|
|
12020
|
+
};
|
|
12021
|
+
}, [urlIsValid]); // mirror store unless typing a URL
|
|
12022
|
+
|
|
12023
|
+
React.useEffect(function () {
|
|
12024
|
+
if (isURL(localSearchString)) return;
|
|
12025
|
+
setLocalSearchString(searchFilter); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12026
|
+
}, [searchFilter]);
|
|
12027
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextField, {
|
|
11764
12028
|
variant: "filled",
|
|
11765
12029
|
label: "Search through services or enter a service URL",
|
|
11766
12030
|
value: localSearchString,
|
|
@@ -11773,6 +12037,7 @@ var SearchField = function SearchField(_ref) {
|
|
|
11773
12037
|
endAdornment: /*#__PURE__*/React.createElement(InputAdornment, {
|
|
11774
12038
|
position: "end"
|
|
11775
12039
|
}, /*#__PURE__*/React.createElement(SearchFieldButtonContainer, {
|
|
12040
|
+
setPopupIsOpen: setPopupIsOpen,
|
|
11776
12041
|
localSearchString: localSearchString,
|
|
11777
12042
|
onClickClear: function onClickClear() {
|
|
11778
12043
|
setLocalSearchString('');
|
|
@@ -11780,7 +12045,259 @@ var SearchField = function SearchField(_ref) {
|
|
|
11780
12045
|
}
|
|
11781
12046
|
}))
|
|
11782
12047
|
}
|
|
12048
|
+
}), /*#__PURE__*/React.createElement(ServicePopupConnect, {
|
|
12049
|
+
servicePopupVariant: "save",
|
|
12050
|
+
isOpen: popupIsOpen,
|
|
12051
|
+
closePopup: function closePopup() {
|
|
12052
|
+
setPopupIsOpen(false);
|
|
12053
|
+
setLocalSearchString('');
|
|
12054
|
+
},
|
|
12055
|
+
url: localSearchString
|
|
12056
|
+
}));
|
|
12057
|
+
};
|
|
12058
|
+
|
|
12059
|
+
/* *
|
|
12060
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12061
|
+
* you may not use this file except in compliance with the License.
|
|
12062
|
+
* You may obtain a copy of the License at
|
|
12063
|
+
*
|
|
12064
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12065
|
+
*
|
|
12066
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12067
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12068
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12069
|
+
* See the License for the specific language governing permissions and
|
|
12070
|
+
* limitations under the License.
|
|
12071
|
+
*
|
|
12072
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12073
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12074
|
+
* */
|
|
12075
|
+
|
|
12076
|
+
var SearchFieldConnect = function SearchFieldConnect() {
|
|
12077
|
+
var dispatch = useDispatch();
|
|
12078
|
+
var searchFilter = useSelector(function (store) {
|
|
12079
|
+
return getSearchFilter(store);
|
|
12080
|
+
});
|
|
12081
|
+
return /*#__PURE__*/React.createElement(SearchField, {
|
|
12082
|
+
setSearchFilter: function setSearchFilter(filterText) {
|
|
12083
|
+
dispatch(layerSelectActions.setSearchFilter({
|
|
12084
|
+
filterText: filterText
|
|
12085
|
+
}));
|
|
12086
|
+
},
|
|
12087
|
+
searchFilter: searchFilter
|
|
12088
|
+
});
|
|
12089
|
+
};
|
|
12090
|
+
|
|
12091
|
+
/* *
|
|
12092
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12093
|
+
* you may not use this file except in compliance with the License.
|
|
12094
|
+
* You may obtain a copy of the License at
|
|
12095
|
+
*
|
|
12096
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12097
|
+
*
|
|
12098
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12099
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12100
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12101
|
+
* See the License for the specific language governing permissions and
|
|
12102
|
+
* limitations under the License.
|
|
12103
|
+
*
|
|
12104
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12105
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12106
|
+
* */
|
|
12107
|
+
var filterLayersFromService = function filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString) {
|
|
12108
|
+
var mapStoreService = services[serviceId];
|
|
12109
|
+
if (!mapStoreService) return [];
|
|
12110
|
+
|
|
12111
|
+
if (searchString === '' && allFiltersActive) {
|
|
12112
|
+
return mapStoreService.layers.filter(function (layer) {
|
|
12113
|
+
return layer.leaf;
|
|
12114
|
+
});
|
|
12115
|
+
}
|
|
12116
|
+
|
|
12117
|
+
var searchStringArray = searchString.split(' ');
|
|
12118
|
+
return mapStoreService.layers.filter(function (layer) {
|
|
12119
|
+
return searchStringArray.every(function (search) {
|
|
12120
|
+
var _a, _b, _c;
|
|
12121
|
+
|
|
12122
|
+
var searchLowercase = search.toLowerCase();
|
|
12123
|
+
var layerFilterIds = layer.path.map(function (group) {
|
|
12124
|
+
return "group-".concat(group);
|
|
12125
|
+
}).concat(layer.keywords.map(function (keyword) {
|
|
12126
|
+
return "keyword-".concat(keyword);
|
|
12127
|
+
}));
|
|
12128
|
+
var isFilterInLayer = (layerFilterIds === null || layerFilterIds === void 0 ? void 0 : layerFilterIds.some(function (id) {
|
|
12129
|
+
return filterIds.includes(id);
|
|
12130
|
+
})) || allFiltersActive;
|
|
12131
|
+
var isSearchTextInLayerFilter = layerFilterIds === null || layerFilterIds === void 0 ? void 0 : layerFilterIds.some(function (filterId) {
|
|
12132
|
+
return filterId.toLowerCase().includes(searchLowercase);
|
|
12133
|
+
});
|
|
12134
|
+
var isSearchTextInLayerName = (_a = layer.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(searchLowercase);
|
|
12135
|
+
var isSearchTextInLayerText = (_b = layer.text) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(searchLowercase);
|
|
12136
|
+
var isSearchTextInLayerAbstract = (_c = layer["abstract"]) === null || _c === void 0 ? void 0 : _c.toLowerCase().includes(searchLowercase);
|
|
12137
|
+
var isSearchTextInServiceName = mapStoreService.name.toLowerCase().includes(searchLowercase);
|
|
12138
|
+
var isSearchTextInLayer = isSearchTextInLayerName || isSearchTextInLayerText || isSearchTextInLayerAbstract || isSearchTextInLayerFilter || isSearchTextInServiceName;
|
|
12139
|
+
return isFilterInLayer && isSearchTextInLayer;
|
|
12140
|
+
});
|
|
12141
|
+
}).filter(function (layer) {
|
|
12142
|
+
return layer.leaf;
|
|
12143
|
+
});
|
|
12144
|
+
};
|
|
12145
|
+
|
|
12146
|
+
/* *
|
|
12147
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12148
|
+
* you may not use this file except in compliance with the License.
|
|
12149
|
+
* You may obtain a copy of the License at
|
|
12150
|
+
*
|
|
12151
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12152
|
+
*
|
|
12153
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12154
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12155
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12156
|
+
* See the License for the specific language governing permissions and
|
|
12157
|
+
* limitations under the License.
|
|
12158
|
+
*
|
|
12159
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12160
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12161
|
+
* */
|
|
12162
|
+
|
|
12163
|
+
var LayerAddRemoveButton = function LayerAddRemoveButton(_ref) {
|
|
12164
|
+
var layer = _ref.layer,
|
|
12165
|
+
layerIndex = _ref.layerIndex,
|
|
12166
|
+
serviceUrl = _ref.serviceUrl,
|
|
12167
|
+
addLayer = _ref.addLayer,
|
|
12168
|
+
deleteLayer = _ref.deleteLayer,
|
|
12169
|
+
mapLayers = _ref.mapLayers;
|
|
12170
|
+
var foundLayer = mapLayers.find(function (lr) {
|
|
12171
|
+
return lr.name === layer.name && lr.service === serviceUrl;
|
|
12172
|
+
});
|
|
12173
|
+
return /*#__PURE__*/React.createElement(CustomToggleButton, {
|
|
12174
|
+
"data-testid": "layerAddRemoveButton-".concat(layer.name),
|
|
12175
|
+
onClick: function onClick() {
|
|
12176
|
+
!foundLayer ? addLayer({
|
|
12177
|
+
serviceUrl: serviceUrl,
|
|
12178
|
+
layerName: layer.name
|
|
12179
|
+
}) : deleteLayer({
|
|
12180
|
+
layerId: foundLayer.id,
|
|
12181
|
+
layerIndex: layerIndex
|
|
12182
|
+
});
|
|
12183
|
+
},
|
|
12184
|
+
selected: !!foundLayer,
|
|
12185
|
+
variant: "tool",
|
|
12186
|
+
fullWidth: true,
|
|
12187
|
+
sx: {
|
|
12188
|
+
fontSize: '12px'
|
|
12189
|
+
}
|
|
12190
|
+
}, !foundLayer ? 'Add' : 'Remove');
|
|
12191
|
+
};
|
|
12192
|
+
|
|
12193
|
+
/* *
|
|
12194
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12195
|
+
* you may not use this file except in compliance with the License.
|
|
12196
|
+
* You may obtain a copy of the License at
|
|
12197
|
+
*
|
|
12198
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12199
|
+
*
|
|
12200
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12201
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12202
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12203
|
+
* See the License for the specific language governing permissions and
|
|
12204
|
+
* limitations under the License.
|
|
12205
|
+
*
|
|
12206
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12207
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12208
|
+
* */
|
|
12209
|
+
|
|
12210
|
+
var LayerInfoButtonConnect = function LayerInfoButtonConnect(_ref) {
|
|
12211
|
+
var layer = _ref.layer,
|
|
12212
|
+
mapId = _ref.mapId,
|
|
12213
|
+
serviceName = _ref.serviceName,
|
|
12214
|
+
_ref$source = _ref.source,
|
|
12215
|
+
source = _ref$source === void 0 ? 'app' : _ref$source;
|
|
12216
|
+
var dispatch = useDispatch();
|
|
12217
|
+
var currentActiveMapId = useSelector(function (store) {
|
|
12218
|
+
return getDialogMapId(store, DialogTypes.LayerInfo);
|
|
12219
|
+
});
|
|
12220
|
+
var isOpenInStore = useSelector(function (store) {
|
|
12221
|
+
return getisDialogOpen(store, DialogTypes.LayerInfo);
|
|
11783
12222
|
});
|
|
12223
|
+
var currentLayerInfo = useSelector(function (store) {
|
|
12224
|
+
return getActiveLayerInfo(store);
|
|
12225
|
+
});
|
|
12226
|
+
var isActive = layer.name === (currentLayerInfo === null || currentLayerInfo === void 0 ? void 0 : currentLayerInfo.name) && serviceName === (currentLayerInfo === null || currentLayerInfo === void 0 ? void 0 : currentLayerInfo.serviceName);
|
|
12227
|
+
var toggleInfoDialog = React__default.useCallback(function () {
|
|
12228
|
+
dispatch(uiActions.setActiveMapIdForDialog({
|
|
12229
|
+
type: DialogTypes.LayerInfo,
|
|
12230
|
+
mapId: mapId,
|
|
12231
|
+
setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
|
|
12232
|
+
source: source
|
|
12233
|
+
}));
|
|
12234
|
+
}, [currentActiveMapId, dispatch, isOpenInStore, mapId, source]);
|
|
12235
|
+
var setActiveLayerInfo = React__default.useCallback(function () {
|
|
12236
|
+
dispatch(layerSelectActions.setActiveLayerInfo({
|
|
12237
|
+
layer: Object.assign(Object.assign({}, layer), {
|
|
12238
|
+
serviceName: serviceName
|
|
12239
|
+
})
|
|
12240
|
+
}));
|
|
12241
|
+
}, [dispatch, layer, serviceName]);
|
|
12242
|
+
|
|
12243
|
+
var onClick = function onClick() {
|
|
12244
|
+
if (isActive) {
|
|
12245
|
+
toggleInfoDialog();
|
|
12246
|
+
}
|
|
12247
|
+
|
|
12248
|
+
if (!isActive && isOpenInStore) {
|
|
12249
|
+
setActiveLayerInfo();
|
|
12250
|
+
}
|
|
12251
|
+
|
|
12252
|
+
if (!isActive && !isOpenInStore) {
|
|
12253
|
+
setActiveLayerInfo();
|
|
12254
|
+
toggleInfoDialog();
|
|
12255
|
+
}
|
|
12256
|
+
};
|
|
12257
|
+
|
|
12258
|
+
return /*#__PURE__*/React__default.createElement(ToolButton, {
|
|
12259
|
+
variant: "icon",
|
|
12260
|
+
active: isActive && isOpenInStore,
|
|
12261
|
+
onClick: onClick,
|
|
12262
|
+
id: "layerInfoButton",
|
|
12263
|
+
"aria-label": "layer info"
|
|
12264
|
+
}, /*#__PURE__*/React__default.createElement(Info, null));
|
|
12265
|
+
};
|
|
12266
|
+
|
|
12267
|
+
/* *
|
|
12268
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12269
|
+
* you may not use this file except in compliance with the License.
|
|
12270
|
+
* You may obtain a copy of the License at
|
|
12271
|
+
*
|
|
12272
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12273
|
+
*
|
|
12274
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12275
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12276
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12277
|
+
* See the License for the specific language governing permissions and
|
|
12278
|
+
* limitations under the License.
|
|
12279
|
+
*
|
|
12280
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12281
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12282
|
+
* */
|
|
12283
|
+
var textStyle$1 = {
|
|
12284
|
+
lineHeight: '20px',
|
|
12285
|
+
letterSpacing: '0.25px'
|
|
12286
|
+
};
|
|
12287
|
+
var textStyleWithMargin = Object.assign(Object.assign({}, textStyle$1), {
|
|
12288
|
+
marginBottom: 1
|
|
12289
|
+
});
|
|
12290
|
+
|
|
12291
|
+
var LayerInfoText = function LayerInfoText(_ref) {
|
|
12292
|
+
var label = _ref.label,
|
|
12293
|
+
value = _ref.value;
|
|
12294
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12295
|
+
variant: "subtitle2",
|
|
12296
|
+
sx: textStyle$1
|
|
12297
|
+
}, label), /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12298
|
+
variant: "body2",
|
|
12299
|
+
sx: textStyleWithMargin
|
|
12300
|
+
}, value));
|
|
11784
12301
|
};
|
|
11785
12302
|
|
|
11786
12303
|
/* *
|
|
@@ -11796,23 +12313,54 @@ var SearchField = function SearchField(_ref) {
|
|
|
11796
12313
|
* See the License for the specific language governing permissions and
|
|
11797
12314
|
* limitations under the License.
|
|
11798
12315
|
*
|
|
11799
|
-
* Copyright
|
|
11800
|
-
* Copyright
|
|
12316
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12317
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
11801
12318
|
* */
|
|
12319
|
+
var textStyle = {
|
|
12320
|
+
lineHeight: '20px',
|
|
12321
|
+
letterSpacing: '0.25px'
|
|
12322
|
+
};
|
|
12323
|
+
var valueStyle = Object.assign(Object.assign({}, textStyle), {
|
|
12324
|
+
overflowWrap: 'break-word'
|
|
12325
|
+
});
|
|
11802
12326
|
|
|
11803
|
-
var
|
|
11804
|
-
var
|
|
11805
|
-
|
|
11806
|
-
|
|
11807
|
-
|
|
11808
|
-
|
|
11809
|
-
|
|
11810
|
-
|
|
11811
|
-
|
|
11812
|
-
|
|
11813
|
-
|
|
11814
|
-
|
|
11815
|
-
|
|
12327
|
+
var LayerInfoList = function LayerInfoList(_ref) {
|
|
12328
|
+
var label = _ref.label,
|
|
12329
|
+
list = _ref.list;
|
|
12330
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12331
|
+
variant: "subtitle2",
|
|
12332
|
+
sx: textStyle
|
|
12333
|
+
}, label), /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12334
|
+
container: true,
|
|
12335
|
+
direction: "column"
|
|
12336
|
+
}, list.map(function (item) {
|
|
12337
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
12338
|
+
key: item.name
|
|
12339
|
+
}, /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12340
|
+
item: true,
|
|
12341
|
+
container: true,
|
|
12342
|
+
direction: "row"
|
|
12343
|
+
}, item.icon, /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12344
|
+
item: true,
|
|
12345
|
+
sx: {
|
|
12346
|
+
marginLeft: '10px'
|
|
12347
|
+
}
|
|
12348
|
+
}, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12349
|
+
variant: "body2",
|
|
12350
|
+
sx: textStyle
|
|
12351
|
+
}, item.name, ":"))), /*#__PURE__*/React__default.createElement(Grid$1, {
|
|
12352
|
+
item: true,
|
|
12353
|
+
container: true,
|
|
12354
|
+
direction: "row",
|
|
12355
|
+
sx: {
|
|
12356
|
+
marginBottom: 1,
|
|
12357
|
+
paddingLeft: '34px'
|
|
12358
|
+
}
|
|
12359
|
+
}, /*#__PURE__*/React__default.createElement(Typography$1, {
|
|
12360
|
+
variant: "body2",
|
|
12361
|
+
sx: valueStyle
|
|
12362
|
+
}, item.value)));
|
|
12363
|
+
})));
|
|
11816
12364
|
};
|
|
11817
12365
|
|
|
11818
12366
|
/* *
|
|
@@ -11828,32 +12376,47 @@ var SearchFieldConnect = function SearchFieldConnect() {
|
|
|
11828
12376
|
* See the License for the specific language governing permissions and
|
|
11829
12377
|
* limitations under the License.
|
|
11830
12378
|
*
|
|
11831
|
-
* Copyright
|
|
11832
|
-
* Copyright
|
|
12379
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12380
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
11833
12381
|
* */
|
|
11834
|
-
var
|
|
11835
|
-
|
|
11836
|
-
|
|
12382
|
+
var getLayerStyles = function getLayerStyles(layer) {
|
|
12383
|
+
if (!layer.styles) {
|
|
12384
|
+
return '-';
|
|
12385
|
+
}
|
|
11837
12386
|
|
|
11838
|
-
|
|
11839
|
-
return
|
|
11840
|
-
|
|
11841
|
-
|
|
12387
|
+
var styles = layer.styles.map(function (style) {
|
|
12388
|
+
return style.title;
|
|
12389
|
+
});
|
|
12390
|
+
|
|
12391
|
+
if (!styles.length) {
|
|
12392
|
+
return '-';
|
|
11842
12393
|
}
|
|
11843
12394
|
|
|
11844
|
-
|
|
11845
|
-
|
|
11846
|
-
|
|
11847
|
-
|
|
11848
|
-
|
|
11849
|
-
|
|
11850
|
-
|
|
11851
|
-
|
|
11852
|
-
|
|
11853
|
-
});
|
|
11854
|
-
}).filter(function (layer) {
|
|
11855
|
-
return layer.leaf;
|
|
12395
|
+
return styles.join(', ');
|
|
12396
|
+
};
|
|
12397
|
+
var getDimensionValue = function getDimensionValue(name, layer, breakAt) {
|
|
12398
|
+
var includeUnit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
12399
|
+
|
|
12400
|
+
var _a;
|
|
12401
|
+
|
|
12402
|
+
var dimension = (_a = layer.dimensions) === null || _a === void 0 ? void 0 : _a.find(function (dimension) {
|
|
12403
|
+
return dimension.name.toLowerCase() === name;
|
|
11856
12404
|
});
|
|
12405
|
+
|
|
12406
|
+
if (!dimension) {
|
|
12407
|
+
return '-';
|
|
12408
|
+
}
|
|
12409
|
+
|
|
12410
|
+
var dimValue = dimension === null || dimension === void 0 ? void 0 : dimension.currentValue.split(breakAt).join("".concat(breakAt, " "));
|
|
12411
|
+
|
|
12412
|
+
if (includeUnit) {
|
|
12413
|
+
return "".concat(dimValue, " ").concat(dimension.units);
|
|
12414
|
+
}
|
|
12415
|
+
|
|
12416
|
+
return dimValue;
|
|
12417
|
+
};
|
|
12418
|
+
var getLayerBbox = function getLayerBbox(layer) {
|
|
12419
|
+
return layer.geographicBoundingBox ? "west ".concat(layer.geographicBoundingBox.west, ", east ").concat(layer.geographicBoundingBox.east, ", north ").concat(layer.geographicBoundingBox.north, ", south ").concat(layer.geographicBoundingBox.south) : '-';
|
|
11857
12420
|
};
|
|
11858
12421
|
|
|
11859
12422
|
/* *
|
|
@@ -11873,31 +12436,89 @@ var filterLayersFromService = function filterLayersFromService(serviceId, servic
|
|
|
11873
12436
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
11874
12437
|
* */
|
|
11875
12438
|
|
|
11876
|
-
var
|
|
11877
|
-
var
|
|
11878
|
-
|
|
11879
|
-
|
|
11880
|
-
|
|
11881
|
-
|
|
11882
|
-
|
|
11883
|
-
|
|
11884
|
-
|
|
11885
|
-
|
|
11886
|
-
|
|
11887
|
-
|
|
11888
|
-
|
|
11889
|
-
|
|
11890
|
-
|
|
11891
|
-
|
|
11892
|
-
|
|
11893
|
-
|
|
11894
|
-
|
|
11895
|
-
|
|
12439
|
+
var LayerInfoDialog = function LayerInfoDialog(_ref) {
|
|
12440
|
+
var onClose = _ref.onClose,
|
|
12441
|
+
layer = _ref.layer,
|
|
12442
|
+
isOpen = _ref.isOpen,
|
|
12443
|
+
_ref$onMouseDown = _ref.onMouseDown,
|
|
12444
|
+
onMouseDown = _ref$onMouseDown === void 0 ? function () {} : _ref$onMouseDown,
|
|
12445
|
+
_ref$order = _ref.order,
|
|
12446
|
+
order = _ref$order === void 0 ? 0 : _ref$order,
|
|
12447
|
+
_ref$source = _ref.source,
|
|
12448
|
+
source = _ref$source === void 0 ? 'app' : _ref$source,
|
|
12449
|
+
dialogHeight = _ref.dialogHeight;
|
|
12450
|
+
|
|
12451
|
+
var _a;
|
|
12452
|
+
|
|
12453
|
+
var styles = getLayerStyles(layer);
|
|
12454
|
+
var bbox = getLayerBbox(layer);
|
|
12455
|
+
var timeValue = getDimensionValue('time', layer, '/');
|
|
12456
|
+
var refTimeValue = getDimensionValue('reference_time', layer, ',');
|
|
12457
|
+
var elevationValue = getDimensionValue('elevation', layer, ',', true);
|
|
12458
|
+
return /*#__PURE__*/React__default.createElement(ToolContainerDraggable, {
|
|
12459
|
+
onClose: onClose,
|
|
12460
|
+
headerSize: "xs",
|
|
12461
|
+
startSize: {
|
|
12462
|
+
width: 288,
|
|
12463
|
+
height: dialogHeight || 650
|
|
11896
12464
|
},
|
|
11897
|
-
|
|
11898
|
-
|
|
11899
|
-
|
|
11900
|
-
|
|
12465
|
+
startPosition: {
|
|
12466
|
+
top: 150,
|
|
12467
|
+
left: 900
|
|
12468
|
+
},
|
|
12469
|
+
title: "Layer Info",
|
|
12470
|
+
isOpen: isOpen,
|
|
12471
|
+
onMouseDown: onMouseDown,
|
|
12472
|
+
order: order,
|
|
12473
|
+
source: source
|
|
12474
|
+
}, /*#__PURE__*/React__default.createElement(Box$1, {
|
|
12475
|
+
sx: {
|
|
12476
|
+
padding: 2
|
|
12477
|
+
}
|
|
12478
|
+
}, /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12479
|
+
label: "Title",
|
|
12480
|
+
value: layer.text
|
|
12481
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12482
|
+
label: "Name",
|
|
12483
|
+
value: layer.name
|
|
12484
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12485
|
+
label: "Service",
|
|
12486
|
+
value: layer.serviceName
|
|
12487
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12488
|
+
label: "Abstract",
|
|
12489
|
+
value: layer["abstract"] || '-'
|
|
12490
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoList, {
|
|
12491
|
+
label: "Dimensions",
|
|
12492
|
+
list: [{
|
|
12493
|
+
name: 'Time',
|
|
12494
|
+
value: timeValue,
|
|
12495
|
+
icon: /*#__PURE__*/React__default.createElement(DimensionsTime, null)
|
|
12496
|
+
}, {
|
|
12497
|
+
name: 'Reference Time',
|
|
12498
|
+
value: refTimeValue,
|
|
12499
|
+
icon: /*#__PURE__*/React__default.createElement(DimensionsRefTime, null)
|
|
12500
|
+
}, {
|
|
12501
|
+
name: 'Elevation',
|
|
12502
|
+
value: elevationValue,
|
|
12503
|
+
icon: /*#__PURE__*/React__default.createElement(DimensionsElevation, null)
|
|
12504
|
+
}, {
|
|
12505
|
+
name: 'Other dimensions',
|
|
12506
|
+
value: '-',
|
|
12507
|
+
icon: /*#__PURE__*/React__default.createElement(DimensionsOther, null)
|
|
12508
|
+
}]
|
|
12509
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12510
|
+
label: "Styles",
|
|
12511
|
+
value: styles
|
|
12512
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12513
|
+
label: "Bounding Box",
|
|
12514
|
+
value: bbox
|
|
12515
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12516
|
+
label: "Groups",
|
|
12517
|
+
value: layer.path.join('/') || '-'
|
|
12518
|
+
}), /*#__PURE__*/React__default.createElement(LayerInfoText, {
|
|
12519
|
+
label: "Keywords",
|
|
12520
|
+
value: ((_a = layer.keywords) === null || _a === void 0 ? void 0 : _a.join(', ')) || '-'
|
|
12521
|
+
})));
|
|
11901
12522
|
};
|
|
11902
12523
|
|
|
11903
12524
|
/* *
|
|
@@ -11916,15 +12537,24 @@ var LayerAddRemoveButton = function LayerAddRemoveButton(_ref) {
|
|
|
11916
12537
|
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
11917
12538
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
11918
12539
|
* */
|
|
12540
|
+
var layerInfoStyle = {
|
|
12541
|
+
fontSize: '10px',
|
|
12542
|
+
textOverflow: 'ellipsis',
|
|
12543
|
+
overflow: 'hidden',
|
|
12544
|
+
whiteSpace: 'nowrap'
|
|
12545
|
+
};
|
|
11919
12546
|
|
|
11920
12547
|
var LayerListRow = function LayerListRow(_ref) {
|
|
11921
12548
|
var layer = _ref.layer,
|
|
11922
12549
|
layerIndex = _ref.layerIndex,
|
|
11923
12550
|
service = _ref.service,
|
|
11924
|
-
serviceUrl = _ref.serviceUrl,
|
|
11925
12551
|
addLayer = _ref.addLayer,
|
|
11926
12552
|
deleteLayer = _ref.deleteLayer,
|
|
11927
|
-
mapLayers = _ref.mapLayers
|
|
12553
|
+
mapLayers = _ref.mapLayers,
|
|
12554
|
+
mapId = _ref.mapId;
|
|
12555
|
+
|
|
12556
|
+
var _a, _b, _c;
|
|
12557
|
+
|
|
11928
12558
|
return /*#__PURE__*/React__default.createElement(Grid, {
|
|
11929
12559
|
"data-testid": "layerListLayerRow",
|
|
11930
12560
|
container: true,
|
|
@@ -11934,9 +12564,9 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
11934
12564
|
alignItems: "center",
|
|
11935
12565
|
sx: {
|
|
11936
12566
|
backgroundColor: 'geowebColors.cards.cardContainer',
|
|
11937
|
-
|
|
12567
|
+
padding: '8px',
|
|
11938
12568
|
marginBottom: '4px',
|
|
11939
|
-
height: '
|
|
12569
|
+
height: '68px',
|
|
11940
12570
|
border: 'solid 1px',
|
|
11941
12571
|
borderColor: 'geowebColors.cards.cardContainerBorder'
|
|
11942
12572
|
}
|
|
@@ -11951,8 +12581,8 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
11951
12581
|
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
11952
12582
|
sx: {
|
|
11953
12583
|
fontSize: '12px',
|
|
11954
|
-
height: '
|
|
11955
|
-
lineHeight: '
|
|
12584
|
+
height: '14px',
|
|
12585
|
+
lineHeight: '14px',
|
|
11956
12586
|
fontWeight: 500,
|
|
11957
12587
|
WebkitLineClamp: 1,
|
|
11958
12588
|
display: '-webkit-box',
|
|
@@ -11963,34 +12593,50 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
11963
12593
|
}, layer.text)), /*#__PURE__*/React__default.createElement(Grid, {
|
|
11964
12594
|
container: true,
|
|
11965
12595
|
item: true,
|
|
11966
|
-
xs: 4
|
|
12596
|
+
xs: 4,
|
|
12597
|
+
direction: "column"
|
|
11967
12598
|
}, /*#__PURE__*/React__default.createElement(Box, {
|
|
11968
12599
|
sx: {
|
|
11969
12600
|
fontSize: '12px',
|
|
11970
|
-
height: '
|
|
11971
|
-
lineHeight: '
|
|
12601
|
+
height: '18px',
|
|
12602
|
+
lineHeight: '18px',
|
|
11972
12603
|
WebkitLineClamp: 1,
|
|
11973
12604
|
display: '-webkit-box',
|
|
11974
12605
|
WebkitBoxOrient: 'vertical',
|
|
11975
12606
|
textOverflow: 'ellipsis',
|
|
11976
12607
|
overflow: 'hidden'
|
|
11977
12608
|
}
|
|
11978
|
-
}, service.name)
|
|
12609
|
+
}, service.name), /*#__PURE__*/React__default.createElement(LayerInfoButtonConnect, {
|
|
12610
|
+
layer: layer,
|
|
12611
|
+
mapId: mapId,
|
|
12612
|
+
serviceName: service.name
|
|
12613
|
+
})), layer["abstract"] || ((_a = layer.keywords) === null || _a === void 0 ? void 0 : _a.length) || layer.path.length ? /*#__PURE__*/React__default.createElement(Grid, {
|
|
11979
12614
|
"data-testid": "layerAbstract",
|
|
11980
12615
|
container: true,
|
|
11981
12616
|
item: true,
|
|
11982
12617
|
xs: 8,
|
|
11983
12618
|
sx: {
|
|
11984
|
-
|
|
11985
|
-
height: '30px',
|
|
12619
|
+
height: '45px',
|
|
11986
12620
|
paddingLeft: '20px',
|
|
11987
12621
|
WebkitLineClamp: 2,
|
|
11988
12622
|
display: '-webkit-box',
|
|
11989
|
-
WebkitBoxOrient: 'vertical'
|
|
11990
|
-
textOverflow: 'ellipsis',
|
|
11991
|
-
overflow: 'hidden'
|
|
12623
|
+
WebkitBoxOrient: 'vertical'
|
|
11992
12624
|
}
|
|
11993
|
-
}, layer["abstract"]
|
|
12625
|
+
}, layer["abstract"] && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12626
|
+
sx: Object.assign(Object.assign({}, layerInfoStyle), {
|
|
12627
|
+
height: 15
|
|
12628
|
+
})
|
|
12629
|
+
}, layer["abstract"]), layer.path.length > 0 && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12630
|
+
sx: Object.assign(Object.assign({}, layerInfoStyle), {
|
|
12631
|
+
height: ((_b = layer.keywords) === null || _b === void 0 ? void 0 : _b.length) ? 15 : 30
|
|
12632
|
+
})
|
|
12633
|
+
}, "Groups: ", layer.path.join(' / ')), ((_c = layer.keywords) === null || _c === void 0 ? void 0 : _c.length) > 0 && /*#__PURE__*/React__default.createElement(Typography, {
|
|
12634
|
+
sx: Object.assign(Object.assign({}, layerInfoStyle), {
|
|
12635
|
+
height: layer.path.length ? 15 : 30
|
|
12636
|
+
})
|
|
12637
|
+
}, "Keywords:", ' ', layer.keywords.slice().sort(function (a, b) {
|
|
12638
|
+
return a.localeCompare(b);
|
|
12639
|
+
}).join(', '))) : null), /*#__PURE__*/React__default.createElement(Grid, {
|
|
11994
12640
|
container: true,
|
|
11995
12641
|
item: true,
|
|
11996
12642
|
xs: 2,
|
|
@@ -12000,13 +12646,12 @@ var LayerListRow = function LayerListRow(_ref) {
|
|
|
12000
12646
|
sx: {
|
|
12001
12647
|
width: '80px',
|
|
12002
12648
|
height: '48px',
|
|
12003
|
-
marginRight: '8px'
|
|
12004
|
-
paddingTop: '4px'
|
|
12649
|
+
marginRight: '8px'
|
|
12005
12650
|
}
|
|
12006
12651
|
}, /*#__PURE__*/React__default.createElement(LayerAddRemoveButton, {
|
|
12007
12652
|
layer: layer,
|
|
12008
12653
|
layerIndex: layerIndex,
|
|
12009
|
-
serviceUrl: serviceUrl,
|
|
12654
|
+
serviceUrl: service.serviceUrl,
|
|
12010
12655
|
addLayer: addLayer,
|
|
12011
12656
|
deleteLayer: deleteLayer,
|
|
12012
12657
|
mapLayers: mapLayers
|
|
@@ -12017,13 +12662,15 @@ var LayerList = function LayerList(_ref) {
|
|
|
12017
12662
|
var services = _ref.services,
|
|
12018
12663
|
serviceIds = _ref.serviceIds,
|
|
12019
12664
|
layerSelectHeight = _ref.layerSelectHeight,
|
|
12665
|
+
serviceListHeight = _ref.serviceListHeight,
|
|
12020
12666
|
addLayer = _ref.addLayer,
|
|
12021
12667
|
deleteLayer = _ref.deleteLayer,
|
|
12022
12668
|
searchString = _ref.searchString,
|
|
12023
12669
|
mapLayers = _ref.mapLayers,
|
|
12024
|
-
|
|
12025
|
-
|
|
12026
|
-
|
|
12670
|
+
filterIds = _ref.filterIds,
|
|
12671
|
+
allFiltersActive = _ref.allFiltersActive,
|
|
12672
|
+
mapId = _ref.mapId;
|
|
12673
|
+
var layerSelectFilterHeight = 155 + serviceListHeight;
|
|
12027
12674
|
|
|
12028
12675
|
var _React$useState = React.useState(0),
|
|
12029
12676
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -12037,16 +12684,16 @@ var LayerList = function LayerList(_ref) {
|
|
|
12037
12684
|
|
|
12038
12685
|
React.useEffect(function () {
|
|
12039
12686
|
setNumberOfLayers(serviceIds.reduce(function (totalNumberOfLayers, serviceId) {
|
|
12040
|
-
return totalNumberOfLayers + filterLayersFromService(serviceId, services,
|
|
12687
|
+
return totalNumberOfLayers + filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString).length;
|
|
12041
12688
|
}, 0));
|
|
12042
12689
|
setLayersFilteredFromService(serviceIds.reduce(function (layerList, serviceId) {
|
|
12043
|
-
return layerList.concat(filterLayersFromService(serviceId, services,
|
|
12690
|
+
return layerList.concat(filterLayersFromService(serviceId, services, filterIds, allFiltersActive, searchString).map(function (layer) {
|
|
12044
12691
|
return Object.assign(Object.assign({}, layer), {
|
|
12045
12692
|
serviceId: serviceId
|
|
12046
12693
|
});
|
|
12047
12694
|
}));
|
|
12048
12695
|
}, []));
|
|
12049
|
-
}, [serviceIds,
|
|
12696
|
+
}, [serviceIds, filterIds, services, searchString, allFiltersActive]);
|
|
12050
12697
|
return /*#__PURE__*/React.createElement(Box, {
|
|
12051
12698
|
"data-testid": "layerList"
|
|
12052
12699
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
@@ -12057,21 +12704,21 @@ var LayerList = function LayerList(_ref) {
|
|
|
12057
12704
|
}, numberOfLayers, " results"), /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
12058
12705
|
height: layerSelectHeight - layerSelectFilterHeight,
|
|
12059
12706
|
itemCount: numberOfLayers,
|
|
12060
|
-
itemSize:
|
|
12707
|
+
itemSize: 72
|
|
12061
12708
|
}, function (_ref2) {
|
|
12062
12709
|
var index = _ref2.index,
|
|
12063
12710
|
style = _ref2.style;
|
|
12064
12711
|
return /*#__PURE__*/React.createElement("div", {
|
|
12065
12712
|
style: style,
|
|
12066
12713
|
key: layersFilteredFromService[index].name
|
|
12067
|
-
}, /*#__PURE__*/React.createElement(LayerListRow, {
|
|
12714
|
+
}, services[layersFilteredFromService[index].serviceId] && /*#__PURE__*/React.createElement(LayerListRow, {
|
|
12068
12715
|
layer: layersFilteredFromService[index],
|
|
12069
12716
|
layerIndex: index,
|
|
12070
12717
|
service: services[layersFilteredFromService[index].serviceId],
|
|
12071
|
-
serviceUrl: services[layersFilteredFromService[index].serviceId].serviceUrl,
|
|
12072
12718
|
addLayer: addLayer,
|
|
12073
12719
|
deleteLayer: deleteLayer,
|
|
12074
|
-
mapLayers: mapLayers
|
|
12720
|
+
mapLayers: mapLayers,
|
|
12721
|
+
mapId: mapId
|
|
12075
12722
|
}));
|
|
12076
12723
|
}));
|
|
12077
12724
|
};
|
|
@@ -12089,13 +12736,14 @@ var LayerList = function LayerList(_ref) {
|
|
|
12089
12736
|
* See the License for the specific language governing permissions and
|
|
12090
12737
|
* limitations under the License.
|
|
12091
12738
|
*
|
|
12092
|
-
* Copyright
|
|
12093
|
-
* Copyright
|
|
12739
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12740
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12094
12741
|
* */
|
|
12095
12742
|
|
|
12096
12743
|
var LayerListConnect = function LayerListConnect(_ref) {
|
|
12097
12744
|
var mapId = _ref.mapId,
|
|
12098
|
-
layerSelectHeight = _ref.layerSelectHeight
|
|
12745
|
+
layerSelectHeight = _ref.layerSelectHeight,
|
|
12746
|
+
serviceListHeight = _ref.serviceListHeight;
|
|
12099
12747
|
var services = useSelector(function (store) {
|
|
12100
12748
|
return getServices(store);
|
|
12101
12749
|
});
|
|
@@ -12145,11 +12793,11 @@ var LayerListConnect = function LayerListConnect(_ref) {
|
|
|
12145
12793
|
origin: LayerActionOrigin.layerManager
|
|
12146
12794
|
}));
|
|
12147
12795
|
}, [dispatch, mapId]);
|
|
12148
|
-
var
|
|
12149
|
-
return
|
|
12796
|
+
var checkedFilterIds = useSelector(function (store) {
|
|
12797
|
+
return getCheckedFilterIds(store);
|
|
12150
12798
|
});
|
|
12151
|
-
var
|
|
12152
|
-
return
|
|
12799
|
+
var allFiltersActive = useSelector(function (store) {
|
|
12800
|
+
return isAllFiltersChecked(store);
|
|
12153
12801
|
});
|
|
12154
12802
|
var searchString = useSelector(function (store) {
|
|
12155
12803
|
return getSearchFilter(store);
|
|
@@ -12158,12 +12806,14 @@ var LayerListConnect = function LayerListConnect(_ref) {
|
|
|
12158
12806
|
services: services,
|
|
12159
12807
|
serviceIds: enabledServiceIds,
|
|
12160
12808
|
layerSelectHeight: layerSelectHeight,
|
|
12809
|
+
serviceListHeight: serviceListHeight,
|
|
12161
12810
|
addLayer: addLayer,
|
|
12162
12811
|
deleteLayer: deleteLayer,
|
|
12163
|
-
|
|
12164
|
-
|
|
12812
|
+
filterIds: checkedFilterIds,
|
|
12813
|
+
allFiltersActive: allFiltersActive,
|
|
12165
12814
|
searchString: searchString,
|
|
12166
|
-
mapLayers: mapLayers
|
|
12815
|
+
mapLayers: mapLayers,
|
|
12816
|
+
mapId: mapId
|
|
12167
12817
|
});
|
|
12168
12818
|
};
|
|
12169
12819
|
|
|
@@ -12180,8 +12830,8 @@ var LayerListConnect = function LayerListConnect(_ref) {
|
|
|
12180
12830
|
* See the License for the specific language governing permissions and
|
|
12181
12831
|
* limitations under the License.
|
|
12182
12832
|
*
|
|
12183
|
-
* Copyright
|
|
12184
|
-
* Copyright
|
|
12833
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12834
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12185
12835
|
* */
|
|
12186
12836
|
var style = {
|
|
12187
12837
|
borderRadius: '20px!important',
|
|
@@ -12190,7 +12840,8 @@ var style = {
|
|
|
12190
12840
|
height: '32px!important',
|
|
12191
12841
|
padding: '5px 12px!important',
|
|
12192
12842
|
textTransform: 'none!important',
|
|
12193
|
-
fontWeight: 'normal'
|
|
12843
|
+
fontWeight: 'normal',
|
|
12844
|
+
marginBottom: '5px'
|
|
12194
12845
|
};
|
|
12195
12846
|
|
|
12196
12847
|
var ServiceChip = function ServiceChip(_ref) {
|
|
@@ -12200,7 +12851,9 @@ var ServiceChip = function ServiceChip(_ref) {
|
|
|
12200
12851
|
isSelected = _ref.isSelected,
|
|
12201
12852
|
isDisabled = _ref.isDisabled,
|
|
12202
12853
|
toggleChip = _ref.toggleChip;
|
|
12203
|
-
return /*#__PURE__*/React.createElement(
|
|
12854
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
12855
|
+
title: (service === null || service === void 0 ? void 0 : service["abstract"]) ? "Abstract: ".concat(service["abstract"]) : ''
|
|
12856
|
+
}, /*#__PURE__*/React.createElement(CustomToggleButton, {
|
|
12204
12857
|
variant: "boxed",
|
|
12205
12858
|
selected: isSelected,
|
|
12206
12859
|
tabIndex: 0,
|
|
@@ -12213,7 +12866,7 @@ var ServiceChip = function ServiceChip(_ref) {
|
|
|
12213
12866
|
},
|
|
12214
12867
|
disabled: isDisabled,
|
|
12215
12868
|
sx: style
|
|
12216
|
-
}, service ? service.serviceName : 'All');
|
|
12869
|
+
}, service ? service.serviceName : 'All'));
|
|
12217
12870
|
};
|
|
12218
12871
|
|
|
12219
12872
|
var ServiceChipConnect = function ServiceChipConnect(_ref) {
|
|
@@ -12222,56 +12875,79 @@ var ServiceChipConnect = function ServiceChipConnect(_ref) {
|
|
|
12222
12875
|
serviceId = _ref.serviceId,
|
|
12223
12876
|
service = _ref.service,
|
|
12224
12877
|
isSelected = _ref.isSelected,
|
|
12878
|
+
isAllSelected = _ref.isAllSelected,
|
|
12225
12879
|
isDisabled = _ref.isDisabled;
|
|
12226
12880
|
var dispatch = useDispatch();
|
|
12227
12881
|
var activeServices = useSelector(function (store) {
|
|
12228
12882
|
return getActiveServices(store);
|
|
12229
12883
|
});
|
|
12230
12884
|
|
|
12885
|
+
var setAllServicesEnabled = function setAllServicesEnabled(allServicesEnabled) {
|
|
12886
|
+
dispatch(layerSelectActions.setAllServicesEnabled({
|
|
12887
|
+
allServicesEnabled: allServicesEnabled
|
|
12888
|
+
}));
|
|
12889
|
+
};
|
|
12890
|
+
|
|
12891
|
+
var hasSelectedStyle = !isAllSelected && isSelected || isAllSelected && service === 'all';
|
|
12892
|
+
|
|
12231
12893
|
var toggleChip = function toggleChip(service) {
|
|
12232
12894
|
if (service === 'all') {
|
|
12233
12895
|
if (isSelected) {
|
|
12234
|
-
|
|
12235
|
-
|
|
12236
|
-
|
|
12237
|
-
|
|
12238
|
-
|
|
12239
|
-
var serviceID = key;
|
|
12240
|
-
var _service = value;
|
|
12896
|
+
setAllServicesEnabled(false);
|
|
12897
|
+
Object.entries(activeServices).forEach(function (_ref2) {
|
|
12898
|
+
var _ref3 = _slicedToArray(_ref2, 2),
|
|
12899
|
+
serviceID = _ref3[0],
|
|
12900
|
+
service = _ref3[1];
|
|
12241
12901
|
|
|
12242
|
-
if (
|
|
12902
|
+
if (service.enabled) {
|
|
12243
12903
|
dispatch(layerSelectActions.disableActiveService({
|
|
12244
12904
|
serviceId: serviceID,
|
|
12245
|
-
|
|
12905
|
+
filters: service.filterIds
|
|
12246
12906
|
}));
|
|
12247
12907
|
}
|
|
12248
|
-
}
|
|
12908
|
+
});
|
|
12249
12909
|
} else {
|
|
12250
|
-
|
|
12251
|
-
|
|
12252
|
-
|
|
12253
|
-
|
|
12910
|
+
setAllServicesEnabled(true);
|
|
12911
|
+
Object.entries(activeServices).forEach(function (_ref4) {
|
|
12912
|
+
var _ref5 = _slicedToArray(_ref4, 2),
|
|
12913
|
+
serviceID = _ref5[0],
|
|
12914
|
+
service = _ref5[1];
|
|
12254
12915
|
|
|
12255
|
-
|
|
12256
|
-
var _service2 = _value;
|
|
12257
|
-
|
|
12258
|
-
if (!_service2.enabled) {
|
|
12916
|
+
if (!service.enabled) {
|
|
12259
12917
|
dispatch(layerSelectActions.enableActiveService({
|
|
12260
|
-
serviceId:
|
|
12261
|
-
|
|
12918
|
+
serviceId: serviceID,
|
|
12919
|
+
filters: service.filterIds
|
|
12262
12920
|
}));
|
|
12263
12921
|
}
|
|
12264
|
-
}
|
|
12922
|
+
});
|
|
12265
12923
|
}
|
|
12266
12924
|
} else if (isSelected) {
|
|
12267
|
-
|
|
12268
|
-
|
|
12269
|
-
|
|
12270
|
-
|
|
12925
|
+
if (isAllSelected) {
|
|
12926
|
+
setAllServicesEnabled(false);
|
|
12927
|
+
Object.entries(activeServices).forEach(function (_ref6) {
|
|
12928
|
+
var _ref7 = _slicedToArray(_ref6, 2),
|
|
12929
|
+
serviceID = _ref7[0],
|
|
12930
|
+
service = _ref7[1];
|
|
12931
|
+
|
|
12932
|
+
var shouldDisable = service.enabled && serviceID !== serviceId;
|
|
12933
|
+
|
|
12934
|
+
if (shouldDisable) {
|
|
12935
|
+
dispatch(layerSelectActions.disableActiveService({
|
|
12936
|
+
serviceId: serviceID,
|
|
12937
|
+
filters: service.filterIds
|
|
12938
|
+
}));
|
|
12939
|
+
}
|
|
12940
|
+
});
|
|
12941
|
+
} else {
|
|
12942
|
+
dispatch(layerSelectActions.disableActiveService({
|
|
12943
|
+
serviceId: serviceId,
|
|
12944
|
+
filters: activeServices[serviceId].filterIds
|
|
12945
|
+
}));
|
|
12946
|
+
}
|
|
12271
12947
|
} else {
|
|
12272
12948
|
dispatch(layerSelectActions.enableActiveService({
|
|
12273
12949
|
serviceId: serviceId,
|
|
12274
|
-
|
|
12950
|
+
filters: activeServices[serviceId].filterIds
|
|
12275
12951
|
}));
|
|
12276
12952
|
}
|
|
12277
12953
|
};
|
|
@@ -12280,123 +12956,49 @@ var ServiceChipConnect = function ServiceChipConnect(_ref) {
|
|
|
12280
12956
|
service: service,
|
|
12281
12957
|
all: all,
|
|
12282
12958
|
toggleChip: toggleChip,
|
|
12283
|
-
isSelected:
|
|
12959
|
+
isSelected: hasSelectedStyle,
|
|
12284
12960
|
isDisabled: isDisabled
|
|
12285
12961
|
});
|
|
12286
12962
|
};
|
|
12287
12963
|
|
|
12288
12964
|
var ServiceList = function ServiceList(_ref) {
|
|
12289
|
-
var
|
|
12290
|
-
|
|
12965
|
+
var activeServices = _ref.activeServices,
|
|
12966
|
+
setHeight = _ref.setHeight;
|
|
12967
|
+
var ref = React.useRef(null);
|
|
12291
12968
|
|
|
12292
12969
|
var _React$useState = React.useState(0),
|
|
12293
12970
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
12294
|
-
|
|
12295
|
-
|
|
12296
|
-
|
|
12297
|
-
var _React$useState3 = React.useState(0),
|
|
12298
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
12299
|
-
width = _React$useState4[0],
|
|
12300
|
-
setWidth = _React$useState4[1];
|
|
12301
|
-
|
|
12302
|
-
var _React$useState5 = React.useState(null),
|
|
12303
|
-
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
12304
|
-
intervalId = _React$useState6[0],
|
|
12305
|
-
setIntervalId = _React$useState6[1];
|
|
12306
|
-
|
|
12307
|
-
var ref = React.useRef(null);
|
|
12308
|
-
var scrollSpeed = 5;
|
|
12309
|
-
var maxWidthValue = ref && ref.current && ref.current.scrollWidth && ref.current.scrollWidth >= layerSelectWidth - margin && ref.current.scrollWidth || layerSelectWidth - 50;
|
|
12310
|
-
|
|
12311
|
-
var onMouseWheelScroll = function onMouseWheelScroll(e) {
|
|
12312
|
-
var delta = e.deltaY;
|
|
12313
|
-
var scrollSpeed = 0.1;
|
|
12314
|
-
if (delta > 0) setMargin(Math.min(Math.max(margin + scrollSpeed * delta, 0), width - layerSelectWidth));else setMargin(Math.min(Math.max(margin + scrollSpeed * delta, 0), width - layerSelectWidth));
|
|
12315
|
-
};
|
|
12316
|
-
|
|
12317
|
-
var onLeftChevronPressed = function onLeftChevronPressed() {
|
|
12318
|
-
setMargin(function (prevMargin) {
|
|
12319
|
-
return Math.max(prevMargin - scrollSpeed, 0);
|
|
12320
|
-
});
|
|
12321
|
-
setIntervalId(setInterval(function () {
|
|
12322
|
-
setMargin(function (prevMargin) {
|
|
12323
|
-
return Math.max(prevMargin - scrollSpeed, 0);
|
|
12324
|
-
});
|
|
12325
|
-
}, 20));
|
|
12326
|
-
};
|
|
12327
|
-
|
|
12328
|
-
var onRightChevronPressed = React.useCallback(function () {
|
|
12329
|
-
setMargin(function (prevMargin) {
|
|
12330
|
-
return Math.min(prevMargin + scrollSpeed, width - layerSelectWidth);
|
|
12331
|
-
});
|
|
12332
|
-
setIntervalId(setInterval(function () {
|
|
12333
|
-
setMargin(function (prevMargin) {
|
|
12334
|
-
return Math.min(prevMargin + scrollSpeed, width - layerSelectWidth);
|
|
12335
|
-
});
|
|
12336
|
-
}, 20));
|
|
12337
|
-
}, [width, layerSelectWidth]);
|
|
12338
|
-
|
|
12339
|
-
var onChevronMouseUp = function onChevronMouseUp() {
|
|
12340
|
-
clearInterval(intervalId);
|
|
12341
|
-
setIntervalId(null);
|
|
12342
|
-
};
|
|
12971
|
+
serviceListHeight = _React$useState2[0],
|
|
12972
|
+
setServiceListHeight = _React$useState2[1];
|
|
12343
12973
|
|
|
12974
|
+
var clientHeight = ref && ref.current && ref.current.clientHeight && ref.current.clientHeight;
|
|
12344
12975
|
React.useEffect(function () {
|
|
12345
|
-
|
|
12346
|
-
|
|
12347
|
-
|
|
12348
|
-
if ((margin === 0 || layerSelectWidth + margin === width) && intervalId != null) {
|
|
12349
|
-
clearInterval(intervalId);
|
|
12350
|
-
setIntervalId(null);
|
|
12976
|
+
if (ref && ref.current && ref.current.clientHeight) {
|
|
12977
|
+
setServiceListHeight(ref.current.clientHeight);
|
|
12351
12978
|
}
|
|
12352
|
-
}, [activeServices,
|
|
12979
|
+
}, [activeServices, clientHeight]);
|
|
12980
|
+
React.useEffect(function () {
|
|
12981
|
+
setHeight(serviceListHeight);
|
|
12982
|
+
}, [serviceListHeight, setHeight]);
|
|
12353
12983
|
var isAllSelected = Object.values(activeServices).every(function (activeService) {
|
|
12354
12984
|
return activeService.enabled;
|
|
12355
12985
|
});
|
|
12356
12986
|
return /*#__PURE__*/React.createElement(Box, {
|
|
12357
12987
|
sx: {
|
|
12358
|
-
height: '32px',
|
|
12359
12988
|
marginTop: '8px',
|
|
12360
12989
|
width: '100%',
|
|
12361
12990
|
overflow: 'hidden'
|
|
12362
12991
|
},
|
|
12363
|
-
"data-testid": "serviceList"
|
|
12364
|
-
|
|
12365
|
-
}, margin !== 0 && /*#__PURE__*/React.createElement(ChevronLeft, {
|
|
12366
|
-
onMouseDown: onLeftChevronPressed,
|
|
12367
|
-
onMouseUp: onChevronMouseUp,
|
|
12368
|
-
"data-testid": "leftScrollArrow",
|
|
12369
|
-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
12370
|
-
sx: function sx(theme) {
|
|
12371
|
-
return {
|
|
12372
|
-
width: '100px',
|
|
12373
|
-
marginBottom: '-12px',
|
|
12374
|
-
height: '34px',
|
|
12375
|
-
backgroundImage: "linear-gradient(to left, rgba(0, 0, 0, 0), ".concat(theme.palette.geowebColors.background.surfaceApp, " 51%)"),
|
|
12376
|
-
cursor: 'pointer',
|
|
12377
|
-
marginRight: '-120px',
|
|
12378
|
-
paddingTop: '6px',
|
|
12379
|
-
paddingBottom: '6px',
|
|
12380
|
-
"float": 'left',
|
|
12381
|
-
zIndex: 1,
|
|
12382
|
-
position: 'relative',
|
|
12383
|
-
color: 'geowebColors.buttons.tertiary.default.color',
|
|
12384
|
-
'&:hover': {
|
|
12385
|
-
color: 'geowebColors.buttons.tertiary.activeMouseOver.color'
|
|
12386
|
-
}
|
|
12387
|
-
};
|
|
12388
|
-
}
|
|
12389
|
-
}), /*#__PURE__*/React.createElement(Box, {
|
|
12992
|
+
"data-testid": "serviceList"
|
|
12993
|
+
}, /*#__PURE__*/React.createElement(Box, {
|
|
12390
12994
|
sx: {
|
|
12391
12995
|
width: '100%',
|
|
12392
|
-
display: '
|
|
12996
|
+
display: 'block',
|
|
12393
12997
|
alignItems: 'center',
|
|
12394
|
-
overflowX: 'visible',
|
|
12395
12998
|
"float": 'left',
|
|
12396
12999
|
paddingLeft: '40px',
|
|
12397
|
-
|
|
12398
|
-
|
|
12399
|
-
maxWidth: maxWidthValue,
|
|
13000
|
+
paddingRight: '30px',
|
|
13001
|
+
marginBottom: '5px',
|
|
12400
13002
|
fontSize: '0.875rem'
|
|
12401
13003
|
},
|
|
12402
13004
|
ref: ref
|
|
@@ -12413,32 +13015,39 @@ var ServiceList = function ServiceList(_ref) {
|
|
|
12413
13015
|
serviceId: serviceId,
|
|
12414
13016
|
service: service,
|
|
12415
13017
|
isSelected: (_a = activeServices[serviceId]) === null || _a === void 0 ? void 0 : _a.enabled,
|
|
13018
|
+
isAllSelected: isAllSelected,
|
|
12416
13019
|
isDisabled: activeServices[serviceId] === undefined
|
|
12417
13020
|
});
|
|
12418
|
-
}))
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
13021
|
+
})));
|
|
13022
|
+
};
|
|
13023
|
+
|
|
13024
|
+
var sortByService = function sortByService(serviceObj) {
|
|
13025
|
+
return Object.entries(serviceObj).sort(function (_ref, _ref2) {
|
|
13026
|
+
var _ref3 = _slicedToArray(_ref, 2),
|
|
13027
|
+
a = _ref3[1];
|
|
13028
|
+
|
|
13029
|
+
var _ref4 = _slicedToArray(_ref2, 2),
|
|
13030
|
+
b = _ref4[1];
|
|
13031
|
+
|
|
13032
|
+
return a.serviceName.localeCompare(b.serviceName);
|
|
13033
|
+
}).reduce(function (r, _ref5) {
|
|
13034
|
+
var _ref6 = _slicedToArray(_ref5, 2),
|
|
13035
|
+
key = _ref6[0],
|
|
13036
|
+
value = _ref6[1];
|
|
13037
|
+
|
|
13038
|
+
return Object.assign(Object.assign({}, r), _defineProperty({}, key, value));
|
|
13039
|
+
}, {});
|
|
13040
|
+
};
|
|
13041
|
+
|
|
13042
|
+
var ServiceListConnect = function ServiceListConnect(_ref7) {
|
|
13043
|
+
var setHeight = _ref7.setHeight;
|
|
13044
|
+
var activeServices = useSelector(function (store) {
|
|
13045
|
+
return getActiveServices(store);
|
|
13046
|
+
});
|
|
13047
|
+
return /*#__PURE__*/React.createElement(ServiceList, {
|
|
13048
|
+
setHeight: setHeight,
|
|
13049
|
+
activeServices: sortByService(activeServices)
|
|
13050
|
+
});
|
|
12442
13051
|
};
|
|
12443
13052
|
|
|
12444
13053
|
/* *
|
|
@@ -12454,21 +13063,9 @@ var ServiceList = function ServiceList(_ref) {
|
|
|
12454
13063
|
* See the License for the specific language governing permissions and
|
|
12455
13064
|
* limitations under the License.
|
|
12456
13065
|
*
|
|
12457
|
-
* Copyright
|
|
12458
|
-
* Copyright
|
|
13066
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13067
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12459
13068
|
* */
|
|
12460
|
-
|
|
12461
|
-
var ServiceListConnect = function ServiceListConnect(_ref) {
|
|
12462
|
-
var layerSelectWidth = _ref.layerSelectWidth;
|
|
12463
|
-
var activeServices = useSelector(function (store) {
|
|
12464
|
-
return getActiveServices(store);
|
|
12465
|
-
});
|
|
12466
|
-
return /*#__PURE__*/React.createElement(ServiceList, {
|
|
12467
|
-
layerSelectWidth: layerSelectWidth,
|
|
12468
|
-
activeServices: activeServices
|
|
12469
|
-
});
|
|
12470
|
-
};
|
|
12471
|
-
|
|
12472
13069
|
var styles$1 = {
|
|
12473
13070
|
servicesContainer: {
|
|
12474
13071
|
width: '300px',
|
|
@@ -12505,45 +13102,62 @@ var styles$1 = {
|
|
|
12505
13102
|
|
|
12506
13103
|
var ServiceOptionsDialog = function ServiceOptionsDialog(_ref) {
|
|
12507
13104
|
var services = _ref.services,
|
|
12508
|
-
|
|
12509
|
-
|
|
12510
|
-
|
|
12511
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
12512
|
-
addServiceIsOpen = _React$useState2[0],
|
|
12513
|
-
setAddServiceIsOpen = _React$useState2[1];
|
|
12514
|
-
|
|
12515
|
-
var _React$useState3 = React.useState({
|
|
12516
|
-
isOpen: false,
|
|
12517
|
-
serviceId: '',
|
|
12518
|
-
serviceUrl: ''
|
|
12519
|
-
}),
|
|
12520
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
12521
|
-
editServiceIsOpen = _React$useState4[0],
|
|
12522
|
-
setEditServiceIsOpen = _React$useState4[1];
|
|
13105
|
+
layerSelectRemoveService = _ref.layerSelectRemoveService,
|
|
13106
|
+
selectedLayers = _ref.selectedLayers,
|
|
13107
|
+
setServicePopupInfo = _ref.setServicePopupInfo;
|
|
12523
13108
|
|
|
12524
13109
|
var openAddService = function openAddService() {
|
|
12525
|
-
|
|
12526
|
-
|
|
12527
|
-
|
|
12528
|
-
var closePopup = function closePopup() {
|
|
12529
|
-
setAddServiceIsOpen(false);
|
|
12530
|
-
setEditServiceIsOpen({
|
|
12531
|
-
isOpen: false,
|
|
12532
|
-
serviceId: '',
|
|
12533
|
-
serviceUrl: ''
|
|
13110
|
+
setServicePopupInfo({
|
|
13111
|
+
isOpen: true,
|
|
13112
|
+
popupVariant: 'add'
|
|
12534
13113
|
});
|
|
12535
13114
|
};
|
|
12536
13115
|
|
|
12537
|
-
return /*#__PURE__*/React.createElement(
|
|
13116
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
12538
13117
|
sx: styles$1.servicesContainer,
|
|
12539
13118
|
"data-testid": "ServiceDialog"
|
|
12540
13119
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
12541
13120
|
sx: styles$1.header
|
|
12542
|
-
}, "Services"), /*#__PURE__*/React.createElement(
|
|
13121
|
+
}, "Services"), /*#__PURE__*/React.createElement(Rows, {
|
|
13122
|
+
services: services,
|
|
13123
|
+
layerSelectRemoveService: layerSelectRemoveService,
|
|
13124
|
+
setServicePopupInfo: setServicePopupInfo,
|
|
13125
|
+
selectedLayers: selectedLayers
|
|
13126
|
+
}), /*#__PURE__*/React.createElement(Box, {
|
|
13127
|
+
sx: styles$1.footer
|
|
13128
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
13129
|
+
onClick: openAddService,
|
|
13130
|
+
"data-testid": "openAddServiceButton",
|
|
13131
|
+
sx: styles$1.button,
|
|
13132
|
+
variant: "tertiary",
|
|
13133
|
+
startIcon: /*#__PURE__*/React.createElement(Add, null)
|
|
13134
|
+
}, "Add a new service")));
|
|
13135
|
+
};
|
|
13136
|
+
|
|
13137
|
+
var Rows = function Rows(_ref2) {
|
|
13138
|
+
var services = _ref2.services,
|
|
13139
|
+
layerSelectRemoveService = _ref2.layerSelectRemoveService,
|
|
13140
|
+
setServicePopupInfo = _ref2.setServicePopupInfo,
|
|
13141
|
+
selectedLayers = _ref2.selectedLayers;
|
|
13142
|
+
|
|
13143
|
+
var checkIfServiceHasActiveLayers = function checkIfServiceHasActiveLayers(serviceUrl) {
|
|
13144
|
+
var foundService = selectedLayers.find(function (object) {
|
|
13145
|
+
return object.service === serviceUrl;
|
|
13146
|
+
});
|
|
13147
|
+
if (foundService) return true;
|
|
13148
|
+
return false;
|
|
13149
|
+
};
|
|
13150
|
+
|
|
13151
|
+
return /*#__PURE__*/React.createElement(List, {
|
|
12543
13152
|
disablePadding: true
|
|
12544
13153
|
}, Object.keys(services).map(function (serviceId) {
|
|
13154
|
+
var _services$serviceId = services[serviceId],
|
|
13155
|
+
serviceUrl = _services$serviceId.serviceUrl,
|
|
13156
|
+
serviceName = _services$serviceId.serviceName,
|
|
13157
|
+
isUserAddedService = _services$serviceId.isUserAddedService;
|
|
13158
|
+
var serviceHasActiveLayers = checkIfServiceHasActiveLayers(serviceUrl);
|
|
12545
13159
|
return /*#__PURE__*/React.createElement(ListItem, {
|
|
12546
|
-
key:
|
|
13160
|
+
key: serviceUrl
|
|
12547
13161
|
}, /*#__PURE__*/React.createElement(ListItemText, {
|
|
12548
13162
|
style: {
|
|
12549
13163
|
fontSize: '16px'
|
|
@@ -12554,53 +13168,59 @@ var ServiceOptionsDialog = function ServiceOptionsDialog(_ref) {
|
|
|
12554
13168
|
textOverflow: 'ellipsis',
|
|
12555
13169
|
paddingRight: '60px'
|
|
12556
13170
|
}
|
|
12557
|
-
},
|
|
13171
|
+
}, serviceName)), /*#__PURE__*/React.createElement(ListItemSecondaryAction, {
|
|
12558
13172
|
style: {
|
|
12559
|
-
marginRight: '-10px'
|
|
12560
|
-
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
13173
|
+
marginRight: '-10px',
|
|
13174
|
+
width: 90
|
|
13175
|
+
}
|
|
13176
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
13177
|
+
container: true
|
|
13178
|
+
}, /*#__PURE__*/React.createElement(Grid, {
|
|
13179
|
+
item: true,
|
|
13180
|
+
xs: 6
|
|
13181
|
+
}, isUserAddedService ? /*#__PURE__*/React.createElement(Tooltip, {
|
|
13182
|
+
title: "Edit Service"
|
|
12564
13183
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
12565
|
-
|
|
13184
|
+
"aria-label": "edit service",
|
|
12566
13185
|
"data-testid": "openEditServiceButton",
|
|
12567
13186
|
size: "large",
|
|
12568
13187
|
onClick: function onClick() {
|
|
12569
|
-
|
|
13188
|
+
setServicePopupInfo({
|
|
12570
13189
|
isOpen: true,
|
|
12571
13190
|
serviceId: serviceId,
|
|
12572
|
-
serviceUrl:
|
|
13191
|
+
serviceUrl: serviceUrl,
|
|
13192
|
+
popupVariant: 'edit'
|
|
12573
13193
|
});
|
|
12574
13194
|
}
|
|
12575
|
-
}, /*#__PURE__*/React.createElement(Edit, null))))
|
|
12576
|
-
title: "
|
|
12577
|
-
disableHoverListener: !services[serviceId].isUserAddedService
|
|
13195
|
+
}, /*#__PURE__*/React.createElement(Edit, null)))) : /*#__PURE__*/React.createElement(Tooltip, {
|
|
13196
|
+
title: "Show Service"
|
|
12578
13197
|
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
13198
|
+
"aria-label": "show service",
|
|
13199
|
+
"data-testid": "openShowServiceButton",
|
|
12579
13200
|
size: "large",
|
|
12580
|
-
disabled: !services[serviceId].isUserAddedService,
|
|
12581
13201
|
onClick: function onClick() {
|
|
12582
|
-
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
12586
|
-
|
|
12587
|
-
|
|
12588
|
-
|
|
12589
|
-
|
|
12590
|
-
|
|
12591
|
-
|
|
12592
|
-
|
|
12593
|
-
|
|
12594
|
-
|
|
12595
|
-
|
|
12596
|
-
|
|
12597
|
-
|
|
12598
|
-
|
|
12599
|
-
|
|
12600
|
-
|
|
12601
|
-
|
|
12602
|
-
|
|
12603
|
-
|
|
13202
|
+
setServicePopupInfo({
|
|
13203
|
+
isOpen: true,
|
|
13204
|
+
serviceId: serviceId,
|
|
13205
|
+
serviceUrl: serviceUrl,
|
|
13206
|
+
popupVariant: 'show'
|
|
13207
|
+
});
|
|
13208
|
+
}
|
|
13209
|
+
}, /*#__PURE__*/React.createElement(Visibility, null))))), /*#__PURE__*/React.createElement(Grid, {
|
|
13210
|
+
item: true,
|
|
13211
|
+
xs: 6
|
|
13212
|
+
}, isUserAddedService && /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
13213
|
+
title: serviceHasActiveLayers ? 'Service has active layers. Cannot remove this service' : 'Delete Service',
|
|
13214
|
+
"data-testid": "removeServiceTooltip"
|
|
13215
|
+
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(IconButton, {
|
|
13216
|
+
"data-testid": "removeServiceButton",
|
|
13217
|
+
"aria-label": "delete service",
|
|
13218
|
+
size: "large",
|
|
13219
|
+
disabled: serviceHasActiveLayers,
|
|
13220
|
+
onClick: function onClick() {
|
|
13221
|
+
return layerSelectRemoveService(serviceId, serviceUrl);
|
|
13222
|
+
}
|
|
13223
|
+
}, /*#__PURE__*/React.createElement(Delete, null)))))))));
|
|
12604
13224
|
}));
|
|
12605
13225
|
};
|
|
12606
13226
|
|
|
@@ -12621,45 +13241,59 @@ var ServiceOptionsDialog = function ServiceOptionsDialog(_ref) {
|
|
|
12621
13241
|
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12622
13242
|
* */
|
|
12623
13243
|
|
|
12624
|
-
var ServiceOptionsDialogConnect = function ServiceOptionsDialogConnect() {
|
|
13244
|
+
var ServiceOptionsDialogConnect = function ServiceOptionsDialogConnect(_ref) {
|
|
13245
|
+
var mapId = _ref.mapId,
|
|
13246
|
+
setServicePopupInfo = _ref.setServicePopupInfo;
|
|
12625
13247
|
var dispatch = useDispatch();
|
|
12626
|
-
var
|
|
12627
|
-
dispatch(
|
|
12628
|
-
|
|
13248
|
+
var layerSelectRemoveService = React.useCallback(function (serviceId, serviceUrl) {
|
|
13249
|
+
dispatch(layerSelectActions.layerSelectRemoveService({
|
|
13250
|
+
serviceId: serviceId,
|
|
12629
13251
|
serviceUrl: serviceUrl
|
|
12630
13252
|
}));
|
|
12631
13253
|
}, [dispatch]);
|
|
12632
13254
|
var services = useSelector(function (store) {
|
|
12633
13255
|
return getActiveServices(store);
|
|
12634
13256
|
});
|
|
13257
|
+
var selectedLayers = useSelector(function (store) {
|
|
13258
|
+
return getMapLayers(store, mapId);
|
|
13259
|
+
});
|
|
12635
13260
|
return /*#__PURE__*/React.createElement(ServiceOptionsDialog, {
|
|
13261
|
+
selectedLayers: selectedLayers,
|
|
12636
13262
|
services: services,
|
|
12637
|
-
|
|
13263
|
+
layerSelectRemoveService: layerSelectRemoveService,
|
|
13264
|
+
setServicePopupInfo: setServicePopupInfo
|
|
12638
13265
|
});
|
|
12639
13266
|
};
|
|
12640
13267
|
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
* you may not use this file except in compliance with the License.
|
|
12644
|
-
* You may obtain a copy of the License at
|
|
12645
|
-
*
|
|
12646
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12647
|
-
*
|
|
12648
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12649
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12650
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12651
|
-
* See the License for the specific language governing permissions and
|
|
12652
|
-
* limitations under the License.
|
|
12653
|
-
*
|
|
12654
|
-
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12655
|
-
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
12656
|
-
* */
|
|
13268
|
+
var ServiceOptionsButton = function ServiceOptionsButton(_ref) {
|
|
13269
|
+
var mapId = _ref.mapId;
|
|
12657
13270
|
|
|
12658
|
-
var
|
|
12659
|
-
|
|
13271
|
+
var _React$useState = React.useState({
|
|
13272
|
+
isOpen: false
|
|
13273
|
+
}),
|
|
13274
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
13275
|
+
servicePopupInfo = _React$useState2[0],
|
|
13276
|
+
setServicePopupInfo = _React$useState2[1];
|
|
13277
|
+
|
|
13278
|
+
var closePopup = function closePopup() {
|
|
13279
|
+
setServicePopupInfo({
|
|
13280
|
+
isOpen: false
|
|
13281
|
+
});
|
|
13282
|
+
};
|
|
13283
|
+
|
|
13284
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ToggleMenu, {
|
|
12660
13285
|
buttonTestId: "serviceOptionsButton",
|
|
12661
13286
|
menuPosition: "bottom"
|
|
12662
|
-
}, /*#__PURE__*/React.createElement(ServiceOptionsDialogConnect,
|
|
13287
|
+
}, /*#__PURE__*/React.createElement(ServiceOptionsDialogConnect, {
|
|
13288
|
+
setServicePopupInfo: setServicePopupInfo,
|
|
13289
|
+
mapId: mapId
|
|
13290
|
+
})), /*#__PURE__*/React.createElement(ServicePopupConnect, {
|
|
13291
|
+
servicePopupVariant: servicePopupInfo.popupVariant,
|
|
13292
|
+
isOpen: servicePopupInfo.isOpen,
|
|
13293
|
+
closePopup: closePopup,
|
|
13294
|
+
serviceId: servicePopupInfo.serviceId,
|
|
13295
|
+
url: servicePopupInfo.serviceUrl
|
|
13296
|
+
}));
|
|
12663
13297
|
};
|
|
12664
13298
|
|
|
12665
13299
|
var LayerSelect = function LayerSelect(_ref) {
|
|
@@ -12675,6 +13309,7 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
12675
13309
|
order = _ref$order === void 0 ? 0 : _ref$order,
|
|
12676
13310
|
_ref$source = _ref.source,
|
|
12677
13311
|
source = _ref$source === void 0 ? 'module' : _ref$source;
|
|
13312
|
+
var initialServiceListHeight = 37;
|
|
12678
13313
|
|
|
12679
13314
|
var _React$useState = React.useState(500),
|
|
12680
13315
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -12686,6 +13321,11 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
12686
13321
|
width = _React$useState4[0],
|
|
12687
13322
|
setWidth = _React$useState4[1];
|
|
12688
13323
|
|
|
13324
|
+
var _React$useState5 = React.useState(initialServiceListHeight),
|
|
13325
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
13326
|
+
serviceListHeight = _React$useState6[0],
|
|
13327
|
+
setServiceListHeight = _React$useState6[1];
|
|
13328
|
+
|
|
12689
13329
|
var onChangeSize = function onChangeSize(_ref2) {
|
|
12690
13330
|
var height = _ref2.height,
|
|
12691
13331
|
width = _ref2.width;
|
|
@@ -12693,6 +13333,12 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
12693
13333
|
setWidth(width);
|
|
12694
13334
|
};
|
|
12695
13335
|
|
|
13336
|
+
var handleHeightChange = function handleHeightChange(height) {
|
|
13337
|
+
if (height > initialServiceListHeight) {
|
|
13338
|
+
setServiceListHeight(height);
|
|
13339
|
+
}
|
|
13340
|
+
};
|
|
13341
|
+
|
|
12696
13342
|
return /*#__PURE__*/React.createElement(ToolContainerDraggable, {
|
|
12697
13343
|
title: showTitle ? "Layer Select ".concat(mapId) : 'Layer Select',
|
|
12698
13344
|
startSize: {
|
|
@@ -12733,52 +13379,156 @@ var LayerSelect = function LayerSelect(_ref) {
|
|
|
12733
13379
|
margin: '12px 0 0 calc(100% - 36px)',
|
|
12734
13380
|
zIndex: 2
|
|
12735
13381
|
}
|
|
12736
|
-
}, /*#__PURE__*/React.createElement(ServiceOptionsButton,
|
|
12737
|
-
|
|
12738
|
-
|
|
12739
|
-
|
|
12740
|
-
}, /*#__PURE__*/React.createElement(ServiceListConnect, {
|
|
12741
|
-
layerSelectWidth: width
|
|
13382
|
+
}, /*#__PURE__*/React.createElement(ServiceOptionsButton, {
|
|
13383
|
+
mapId: mapId
|
|
13384
|
+
})), /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(ServiceListConnect, {
|
|
13385
|
+
setHeight: handleHeightChange
|
|
12742
13386
|
})), /*#__PURE__*/React.createElement(Box, {
|
|
12743
13387
|
sx: {
|
|
12744
13388
|
padding: '0 8px'
|
|
12745
13389
|
}
|
|
12746
13390
|
}, /*#__PURE__*/React.createElement(LayerListConnect, {
|
|
12747
13391
|
mapId: mapId,
|
|
12748
|
-
layerSelectHeight: height
|
|
13392
|
+
layerSelectHeight: height,
|
|
13393
|
+
serviceListHeight: serviceListHeight
|
|
12749
13394
|
})));
|
|
12750
13395
|
};
|
|
12751
13396
|
|
|
13397
|
+
/* *
|
|
13398
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13399
|
+
* you may not use this file except in compliance with the License.
|
|
13400
|
+
* You may obtain a copy of the License at
|
|
13401
|
+
*
|
|
13402
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13403
|
+
*
|
|
13404
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13405
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13406
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13407
|
+
* See the License for the specific language governing permissions and
|
|
13408
|
+
* limitations under the License.
|
|
13409
|
+
*
|
|
13410
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13411
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
13412
|
+
* */
|
|
13413
|
+
var useSetupDialog = function useSetupDialog(dialogType) {
|
|
13414
|
+
var dispatch = useDispatch();
|
|
13415
|
+
var onCloseDialog = useCallback(function () {
|
|
13416
|
+
dispatch(uiActions.setToggleOpenDialog({
|
|
13417
|
+
type: dialogType,
|
|
13418
|
+
setOpen: false
|
|
13419
|
+
}));
|
|
13420
|
+
}, [dialogType, dispatch]);
|
|
13421
|
+
var mapId = useSelector(function (store) {
|
|
13422
|
+
return getDialogMapId(store, dialogType);
|
|
13423
|
+
});
|
|
13424
|
+
var isMapPresent = useSelector(function (store) {
|
|
13425
|
+
return getIsMapPresent(store, mapId);
|
|
13426
|
+
}); // Check to ensure the currently active map is still present on screen - if not, close the dialog
|
|
13427
|
+
|
|
13428
|
+
useEffect(function () {
|
|
13429
|
+
if (mapId !== '' && !isMapPresent) {
|
|
13430
|
+
onCloseDialog();
|
|
13431
|
+
}
|
|
13432
|
+
}, [mapId, isMapPresent, onCloseDialog]);
|
|
13433
|
+
var registerDialog = useCallback(function () {
|
|
13434
|
+
dispatch(uiActions.registerDialog({
|
|
13435
|
+
type: dialogType,
|
|
13436
|
+
setOpen: false
|
|
13437
|
+
}));
|
|
13438
|
+
}, [dialogType, dispatch]);
|
|
13439
|
+
var unregisterDialog = useCallback(function () {
|
|
13440
|
+
dispatch(uiActions.unregisterDialog({
|
|
13441
|
+
type: dialogType
|
|
13442
|
+
}));
|
|
13443
|
+
}, [dialogType, dispatch]); // Register this dialog in the store
|
|
13444
|
+
|
|
13445
|
+
useEffect(function () {
|
|
13446
|
+
registerDialog();
|
|
13447
|
+
return function () {
|
|
13448
|
+
unregisterDialog();
|
|
13449
|
+
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13450
|
+
}, []);
|
|
13451
|
+
var uiIsOrderedOnTop = useSelector(function (store) {
|
|
13452
|
+
return getDialogIsOrderedOnTop(store, dialogType);
|
|
13453
|
+
});
|
|
13454
|
+
var setDialogOrder = useCallback(function () {
|
|
13455
|
+
if (!uiIsOrderedOnTop) {
|
|
13456
|
+
dispatch(uiActions.orderDialog({
|
|
13457
|
+
type: dialogType
|
|
13458
|
+
}));
|
|
13459
|
+
}
|
|
13460
|
+
}, [dialogType, dispatch, uiIsOrderedOnTop]);
|
|
13461
|
+
var dialogOrder = useSelector(function (store) {
|
|
13462
|
+
return getDialogOrder(store, dialogType);
|
|
13463
|
+
});
|
|
13464
|
+
var uiSource = useSelector(function (store) {
|
|
13465
|
+
return getDialogSource(store, dialogType);
|
|
13466
|
+
});
|
|
13467
|
+
var isDialogOpen = useSelector(function (store) {
|
|
13468
|
+
return getisDialogOpen(store, dialogType);
|
|
13469
|
+
});
|
|
13470
|
+
return {
|
|
13471
|
+
setDialogOrder: setDialogOrder,
|
|
13472
|
+
dialogOrder: dialogOrder,
|
|
13473
|
+
onCloseDialog: onCloseDialog,
|
|
13474
|
+
uiSource: uiSource,
|
|
13475
|
+
isDialogOpen: isDialogOpen
|
|
13476
|
+
};
|
|
13477
|
+
};
|
|
13478
|
+
|
|
12752
13479
|
var FilterListItem = function FilterListItem(_ref) {
|
|
12753
|
-
var
|
|
12754
|
-
|
|
12755
|
-
|
|
13480
|
+
var filter = _ref.filter,
|
|
13481
|
+
toggleFilter = _ref.toggleFilter,
|
|
13482
|
+
enableOnlyOneFilter = _ref.enableOnlyOneFilter;
|
|
12756
13483
|
|
|
12757
13484
|
var _React$useState = React.useState(false),
|
|
12758
13485
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
12759
|
-
|
|
12760
|
-
|
|
13486
|
+
isHovering = _React$useState2[0],
|
|
13487
|
+
setIsHovering = _React$useState2[1];
|
|
12761
13488
|
|
|
12762
|
-
var
|
|
12763
|
-
|
|
13489
|
+
var handleMouseEnter = React.useCallback(function () {
|
|
13490
|
+
setIsHovering(true);
|
|
12764
13491
|
}, []);
|
|
12765
13492
|
var handleMouseLeave = React.useCallback(function () {
|
|
12766
|
-
|
|
13493
|
+
setIsHovering(false);
|
|
12767
13494
|
}, []);
|
|
12768
13495
|
|
|
12769
|
-
var selectOnlyOne = function selectOnlyOne(
|
|
12770
|
-
|
|
13496
|
+
var selectOnlyOne = function selectOnlyOne(filterId) {
|
|
13497
|
+
enableOnlyOneFilter(filterId);
|
|
12771
13498
|
};
|
|
12772
13499
|
|
|
12773
|
-
var toggleCheckbox = function toggleCheckbox(
|
|
12774
|
-
|
|
13500
|
+
var toggleCheckbox = function toggleCheckbox(filterId) {
|
|
13501
|
+
toggleFilter([filterId]);
|
|
13502
|
+
};
|
|
13503
|
+
|
|
13504
|
+
var mouseMoveRef = React.useRef(null);
|
|
13505
|
+
React.useEffect(function () {
|
|
13506
|
+
window.addEventListener('mousemove', checkHover, true);
|
|
13507
|
+
return function () {
|
|
13508
|
+
window.removeEventListener('mousemove', checkHover, true);
|
|
13509
|
+
};
|
|
13510
|
+
});
|
|
13511
|
+
|
|
13512
|
+
var checkHover = function checkHover(e) {
|
|
13513
|
+
if (mouseMoveRef.current) {
|
|
13514
|
+
var mouseOver = mouseMoveRef.current.contains(e.target);
|
|
13515
|
+
|
|
13516
|
+
if (!isHovering && mouseOver) {
|
|
13517
|
+
handleMouseEnter();
|
|
13518
|
+
}
|
|
13519
|
+
|
|
13520
|
+
if (isHovering && !mouseOver) {
|
|
13521
|
+
handleMouseLeave();
|
|
13522
|
+
}
|
|
13523
|
+
}
|
|
12775
13524
|
};
|
|
12776
13525
|
|
|
12777
|
-
if (
|
|
13526
|
+
if (filter.amountVisible !== 0) {
|
|
12778
13527
|
return /*#__PURE__*/React.createElement("div", {
|
|
12779
|
-
|
|
13528
|
+
ref: mouseMoveRef,
|
|
13529
|
+
onMouseEnter: handleMouseEnter,
|
|
12780
13530
|
onMouseLeave: handleMouseLeave,
|
|
12781
|
-
onFocus:
|
|
13531
|
+
onFocus: handleMouseEnter,
|
|
12782
13532
|
onBlur: handleMouseLeave,
|
|
12783
13533
|
"data-testid": "filterResultListItem"
|
|
12784
13534
|
}, /*#__PURE__*/React.createElement(ListItem, {
|
|
@@ -12796,9 +13546,9 @@ var FilterListItem = function FilterListItem(_ref) {
|
|
|
12796
13546
|
}
|
|
12797
13547
|
}, /*#__PURE__*/React.createElement(Checkbox, {
|
|
12798
13548
|
color: "secondary",
|
|
12799
|
-
checked:
|
|
13549
|
+
checked: filter.checked,
|
|
12800
13550
|
onChange: function onChange() {
|
|
12801
|
-
return toggleCheckbox(
|
|
13551
|
+
return toggleCheckbox(filter.id);
|
|
12802
13552
|
},
|
|
12803
13553
|
sx: {
|
|
12804
13554
|
paddingTop: '6px',
|
|
@@ -12814,14 +13564,14 @@ var FilterListItem = function FilterListItem(_ref) {
|
|
|
12814
13564
|
whiteSpace: 'nowrap',
|
|
12815
13565
|
overflow: 'hidden'
|
|
12816
13566
|
}
|
|
12817
|
-
},
|
|
13567
|
+
}, filter.name, " (", filter.amountVisible, ")"), isHovering ? /*#__PURE__*/React.createElement(ListItemSecondaryAction, null, /*#__PURE__*/React.createElement(IconButton, {
|
|
12818
13568
|
style: {
|
|
12819
13569
|
backgroundColor: 'transparent'
|
|
12820
13570
|
},
|
|
12821
13571
|
edge: "end",
|
|
12822
13572
|
size: "small",
|
|
12823
13573
|
onClick: function onClick() {
|
|
12824
|
-
return selectOnlyOne(
|
|
13574
|
+
return selectOnlyOne(filter.id);
|
|
12825
13575
|
},
|
|
12826
13576
|
"data-testid": "onlyButton"
|
|
12827
13577
|
}, /*#__PURE__*/React.createElement(Typography, {
|
|
@@ -12854,25 +13604,22 @@ var FilterListItem = function FilterListItem(_ref) {
|
|
|
12854
13604
|
* */
|
|
12855
13605
|
|
|
12856
13606
|
var KeywordFilterResultsListItemConnect = function KeywordFilterResultsListItemConnect(_ref) {
|
|
12857
|
-
var
|
|
13607
|
+
var filter = _ref.filter;
|
|
12858
13608
|
var dispatch = useDispatch();
|
|
12859
|
-
var
|
|
12860
|
-
dispatch(layerSelectActions.
|
|
12861
|
-
|
|
13609
|
+
var toggleFilter = React.useCallback(function (filterIds) {
|
|
13610
|
+
dispatch(layerSelectActions.toggleFilter({
|
|
13611
|
+
filterIds: filterIds
|
|
12862
13612
|
}));
|
|
12863
13613
|
}, [dispatch]);
|
|
12864
|
-
var
|
|
12865
|
-
dispatch(layerSelectActions.
|
|
12866
|
-
|
|
13614
|
+
var enableOnlyOneFilter = React.useCallback(function (filterId) {
|
|
13615
|
+
dispatch(layerSelectActions.enableOnlyOneFilter({
|
|
13616
|
+
filterId: filterId
|
|
12867
13617
|
}));
|
|
12868
13618
|
}, [dispatch]);
|
|
12869
|
-
var keywordObject = useSelector(function (store) {
|
|
12870
|
-
return getKeywordObjectById(store, keyword);
|
|
12871
|
-
});
|
|
12872
13619
|
return /*#__PURE__*/React.createElement(FilterListItem, {
|
|
12873
|
-
|
|
12874
|
-
|
|
12875
|
-
|
|
13620
|
+
filter: filter,
|
|
13621
|
+
toggleFilter: toggleFilter,
|
|
13622
|
+
enableOnlyOneFilter: enableOnlyOneFilter
|
|
12876
13623
|
});
|
|
12877
13624
|
};
|
|
12878
13625
|
|
|
@@ -12895,54 +13642,37 @@ var KeywordFilterResultsListItemConnect = function KeywordFilterResultsListItemC
|
|
|
12895
13642
|
|
|
12896
13643
|
var KeywordFilterSelectAllSwitchConnect = function KeywordFilterSelectAllSwitchConnect() {
|
|
12897
13644
|
var dispatch = useDispatch();
|
|
12898
|
-
var
|
|
12899
|
-
return
|
|
13645
|
+
var allFiltersActive = useSelector(function (store) {
|
|
13646
|
+
return isAllFiltersChecked(store);
|
|
12900
13647
|
});
|
|
12901
|
-
var
|
|
12902
|
-
return
|
|
13648
|
+
var allFilterIds = useSelector(function (store) {
|
|
13649
|
+
return getAllFilterIds(store);
|
|
12903
13650
|
});
|
|
12904
|
-
var
|
|
12905
|
-
return
|
|
13651
|
+
var checkedFilterIds = useSelector(function (store) {
|
|
13652
|
+
return getCheckedFilterIds(store);
|
|
12906
13653
|
});
|
|
12907
|
-
var
|
|
12908
|
-
var
|
|
12909
|
-
return !
|
|
13654
|
+
var toggleFilters = React.useCallback(function () {
|
|
13655
|
+
var filterIds = allFiltersActive ? checkedFilterIds : allFilterIds.filter(function (id) {
|
|
13656
|
+
return !checkedFilterIds.includes(id);
|
|
12910
13657
|
});
|
|
12911
|
-
dispatch(layerSelectActions.
|
|
12912
|
-
|
|
13658
|
+
dispatch(layerSelectActions.toggleFilter({
|
|
13659
|
+
filterIds: filterIds
|
|
12913
13660
|
}));
|
|
12914
|
-
}, [
|
|
13661
|
+
}, [allFilterIds, allFiltersActive, checkedFilterIds, dispatch]);
|
|
12915
13662
|
return /*#__PURE__*/React.createElement(Switch, {
|
|
12916
|
-
checked:
|
|
12917
|
-
onChange:
|
|
13663
|
+
checked: allFiltersActive,
|
|
13664
|
+
onChange: toggleFilters,
|
|
12918
13665
|
"data-testid": "customSwitch"
|
|
12919
13666
|
});
|
|
12920
13667
|
};
|
|
12921
13668
|
|
|
12922
|
-
|
|
12923
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12924
|
-
* you may not use this file except in compliance with the License.
|
|
12925
|
-
* You may obtain a copy of the License at
|
|
12926
|
-
*
|
|
12927
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12928
|
-
*
|
|
12929
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
12930
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12931
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12932
|
-
* See the License for the specific language governing permissions and
|
|
12933
|
-
* limitations under the License.
|
|
12934
|
-
*
|
|
12935
|
-
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
12936
|
-
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
12937
|
-
* */
|
|
13669
|
+
var DIALOG_TITLE = 'Groups & Keywords';
|
|
12938
13670
|
|
|
12939
13671
|
var KeywordFilterResults = function KeywordFilterResults(_ref) {
|
|
12940
|
-
var
|
|
12941
|
-
mapId = _ref.mapId,
|
|
13672
|
+
var filters = _ref.filters,
|
|
12942
13673
|
bounds = _ref.bounds,
|
|
12943
13674
|
_ref$onClose = _ref.onClose,
|
|
12944
13675
|
onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,
|
|
12945
|
-
showTitle = _ref.showTitle,
|
|
12946
13676
|
isOpen = _ref.isOpen,
|
|
12947
13677
|
_ref$onMouseDown = _ref.onMouseDown,
|
|
12948
13678
|
onMouseDown = _ref$onMouseDown === void 0 ? function () {} : _ref$onMouseDown,
|
|
@@ -12950,8 +13680,26 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
|
|
|
12950
13680
|
order = _ref$order === void 0 ? 0 : _ref$order,
|
|
12951
13681
|
_ref$source = _ref.source,
|
|
12952
13682
|
source = _ref$source === void 0 ? 'module' : _ref$source;
|
|
13683
|
+
|
|
13684
|
+
var _a, _b;
|
|
13685
|
+
|
|
13686
|
+
var filtersGroupedByType = groupBy(filters, function (filter) {
|
|
13687
|
+
return filter.type;
|
|
13688
|
+
});
|
|
13689
|
+
var groups = (_a = filtersGroupedByType['group']) !== null && _a !== void 0 ? _a : [];
|
|
13690
|
+
|
|
13691
|
+
var groupsSorted = _toConsumableArray(groups).sort(function (a, b) {
|
|
13692
|
+
return a.name.localeCompare(b.name);
|
|
13693
|
+
});
|
|
13694
|
+
|
|
13695
|
+
var keywords = (_b = filtersGroupedByType['keyword']) !== null && _b !== void 0 ? _b : [];
|
|
13696
|
+
|
|
13697
|
+
var keywordsSorted = _toConsumableArray(keywords).sort(function (a, b) {
|
|
13698
|
+
return a.name.localeCompare(b.name);
|
|
13699
|
+
});
|
|
13700
|
+
|
|
12953
13701
|
return /*#__PURE__*/React.createElement(ToolContainerDraggable, {
|
|
12954
|
-
title:
|
|
13702
|
+
title: DIALOG_TITLE,
|
|
12955
13703
|
"data-testid": "keywordFilterResults",
|
|
12956
13704
|
startSize: {
|
|
12957
13705
|
width: 349,
|
|
@@ -13002,10 +13750,15 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
|
|
|
13002
13750
|
style: {
|
|
13003
13751
|
padding: '0px'
|
|
13004
13752
|
}
|
|
13005
|
-
},
|
|
13753
|
+
}, /*#__PURE__*/React.createElement(ListSubheader, null, "Groups"), groupsSorted.map(function (group) {
|
|
13754
|
+
return /*#__PURE__*/React.createElement(KeywordFilterResultsListItemConnect, {
|
|
13755
|
+
key: group.id,
|
|
13756
|
+
filter: group
|
|
13757
|
+
});
|
|
13758
|
+
}), /*#__PURE__*/React.createElement(ListSubheader, null, "Keywords"), keywordsSorted.map(function (keyword) {
|
|
13006
13759
|
return /*#__PURE__*/React.createElement(KeywordFilterResultsListItemConnect, {
|
|
13007
|
-
key:
|
|
13008
|
-
|
|
13760
|
+
key: keyword.id,
|
|
13761
|
+
filter: keyword
|
|
13009
13762
|
});
|
|
13010
13763
|
})));
|
|
13011
13764
|
};
|
|
@@ -13028,78 +13781,63 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
|
|
|
13028
13781
|
* */
|
|
13029
13782
|
|
|
13030
13783
|
var KeywordFilterResultsConnect = function KeywordFilterResultsConnect(_ref) {
|
|
13031
|
-
var bounds = _ref.bounds
|
|
13032
|
-
_ref$showTitle = _ref.showTitle,
|
|
13033
|
-
showTitle = _ref$showTitle === void 0 ? false : _ref$showTitle;
|
|
13034
|
-
var dispatch = useDispatch();
|
|
13035
|
-
var mapId = useSelector(function (store) {
|
|
13036
|
-
return getDialogMapId(store, 'keywordFilter');
|
|
13037
|
-
});
|
|
13038
|
-
var isOpenInStore = useSelector(function (store) {
|
|
13039
|
-
return getisDialogOpen(store, 'keywordFilter');
|
|
13040
|
-
});
|
|
13041
|
-
var onClose = React.useCallback(function () {
|
|
13042
|
-
return dispatch(uiActions.setToggleOpenDialog({
|
|
13043
|
-
type: 'keywordFilter',
|
|
13044
|
-
setOpen: false
|
|
13045
|
-
}));
|
|
13046
|
-
}, [dispatch]);
|
|
13047
|
-
var isMapPresent = useSelector(function (store) {
|
|
13048
|
-
return getIsMapPresent(store, mapId);
|
|
13049
|
-
});
|
|
13050
|
-
var uiOrder = useSelector(function (store) {
|
|
13051
|
-
return getDialogOrder(store, 'keywordFilter');
|
|
13052
|
-
});
|
|
13053
|
-
var uiSource = useSelector(function (store) {
|
|
13054
|
-
return getDialogSource(store, 'keywordFilter');
|
|
13055
|
-
});
|
|
13056
|
-
var uiIsOrderedOnTop = useSelector(function (store) {
|
|
13057
|
-
return getDialogIsOrderedOnTop(store, 'keywordFilter');
|
|
13058
|
-
}); // Check to ensure the currently active map is still present on screen - if not, close the dialog
|
|
13784
|
+
var bounds = _ref.bounds;
|
|
13059
13785
|
|
|
13060
|
-
|
|
13061
|
-
|
|
13062
|
-
|
|
13063
|
-
|
|
13064
|
-
|
|
13065
|
-
|
|
13066
|
-
return dispatch(uiActions.registerDialog({
|
|
13067
|
-
type: 'keywordFilter',
|
|
13068
|
-
setOpen: false
|
|
13069
|
-
}));
|
|
13070
|
-
}, [dispatch]);
|
|
13071
|
-
var unregisterDialog = React.useCallback(function () {
|
|
13072
|
-
return dispatch(uiActions.unregisterDialog({
|
|
13073
|
-
type: 'keywordFilter'
|
|
13074
|
-
}));
|
|
13075
|
-
}, [dispatch]);
|
|
13076
|
-
var onOrderDialog = React.useCallback(function () {
|
|
13077
|
-
if (!uiIsOrderedOnTop) {
|
|
13078
|
-
dispatch(uiActions.orderDialog({
|
|
13079
|
-
type: 'keywordFilter'
|
|
13080
|
-
}));
|
|
13081
|
-
}
|
|
13082
|
-
}, [dispatch, uiIsOrderedOnTop]); // Register this dialog in the store
|
|
13786
|
+
var _useSetupDialog = useSetupDialog('keywordFilter'),
|
|
13787
|
+
dialogOrder = _useSetupDialog.dialogOrder,
|
|
13788
|
+
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
13789
|
+
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
13790
|
+
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
13791
|
+
uiSource = _useSetupDialog.uiSource;
|
|
13083
13792
|
|
|
13084
|
-
|
|
13085
|
-
registerDialog();
|
|
13086
|
-
return function () {
|
|
13087
|
-
unregisterDialog();
|
|
13088
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13089
|
-
}, []);
|
|
13090
|
-
var allKeywordIds = useSelector(function (store) {
|
|
13091
|
-
return getAllKeywordIds(store);
|
|
13092
|
-
});
|
|
13793
|
+
var filters = useSelector(getAllFilters);
|
|
13093
13794
|
return /*#__PURE__*/React.createElement(KeywordFilterResults, {
|
|
13094
|
-
allKeywordIds: allKeywordIds,
|
|
13095
|
-
mapId: mapId,
|
|
13096
13795
|
bounds: bounds,
|
|
13097
|
-
isOpen:
|
|
13098
|
-
onClose:
|
|
13099
|
-
|
|
13100
|
-
|
|
13101
|
-
|
|
13102
|
-
|
|
13796
|
+
isOpen: isDialogOpen,
|
|
13797
|
+
onClose: onCloseDialog,
|
|
13798
|
+
onMouseDown: setDialogOrder,
|
|
13799
|
+
order: dialogOrder,
|
|
13800
|
+
source: uiSource,
|
|
13801
|
+
filters: filters
|
|
13802
|
+
});
|
|
13803
|
+
};
|
|
13804
|
+
|
|
13805
|
+
/* *
|
|
13806
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13807
|
+
* you may not use this file except in compliance with the License.
|
|
13808
|
+
* You may obtain a copy of the License at
|
|
13809
|
+
*
|
|
13810
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
13811
|
+
*
|
|
13812
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13813
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13814
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13815
|
+
* See the License for the specific language governing permissions and
|
|
13816
|
+
* limitations under the License.
|
|
13817
|
+
*
|
|
13818
|
+
* Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13819
|
+
* Copyright 2022 - Finnish Meteorological Institute (FMI)
|
|
13820
|
+
* */
|
|
13821
|
+
|
|
13822
|
+
var LayerInfoDialogConnect = function LayerInfoDialogConnect() {
|
|
13823
|
+
var layer = useSelector(function (store) {
|
|
13824
|
+
return getActiveLayerInfo(store);
|
|
13825
|
+
});
|
|
13826
|
+
|
|
13827
|
+
var _useSetupDialog = useSetupDialog(DialogTypes.LayerInfo),
|
|
13828
|
+
dialogOrder = _useSetupDialog.dialogOrder,
|
|
13829
|
+
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
13830
|
+
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
13831
|
+
uiSource = _useSetupDialog.uiSource,
|
|
13832
|
+
isDialogOpen = _useSetupDialog.isDialogOpen;
|
|
13833
|
+
|
|
13834
|
+
return /*#__PURE__*/React__default.createElement(LayerInfoDialog, {
|
|
13835
|
+
isOpen: isDialogOpen,
|
|
13836
|
+
onClose: onCloseDialog,
|
|
13837
|
+
onMouseDown: setDialogOrder,
|
|
13838
|
+
order: dialogOrder,
|
|
13839
|
+
source: uiSource,
|
|
13840
|
+
layer: layer
|
|
13103
13841
|
});
|
|
13104
13842
|
};
|
|
13105
13843
|
|
|
@@ -13127,72 +13865,43 @@ var KeywordFilterResultsConnect = function KeywordFilterResultsConnect(_ref) {
|
|
|
13127
13865
|
* ``` <LayerSelectConnect />```
|
|
13128
13866
|
*/
|
|
13129
13867
|
|
|
13130
|
-
var LayerSelectConnect = function LayerSelectConnect(_ref) {
|
|
13131
|
-
var bounds = _ref.bounds,
|
|
13132
|
-
_ref$showTitle = _ref.showTitle,
|
|
13133
|
-
showTitle = _ref$showTitle === void 0 ? false : _ref$showTitle
|
|
13134
|
-
|
|
13135
|
-
|
|
13868
|
+
var LayerSelectConnect = function LayerSelectConnect(_ref) {
|
|
13869
|
+
var bounds = _ref.bounds,
|
|
13870
|
+
_ref$showTitle = _ref.showTitle,
|
|
13871
|
+
showTitle = _ref$showTitle === void 0 ? false : _ref$showTitle;
|
|
13872
|
+
var mapId = useSelector(function (store) {
|
|
13873
|
+
return getDialogMapId(store, 'layerSelect');
|
|
13874
|
+
});
|
|
13875
|
+
|
|
13876
|
+
var _useSetupDialog = useSetupDialog('layerSelect'),
|
|
13877
|
+
dialogOrder = _useSetupDialog.dialogOrder,
|
|
13878
|
+
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
13879
|
+
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
13880
|
+
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
13881
|
+
uiSource = _useSetupDialog.uiSource;
|
|
13882
|
+
|
|
13883
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LayerSelect, {
|
|
13884
|
+
mapId: mapId,
|
|
13885
|
+
bounds: bounds,
|
|
13886
|
+
isOpen: isDialogOpen,
|
|
13887
|
+
onClose: onCloseDialog,
|
|
13888
|
+
showTitle: showTitle,
|
|
13889
|
+
onMouseDown: setDialogOrder,
|
|
13890
|
+
order: dialogOrder,
|
|
13891
|
+
source: uiSource
|
|
13892
|
+
}), /*#__PURE__*/React.createElement(KeywordFilterResultsConnect, null), /*#__PURE__*/React.createElement(LayerInfoDialogConnect, null));
|
|
13893
|
+
};
|
|
13894
|
+
|
|
13895
|
+
var useFetchServices = function useFetchServices(dialogType) {
|
|
13896
|
+
var preloadedServices = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : preloadedDefaultMapServices;
|
|
13136
13897
|
var dispatch = useDispatch();
|
|
13137
13898
|
|
|
13138
13899
|
var _useIsMounted = useIsMounted(),
|
|
13139
13900
|
isMounted = _useIsMounted.isMounted;
|
|
13140
13901
|
|
|
13141
|
-
var mapId = useSelector(function (store) {
|
|
13142
|
-
return getDialogMapId(store, 'layerSelect');
|
|
13143
|
-
});
|
|
13144
13902
|
var isOpenInStore = useSelector(function (store) {
|
|
13145
|
-
return getisDialogOpen(store,
|
|
13146
|
-
});
|
|
13147
|
-
var onClose = React.useCallback(function () {
|
|
13148
|
-
return dispatch(uiActions.setToggleOpenDialog({
|
|
13149
|
-
type: 'layerSelect',
|
|
13150
|
-
setOpen: false
|
|
13151
|
-
}));
|
|
13152
|
-
}, [dispatch]);
|
|
13153
|
-
var isMapPresent = useSelector(function (store) {
|
|
13154
|
-
return getIsMapPresent(store, mapId);
|
|
13155
|
-
});
|
|
13156
|
-
var uiOrder = useSelector(function (store) {
|
|
13157
|
-
return getDialogOrder(store, 'layerSelect');
|
|
13158
|
-
});
|
|
13159
|
-
var uiSource = useSelector(function (store) {
|
|
13160
|
-
return getDialogSource(store, 'layerSelect');
|
|
13903
|
+
return getisDialogOpen(store, dialogType);
|
|
13161
13904
|
});
|
|
13162
|
-
var uiIsOrderedOnTop = useSelector(function (store) {
|
|
13163
|
-
return getDialogIsOrderedOnTop(store, 'layerSelect');
|
|
13164
|
-
}); // Check to ensure the currently active map is still present on screen - if not, close the dialog
|
|
13165
|
-
|
|
13166
|
-
React.useEffect(function () {
|
|
13167
|
-
if (mapId !== '' && !isMapPresent) {
|
|
13168
|
-
onClose();
|
|
13169
|
-
}
|
|
13170
|
-
}, [mapId, isMapPresent, onClose]);
|
|
13171
|
-
var registerDialog = React.useCallback(function () {
|
|
13172
|
-
return dispatch(uiActions.registerDialog({
|
|
13173
|
-
type: 'layerSelect',
|
|
13174
|
-
setOpen: false
|
|
13175
|
-
}));
|
|
13176
|
-
}, [dispatch]);
|
|
13177
|
-
var unregisterDialog = React.useCallback(function () {
|
|
13178
|
-
return dispatch(uiActions.unregisterDialog({
|
|
13179
|
-
type: 'layerSelect'
|
|
13180
|
-
}));
|
|
13181
|
-
}, [dispatch]);
|
|
13182
|
-
var onOrderDialog = React.useCallback(function () {
|
|
13183
|
-
if (!uiIsOrderedOnTop) {
|
|
13184
|
-
dispatch(uiActions.orderDialog({
|
|
13185
|
-
type: 'layerSelect'
|
|
13186
|
-
}));
|
|
13187
|
-
}
|
|
13188
|
-
}, [dispatch, uiIsOrderedOnTop]); // Register this dialog in the store
|
|
13189
|
-
|
|
13190
|
-
React.useEffect(function () {
|
|
13191
|
-
registerDialog();
|
|
13192
|
-
return function () {
|
|
13193
|
-
unregisterDialog();
|
|
13194
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13195
|
-
}, []);
|
|
13196
13905
|
var serviceSetLayers = React.useCallback(function (payload) {
|
|
13197
13906
|
dispatch(serviceActions.serviceSetLayers(payload));
|
|
13198
13907
|
}, [dispatch]);
|
|
@@ -13212,7 +13921,9 @@ var LayerSelectConnect = function LayerSelectConnect(_ref) {
|
|
|
13212
13921
|
name: service.name,
|
|
13213
13922
|
serviceUrl: service.url,
|
|
13214
13923
|
layers: layers,
|
|
13215
|
-
isUserAddedService: checkIfUserAddedService(service)
|
|
13924
|
+
isUserAddedService: checkIfUserAddedService(service),
|
|
13925
|
+
// first try to load the user abstract, otherwise the service abstract
|
|
13926
|
+
"abstract": service["abstract"] || wmService["abstract"]
|
|
13216
13927
|
});
|
|
13217
13928
|
}
|
|
13218
13929
|
})["catch"](function () {
|
|
@@ -13222,16 +13933,11 @@ var LayerSelectConnect = function LayerSelectConnect(_ref) {
|
|
|
13222
13933
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13223
13934
|
|
|
13224
13935
|
}, [isOpenInStore, preloadedServices, serviceSetLayers]);
|
|
13225
|
-
|
|
13226
|
-
|
|
13227
|
-
|
|
13228
|
-
|
|
13229
|
-
|
|
13230
|
-
showTitle: showTitle,
|
|
13231
|
-
onMouseDown: onOrderDialog,
|
|
13232
|
-
order: uiOrder,
|
|
13233
|
-
source: uiSource
|
|
13234
|
-
}), /*#__PURE__*/React.createElement(KeywordFilterResultsConnect, null));
|
|
13936
|
+
};
|
|
13937
|
+
var mergePresetsAndUserAddedServices = function mergePresetsAndUserAddedServices(presets, userAddedServices) {
|
|
13938
|
+
return Object.values(Object.assign(Object.assign({}, presets.reduce(function (byUrl, preset) {
|
|
13939
|
+
return Object.assign(Object.assign({}, byUrl), _defineProperty({}, preset.url, preset));
|
|
13940
|
+
}, {})), userAddedServices));
|
|
13235
13941
|
};
|
|
13236
13942
|
|
|
13237
13943
|
/* *
|
|
@@ -13250,6 +13956,7 @@ var LayerSelectConnect = function LayerSelectConnect(_ref) {
|
|
|
13250
13956
|
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
13251
13957
|
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
13252
13958
|
* */
|
|
13959
|
+
var dialogType = 'layerManager';
|
|
13253
13960
|
/**
|
|
13254
13961
|
* Layer Managerconnected to the store displaying the layers forthe active map Id
|
|
13255
13962
|
* Please note that in order to use this and open/close the dialog, every map on the screen that should be able to show
|
|
@@ -13273,87 +13980,41 @@ var LayerManagerConnect = function LayerManagerConnect(_ref) {
|
|
|
13273
13980
|
layerSelect = _ref$layerSelect === void 0 ? false : _ref$layerSelect,
|
|
13274
13981
|
_ref$leftComponent = _ref.leftComponent,
|
|
13275
13982
|
leftComponent = _ref$leftComponent === void 0 ? null : _ref$leftComponent;
|
|
13276
|
-
var dispatch = useDispatch();
|
|
13277
|
-
var isOpenInStore = useSelector(function (store) {
|
|
13278
|
-
return getisDialogOpen(store, 'layerManager');
|
|
13279
|
-
});
|
|
13280
13983
|
var mapId = useSelector(function (store) {
|
|
13281
|
-
return getDialogMapId(store,
|
|
13282
|
-
});
|
|
13283
|
-
var onClose = React.useCallback(function () {
|
|
13284
|
-
return dispatch(uiActions.setToggleOpenDialog({
|
|
13285
|
-
type: 'layerManager',
|
|
13286
|
-
setOpen: false
|
|
13287
|
-
}));
|
|
13288
|
-
}, [dispatch]);
|
|
13289
|
-
var isMapPresent = useSelector(function (store) {
|
|
13290
|
-
return getIsMapPresent(store, mapId);
|
|
13291
|
-
});
|
|
13292
|
-
var uiOrder = useSelector(function (store) {
|
|
13293
|
-
return getDialogOrder(store, 'layerManager');
|
|
13294
|
-
});
|
|
13295
|
-
var uiSource = useSelector(function (store) {
|
|
13296
|
-
return getDialogSource(store, 'layerManager');
|
|
13297
|
-
});
|
|
13298
|
-
var uiIsOrderedOnTop = useSelector(function (store) {
|
|
13299
|
-
return getDialogIsOrderedOnTop(store, 'layerManager');
|
|
13984
|
+
return getDialogMapId(store, dialogType);
|
|
13300
13985
|
});
|
|
13301
13986
|
var isMapPresetLoading = useSelector(function (store) {
|
|
13302
13987
|
return getIsMapPresetLoading(store, mapId);
|
|
13303
13988
|
});
|
|
13304
13989
|
var mapPresetError = useSelector(function (store) {
|
|
13305
13990
|
return getMapPresetError(store, mapId);
|
|
13306
|
-
});
|
|
13991
|
+
});
|
|
13307
13992
|
|
|
13308
|
-
|
|
13309
|
-
|
|
13310
|
-
|
|
13311
|
-
|
|
13312
|
-
|
|
13313
|
-
|
|
13314
|
-
return dispatch(uiActions.registerDialog({
|
|
13315
|
-
type: 'layerManager',
|
|
13316
|
-
setOpen: false
|
|
13317
|
-
}));
|
|
13318
|
-
}, [dispatch]);
|
|
13319
|
-
var unregisterDialog = React.useCallback(function () {
|
|
13320
|
-
return dispatch(uiActions.unregisterDialog({
|
|
13321
|
-
type: 'layerManager'
|
|
13322
|
-
}));
|
|
13323
|
-
}, [dispatch]);
|
|
13324
|
-
var onOrderDialog = React.useCallback(function () {
|
|
13325
|
-
if (!uiIsOrderedOnTop) {
|
|
13326
|
-
dispatch(uiActions.orderDialog({
|
|
13327
|
-
type: 'layerManager'
|
|
13328
|
-
}));
|
|
13329
|
-
}
|
|
13330
|
-
}, [dispatch, uiIsOrderedOnTop]); // Register this dialog in the store
|
|
13993
|
+
var _useSetupDialog = useSetupDialog(dialogType),
|
|
13994
|
+
dialogOrder = _useSetupDialog.dialogOrder,
|
|
13995
|
+
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
13996
|
+
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
13997
|
+
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
13998
|
+
uiSource = _useSetupDialog.uiSource;
|
|
13331
13999
|
|
|
13332
|
-
|
|
13333
|
-
registerDialog();
|
|
13334
|
-
return function () {
|
|
13335
|
-
unregisterDialog();
|
|
13336
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
13337
|
-
}, []);
|
|
14000
|
+
useFetchServices(dialogType, preloadedMapServices);
|
|
13338
14001
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LayerManager, {
|
|
13339
14002
|
mapId: mapId,
|
|
13340
14003
|
preloadedAvailableBaseLayers: preloadedAvailableBaseLayers,
|
|
13341
14004
|
preloadedMapServices: preloadedMapServices,
|
|
13342
14005
|
preloadedBaseServices: preloadedBaseServices,
|
|
13343
14006
|
bounds: bounds,
|
|
13344
|
-
isOpen:
|
|
13345
|
-
onClose:
|
|
14007
|
+
isOpen: isDialogOpen,
|
|
14008
|
+
onClose: onCloseDialog,
|
|
13346
14009
|
showTitle: showTitle,
|
|
13347
|
-
onMouseDown:
|
|
13348
|
-
order:
|
|
14010
|
+
onMouseDown: setDialogOrder,
|
|
14011
|
+
order: dialogOrder,
|
|
13349
14012
|
source: uiSource,
|
|
13350
14013
|
layerSelect: layerSelect,
|
|
13351
14014
|
leftComponent: leftComponent,
|
|
13352
14015
|
isLoading: isMapPresetLoading,
|
|
13353
14016
|
error: mapPresetError
|
|
13354
|
-
}), layerSelect && /*#__PURE__*/React.createElement(LayerSelectConnect,
|
|
13355
|
-
preloadedServices: preloadedMapServices
|
|
13356
|
-
}));
|
|
14017
|
+
}), layerSelect && /*#__PURE__*/React.createElement(LayerSelectConnect, null));
|
|
13357
14018
|
};
|
|
13358
14019
|
|
|
13359
14020
|
/* *
|
|
@@ -13595,7 +14256,7 @@ var getDimensionIcon = function getDimensionIcon(iconType) {
|
|
|
13595
14256
|
return Equalizer;
|
|
13596
14257
|
}
|
|
13597
14258
|
|
|
13598
|
-
return
|
|
14259
|
+
return DimensionsElevation;
|
|
13599
14260
|
};
|
|
13600
14261
|
|
|
13601
14262
|
/* *
|
|
@@ -13885,7 +14546,7 @@ var DimensionSelectDialogConnect = function DimensionSelectDialogConnect(_ref) {
|
|
|
13885
14546
|
_ref$order = _ref.order,
|
|
13886
14547
|
order = _ref$order === void 0 ? 0 : _ref$order,
|
|
13887
14548
|
onMouseDown = _ref.onMouseDown,
|
|
13888
|
-
|
|
14549
|
+
onCloseDialog = _ref.onCloseDialog,
|
|
13889
14550
|
_ref$index = _ref.index,
|
|
13890
14551
|
index = _ref$index === void 0 ? 0 : _ref$index,
|
|
13891
14552
|
_ref$source = _ref.source,
|
|
@@ -13940,9 +14601,7 @@ var DimensionSelectDialogConnect = function DimensionSelectDialogConnect(_ref) {
|
|
|
13940
14601
|
headerSize: "small",
|
|
13941
14602
|
isOpen: isOpen,
|
|
13942
14603
|
"data-testid": "multidimensionContent-".concat(title),
|
|
13943
|
-
onClose:
|
|
13944
|
-
return onToggleDialog(false);
|
|
13945
|
-
},
|
|
14604
|
+
onClose: onCloseDialog,
|
|
13946
14605
|
bounds: "parent",
|
|
13947
14606
|
onMouseDown: onMouseDown,
|
|
13948
14607
|
order: order,
|
|
@@ -13989,71 +14648,26 @@ var getDimensionType = function getDimensionType(dimensionName) {
|
|
|
13989
14648
|
var MultiMapSingleDimensionSelectConnect = function MultiMapSingleDimensionSelectConnect(_ref) {
|
|
13990
14649
|
var dimensionName = _ref.dimensionName,
|
|
13991
14650
|
index = _ref.index;
|
|
13992
|
-
var dispatch = useDispatch();
|
|
13993
14651
|
var uiDialogType = getDimensionType(dimensionName);
|
|
13994
14652
|
var mapId = useSelector(function (store) {
|
|
13995
14653
|
return getDialogMapId(store, uiDialogType);
|
|
13996
14654
|
});
|
|
13997
|
-
var uiOrder = useSelector(function (store) {
|
|
13998
|
-
return getDialogOrder(store, uiDialogType);
|
|
13999
|
-
});
|
|
14000
|
-
var uiSource = useSelector(function (store) {
|
|
14001
|
-
return getDialogSource(store, uiDialogType);
|
|
14002
|
-
});
|
|
14003
|
-
var uiIsOrderedOnTop = useSelector(function (store) {
|
|
14004
|
-
return getDialogIsOrderedOnTop(store, uiDialogType);
|
|
14005
|
-
});
|
|
14006
|
-
var isOpen = useSelector(function (store) {
|
|
14007
|
-
return getisDialogOpen(store, uiDialogType);
|
|
14008
|
-
});
|
|
14009
|
-
var isMapPresent = useSelector(function (store) {
|
|
14010
|
-
return getIsMapPresent(store, mapId);
|
|
14011
|
-
});
|
|
14012
|
-
var onOrderDialog = React.useCallback(function () {
|
|
14013
|
-
if (!uiIsOrderedOnTop) {
|
|
14014
|
-
dispatch(uiActions.orderDialog({
|
|
14015
|
-
type: uiDialogType
|
|
14016
|
-
}));
|
|
14017
|
-
}
|
|
14018
|
-
}, [dispatch, uiDialogType, uiIsOrderedOnTop]);
|
|
14019
|
-
var onToggleDialog = React.useCallback(function (setOpen) {
|
|
14020
|
-
dispatch(uiActions.setToggleOpenDialog({
|
|
14021
|
-
type: uiDialogType,
|
|
14022
|
-
setOpen: setOpen
|
|
14023
|
-
}));
|
|
14024
|
-
}, [dispatch, uiDialogType]);
|
|
14025
|
-
var registerDialog = React.useCallback(function (activeMapId) {
|
|
14026
|
-
return dispatch(uiActions.registerDialog({
|
|
14027
|
-
type: uiDialogType,
|
|
14028
|
-
mapId: activeMapId
|
|
14029
|
-
}));
|
|
14030
|
-
}, [dispatch, uiDialogType]);
|
|
14031
|
-
var unregisterDialog = React.useCallback(function () {
|
|
14032
|
-
return dispatch(uiActions.unregisterDialog({
|
|
14033
|
-
type: uiDialogType
|
|
14034
|
-
}));
|
|
14035
|
-
}, [dispatch, uiDialogType]); // Check to ensure the currently active map is still present on screen - if not, close the dialog
|
|
14036
14655
|
|
|
14037
|
-
|
|
14038
|
-
|
|
14039
|
-
|
|
14040
|
-
|
|
14041
|
-
|
|
14656
|
+
var _useSetupDialog = useSetupDialog(uiDialogType),
|
|
14657
|
+
dialogOrder = _useSetupDialog.dialogOrder,
|
|
14658
|
+
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
14659
|
+
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
14660
|
+
setDialogOrder = _useSetupDialog.setDialogOrder,
|
|
14661
|
+
uiSource = _useSetupDialog.uiSource;
|
|
14042
14662
|
|
|
14043
|
-
React.useEffect(function () {
|
|
14044
|
-
registerDialog(mapId);
|
|
14045
|
-
return function () {
|
|
14046
|
-
unregisterDialog();
|
|
14047
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14048
|
-
}, []);
|
|
14049
14663
|
return /*#__PURE__*/React.createElement(DimensionSelectDialogConnect, {
|
|
14050
14664
|
mapId: mapId,
|
|
14051
14665
|
dimensionName: dimensionName,
|
|
14052
|
-
onMouseDown:
|
|
14053
|
-
|
|
14054
|
-
order:
|
|
14666
|
+
onMouseDown: setDialogOrder,
|
|
14667
|
+
onCloseDialog: onCloseDialog,
|
|
14668
|
+
order: dialogOrder,
|
|
14055
14669
|
source: uiSource,
|
|
14056
|
-
isOpen:
|
|
14670
|
+
isOpen: isDialogOpen,
|
|
14057
14671
|
index: index
|
|
14058
14672
|
});
|
|
14059
14673
|
};
|
|
@@ -14225,214 +14839,230 @@ var AutoUpdateButton = function AutoUpdateButton(_ref) {
|
|
|
14225
14839
|
}))));
|
|
14226
14840
|
};
|
|
14227
14841
|
|
|
14228
|
-
var
|
|
14229
|
-
|
|
14230
|
-
|
|
14231
|
-
|
|
14232
|
-
|
|
14233
|
-
|
|
14234
|
-
|
|
14235
|
-
|
|
14236
|
-
|
|
14237
|
-
|
|
14238
|
-
|
|
14239
|
-
|
|
14240
|
-
return {
|
|
14241
|
-
delay: getSpeedDelay(speedFactor),
|
|
14242
|
-
markPos: i,
|
|
14243
|
-
text: "".concat(speedFactor, "x")
|
|
14244
|
-
};
|
|
14245
|
-
});
|
|
14246
|
-
var max = marks.length - 1;
|
|
14247
|
-
var min = 0;
|
|
14248
|
-
var currentValue = marks.findIndex(function (info) {
|
|
14249
|
-
return info.delay === animationDelay;
|
|
14842
|
+
var TimeSliderMenu = function TimeSliderMenu(_ref) {
|
|
14843
|
+
var marks = _ref.marks,
|
|
14844
|
+
value = _ref.value,
|
|
14845
|
+
isOpenByDefault = _ref.isOpenByDefault,
|
|
14846
|
+
handleMenuItemClick = _ref.handleMenuItemClick,
|
|
14847
|
+
isDisabled = _ref.isDisabled,
|
|
14848
|
+
handleAutoClick = _ref.handleAutoClick,
|
|
14849
|
+
isAutoSelected = _ref.isAutoSelected,
|
|
14850
|
+
title = _ref.title,
|
|
14851
|
+
icon = _ref.icon;
|
|
14852
|
+
var currentMark = marks.find(function (mark) {
|
|
14853
|
+
return mark.value === value;
|
|
14250
14854
|
});
|
|
14251
14855
|
|
|
14252
|
-
var
|
|
14253
|
-
|
|
14254
|
-
|
|
14255
|
-
|
|
14256
|
-
var onClickButton = function onClickButton() {
|
|
14257
|
-
setOpen(!open);
|
|
14258
|
-
};
|
|
14259
|
-
|
|
14260
|
-
var onChangeSlider = function onChangeSlider(event, value) {
|
|
14261
|
-
var newValue = getAnimationDelayValue(value);
|
|
14262
|
-
|
|
14263
|
-
if (event.type !== 'keydown') {
|
|
14264
|
-
setMapAnimationDelay(newValue);
|
|
14265
|
-
}
|
|
14266
|
-
};
|
|
14267
|
-
|
|
14268
|
-
var onKeyDown = function onKeyDown(event) {
|
|
14269
|
-
// disable default Slider behavior
|
|
14270
|
-
event.stopPropagation();
|
|
14271
|
-
event.preventDefault(); // custom logic
|
|
14272
|
-
|
|
14273
|
-
if (event.key === 'Tab') {
|
|
14274
|
-
setOpen(!open);
|
|
14275
|
-
}
|
|
14856
|
+
var _React$useState = React.useState(null),
|
|
14857
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
14858
|
+
anchorRef = _React$useState2[0],
|
|
14859
|
+
setAnchorRef = _React$useState2[1];
|
|
14276
14860
|
|
|
14277
|
-
|
|
14861
|
+
var _useState = useState(false),
|
|
14862
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
14863
|
+
open = _useState2[0],
|
|
14864
|
+
setOpen = _useState2[1];
|
|
14278
14865
|
|
|
14279
|
-
|
|
14280
|
-
|
|
14866
|
+
React.useEffect(function () {
|
|
14867
|
+
if (anchorRef && isOpenByDefault) {
|
|
14868
|
+
setOpen(true);
|
|
14281
14869
|
}
|
|
14282
|
-
};
|
|
14283
|
-
|
|
14284
|
-
var text = marks[currentValue].text;
|
|
14870
|
+
}, [anchorRef, isOpenByDefault]);
|
|
14285
14871
|
return /*#__PURE__*/React.createElement(Box, {
|
|
14286
|
-
|
|
14287
|
-
|
|
14288
|
-
width: '24px',
|
|
14289
|
-
position: 'relative'
|
|
14872
|
+
onKeyDown: function onKeyDown(event) {
|
|
14873
|
+
event.stopPropagation();
|
|
14290
14874
|
}
|
|
14291
14875
|
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
14292
|
-
title:
|
|
14876
|
+
title: title
|
|
14293
14877
|
}, /*#__PURE__*/React.createElement(ToolButton, {
|
|
14294
|
-
onClick:
|
|
14878
|
+
onClick: function onClick() {
|
|
14879
|
+
setOpen(true);
|
|
14880
|
+
},
|
|
14881
|
+
ref: setAnchorRef,
|
|
14295
14882
|
active: true,
|
|
14296
|
-
|
|
14297
|
-
}, /*#__PURE__*/React.createElement(TextIcon, {
|
|
14298
|
-
text: text
|
|
14299
|
-
}))),
|
|
14883
|
+
width: "58px"
|
|
14884
|
+
}, icon, /*#__PURE__*/React.createElement(TextIcon, {
|
|
14885
|
+
text: currentMark === null || currentMark === void 0 ? void 0 : currentMark.text
|
|
14886
|
+
}))), /*#__PURE__*/React.createElement(Menu, {
|
|
14887
|
+
anchorEl: anchorRef,
|
|
14888
|
+
open: open,
|
|
14889
|
+
onClose: function onClose() {
|
|
14890
|
+
return setOpen(false);
|
|
14891
|
+
},
|
|
14892
|
+
BackdropProps: {
|
|
14893
|
+
sx: {
|
|
14894
|
+
backgroundColor: 'transparent'
|
|
14895
|
+
}
|
|
14896
|
+
},
|
|
14897
|
+
anchorOrigin: {
|
|
14898
|
+
vertical: 'top',
|
|
14899
|
+
horizontal: 'center'
|
|
14900
|
+
},
|
|
14901
|
+
transformOrigin: {
|
|
14902
|
+
vertical: 'bottom',
|
|
14903
|
+
horizontal: 'center'
|
|
14904
|
+
}
|
|
14905
|
+
}, /*#__PURE__*/React.createElement(MenuItem, {
|
|
14906
|
+
disabled: true,
|
|
14300
14907
|
sx: {
|
|
14301
|
-
|
|
14302
|
-
|
|
14303
|
-
|
|
14304
|
-
|
|
14305
|
-
|
|
14306
|
-
|
|
14908
|
+
fontSize: '12px',
|
|
14909
|
+
opacity: 0.67,
|
|
14910
|
+
padding: '0px 12px',
|
|
14911
|
+
'&.MuiMenuItem-root': {
|
|
14912
|
+
minHeight: '30px!important'
|
|
14913
|
+
}
|
|
14307
14914
|
}
|
|
14308
|
-
},
|
|
14309
|
-
|
|
14310
|
-
|
|
14311
|
-
|
|
14312
|
-
|
|
14313
|
-
|
|
14314
|
-
|
|
14315
|
-
|
|
14316
|
-
|
|
14317
|
-
|
|
14318
|
-
|
|
14319
|
-
|
|
14320
|
-
|
|
14321
|
-
|
|
14322
|
-
|
|
14323
|
-
|
|
14324
|
-
|
|
14325
|
-
|
|
14326
|
-
|
|
14327
|
-
|
|
14915
|
+
}, title), marks.map(function (mark) {
|
|
14916
|
+
return /*#__PURE__*/React.createElement(MenuItem, {
|
|
14917
|
+
onClick: function onClick() {
|
|
14918
|
+
handleMenuItemClick(mark);
|
|
14919
|
+
setOpen(false);
|
|
14920
|
+
},
|
|
14921
|
+
key: mark.value,
|
|
14922
|
+
selected: (currentMark === null || currentMark === void 0 ? void 0 : currentMark.value) === mark.value,
|
|
14923
|
+
disabled: isDisabled
|
|
14924
|
+
}, mark.label || mark.text);
|
|
14925
|
+
}), handleAutoClick && /*#__PURE__*/React.createElement(MenuItem, {
|
|
14926
|
+
onClick: function onClick() {
|
|
14927
|
+
handleAutoClick();
|
|
14928
|
+
setOpen(false);
|
|
14929
|
+
},
|
|
14930
|
+
selected: isAutoSelected,
|
|
14931
|
+
disabled: isDisabled
|
|
14932
|
+
}, "Auto")));
|
|
14933
|
+
};
|
|
14934
|
+
|
|
14935
|
+
var speedTooltipTitle = 'Speed';
|
|
14936
|
+
|
|
14937
|
+
var SpeedButton = function SpeedButton(_ref) {
|
|
14938
|
+
var animationDelay = _ref.animationDelay,
|
|
14939
|
+
setMapAnimationDelay = _ref.setMapAnimationDelay;
|
|
14940
|
+
|
|
14941
|
+
var sorted = _toConsumableArray(speedFactors).sort(function (a, b) {
|
|
14942
|
+
return b - a;
|
|
14943
|
+
});
|
|
14944
|
+
|
|
14945
|
+
var marks = sorted.map(function (speedFactor) {
|
|
14946
|
+
return {
|
|
14947
|
+
value: getSpeedDelay(speedFactor),
|
|
14948
|
+
text: "x".concat(speedFactor),
|
|
14949
|
+
label: "x".concat(speedFactor)
|
|
14950
|
+
};
|
|
14951
|
+
});
|
|
14952
|
+
return /*#__PURE__*/React.createElement(TimeSliderMenu, {
|
|
14953
|
+
handleMenuItemClick: function handleMenuItemClick(mark) {
|
|
14954
|
+
setMapAnimationDelay(mark.value);
|
|
14955
|
+
},
|
|
14956
|
+
icon: /*#__PURE__*/React.createElement(Speed, null),
|
|
14957
|
+
marks: marks,
|
|
14958
|
+
title: speedTooltipTitle,
|
|
14959
|
+
value: animationDelay
|
|
14960
|
+
});
|
|
14328
14961
|
};
|
|
14329
14962
|
|
|
14330
|
-
|
|
14331
|
-
|
|
14963
|
+
/* *
|
|
14964
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
14965
|
+
* you may not use this file except in compliance with the License.
|
|
14966
|
+
* You may obtain a copy of the License at
|
|
14967
|
+
*
|
|
14968
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14969
|
+
*
|
|
14970
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14971
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14972
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14973
|
+
* See the License for the specific language governing permissions and
|
|
14974
|
+
* limitations under the License.
|
|
14975
|
+
*
|
|
14976
|
+
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
14977
|
+
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
14978
|
+
* */
|
|
14979
|
+
var marks$1 = [{
|
|
14332
14980
|
label: '1 min',
|
|
14333
|
-
|
|
14981
|
+
value: 1,
|
|
14334
14982
|
text: '1m'
|
|
14335
14983
|
}, {
|
|
14336
|
-
value: 2,
|
|
14337
14984
|
label: '2 min',
|
|
14338
|
-
|
|
14985
|
+
value: 2,
|
|
14339
14986
|
text: '2m'
|
|
14340
14987
|
}, {
|
|
14341
|
-
value: 3,
|
|
14342
14988
|
label: '5 min',
|
|
14343
|
-
|
|
14989
|
+
value: 5,
|
|
14344
14990
|
text: '5m'
|
|
14345
14991
|
}, {
|
|
14346
|
-
value: 4,
|
|
14347
14992
|
label: '10 min',
|
|
14348
|
-
|
|
14993
|
+
value: 10,
|
|
14349
14994
|
text: '10m'
|
|
14350
14995
|
}, {
|
|
14351
|
-
value: 5,
|
|
14352
14996
|
label: '15 min',
|
|
14353
|
-
|
|
14997
|
+
value: 15,
|
|
14354
14998
|
text: '15m'
|
|
14355
14999
|
}, {
|
|
14356
|
-
value: 6,
|
|
14357
15000
|
label: '30 min',
|
|
14358
|
-
|
|
15001
|
+
value: 30,
|
|
14359
15002
|
text: '30m'
|
|
14360
15003
|
}, {
|
|
14361
|
-
value: 7,
|
|
14362
15004
|
label: '1 h',
|
|
14363
|
-
|
|
15005
|
+
value: 60,
|
|
14364
15006
|
text: '1h'
|
|
14365
15007
|
}, {
|
|
14366
|
-
value: 8,
|
|
14367
15008
|
label: '2 h',
|
|
14368
|
-
|
|
15009
|
+
value: 120,
|
|
14369
15010
|
text: '2h'
|
|
14370
15011
|
}, {
|
|
14371
|
-
value: 9,
|
|
14372
15012
|
label: '3 h',
|
|
14373
|
-
|
|
15013
|
+
value: 180,
|
|
14374
15014
|
text: '3h'
|
|
14375
15015
|
}, {
|
|
14376
|
-
value: 10,
|
|
14377
15016
|
label: '6 h',
|
|
14378
|
-
|
|
15017
|
+
value: 360,
|
|
14379
15018
|
text: '6h'
|
|
14380
15019
|
}, {
|
|
14381
|
-
value: 11,
|
|
14382
15020
|
label: '12 h',
|
|
14383
|
-
|
|
15021
|
+
value: 720,
|
|
14384
15022
|
text: '12h'
|
|
14385
15023
|
}, {
|
|
14386
|
-
value: 12,
|
|
14387
15024
|
label: '24 h',
|
|
14388
|
-
|
|
15025
|
+
value: 1440,
|
|
14389
15026
|
text: '24h'
|
|
14390
15027
|
}, {
|
|
14391
|
-
value: 13,
|
|
14392
15028
|
label: '48 h',
|
|
14393
|
-
|
|
15029
|
+
value: 2880,
|
|
14394
15030
|
text: '48h'
|
|
14395
15031
|
}, {
|
|
14396
|
-
value: 14,
|
|
14397
15032
|
label: '72 h',
|
|
14398
|
-
|
|
15033
|
+
value: 4320,
|
|
14399
15034
|
text: '72h'
|
|
14400
15035
|
}, {
|
|
14401
|
-
value: 15,
|
|
14402
15036
|
label: '1 week',
|
|
14403
|
-
|
|
15037
|
+
value: 10080,
|
|
14404
15038
|
text: '1w'
|
|
14405
15039
|
}, {
|
|
14406
|
-
value: 16,
|
|
14407
15040
|
label: '2 weeks',
|
|
14408
|
-
|
|
15041
|
+
value: 20160,
|
|
14409
15042
|
text: '2w'
|
|
14410
15043
|
}, {
|
|
14411
|
-
value: 17,
|
|
14412
15044
|
label: '1 month',
|
|
14413
|
-
|
|
15045
|
+
value: 40320,
|
|
14414
15046
|
text: '4w'
|
|
14415
15047
|
}, {
|
|
14416
|
-
value: 18,
|
|
14417
15048
|
label: '2 months',
|
|
14418
|
-
|
|
15049
|
+
value: 80640,
|
|
14419
15050
|
text: '8w'
|
|
14420
15051
|
}, {
|
|
14421
|
-
value: 19,
|
|
14422
15052
|
label: '6 months',
|
|
14423
|
-
|
|
15053
|
+
value: 241920,
|
|
14424
15054
|
text: '24w'
|
|
14425
15055
|
}, {
|
|
14426
|
-
value: 20,
|
|
14427
15056
|
label: '1 year',
|
|
14428
|
-
|
|
15057
|
+
value: 525600,
|
|
14429
15058
|
text: '1y'
|
|
14430
15059
|
}, {
|
|
14431
|
-
value: 21,
|
|
14432
15060
|
label: '10 years',
|
|
14433
|
-
|
|
15061
|
+
value: 5256000,
|
|
14434
15062
|
text: '10y'
|
|
14435
|
-
}]
|
|
15063
|
+
}].sort(function (a, b) {
|
|
15064
|
+
return b.value - a.value;
|
|
15065
|
+
});
|
|
14436
15066
|
var timeStepTitle = 'Time step';
|
|
14437
15067
|
|
|
14438
15068
|
var TimeStepButton = function TimeStepButton(_ref) {
|
|
@@ -14450,88 +15080,31 @@ var TimeStepButton = function TimeStepButton(_ref) {
|
|
|
14450
15080
|
_ref$isOpenByDefault = _ref.isOpenByDefault,
|
|
14451
15081
|
isOpenByDefault = _ref$isOpenByDefault === void 0 ? false : _ref$isOpenByDefault;
|
|
14452
15082
|
var timeStepFromLayer = getActiveLayerTimeStep(timeDimension) || timeStep;
|
|
14453
|
-
|
|
14454
|
-
return mark.timeStepValue === timeStep;
|
|
14455
|
-
});
|
|
14456
|
-
React__default.useEffect(function () {
|
|
15083
|
+
React.useEffect(function () {
|
|
14457
15084
|
if (isTimestepAuto) {
|
|
14458
15085
|
onChangeTimeStep(timeStepFromLayer);
|
|
14459
15086
|
}
|
|
14460
15087
|
}, [timeStepFromLayer, isTimestepAuto, onChangeTimeStep]);
|
|
14461
15088
|
|
|
14462
|
-
var
|
|
14463
|
-
|
|
14464
|
-
|
|
14465
|
-
setAnchorRef = _React$useState2[1];
|
|
14466
|
-
|
|
14467
|
-
var _React$useState3 = React__default.useState(false),
|
|
14468
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
14469
|
-
open = _React$useState4[0],
|
|
14470
|
-
setOpen = _React$useState4[1];
|
|
14471
|
-
|
|
14472
|
-
React__default.useEffect(function () {
|
|
14473
|
-
if (anchorRef && isOpenByDefault) {
|
|
14474
|
-
setOpen(true);
|
|
14475
|
-
}
|
|
14476
|
-
}, [anchorRef, isOpenByDefault]);
|
|
14477
|
-
return /*#__PURE__*/React__default.createElement(Box, {
|
|
14478
|
-
onKeyDown: function onKeyDown(event) {
|
|
14479
|
-
event.stopPropagation();
|
|
14480
|
-
}
|
|
14481
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
14482
|
-
title: timeStepTitle
|
|
14483
|
-
}, /*#__PURE__*/React__default.createElement(ToolButton, {
|
|
14484
|
-
onClick: function onClick() {
|
|
14485
|
-
setOpen(true);
|
|
14486
|
-
},
|
|
14487
|
-
ref: setAnchorRef,
|
|
14488
|
-
active: true,
|
|
14489
|
-
width: "58px"
|
|
14490
|
-
}, /*#__PURE__*/React__default.createElement(FastForward, null), /*#__PURE__*/React__default.createElement(TextIcon, {
|
|
14491
|
-
text: currentMark === null || currentMark === void 0 ? void 0 : currentMark.text
|
|
14492
|
-
}))), /*#__PURE__*/React__default.createElement(Menu, {
|
|
14493
|
-
anchorEl: anchorRef,
|
|
14494
|
-
open: open,
|
|
14495
|
-
onClose: function onClose() {
|
|
14496
|
-
return setOpen(false);
|
|
14497
|
-
},
|
|
14498
|
-
BackdropProps: {
|
|
14499
|
-
sx: {
|
|
14500
|
-
backgroundColor: 'transparent'
|
|
14501
|
-
}
|
|
14502
|
-
},
|
|
14503
|
-
anchorOrigin: {
|
|
14504
|
-
vertical: 'top',
|
|
14505
|
-
horizontal: 'center'
|
|
14506
|
-
},
|
|
14507
|
-
transformOrigin: {
|
|
14508
|
-
vertical: 'bottom',
|
|
14509
|
-
horizontal: 'center'
|
|
15089
|
+
var handleMenuItemClick = function handleMenuItemClick(mark) {
|
|
15090
|
+
if (isTimestepAuto) {
|
|
15091
|
+
onToggleTimestepAuto();
|
|
14510
15092
|
}
|
|
14511
|
-
}, timeStepMarks.sort(function (a, b) {
|
|
14512
|
-
return b.timeStepValue - a.timeStepValue;
|
|
14513
|
-
}).map(function (time) {
|
|
14514
|
-
return /*#__PURE__*/React__default.createElement(MenuItem, {
|
|
14515
|
-
onClick: function onClick() {
|
|
14516
|
-
if (isTimestepAuto) {
|
|
14517
|
-
onToggleTimestepAuto();
|
|
14518
|
-
}
|
|
14519
15093
|
|
|
14520
|
-
|
|
14521
|
-
|
|
14522
|
-
|
|
14523
|
-
|
|
14524
|
-
|
|
14525
|
-
|
|
14526
|
-
|
|
14527
|
-
|
|
14528
|
-
|
|
14529
|
-
|
|
14530
|
-
|
|
14531
|
-
|
|
14532
|
-
|
|
14533
|
-
|
|
14534
|
-
}, "Auto")));
|
|
15094
|
+
onChangeTimeStep(mark.value, MapActionOrigin.map);
|
|
15095
|
+
};
|
|
15096
|
+
|
|
15097
|
+
return /*#__PURE__*/React.createElement(TimeSliderMenu, {
|
|
15098
|
+
title: timeStepTitle,
|
|
15099
|
+
isOpenByDefault: isOpenByDefault,
|
|
15100
|
+
marks: marks$1,
|
|
15101
|
+
value: timeStep,
|
|
15102
|
+
handleMenuItemClick: handleMenuItemClick,
|
|
15103
|
+
isDisabled: disabled,
|
|
15104
|
+
isAutoSelected: isTimestepAuto,
|
|
15105
|
+
handleAutoClick: onToggleTimestepAuto,
|
|
15106
|
+
icon: /*#__PURE__*/React.createElement(FastForward, null)
|
|
15107
|
+
});
|
|
14535
15108
|
};
|
|
14536
15109
|
|
|
14537
15110
|
var OptionsPopOver = styled(Popover)(function (_ref) {
|
|
@@ -16250,7 +16823,7 @@ var useTimeSliderKeyBoardControl = function useTimeSliderKeyBoardControl(mapIsAc
|
|
|
16250
16823
|
var handleKeyDown = function handleKeyDown(event) {
|
|
16251
16824
|
var target = event.target;
|
|
16252
16825
|
|
|
16253
|
-
if (target.tagName !== 'INPUT' && event.key === 't' && mapIsActive) {
|
|
16826
|
+
if (target.tagName !== 'INPUT' && target.tagName !== 'TEXTAREA' && event.key === 't' && mapIsActive) {
|
|
16254
16827
|
onToggleTimeSlider(!isVisible);
|
|
16255
16828
|
}
|
|
16256
16829
|
};
|
|
@@ -16331,14 +16904,14 @@ var TimeSlider = function TimeSlider(_ref) {
|
|
|
16331
16904
|
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
16332
16905
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
16333
16906
|
* */
|
|
16334
|
-
var connectRedux$
|
|
16907
|
+
var connectRedux$3 = connect(function (store, props) {
|
|
16335
16908
|
return {
|
|
16336
16909
|
isAutoUpdating: isAutoUpdating(store, props.mapId)
|
|
16337
16910
|
};
|
|
16338
16911
|
}, {
|
|
16339
16912
|
toggleAutoUpdate: mapActions$1.toggleAutoUpdate
|
|
16340
16913
|
});
|
|
16341
|
-
var AutoUpdateButtonConnectComponent = connectRedux$
|
|
16914
|
+
var AutoUpdateButtonConnectComponent = connectRedux$3(function (_ref) {
|
|
16342
16915
|
var mapId = _ref.mapId,
|
|
16343
16916
|
isAutoUpdating = _ref.isAutoUpdating,
|
|
16344
16917
|
toggleAutoUpdate = _ref.toggleAutoUpdate;
|
|
@@ -16357,7 +16930,7 @@ var AutoUpdateButtonConnectComponent = connectRedux$4(function (_ref) {
|
|
|
16357
16930
|
disabled: false
|
|
16358
16931
|
});
|
|
16359
16932
|
});
|
|
16360
|
-
var AutoUpdateButtonConnect = connectRedux$
|
|
16933
|
+
var AutoUpdateButtonConnect = connectRedux$3(AutoUpdateButtonConnectComponent);
|
|
16361
16934
|
|
|
16362
16935
|
/* *
|
|
16363
16936
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -16375,31 +16948,27 @@ var AutoUpdateButtonConnect = connectRedux$4(AutoUpdateButtonConnectComponent);
|
|
|
16375
16948
|
* Copyright 2020 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
16376
16949
|
* Copyright 2020 - Finnish Meteorological Institute (FMI)
|
|
16377
16950
|
* */
|
|
16378
|
-
var connectRedux$3 = connect(function (store, props) {
|
|
16379
|
-
return {
|
|
16380
|
-
animationDelay: getMapAnimationDelay(store, props.mapId)
|
|
16381
|
-
};
|
|
16382
|
-
}, {
|
|
16383
|
-
setMapAnimationDelay: mapActions$1.setAnimationDelay
|
|
16384
|
-
});
|
|
16385
|
-
var SpeedButtonConnect = connectRedux$3(function (_ref) {
|
|
16386
|
-
var animationDelay = _ref.animationDelay,
|
|
16387
|
-
mapId = _ref.mapId,
|
|
16388
|
-
setMapAnimationDelay = _ref.setMapAnimationDelay;
|
|
16389
16951
|
|
|
16390
|
-
|
|
16391
|
-
|
|
16952
|
+
var SpeedButtonConnect = function SpeedButtonConnect(_ref) {
|
|
16953
|
+
var mapId = _ref.mapId;
|
|
16954
|
+
var animationDelay = useSelector(function (store) {
|
|
16955
|
+
return getMapAnimationDelay(store, mapId);
|
|
16956
|
+
});
|
|
16957
|
+
var dispatch = useDispatch();
|
|
16958
|
+
|
|
16959
|
+
var onSetAnimationDelay = function onSetAnimationDelay(animationDelay) {
|
|
16960
|
+
dispatch(mapActions$1.setAnimationDelay({
|
|
16392
16961
|
mapId: mapId,
|
|
16393
|
-
animationDelay:
|
|
16962
|
+
animationDelay: animationDelay,
|
|
16394
16963
|
origin: MapActionOrigin.map
|
|
16395
|
-
});
|
|
16964
|
+
}));
|
|
16396
16965
|
};
|
|
16397
16966
|
|
|
16398
16967
|
return /*#__PURE__*/React.createElement(SpeedButton, {
|
|
16399
16968
|
animationDelay: animationDelay,
|
|
16400
16969
|
setMapAnimationDelay: onSetAnimationDelay
|
|
16401
16970
|
});
|
|
16402
|
-
}
|
|
16971
|
+
};
|
|
16403
16972
|
|
|
16404
16973
|
/* *
|
|
16405
16974
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -17420,13 +17989,14 @@ var getCurrentDimensionValue = function getCurrentDimensionValue() {
|
|
|
17420
17989
|
var setServiceMetadata = function setServiceMetadata(wmLayer, mapId, webMapJSInstance, mapProperties, onUpdateLayerInformation) {
|
|
17421
17990
|
var origin = LayerActionOrigin.ReactMapViewParseLayer;
|
|
17422
17991
|
var service = WMGetServiceFromStore(wmLayer.service);
|
|
17992
|
+
var serviceName = mapProperties.services[service.id].name;
|
|
17423
17993
|
/* Update list of layers for service */
|
|
17424
17994
|
|
|
17425
17995
|
var done = function done(layers) {
|
|
17426
17996
|
var updateObject = {
|
|
17427
17997
|
origin: origin,
|
|
17428
17998
|
serviceLayers: {
|
|
17429
|
-
name:
|
|
17999
|
+
name: serviceName,
|
|
17430
18000
|
id: service.id,
|
|
17431
18001
|
serviceUrl: wmLayer.service,
|
|
17432
18002
|
layers: layers,
|
|
@@ -21159,6 +21729,9 @@ var MapViewConnect = function MapViewConnect(_a) {
|
|
|
21159
21729
|
var displayMapPin = useSelector(function (store) {
|
|
21160
21730
|
return getDisplayMapPin(store, mapId);
|
|
21161
21731
|
});
|
|
21732
|
+
var services = useSelector(function (store) {
|
|
21733
|
+
return getServices(store);
|
|
21734
|
+
});
|
|
21162
21735
|
var dispatch = useDispatch();
|
|
21163
21736
|
var map = getWMJSMapById(mapId);
|
|
21164
21737
|
var mapChangeDimension = React.useCallback(function (mapDimensionPayload) {
|
|
@@ -21246,6 +21819,7 @@ var MapViewConnect = function MapViewConnect(_a) {
|
|
|
21246
21819
|
animationDelay: animationDelay,
|
|
21247
21820
|
displayMapPin: displayMapPin,
|
|
21248
21821
|
disableMapPin: disableMapPin,
|
|
21822
|
+
services: services,
|
|
21249
21823
|
onMapChangeDimension: function onMapChangeDimension(mapDimensionPayload) {
|
|
21250
21824
|
if (mapDimensionPayload && mapDimensionPayload.dimension && mapDimensionPayload.dimension.name && mapDimensionPayload.dimension.name === 'time') {
|
|
21251
21825
|
setTime({
|
|
@@ -22180,55 +22754,23 @@ var SyncGroupViewerConnect = function SyncGroupViewerConnect() {
|
|
|
22180
22754
|
var syncGroupRemoveTarget = React.useCallback(function (payload) {
|
|
22181
22755
|
dispatch(actions.syncGroupRemoveTarget(payload));
|
|
22182
22756
|
}, [dispatch]);
|
|
22183
|
-
|
|
22184
|
-
|
|
22185
|
-
|
|
22186
|
-
|
|
22187
|
-
|
|
22188
|
-
|
|
22189
|
-
|
|
22190
|
-
}));
|
|
22191
|
-
}, [dispatch]);
|
|
22192
|
-
var uiOrder = useSelector(function (store) {
|
|
22193
|
-
return getDialogOrder(store, 'syncGroups');
|
|
22194
|
-
});
|
|
22195
|
-
var uiIsOrderedOnTop = useSelector(function (store) {
|
|
22196
|
-
return getDialogIsOrderedOnTop(store, 'syncGroups');
|
|
22197
|
-
});
|
|
22198
|
-
var registerDialog = React.useCallback(function () {
|
|
22199
|
-
return dispatch(uiActions.registerDialog({
|
|
22200
|
-
type: 'syncGroups',
|
|
22201
|
-
setOpen: false
|
|
22202
|
-
}));
|
|
22203
|
-
}, [dispatch]);
|
|
22204
|
-
var unregisterDialog = React.useCallback(function () {
|
|
22205
|
-
return dispatch(uiActions.unregisterDialog({
|
|
22206
|
-
type: 'syncGroups'
|
|
22207
|
-
}));
|
|
22208
|
-
}, [dispatch]);
|
|
22209
|
-
var onOrderDialog = React.useCallback(function () {
|
|
22210
|
-
if (!uiIsOrderedOnTop) {
|
|
22211
|
-
dispatch(uiActions.orderDialog({
|
|
22212
|
-
type: 'syncGroups'
|
|
22213
|
-
}));
|
|
22214
|
-
}
|
|
22215
|
-
}, [dispatch, uiIsOrderedOnTop]);
|
|
22216
|
-
React.useEffect(function () {
|
|
22217
|
-
registerDialog();
|
|
22218
|
-
return function () {
|
|
22219
|
-
unregisterDialog();
|
|
22220
|
-
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22221
|
-
}, []);
|
|
22757
|
+
|
|
22758
|
+
var _useSetupDialog = useSetupDialog('syncGroups'),
|
|
22759
|
+
dialogOrder = _useSetupDialog.dialogOrder,
|
|
22760
|
+
isDialogOpen = _useSetupDialog.isDialogOpen,
|
|
22761
|
+
onCloseDialog = _useSetupDialog.onCloseDialog,
|
|
22762
|
+
setDialogOrder = _useSetupDialog.setDialogOrder;
|
|
22763
|
+
|
|
22222
22764
|
return /*#__PURE__*/React.createElement(SyncGroupViewer, {
|
|
22223
|
-
onClose:
|
|
22224
|
-
isOpen:
|
|
22765
|
+
onClose: onCloseDialog,
|
|
22766
|
+
isOpen: isDialogOpen,
|
|
22225
22767
|
syncGroupViewState: viewState,
|
|
22226
22768
|
syncGroupAddTarget: syncGroupAddTarget,
|
|
22227
22769
|
syncGroupRemoveTarget: syncGroupRemoveTarget,
|
|
22228
22770
|
syncGroupAddGroup: syncGroupAddGroup,
|
|
22229
22771
|
syncGroupRemoveGroup: syncGroupRemoveGroup,
|
|
22230
|
-
order:
|
|
22231
|
-
onMouseDown:
|
|
22772
|
+
order: dialogOrder,
|
|
22773
|
+
onMouseDown: setDialogOrder
|
|
22232
22774
|
});
|
|
22233
22775
|
};
|
|
22234
22776
|
|
|
@@ -22369,57 +22911,6 @@ var testLayers = /*#__PURE__*/Object.freeze({
|
|
|
22369
22911
|
simplePolygonGeoJSON: simplePolygonGeoJSON
|
|
22370
22912
|
});
|
|
22371
22913
|
|
|
22372
|
-
/* *
|
|
22373
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
22374
|
-
* you may not use this file except in compliance with the License.
|
|
22375
|
-
* You may obtain a copy of the License at
|
|
22376
|
-
*
|
|
22377
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
22378
|
-
*
|
|
22379
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
22380
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
22381
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
22382
|
-
* See the License for the specific language governing permissions and
|
|
22383
|
-
* limitations under the License.
|
|
22384
|
-
*
|
|
22385
|
-
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
22386
|
-
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
22387
|
-
* */
|
|
22388
|
-
/**
|
|
22389
|
-
* A Provider component which provides the GeoWeb theme
|
|
22390
|
-
* @param children
|
|
22391
|
-
* @returns
|
|
22392
|
-
*/
|
|
22393
|
-
|
|
22394
|
-
var CoreThemeProvider = function CoreThemeProvider(_ref) {
|
|
22395
|
-
var children = _ref.children,
|
|
22396
|
-
_ref$theme = _ref.theme,
|
|
22397
|
-
theme = _ref$theme === void 0 ? lightTheme : _ref$theme;
|
|
22398
|
-
return /*#__PURE__*/React__default.createElement(ThemeWrapper, {
|
|
22399
|
-
theme: theme
|
|
22400
|
-
}, children);
|
|
22401
|
-
};
|
|
22402
|
-
/**
|
|
22403
|
-
* A Provider component which provides the GeoWeb theme and store for the core.
|
|
22404
|
-
* Note: Should only be used with core components, as the provided store is only for core.
|
|
22405
|
-
* @param children
|
|
22406
|
-
* @returns
|
|
22407
|
-
*/
|
|
22408
|
-
|
|
22409
|
-
var CoreThemeStoreProvider = function CoreThemeStoreProvider(_ref2) {
|
|
22410
|
-
var children = _ref2.children,
|
|
22411
|
-
_ref2$theme = _ref2.theme,
|
|
22412
|
-
theme = _ref2$theme === void 0 ? lightTheme : _ref2$theme,
|
|
22413
|
-
store = _ref2.store;
|
|
22414
|
-
return /*#__PURE__*/React__default.createElement(Provider, {
|
|
22415
|
-
store: store
|
|
22416
|
-
}, /*#__PURE__*/React__default.createElement(DynamicModuleLoader, {
|
|
22417
|
-
modules: coreModuleConfig
|
|
22418
|
-
}, /*#__PURE__*/React__default.createElement(CoreThemeProvider, {
|
|
22419
|
-
theme: theme
|
|
22420
|
-
}, children)));
|
|
22421
|
-
};
|
|
22422
|
-
|
|
22423
22914
|
/* *
|
|
22424
22915
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
22425
22916
|
* you may not use this file except in compliance with the License.
|
|
@@ -22504,6 +22995,57 @@ var SnackbarWrapperConnect = function SnackbarWrapperConnect(_a) {
|
|
|
22504
22995
|
}, props)));
|
|
22505
22996
|
};
|
|
22506
22997
|
|
|
22998
|
+
/* *
|
|
22999
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
23000
|
+
* you may not use this file except in compliance with the License.
|
|
23001
|
+
* You may obtain a copy of the License at
|
|
23002
|
+
*
|
|
23003
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
23004
|
+
*
|
|
23005
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
23006
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
23007
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
23008
|
+
* See the License for the specific language governing permissions and
|
|
23009
|
+
* limitations under the License.
|
|
23010
|
+
*
|
|
23011
|
+
* Copyright 2021 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
|
|
23012
|
+
* Copyright 2021 - Finnish Meteorological Institute (FMI)
|
|
23013
|
+
* */
|
|
23014
|
+
/**
|
|
23015
|
+
* A Provider component which provides the GeoWeb theme
|
|
23016
|
+
* @param children
|
|
23017
|
+
* @returns
|
|
23018
|
+
*/
|
|
23019
|
+
|
|
23020
|
+
var CoreThemeProvider = function CoreThemeProvider(_ref) {
|
|
23021
|
+
var children = _ref.children,
|
|
23022
|
+
_ref$theme = _ref.theme,
|
|
23023
|
+
theme = _ref$theme === void 0 ? lightTheme : _ref$theme;
|
|
23024
|
+
return /*#__PURE__*/React__default.createElement(ThemeWrapper, {
|
|
23025
|
+
theme: theme
|
|
23026
|
+
}, children);
|
|
23027
|
+
};
|
|
23028
|
+
/**
|
|
23029
|
+
* A Provider component which provides the GeoWeb theme and store for the core.
|
|
23030
|
+
* Note: Should only be used with core components, as the provided store is only for core.
|
|
23031
|
+
* @param children
|
|
23032
|
+
* @returns
|
|
23033
|
+
*/
|
|
23034
|
+
|
|
23035
|
+
var CoreThemeStoreProvider = function CoreThemeStoreProvider(_ref2) {
|
|
23036
|
+
var children = _ref2.children,
|
|
23037
|
+
_ref2$theme = _ref2.theme,
|
|
23038
|
+
theme = _ref2$theme === void 0 ? lightTheme : _ref2$theme,
|
|
23039
|
+
store = _ref2.store;
|
|
23040
|
+
return /*#__PURE__*/React__default.createElement(Provider, {
|
|
23041
|
+
store: store
|
|
23042
|
+
}, /*#__PURE__*/React__default.createElement(DynamicModuleLoader, {
|
|
23043
|
+
modules: coreModuleConfig
|
|
23044
|
+
}, /*#__PURE__*/React__default.createElement(CoreThemeProvider, {
|
|
23045
|
+
theme: theme
|
|
23046
|
+
}, /*#__PURE__*/React__default.createElement(SnackbarWrapperConnect, null, children))));
|
|
23047
|
+
};
|
|
23048
|
+
|
|
22507
23049
|
/* *
|
|
22508
23050
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
22509
23051
|
* you may not use this file except in compliance with the License.
|
|
@@ -22571,4 +23113,4 @@ var MapWarningProperties = function MapWarningProperties(_ref) {
|
|
|
22571
23113
|
* */
|
|
22572
23114
|
var mapActions = Object.assign(Object.assign(Object.assign({}, layerActions), mapActions$1), serviceActions);
|
|
22573
23115
|
|
|
22574
|
-
export { ConfigurableMapConnect, CoreThemeProvider, CoreThemeStoreProvider, HarmonieTempAndPrecipPreset, LayerManagerConnect, LayerManagerMapButtonConnect, Legend, LegendConnect, LegendMapButtonConnect, MapControls, MapView, MapViewConnect, MapViewLayer, MapWarningProperties, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, ReactMapView, ReactMapViewLayer, SnackbarWrapperConnect, SyncGroupViewerConnect, index as SyncGroups, TimeSliderConnect, ZoomControlConnect, ZoomControls, componentsLookUp, coreModuleConfig, dateFormat, defaultBbox, defaultConfigurations, filterLayers, filterMapPresets, filterNonTimeDimensions, filterServices, generateLayerId, generateMapId, generateTimesliderId, getFirstTimeStepForLayerId, getInitialAppPresets, getLastTimeStepForLayerId, getNextTimeStepForLayerId, getPreviousTimeStepForLayerId, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSTimeDimensionForLayerId, getWMLayerById, layerActions, reducer$6 as layerReducer, mapActions, moduleConfig as mapModuleConfig, selectors as mapSelectors, types$2 as mapTypes, utils as mapUtils, parseBoolean, parseLayer, publicLayers, publicServices, registerWMJSMap, registerWMLayer, snackbarActions, store, genericActions as syncGroupActions, synchronizationGroupConfig as synchronizationGroupModuleConfig, synchronizationGroupConfig as synchronizationGroupsConfig, testLayers, uiActions, uiModuleConfig, selectors$1 as uiSelectors, types as uiTypes };
|
|
23116
|
+
export { ConfigurableMapConnect, CoreThemeProvider, CoreThemeStoreProvider, HarmonieTempAndPrecipPreset, LayerManagerConnect, LayerManagerMapButtonConnect, Legend, LegendConnect, LegendMapButtonConnect, MapControls, MapView, MapViewConnect, MapViewLayer, MapWarningProperties, MultiDimensionSelectMapButtonsConnect, MultiMapMultiDimensionSelectConnect as MultiMapDimensionSelectConnect, MultiMapViewConnect, ReactMapView, ReactMapViewLayer, SnackbarWrapperConnect, SyncGroupViewerConnect, index as SyncGroups, TimeSliderConnect, ZoomControlConnect, ZoomControls, componentsLookUp, coreModuleConfig, dateFormat, defaultBbox, defaultConfigurations, filterLayers, filterMapPresets, filterNonTimeDimensions, filterServices, generateLayerId, generateMapId, generateTimesliderId, getFirstTimeStepForLayerId, getInitialAppPresets, getLastTimeStepForLayerId, getNextTimeStepForLayerId, getPreviousTimeStepForLayerId, getWMJSDimensionForLayerAndDimension, getWMJSMapById, getWMJSTimeDimensionForLayerId, getWMLayerById, layerActions, reducer$6 as layerReducer, mapActions, moduleConfig as mapModuleConfig, selectors as mapSelectors, types$2 as mapTypes, utils as mapUtils, parseBoolean, parseLayer, publicLayers, publicServices, registerWMJSMap, registerWMLayer, snackbarActions, store, genericActions as syncGroupActions, synchronizationGroupConfig as synchronizationGroupModuleConfig, synchronizationGroupConfig as synchronizationGroupsConfig, testLayers, uiActions, uiModuleConfig, selectors$1 as uiSelectors, types as uiTypes, useSetupDialog };
|