@opengeoweb/layer-select 14.3.0 → 14.5.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.
Files changed (39) hide show
  1. package/index.esm.js +521 -350
  2. package/package.json +8 -8
  3. package/src/lib/components/DataExplorerButtonConnect/DataExplorerButtonConnect.d.ts +1 -1
  4. package/src/lib/components/KeywordFilterButton/KeywordFilterButtonConnect.d.ts +1 -1
  5. package/src/lib/components/KeywordFilterResults/KeywordFilterResults.d.ts +3 -3
  6. package/src/lib/components/KeywordFilterResults/KeywordFilterResultsConnect.d.ts +1 -1
  7. package/src/lib/components/KeywordFilterResults/KeywordFilterResultsListItemConnect.d.ts +2 -2
  8. package/src/lib/components/KeywordFilterResults/KeywordFilterSelectAllSwitchConnect.d.ts +1 -1
  9. package/src/lib/components/LayerList/LayerAddRemoveButton.d.ts +6 -2
  10. package/src/lib/components/LayerList/LayerList.d.ts +8 -4
  11. package/src/lib/components/LayerList/LayerList.spec.d.ts +1 -1
  12. package/src/lib/components/LayerList/LayerListConnect.d.ts +1 -1
  13. package/src/lib/components/LayerList/LayerListDimensions.d.ts +1 -1
  14. package/src/lib/components/LayerList/LayerListRow.d.ts +7 -3
  15. package/src/lib/components/LayerSelect/LayerSelect.d.ts +2 -2
  16. package/src/lib/components/LayerSelect/LayerSelectButtonConnect.d.ts +1 -1
  17. package/src/lib/components/LayerSelect/LayerSelectConnect.d.ts +1 -1
  18. package/src/lib/components/LayerSelect/LayerSelectUtils.d.ts +2 -2
  19. package/src/lib/components/Providers/Providers.d.ts +4 -4
  20. package/src/lib/components/SearchField/SearchFieldConnect.d.ts +1 -1
  21. package/src/lib/components/ServiceList/ServiceChip.d.ts +2 -2
  22. package/src/lib/components/ServiceList/ServiceChipConnect.d.ts +2 -2
  23. package/src/lib/components/ServiceList/ServiceList.d.ts +2 -2
  24. package/src/lib/components/ServiceList/ServiceListConnect.d.ts +1 -1
  25. package/src/lib/components/ServiceOptionsButton/ServiceOptionsButton.d.ts +1 -1
  26. package/src/lib/components/ServiceOptionsDialog/ServiceOptionsDialog.d.ts +3 -3
  27. package/src/lib/components/ServiceOptionsDialog/ServiceOptionsDialog.stories.d.ts +2 -2
  28. package/src/lib/components/ServiceOptionsDialog/ServiceOptionsDialogConnect.d.ts +1 -1
  29. package/src/lib/components/ServicePopup/ServicePopup.d.ts +4 -4
  30. package/src/lib/components/ServicePopup/ServicePopupDialogConnect.d.ts +1 -1
  31. package/src/lib/components/ServicePopup/utils.d.ts +3 -3
  32. package/src/lib/store/index.d.ts +1 -1
  33. package/src/lib/store/listeners.d.ts +1 -1
  34. package/src/lib/store/reducer.d.ts +2 -2
  35. package/src/lib/store/selectors.d.ts +2 -2
  36. package/src/lib/store/store.d.ts +3 -3
  37. package/src/lib/store/types.d.ts +3 -3
  38. package/src/lib/store/utils.d.ts +5 -5
  39. package/src/lib/utils/i18n.d.ts +1 -1
package/index.esm.js CHANGED
@@ -1,21 +1,20 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import * as React from 'react';
3
- import React__default from 'react';
2
+ import React from 'react';
4
3
  import { useSelector, useDispatch } from 'react-redux';
5
- import { CustomIconButton, FilterOption, ToolContainerDraggable, CustomAccordion, CustomToggleButton, CustomTooltip, SearchHighlight, SearchField, AlertBanner, ToggleMenu, CustomDialog, sessionStorageProvider } from '@opengeoweb/shared';
6
- import { Filter, LayersAdd, Add, Cached, Edit, Visibility, Delete, MeteoGate, Copy } from '@opengeoweb/theme';
4
+ import { CustomIconButton, FilterOption, ToolContainerDraggable, CustomAccordion, CustomTooltip, SearchHighlight, SearchField, CustomToggleButton, AlertBanner, ToggleMenu, CustomDialog, sessionStorageProvider } from '@opengeoweb/shared';
7
5
  import { uiTypes, serviceActions, selectorMemoizationOptions, serviceSelectors, uiActions, getUserAddedServices, setUserAddedServices, layerActions, uiSelectors, layerSelectors, mapListener, serviceListener, layersListener, openlayersListener, uiReducer, layerReducer, serviceReducer, mapReducer, useSetupDialog, mapSelectors, layerTypes, mapEnums } from '@opengeoweb/store';
6
+ import { Filter, ArrowDropDownDown, LayersAdd, MeteoGate, Add, Cached, Edit, Visibility, Delete, Copy } from '@opengeoweb/theme';
8
7
  import { createEntityAdapter, createSlice, createSelector, createListenerMiddleware, isAnyOf, combineReducers, configureStore } from '@reduxjs/toolkit';
9
8
  import { compact, countBy, partition } from 'lodash';
10
9
  import { snackbarListener, snackbarReducer, snackbarTypes, snackbarActions } from '@opengeoweb/snackbar';
11
- import { Switch, Grid, List, Box, Typography, useTheme, Backdrop, CircularProgress, Button, ListItem, ListItemText, LinearProgress, InputAdornment } from '@mui/material';
10
+ import { Switch, Grid, List, ToggleButtonGroup, ToggleButton, Box, Popper, Grow, Paper, ClickAwayListener, MenuList, MenuItem, Typography, useTheme, Backdrop, CircularProgress, Button, ListItem, ListItemText, LinearProgress, InputAdornment } from '@mui/material';
12
11
  import 'i18next';
13
12
  import { useTranslation } from 'react-i18next';
14
13
  import { FixedSizeList } from 'react-window';
15
14
  import { getDimensionsList, LayerInfoButton, clearImageCacheForAllMaps } from '@opengeoweb/webmap-react';
16
15
  import { LayerType, webmapUtils, getWMSServiceId, queryWMSServiceInfo, queryWMSLayers, invalidateWMSGetCapabilities } from '@opengeoweb/webmap';
17
- import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
18
16
  import { useFormContext } from 'react-hook-form';
17
+ import { ReactHookFormProvider, defaultFormOptions, ReactHookFormTextField } from '@opengeoweb/form-fields';
19
18
 
20
19
  var en = {
21
20
  "layer-select": "Layer Select",
@@ -52,7 +51,9 @@ var en = {
52
51
  "service-abstracts-label": "Abstracts",
53
52
  "service-successfully-updated": "Service \"{{serviceName}}\" has been succesfully updated",
54
53
  "unable-to-update-service": "Unable to update service, reason: \"{{message}}\"",
55
- "service-has-been-deleted": "Service \"{{serviceName}}\" has been deleted"
54
+ "service-has-been-deleted": "Service \"{{serviceName}}\" has been deleted",
55
+ "add-to-all-maps": "Add to all maps",
56
+ "remove-from-all-maps": "Remove from all maps"
56
57
  };
57
58
  var fi = {
58
59
  "layer-select": "Layer Select",
@@ -89,7 +90,9 @@ var fi = {
89
90
  "service-abstracts-label": "Tiivistelmä",
90
91
  "service-successfully-updated": "Palvelu \"{{serviceName}}\" päivitetty onnistuneesti",
91
92
  "unable-to-update-service": "Palvelun päivitys epäonnistui. Syy: \"{{message}}\"",
92
- "service-has-been-deleted": "Palvelu \"{{serviceName}}\" poistettu"
93
+ "service-has-been-deleted": "Palvelu \"{{serviceName}}\" poistettu",
94
+ "add-to-all-maps": "Lisää kaikkiin karttoihin",
95
+ "remove-from-all-maps": "Poista kaikista kartoista"
93
96
  };
94
97
  var no = {
95
98
  "layer-select": "Datavelger",
@@ -126,7 +129,9 @@ var no = {
126
129
  "service-abstracts-label": "Sammendrag",
127
130
  "service-successfully-updated": "Tjeneste \"{{serviceName}}\" har blitt oppdatert",
128
131
  "unable-to-update-service": "Kan ikke oppdatere tjeneste, grunn: \"{{message}}\"",
129
- "service-has-been-deleted": "Tjeneste \"{{serviceName}}\" har blitt slettet"
132
+ "service-has-been-deleted": "Tjeneste \"{{serviceName}}\" har blitt slettet",
133
+ "add-to-all-maps": "Legg til i alle kart",
134
+ "remove-from-all-maps": "Fjern fra alle kart"
130
135
  };
131
136
  var nl = {
132
137
  "layer-select": "Layer Select",
@@ -163,7 +168,9 @@ var nl = {
163
168
  "service-abstracts-label": "Beschrijving",
164
169
  "service-successfully-updated": "Service \"{{serviceName}}\" is succesvol bijgewerkt",
165
170
  "unable-to-update-service": "Bijwerken service niet mogelijk, reden: \"{{message}}\"",
166
- "service-has-been-deleted": "Service \"{{serviceName}}\" is verwijderd"
171
+ "service-has-been-deleted": "Service \"{{serviceName}}\" is verwijderd",
172
+ "add-to-all-maps": "Toevoegen aan alle kaarten",
173
+ "remove-from-all-maps": "Verwijderen van alle kaarten"
167
174
  };
168
175
  var layerSelectTranslations = {
169
176
  en: en,
@@ -215,11 +222,11 @@ var filterLayersFromService = function filterLayersFromService(serviceId, servic
215
222
  var searchStringArray = searchString.split(' ');
216
223
  return mapStoreService.layers.filter(function (layer) {
217
224
  return searchStringArray.every(function (search) {
218
- var _layer$name, _layer$title, _layer$abstract;
225
+ var _layer$keywords, _layer$name, _layer$title, _layer$abstract;
219
226
  var searchLowercase = search.toLowerCase();
220
227
  var layerFilterIds = layer.path.map(function (group) {
221
228
  return getFilterId('groups', group);
222
- }).concat(layer.keywords.map(function (keyword) {
229
+ }).concat(((_layer$keywords = layer.keywords) != null ? _layer$keywords : []).map(function (keyword) {
223
230
  return getFilterId('keywords', keyword);
224
231
  }));
225
232
  var isFilterInLayer = (layerFilterIds == null ? void 0 : layerFilterIds.some(function (id) {
@@ -243,23 +250,6 @@ var isUserAddedService = function isUserAddedService(scope) {
243
250
  return scope === 'user';
244
251
  };
245
252
 
246
- /* *
247
- * Licensed under the Apache License, Version 2.0 (the "License");
248
- * you may not use this file except in compliance with the License.
249
- * You may obtain a copy of the License at
250
- *
251
- * http://www.apache.org/licenses/LICENSE-2.0
252
- *
253
- * Unless required by applicable law or agreed to in writing, software
254
- * distributed under the License is distributed on an "AS IS" BASIS,
255
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
256
- * See the License for the specific language governing permissions and
257
- * limitations under the License.
258
- *
259
- * Copyright 2023 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
260
- * Copyright 2023 - Finnish Meteorological Institute (FMI)
261
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
262
- * */
263
253
  var layerSelectFilterAdapter = createEntityAdapter();
264
254
  var layerSelectActiveServicesAdapter = createEntityAdapter({
265
255
  selectId: function selectId(service) {
@@ -486,7 +476,7 @@ var layerSelectReducer = slice.reducer,
486
476
  * */
487
477
  var useAppSelector = useSelector;
488
478
  var layerSelectStore = function layerSelectStore(store) {
489
- return store && store.layerSelect ? store.layerSelect : null;
479
+ return store != null && store.layerSelect ? store.layerSelect : null;
490
480
  };
491
481
  /**
492
482
  * Returns search filter string
@@ -680,28 +670,6 @@ var selectors = /*#__PURE__*/Object.freeze({
680
670
  useAppSelector: useAppSelector
681
671
  });
682
672
 
683
- /* *
684
- * Licensed under the Apache License, Version 2.0 (the "License");
685
- * you may not use this file except in compliance with the License.
686
- * You may obtain a copy of the License at
687
- *
688
- * http://www.apache.org/licenses/LICENSE-2.0
689
- *
690
- * Unless required by applicable law or agreed to in writing, software
691
- * distributed under the License is distributed on an "AS IS" BASIS,
692
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
693
- * See the License for the specific language governing permissions and
694
- * limitations under the License.
695
- *
696
- * Copyright 2022 - Koninklijk Nederlands Meteorologisch Instituut (KNMI)
697
- * Copyright 2022 - Finnish Meteorological Institute (FMI)
698
- * Copyright 2024 - The Norwegian Meteorological Institute (MET Norway)
699
- * */
700
-
701
- var types = /*#__PURE__*/Object.freeze({
702
- __proto__: null
703
- });
704
-
705
673
  function _OverloadYield(e, d) {
706
674
  this.v = e, this.k = d;
707
675
  }
@@ -1183,11 +1151,11 @@ var KeywordFilterButtonConnect = function KeywordFilterButtonConnect(_ref) {
1183
1151
  }));
1184
1152
  }, [currentActiveMapId, dispatch, isOpenInStore, mapId, source, dialogType]);
1185
1153
  return jsx(CustomIconButton, {
1186
- variant: "tool",
1187
- onClick: openFilterResultsDialog,
1188
- isSelected: isOpenInStore,
1189
- id: "keywordFilterButton",
1190
1154
  "data-testid": "keywordFilterButton",
1155
+ id: "keywordFilterButton",
1156
+ isSelected: isOpenInStore,
1157
+ onClick: openFilterResultsDialog,
1158
+ variant: "tool",
1191
1159
  children: jsx(Filter, {})
1192
1160
  });
1193
1161
  };
@@ -1202,12 +1170,12 @@ var KeywordFilterResultsListItemConnect = function KeywordFilterResultsListItemC
1202
1170
  }));
1203
1171
  }, [dispatch]);
1204
1172
  return jsx(FilterOption, {
1205
- optionId: filter.id,
1206
1173
  checked: !!filter.checked,
1174
+ label: filter.amountVisible ? filter.name + " (" + filter.amountVisible + ")" : filter.name,
1207
1175
  onClick: function onClick(checked, only) {
1208
1176
  toggleFilter(filter.id, only);
1209
1177
  },
1210
- label: filter.amountVisible ? filter.name + " (" + filter.amountVisible + ")" : filter.name
1178
+ optionId: filter.id
1211
1179
  });
1212
1180
  };
1213
1181
 
@@ -1220,14 +1188,14 @@ var KeywordFilterSelectAllSwitchConnect = function KeywordFilterSelectAllSwitchC
1220
1188
  dispatch(layerSelectActions.toggleAllFilters());
1221
1189
  }, [dispatch]);
1222
1190
  return jsx(Switch, {
1191
+ checked: allFiltersActive,
1192
+ "data-testid": "customSwitch",
1193
+ onChange: toggleFilters,
1223
1194
  slotProps: {
1224
1195
  input: {
1225
1196
  'aria-label': 'All'
1226
1197
  }
1227
- },
1228
- checked: allFiltersActive,
1229
- onChange: toggleFilters,
1230
- "data-testid": "customSwitch"
1198
+ }
1231
1199
  });
1232
1200
  };
1233
1201
 
@@ -1275,27 +1243,27 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
1275
1243
  var _useLayerSelectTransl = useLayerSelectTranslation(),
1276
1244
  t = _useLayerSelectTransl.t;
1277
1245
  return jsxs(ToolContainerDraggable, {
1278
- title: t('groups-and-keywords-dialog-title'),
1246
+ bounds: bounds,
1279
1247
  "data-testid": "keywordFilterResults",
1280
- startSize: {
1281
- width: 349,
1282
- height: 600
1283
- },
1284
- minWidth: 312,
1285
- minHeight: 192,
1286
1248
  isOpen: isOpen,
1249
+ minHeight: 192,
1250
+ minWidth: 312,
1287
1251
  onClose: onClose,
1288
- bounds: bounds,
1289
1252
  onMouseDown: onMouseDown,
1290
1253
  order: order,
1291
1254
  source: source,
1255
+ startSize: {
1256
+ width: 349,
1257
+ height: 600
1258
+ },
1259
+ title: t('groups-and-keywords-dialog-title'),
1292
1260
  children: [jsxs(Grid, {
1261
+ alignItems: "center",
1293
1262
  container: true,
1263
+ justifyContent: "space-between",
1294
1264
  size: {
1295
1265
  xs: 12
1296
1266
  },
1297
- justifyContent: "space-between",
1298
- alignItems: "center",
1299
1267
  sx: {
1300
1268
  backgroundColor: 'background.paper',
1301
1269
  position: 'sticky',
@@ -1303,31 +1271,31 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
1303
1271
  zIndex: 100
1304
1272
  },
1305
1273
  children: [jsx(Grid, {
1274
+ alignItems: "center",
1306
1275
  container: true,
1276
+ justifyContent: "flex-start",
1307
1277
  size: {
1308
1278
  xs: 6
1309
1279
  },
1310
- justifyContent: "flex-start",
1311
- alignItems: "center",
1312
1280
  sx: {
1313
1281
  padding: '15px 15px 0 24px'
1314
1282
  },
1315
1283
  children: t('select-all')
1316
1284
  }), jsx(Grid, {
1285
+ alignContent: "center",
1317
1286
  container: true,
1287
+ justifyContent: "flex-end",
1318
1288
  size: {
1319
1289
  xs: 6
1320
1290
  },
1321
- justifyContent: "flex-end",
1322
- alignContent: "center",
1323
1291
  sx: {
1324
1292
  padding: '15px 15px 0 15px'
1325
1293
  },
1326
1294
  children: jsx(KeywordFilterSelectAllSwitchConnect, {})
1327
1295
  })]
1328
1296
  }), jsx(CustomAccordion, {
1329
- title: t('groups'),
1330
1297
  detailsSx: accordionDetailsStyle,
1298
+ title: t('groups'),
1331
1299
  children: jsx(List, {
1332
1300
  dense: true,
1333
1301
  style: listStyle,
@@ -1338,8 +1306,8 @@ var KeywordFilterResults = function KeywordFilterResults(_ref) {
1338
1306
  })
1339
1307
  })
1340
1308
  }), jsx(CustomAccordion, {
1341
- title: t('keywords'),
1342
1309
  detailsSx: accordionDetailsStyle,
1310
+ title: t('keywords'),
1343
1311
  children: jsx(List, {
1344
1312
  dense: true,
1345
1313
  style: listStyle,
@@ -1367,52 +1335,174 @@ var KeywordFilterResultsConnect = function KeywordFilterResultsConnect(_ref) {
1367
1335
  var filters = useAppSelector(getFilters);
1368
1336
  return jsx(KeywordFilterResults, {
1369
1337
  bounds: bounds,
1338
+ filters: filters,
1370
1339
  isOpen: isDialogOpen,
1371
1340
  onClose: onCloseDialog,
1372
1341
  onMouseDown: setDialogOrder,
1373
1342
  order: dialogOrder,
1374
- source: uiSource,
1375
- filters: filters
1343
+ source: uiSource
1376
1344
  });
1377
1345
  };
1378
1346
 
1379
1347
  var LayerAddRemoveButton = function LayerAddRemoveButton(_ref) {
1380
1348
  var layer = _ref.layer,
1381
1349
  serviceUrl = _ref.serviceUrl,
1350
+ allLayers = _ref.allLayers,
1351
+ allMapIds = _ref.allMapIds,
1382
1352
  addLayer = _ref.addLayer,
1353
+ addLayerToAllMaps = _ref.addLayerToAllMaps,
1383
1354
  deleteLayer = _ref.deleteLayer,
1355
+ removeLayerFromAllMaps = _ref.removeLayerFromAllMaps,
1384
1356
  mapLayers = _ref.mapLayers;
1385
1357
  var _useLayerSelectTransl = useLayerSelectTranslation(),
1386
1358
  t = _useLayerSelectTransl.t;
1387
- var foundLayerIndex = mapLayers.findIndex(function (lr) {
1388
- return lr.name === layer.name && lr.service === serviceUrl;
1389
- });
1359
+ var _React$useState = React.useState(false),
1360
+ open = _React$useState[0],
1361
+ setOpen = _React$useState[1];
1362
+ var anchorRef = React.useRef(null);
1363
+ var foundLayerIndex = React.useMemo(function () {
1364
+ return mapLayers.findIndex(function (lr) {
1365
+ return lr.name === layer.name && lr.service === serviceUrl;
1366
+ });
1367
+ }, [mapLayers, layer.name, serviceUrl]);
1390
1368
  var foundLayer = foundLayerIndex !== -1 && mapLayers[foundLayerIndex];
1391
- return jsx(CustomToggleButton, {
1392
- "data-testid": "layerAddRemoveButton-" + layer.name,
1393
- onClick: function onClick() {
1394
- !foundLayer ? addLayer({
1395
- serviceUrl: serviceUrl,
1396
- layerName: layer.name
1397
- }) : deleteLayer({
1398
- layerId: foundLayer.id,
1399
- layerIndex: foundLayerIndex
1369
+ var layerExistsInWorkspace = React.useMemo(function () {
1370
+ return allLayers.find(function (current) {
1371
+ return current.name === layer.name && current.service === serviceUrl;
1372
+ });
1373
+ }, [allLayers, layer.name, serviceUrl]);
1374
+ var existsInAllMaps = React.useMemo(function () {
1375
+ return allMapIds.every(function (mapId) {
1376
+ return allLayers.some(function (current) {
1377
+ return current.mapId === mapId && current.name === layer.name && current.service === serviceUrl;
1400
1378
  });
1401
- },
1402
- selected: !!foundLayer,
1403
- variant: "tool",
1404
- fullWidth: true,
1405
- sx: {
1406
- fontSize: '12px'
1407
- },
1408
- className: "layerAddRemoveButton",
1409
- children: !foundLayer ? t('add') : t('remove')
1379
+ });
1380
+ }, [allMapIds, allLayers, layer.name, serviceUrl]);
1381
+ var handleToggle = function handleToggle() {
1382
+ setOpen(function (prevOpen) {
1383
+ return !prevOpen;
1384
+ });
1385
+ };
1386
+ var handleClose = function handleClose(event) {
1387
+ var _anchorRef$current;
1388
+ if ((_anchorRef$current = anchorRef.current) != null && _anchorRef$current.contains(event.target)) {
1389
+ return;
1390
+ }
1391
+ setOpen(false);
1392
+ };
1393
+ var handleAddAll = function handleAddAll() {
1394
+ addLayerToAllMaps({
1395
+ serviceUrl: serviceUrl,
1396
+ layerName: layer.name
1397
+ });
1398
+ setOpen(false);
1399
+ };
1400
+ var handleRemoveAll = function handleRemoveAll(id) {
1401
+ removeLayerFromAllMaps(id);
1402
+ setOpen(false);
1403
+ };
1404
+ return jsxs(Fragment, {
1405
+ children: [jsxs(ToggleButtonGroup, {
1406
+ fullWidth: true,
1407
+ ref: anchorRef,
1408
+ style: {
1409
+ height: '32px'
1410
+ },
1411
+ children: [jsx(ToggleButton, {
1412
+ className: "tool",
1413
+ "data-testid": "layerAddRemoveButton-" + layer.name,
1414
+ fullWidth: true,
1415
+ onClick: function onClick() {
1416
+ !foundLayer ? addLayer({
1417
+ serviceUrl: serviceUrl,
1418
+ layerName: layer.name
1419
+ }) : deleteLayer({
1420
+ layerId: foundLayer.id,
1421
+ layerIndex: foundLayerIndex
1422
+ });
1423
+ },
1424
+ onMouseDown: function onMouseDown(e) {
1425
+ e.stopPropagation();
1426
+ },
1427
+ selected: !!foundLayer,
1428
+ style: {
1429
+ borderRadius: '3px 0 0 3px',
1430
+ height: 'inherit',
1431
+ minWidth: '62px',
1432
+ fontSize: '12px'
1433
+ },
1434
+ value: "selected",
1435
+ children: !foundLayer ? t('add') : t('remove')
1436
+ }), jsx(Box, {
1437
+ sx: {
1438
+ minWidth: '1px',
1439
+ backgroundColor: foundLayer || layerExistsInWorkspace ? 'geowebColors.buttons.primary.default.borderColor' : 'geowebColors.buttons.secondary.default.fill'
1440
+ }
1441
+ }), jsx(ToggleButton, {
1442
+ className: "tool",
1443
+ "data-testid": "layerAddRemoveButton-dropdown-" + layer.name,
1444
+ onClick: handleToggle,
1445
+ onMouseDown: function onMouseDown(e) {
1446
+ e.stopPropagation();
1447
+ },
1448
+ selected: !!layerExistsInWorkspace,
1449
+ style: {
1450
+ marginLeft: '0',
1451
+ minWidth: '32px',
1452
+ borderRadius: '0 3px 3px 0',
1453
+ height: 'inherit'
1454
+ },
1455
+ value: "dropdown",
1456
+ children: jsx(ArrowDropDownDown, {
1457
+ style: {
1458
+ marginRight: '1px'
1459
+ }
1460
+ })
1461
+ })]
1462
+ }), jsx(Popper, {
1463
+ anchorEl: anchorRef.current,
1464
+ open: open,
1465
+ placement: "bottom-end",
1466
+ role: undefined,
1467
+ style: {
1468
+ zIndex: 1300
1469
+ },
1470
+ transition: true,
1471
+ children: function children(_ref2) {
1472
+ var TransitionProps = _ref2.TransitionProps,
1473
+ placement = _ref2.placement;
1474
+ return jsx(Grow, Object.assign({}, TransitionProps, {
1475
+ style: {
1476
+ transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom'
1477
+ },
1478
+ children: jsx(Paper, {
1479
+ children: jsx(ClickAwayListener, {
1480
+ onClickAway: handleClose,
1481
+ children: jsxs(MenuList, {
1482
+ autoFocusItem: true,
1483
+ children: [jsx(MenuItem, {
1484
+ disabled: existsInAllMaps,
1485
+ onClick: handleAddAll,
1486
+ children: t('add-to-all-maps')
1487
+ }), jsx(MenuItem, {
1488
+ disabled: !layerExistsInWorkspace,
1489
+ onClick: function onClick() {
1490
+ layerExistsInWorkspace && handleRemoveAll(layerExistsInWorkspace.id);
1491
+ },
1492
+ children: t('remove-from-all-maps')
1493
+ })]
1494
+ })
1495
+ })
1496
+ })
1497
+ }));
1498
+ }
1499
+ })]
1410
1500
  });
1411
1501
  };
1412
1502
 
1413
1503
  var LayerListDimensions = function LayerListDimensions(_ref) {
1414
1504
  var dimensions = _ref.dimensions;
1415
- if (!dimensions || !dimensions.length) {
1505
+ if (!(dimensions != null && dimensions.length)) {
1416
1506
  return null;
1417
1507
  }
1418
1508
  return jsx(Fragment, {
@@ -1480,10 +1570,10 @@ var layerSelectColumnsLarge = {
1480
1570
  marginLeft: 2
1481
1571
  },
1482
1572
  column8: {
1483
- width: "calc(100% - " + buttonLarge + "px - 24px)"
1573
+ width: "calc(100% - " + buttonLarge + "px - 32px)"
1484
1574
  },
1485
1575
  column9: {
1486
- width: "calc(" + buttonLarge + "px + 24px)"
1576
+ width: "calc(" + buttonLarge + "px + 32px)"
1487
1577
  }
1488
1578
  };
1489
1579
  var layerSelectColumnsSmall = {
@@ -1515,10 +1605,10 @@ var layerSelectColumnsSmall = {
1515
1605
  marginLeft: 1
1516
1606
  },
1517
1607
  column8: {
1518
- width: "calc(100% - " + buttonSmall + "px - 8px)"
1608
+ width: "calc(100% - " + buttonSmall + "px - 50px)"
1519
1609
  },
1520
1610
  column9: {
1521
- width: "calc(" + buttonSmall + "px + 8px)"
1611
+ width: "calc(" + buttonSmall + "px + 50px)"
1522
1612
  }
1523
1613
  };
1524
1614
  var breakpoint = 500;
@@ -1557,11 +1647,15 @@ var layerInfoStyle = {
1557
1647
  lineHeight: 1
1558
1648
  };
1559
1649
  var LayerListRow = function LayerListRow(_ref) {
1560
- var _layer$keywords;
1650
+ var _layer$keywords, _layer$keywords2;
1561
1651
  var layer = _ref.layer,
1562
1652
  service = _ref.service,
1653
+ allLayers = _ref.allLayers,
1654
+ allMapIds = _ref.allMapIds,
1563
1655
  addLayer = _ref.addLayer,
1656
+ addLayerToAllMaps = _ref.addLayerToAllMaps,
1564
1657
  deleteLayer = _ref.deleteLayer,
1658
+ removeLayerFromAllMaps = _ref.removeLayerFromAllMaps,
1565
1659
  mapLayers = _ref.mapLayers,
1566
1660
  layerSelectWidth = _ref.layerSelectWidth,
1567
1661
  searchFilter = _ref.searchFilter,
@@ -1574,10 +1668,10 @@ var LayerListRow = function LayerListRow(_ref) {
1574
1668
  var columns = widthToColumns(layerSelectWidth);
1575
1669
  var dimensions = getDimensionsList(layer.dimensions);
1576
1670
  return jsxs(Grid, {
1577
- "data-testid": "layerListLayerRow",
1671
+ alignItems: "center",
1578
1672
  container: true,
1673
+ "data-testid": "layerListLayerRow",
1579
1674
  justifyContent: "center",
1580
- alignItems: "center",
1581
1675
  sx: {
1582
1676
  backgroundColor: 'geowebColors.cards.cardContainer',
1583
1677
  padding: '8px',
@@ -1603,8 +1697,8 @@ var LayerListRow = function LayerListRow(_ref) {
1603
1697
  overflow: 'hidden'
1604
1698
  },
1605
1699
  children: jsx(SearchHighlight, {
1606
- text: layer.title,
1607
- search: searchFilter
1700
+ search: searchFilter,
1701
+ text: layer.title
1608
1702
  })
1609
1703
  })
1610
1704
  }), jsxs(Grid, {
@@ -1620,8 +1714,8 @@ var LayerListRow = function LayerListRow(_ref) {
1620
1714
  overflow: 'hidden'
1621
1715
  },
1622
1716
  children: jsx(SearchHighlight, {
1623
- text: service.name,
1624
- search: searchFilter
1717
+ search: searchFilter,
1718
+ text: service.name
1625
1719
  })
1626
1720
  }), jsx(LayerInfoButton, {
1627
1721
  isActive: hasActiveLayer,
@@ -1631,12 +1725,12 @@ var LayerListRow = function LayerListRow(_ref) {
1631
1725
  sx: columns.column2,
1632
1726
  children: [jsx(Grid, {
1633
1727
  sx: columns.column3,
1634
- children: layer["abstract"] && jsx(Typography, {
1728
+ children: !!layer["abstract"] && jsx(Typography, {
1635
1729
  "data-testid": "layerAbstract",
1636
1730
  sx: layerInfoStyle,
1637
1731
  children: jsx(SearchHighlight, {
1638
- text: layer["abstract"],
1639
- search: searchFilter
1732
+ search: searchFilter,
1733
+ text: layer["abstract"]
1640
1734
  })
1641
1735
  })
1642
1736
  }), jsxs(Grid, {
@@ -1652,34 +1746,42 @@ var LayerListRow = function LayerListRow(_ref) {
1652
1746
  children: [layer.path.length > 0 && jsxs(Typography, {
1653
1747
  sx: layerInfoStyle,
1654
1748
  children: [t('groups'), ":", ' ', jsx(SearchHighlight, {
1655
- text: layer.path.join(' / '),
1656
- search: searchFilter
1749
+ search: searchFilter,
1750
+ text: layer.path.join(' / ')
1657
1751
  })]
1658
1752
  }), ((_layer$keywords = layer.keywords) == null ? void 0 : _layer$keywords.length) > 0 && jsxs(Typography, {
1659
1753
  sx: layerInfoStyle,
1660
1754
  children: [t('keywords'), ":", ' ', jsx(SearchHighlight, {
1661
- text: layer.keywords.slice().sort(function (textA, textB) {
1755
+ search: searchFilter,
1756
+ text: ((_layer$keywords2 = layer.keywords) != null ? _layer$keywords2 : []).slice().sort(function (textA, textB) {
1662
1757
  return textA.localeCompare(textB);
1663
- }).join(', '),
1664
- search: searchFilter
1758
+ }).join(', ')
1665
1759
  })]
1666
1760
  })]
1667
1761
  })]
1668
1762
  })]
1669
1763
  })]
1670
1764
  }), jsx(Grid, {
1765
+ alignItems: "center",
1671
1766
  container: true,
1672
- sx: columns.column9,
1673
1767
  justifyContent: "flex-end",
1674
- alignItems: "center",
1768
+ sx: columns.column9,
1675
1769
  children: jsx(Box, {
1676
- sx: columns.column7,
1770
+ alignItems: "flex-start",
1771
+ sx: (columns.column7, {
1772
+ width: '100%',
1773
+ paddingLeft: '16px'
1774
+ }),
1677
1775
  children: jsx(LayerAddRemoveButton, {
1678
- layer: layer,
1679
- serviceUrl: service.serviceUrl,
1680
1776
  addLayer: addLayer,
1777
+ addLayerToAllMaps: addLayerToAllMaps,
1778
+ allLayers: allLayers,
1779
+ allMapIds: allMapIds,
1681
1780
  deleteLayer: deleteLayer,
1682
- mapLayers: mapLayers
1781
+ layer: layer,
1782
+ mapLayers: mapLayers,
1783
+ removeLayerFromAllMaps: removeLayerFromAllMaps,
1784
+ serviceUrl: service.serviceUrl
1683
1785
  })
1684
1786
  })
1685
1787
  })]
@@ -1692,8 +1794,12 @@ var LayerList = function LayerList(_ref) {
1692
1794
  layerSelectHeight = _ref.layerSelectHeight,
1693
1795
  serviceListHeight = _ref.serviceListHeight,
1694
1796
  layerSelectWidth = _ref.layerSelectWidth,
1797
+ allLayers = _ref.allLayers,
1798
+ allMapIds = _ref.allMapIds,
1695
1799
  addLayer = _ref.addLayer,
1800
+ addLayerToAllMaps = _ref.addLayerToAllMaps,
1696
1801
  deleteLayer = _ref.deleteLayer,
1802
+ removeLayerFromAllMaps = _ref.removeLayerFromAllMaps,
1697
1803
  mapLayers = _ref.mapLayers,
1698
1804
  searchFilter = _ref.searchFilter,
1699
1805
  isLayerInfoVisibleInStore = _ref.isLayerInfoVisibleInStore,
@@ -1726,22 +1832,26 @@ var LayerList = function LayerList(_ref) {
1726
1832
  var isActiveLayer = isLayerInfoVisibleInStore && (currentLayerInfo == null ? void 0 : currentLayerInfo.serviceUrl) === service.serviceUrl && (currentLayerInfo == null ? void 0 : currentLayerInfo.layerName) === filter.name;
1727
1833
  return jsx("div", {
1728
1834
  style: style,
1729
- children: service && jsx(LayerListRow, {
1730
- layer: filter,
1731
- service: service,
1835
+ children: !!service && jsx(LayerListRow, {
1732
1836
  addLayer: addLayer,
1837
+ addLayerToAllMaps: addLayerToAllMaps,
1838
+ allLayers: allLayers,
1839
+ allMapIds: allMapIds,
1733
1840
  deleteLayer: deleteLayer,
1734
- mapLayers: mapLayers,
1735
- layerSelectWidth: layerSelectWidth,
1736
- searchFilter: searchFilter,
1737
1841
  hasActiveLayer: isActiveLayer,
1842
+ layer: filter,
1843
+ layerSelectWidth: layerSelectWidth,
1844
+ mapLayers: mapLayers,
1738
1845
  onToggleActiveLayer: function onToggleActiveLayer() {
1739
1846
  return _onToggleActiveLayer({
1740
1847
  serviceUrl: service == null ? void 0 : service.serviceUrl,
1741
1848
  layerName: filter.name,
1742
1849
  isActiveLayer: isActiveLayer
1743
1850
  });
1744
- }
1851
+ },
1852
+ removeLayerFromAllMaps: removeLayerFromAllMaps,
1853
+ searchFilter: searchFilter,
1854
+ service: service
1745
1855
  })
1746
1856
  }, filter.name);
1747
1857
  }
@@ -1761,7 +1871,13 @@ var LayerListConnect = function LayerListConnect(_ref) {
1761
1871
  var mapLayers = useAppSelector(function (store) {
1762
1872
  return mapSelectors.getMapLayersWithoutDimensionCurrentValue(store, mapId);
1763
1873
  });
1764
- var addLayer = function addLayer(_ref2) {
1874
+ var allLayers = useAppSelector(function (store) {
1875
+ return layerSelectors.getAllLayers(store);
1876
+ });
1877
+ var allMapIds = useAppSelector(function (store) {
1878
+ return mapSelectors.getAllMapIds(store);
1879
+ });
1880
+ var _addLayer = function addLayer(_ref2, mapId) {
1765
1881
  var serviceUrl = _ref2.serviceUrl,
1766
1882
  layerName = _ref2.layerName;
1767
1883
  var layer = {
@@ -1771,13 +1887,15 @@ var LayerListConnect = function LayerListConnect(_ref) {
1771
1887
  layerType: LayerType.mapLayer
1772
1888
  };
1773
1889
  addMapLayer({
1890
+ mapId: mapId,
1774
1891
  layerId: layer.id,
1775
1892
  layer: layer,
1776
1893
  origin: layerTypes.LayerActionOrigin.layerManager
1777
1894
  });
1778
1895
  };
1779
1896
  var addMapLayer = React.useCallback(function (_ref3) {
1780
- var layerId = _ref3.layerId,
1897
+ var mapId = _ref3.mapId,
1898
+ layerId = _ref3.layerId,
1781
1899
  layer = _ref3.layer,
1782
1900
  origin = _ref3.origin;
1783
1901
  return dispatch(layerActions.addLayer({
@@ -1786,10 +1904,25 @@ var LayerListConnect = function LayerListConnect(_ref) {
1786
1904
  layer: layer,
1787
1905
  origin: origin
1788
1906
  }));
1789
- }, [dispatch, mapId]);
1790
- var deleteLayer = React.useCallback(function (_ref4) {
1791
- var layerId = _ref4.layerId,
1792
- layerIndex = _ref4.layerIndex;
1907
+ }, [dispatch]);
1908
+ var addLayerToAllMaps = function addLayerToAllMaps(_ref4) {
1909
+ var serviceUrl = _ref4.serviceUrl,
1910
+ layerName = _ref4.layerName;
1911
+ allMapIds.forEach(function (mapId) {
1912
+ if (allLayers.find(function (layer) {
1913
+ return layer.name === layerName && layer.service === serviceUrl && layer.mapId === mapId;
1914
+ })) {
1915
+ return;
1916
+ }
1917
+ _addLayer({
1918
+ serviceUrl: serviceUrl,
1919
+ layerName: layerName
1920
+ }, mapId);
1921
+ });
1922
+ };
1923
+ var deleteLayer = React.useCallback(function (_ref5) {
1924
+ var layerId = _ref5.layerId,
1925
+ layerIndex = _ref5.layerIndex;
1793
1926
  return dispatch(layerActions.layerDelete({
1794
1927
  mapId: mapId,
1795
1928
  layerId: layerId,
@@ -1797,6 +1930,23 @@ var LayerListConnect = function LayerListConnect(_ref) {
1797
1930
  origin: layerTypes.LayerActionOrigin.layerManager
1798
1931
  }));
1799
1932
  }, [dispatch, mapId]);
1933
+ var removeLayerFromAllMaps = React.useCallback(function (layerId) {
1934
+ var _allLayers$find;
1935
+ if (!layerId) {
1936
+ return;
1937
+ }
1938
+ var layerName = (_allLayers$find = allLayers.find(function (layer) {
1939
+ return layer.id === layerId;
1940
+ })) == null ? void 0 : _allLayers$find.name;
1941
+ layerName && allLayers.filter(function (layer) {
1942
+ return layer.name === layerName;
1943
+ }).forEach(function (layer) {
1944
+ layer.mapId && layer.id && dispatch(layerActions.layerDelete({
1945
+ mapId: layer.mapId,
1946
+ layerId: layer.id
1947
+ }));
1948
+ });
1949
+ }, [dispatch, allLayers]);
1800
1950
  var filteredLayers = useAppSelector(function (store) {
1801
1951
  return getFilteredLayers(store);
1802
1952
  });
@@ -1809,10 +1959,10 @@ var LayerListConnect = function LayerListConnect(_ref) {
1809
1959
  var currentLayerInfo = useAppSelector(function (store) {
1810
1960
  return layerSelectors.getActiveLayerInfo(store);
1811
1961
  });
1812
- var onToggleActiveLayer = React.useCallback(function (_ref5) {
1813
- var serviceUrl = _ref5.serviceUrl,
1814
- layerName = _ref5.layerName,
1815
- isActiveLayer = _ref5.isActiveLayer;
1962
+ var onToggleActiveLayer = React.useCallback(function (_ref6) {
1963
+ var serviceUrl = _ref6.serviceUrl,
1964
+ layerName = _ref6.layerName,
1965
+ isActiveLayer = _ref6.isActiveLayer;
1816
1966
  if (!isActiveLayer) {
1817
1967
  dispatch(layerActions.showLayerInfo({
1818
1968
  layerName: layerName,
@@ -1824,18 +1974,24 @@ var LayerListConnect = function LayerListConnect(_ref) {
1824
1974
  }
1825
1975
  }, [mapId, dispatch]);
1826
1976
  return jsx(LayerList, {
1977
+ addLayer: function addLayer(params) {
1978
+ return _addLayer(params, mapId);
1979
+ },
1980
+ addLayerToAllMaps: addLayerToAllMaps,
1981
+ allLayers: allLayers,
1982
+ allMapIds: allMapIds,
1983
+ currentLayerInfo: currentLayerInfo,
1984
+ deleteLayer: deleteLayer,
1827
1985
  filteredLayers: filteredLayers,
1828
- services: services,
1986
+ isLayerInfoVisibleInStore: isLayerInfoVisibleInStore,
1829
1987
  layerSelectHeight: layerSelectHeight,
1830
- serviceListHeight: serviceListHeight,
1831
1988
  layerSelectWidth: layerSelectWidth,
1832
- addLayer: addLayer,
1833
- deleteLayer: deleteLayer,
1834
1989
  mapLayers: mapLayers,
1835
- searchFilter: searchFilter,
1836
- isLayerInfoVisibleInStore: isLayerInfoVisibleInStore,
1837
1990
  onToggleActiveLayer: onToggleActiveLayer,
1838
- currentLayerInfo: currentLayerInfo
1991
+ removeLayerFromAllMaps: removeLayerFromAllMaps,
1992
+ searchFilter: searchFilter,
1993
+ serviceListHeight: serviceListHeight,
1994
+ services: services
1839
1995
  });
1840
1996
  };
1841
1997
 
@@ -1874,15 +2030,50 @@ var LayerSelectButtonConnect = function LayerSelectButtonConnect(_ref) {
1874
2030
  }));
1875
2031
  }, [currentActiveMapId, dispatch, isOpenInStore, mapId, source, dialogType]);
1876
2032
  return jsx(CustomIconButton, {
2033
+ "data-testid": "layerSelectButton",
2034
+ id: "layerSelectButton",
1877
2035
  onClick: openLayerSelectDialog,
1878
2036
  sx: style$2,
1879
- id: "layerSelectButton",
1880
- "data-testid": "layerSelectButton",
1881
2037
  tooltipTitle: tooltipTitle || t('layer-select-button-tooltip'),
1882
2038
  children: icon
1883
2039
  });
1884
2040
  };
1885
2041
 
2042
+ var DataExplorerButtonConnect = function DataExplorerButtonConnect(_ref) {
2043
+ var mapId = _ref.mapId,
2044
+ _ref$source = _ref.source,
2045
+ source = _ref$source === void 0 ? 'app' : _ref$source;
2046
+ var dispatch = useDispatch();
2047
+ var dialogType = uiTypes.DialogTypes.DataExplorer;
2048
+ var currentActiveMapId = useSelector(function (store) {
2049
+ return uiSelectors.getDialogMapId(store, dialogType);
2050
+ });
2051
+ var isOpenInStore = useSelector(function (store) {
2052
+ return uiSelectors.getisDialogOpen(store, dialogType);
2053
+ });
2054
+ var openDataExplorerDialog = React.useCallback(function () {
2055
+ dispatch(uiActions.setActiveMapIdForDialog({
2056
+ type: dialogType,
2057
+ setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
2058
+ source: source,
2059
+ mapId: mapId,
2060
+ origin: mapEnums.MapActionOrigin.map
2061
+ }));
2062
+ }, [dispatch, dialogType, currentActiveMapId, mapId, isOpenInStore, source]);
2063
+ return jsx(CustomTooltip, {
2064
+ title: "MeteoGate Data Explorer",
2065
+ children: jsx(CustomIconButton, {
2066
+ "data-testid": "dataExplorerButton",
2067
+ isSelected: currentActiveMapId !== mapId ? false : isOpenInStore,
2068
+ onClick: openDataExplorerDialog,
2069
+ variant: "tool",
2070
+ children: jsx(MeteoGate, {
2071
+ sx: {}
2072
+ })
2073
+ })
2074
+ });
2075
+ };
2076
+
1886
2077
  var SearchFieldConnect = function SearchFieldConnect() {
1887
2078
  var dispatch = useDispatch();
1888
2079
  var searchFilter = useAppSelector(function (store) {
@@ -1901,9 +2092,9 @@ var SearchFieldConnect = function SearchFieldConnect() {
1901
2092
  }));
1902
2093
  };
1903
2094
  return jsx(SearchField, {
1904
- setSearchFilter: setSearchFilter,
2095
+ onOpenServicePopup: toggleServicePopup,
1905
2096
  searchFilter: searchFilter,
1906
- onOpenServicePopup: toggleServicePopup
2097
+ setSearchFilter: setSearchFilter
1907
2098
  });
1908
2099
  };
1909
2100
 
@@ -1929,22 +2120,20 @@ var ServiceChip = function ServiceChip(_ref) {
1929
2120
  t = _useLayerSelectTransl.t;
1930
2121
  var _useTheme = useTheme(),
1931
2122
  geowebColors = _useTheme.palette.geowebColors;
1932
- var chip = all ? 'all' : service && service.serviceUrl;
2123
+ var chip = all ? 'all' : service == null ? void 0 : service.serviceUrl;
1933
2124
  return jsx(CustomTooltip, {
1934
2125
  title: service != null && service["abstract"] ? "Abstract: " + service["abstract"] : '',
1935
2126
  children: jsx("span", {
1936
2127
  children: jsx(CustomToggleButton, {
1937
- variant: "boxed",
1938
- selected: Boolean(isSelected),
1939
- tabIndex: 0,
1940
2128
  "data-testid": all ? 'serviceChipAll' : 'serviceChip',
2129
+ disabled: isDisabled,
1941
2130
  onClick: function onClick() {
1942
2131
  return toggleChip(chip);
1943
2132
  },
1944
2133
  onKeyDown: function onKeyDown() {
1945
2134
  return toggleChip(chip);
1946
2135
  },
1947
- disabled: isDisabled,
2136
+ selected: Boolean(isSelected),
1948
2137
  sx: Object.assign({}, style$1, isInSearch && Object.assign({
1949
2138
  backgroundColor: geowebColors.chip.highlightDefault.rgba + "!important",
1950
2139
  '&:hover': {
@@ -1956,6 +2145,8 @@ var ServiceChip = function ServiceChip(_ref) {
1956
2145
  backgroundColor: geowebColors.chip.highlightActiveMouseOver.rgba + "!important"
1957
2146
  }
1958
2147
  })),
2148
+ tabIndex: 0,
2149
+ variant: "boxed",
1959
2150
  children: service ? service.serviceName : t('all')
1960
2151
  })
1961
2152
  })
@@ -1986,36 +2177,38 @@ var ServiceChipConnect = function ServiceChipConnect(_ref) {
1986
2177
  }));
1987
2178
  };
1988
2179
  return jsx(ServiceChip, {
1989
- service: service,
1990
- toggleChip: toggleChip,
1991
- isSelected: isAllSelected ? false : service.enabled,
1992
2180
  isDisabled: service.isLoading,
1993
- isInSearch: isInSearch
2181
+ isInSearch: isInSearch,
2182
+ isSelected: isAllSelected ? false : service.enabled,
2183
+ service: service,
2184
+ toggleChip: toggleChip
1994
2185
  });
1995
2186
  };
1996
2187
  var AllChipConnect = function AllChipConnect(_ref2) {
1997
2188
  var isAllSelected = _ref2.isAllSelected;
1998
2189
  var dispatch = useDispatch();
1999
2190
  return jsx(ServiceChip, {
2191
+ isSelected: isAllSelected,
2000
2192
  toggleChip: function toggleChip() {
2001
2193
  if (!isAllSelected) {
2002
2194
  dispatch(layerSelectActions.enableAllActiveServices());
2003
2195
  }
2004
- },
2005
- isSelected: isAllSelected
2196
+ }
2006
2197
  });
2007
2198
  };
2008
2199
 
2009
2200
  var ServiceList = function ServiceList(_ref) {
2201
+ var _ref$current;
2010
2202
  var activeServicesById = _ref.activeServicesById,
2011
2203
  setHeight = _ref.setHeight;
2012
2204
  var ref = React.useRef(null);
2013
2205
  var _React$useState = React.useState(0),
2014
2206
  serviceListHeight = _React$useState[0],
2015
2207
  setServiceListHeight = _React$useState[1];
2016
- var clientHeight = ref && ref.current && ref.current.clientHeight && ref.current.clientHeight;
2208
+ var clientHeight = (ref == null || (_ref$current = ref.current) == null ? void 0 : _ref$current.clientHeight) && ref.current.clientHeight;
2017
2209
  React.useEffect(function () {
2018
- if (ref && ref.current && ref.current.clientHeight) {
2210
+ var _ref$current2;
2211
+ if (ref != null && (_ref$current2 = ref.current) != null && _ref$current2.clientHeight) {
2019
2212
  setServiceListHeight(ref.current.clientHeight);
2020
2213
  }
2021
2214
  }, [activeServicesById, clientHeight]);
@@ -2028,13 +2221,14 @@ var ServiceList = function ServiceList(_ref) {
2028
2221
  return activeService.enabled;
2029
2222
  });
2030
2223
  return jsx(Box, {
2224
+ "data-testid": "serviceList",
2031
2225
  sx: {
2032
2226
  marginTop: '8px',
2033
2227
  width: '100%',
2034
2228
  overflow: 'hidden'
2035
2229
  },
2036
- "data-testid": "serviceList",
2037
2230
  children: jsxs(Box, {
2231
+ ref: ref,
2038
2232
  sx: {
2039
2233
  width: '100%',
2040
2234
  display: 'block',
@@ -2045,13 +2239,12 @@ var ServiceList = function ServiceList(_ref) {
2045
2239
  marginBottom: '8px',
2046
2240
  fontSize: '0.875rem'
2047
2241
  },
2048
- ref: ref,
2049
- children: [(activeServicesIds == null ? void 0 : activeServicesIds.length) && jsx(AllChipConnect, {
2242
+ children: [!!(activeServicesIds != null && activeServicesIds.length) && jsx(AllChipConnect, {
2050
2243
  isAllSelected: isAllSelected
2051
2244
  }), activeServices.map(function (service) {
2052
2245
  return jsx(ServiceChipConnect, {
2053
- service: service,
2054
- isAllSelected: isAllSelected
2246
+ isAllSelected: isAllSelected,
2247
+ service: service
2055
2248
  }, service.serviceUrl);
2056
2249
  })]
2057
2250
  })
@@ -2064,8 +2257,8 @@ var ServiceListConnect = function ServiceListConnect(_ref) {
2064
2257
  return getFilteredActiveServices(store);
2065
2258
  });
2066
2259
  return jsx(ServiceList, {
2067
- setHeight: setHeight,
2068
- activeServicesById: sortByService(filteredActiveServices)
2260
+ activeServicesById: sortByService(filteredActiveServices),
2261
+ setHeight: setHeight
2069
2262
  });
2070
2263
  };
2071
2264
 
@@ -2137,45 +2330,45 @@ var ServiceOptionsDialog = function ServiceOptionsDialog(_ref) {
2137
2330
  (_dialogRef$current = dialogRef.current) == null || _dialogRef$current.focus();
2138
2331
  }, []);
2139
2332
  return jsxs(Box, {
2140
- sx: styles.servicesContainer,
2141
2333
  "data-testid": "ServiceDialog",
2142
2334
  onKeyDown: function onKeyDown(event) {
2143
2335
  if (event.key !== 'Escape') {
2144
2336
  event.stopPropagation();
2145
2337
  }
2146
2338
  },
2147
- tabIndex: -1,
2148
2339
  ref: dialogRef,
2340
+ sx: styles.servicesContainer,
2341
+ tabIndex: -1,
2149
2342
  children: [jsxs(Box, {
2150
2343
  sx: styles.header,
2151
2344
  children: [jsx(Box, {
2152
2345
  sx: styles.text,
2153
2346
  children: t('services')
2154
- }), error && jsx(AlertBanner, {
2155
- title: error,
2156
- shouldClose: true
2157
- })]
2347
+ }), error ? jsx(AlertBanner, {
2348
+ shouldClose: true,
2349
+ title: error
2350
+ }) : null]
2158
2351
  }), jsx(Backdrop, {
2352
+ open: isLoading,
2159
2353
  sx: Object.assign({}, styles.loading, {
2160
2354
  backgroundSize: 'cover'
2161
2355
  }),
2162
- open: isLoading,
2163
2356
  children: jsx(CircularProgress, {})
2164
2357
  }), jsx(Rows, {
2165
- services: services,
2166
- layerSelectRemoveService: layerSelectRemoveService,
2167
2358
  layerSelectReloadService: layerSelectReloadService,
2168
- setServicePopupInfo: setServicePopupInfo,
2169
- selectedLayers: selectedLayers
2359
+ layerSelectRemoveService: layerSelectRemoveService,
2360
+ selectedLayers: selectedLayers,
2361
+ services: services,
2362
+ setServicePopupInfo: setServicePopupInfo
2170
2363
  }), jsx(Box, {
2171
2364
  sx: styles.footer,
2172
2365
  children: jsx(Button, {
2366
+ "data-testid": "openAddServiceButton",
2173
2367
  onClick: openAddService,
2174
2368
  onKeyDown: stopTabPropagation,
2175
- "data-testid": "openAddServiceButton",
2369
+ startIcon: jsx(Add, {}),
2176
2370
  sx: styles.button,
2177
2371
  variant: "tertiary",
2178
- startIcon: jsx(Add, {}),
2179
2372
  children: t('add-a-new-service')
2180
2373
  })
2181
2374
  })]
@@ -2246,31 +2439,30 @@ var Rows = function Rows(_ref2) {
2246
2439
  },
2247
2440
  children: [jsx(CustomTooltip, {
2248
2441
  "data-testid": "updateServiceTooltip",
2249
- title: t('update-service-title'),
2250
2442
  placement: tooltipPlacement(),
2251
2443
  slotProps: {
2252
2444
  popper: tooltipPopperProps
2253
2445
  },
2446
+ title: t('update-service-title'),
2254
2447
  children: jsx(CustomIconButton, {
2255
- "data-testid": "updateServiceButton",
2256
2448
  "aria-label": "Update layers from WMS service",
2257
- onKeyDown: stopTabPropagation,
2449
+ "data-testid": "updateServiceButton",
2258
2450
  onClick: function onClick() {
2259
2451
  layerSelectReloadService(serviceUrl);
2260
2452
  },
2453
+ onKeyDown: stopTabPropagation,
2261
2454
  children: jsx(Cached, {})
2262
2455
  })
2263
2456
  }), userAddedService ? jsx(CustomTooltip, {
2264
- title: t('edit-service-title'),
2265
2457
  placement: tooltipPlacement(),
2266
2458
  slotProps: {
2267
2459
  popper: tooltipPopperProps
2268
2460
  },
2461
+ title: t('edit-service-title'),
2269
2462
  children: jsx("span", {
2270
2463
  children: jsx(CustomIconButton, {
2271
2464
  "aria-label": "edit service",
2272
2465
  "data-testid": "openEditServiceButton",
2273
- onKeyDown: stopTabPropagation,
2274
2466
  onClick: function onClick() {
2275
2467
  setServicePopupInfo({
2276
2468
  isOpen: true,
@@ -2279,20 +2471,20 @@ var Rows = function Rows(_ref2) {
2279
2471
  variant: 'edit'
2280
2472
  });
2281
2473
  },
2474
+ onKeyDown: stopTabPropagation,
2282
2475
  children: jsx(Edit, {})
2283
2476
  })
2284
2477
  })
2285
2478
  }) : jsx(CustomTooltip, {
2286
- title: t('show-service-title'),
2287
2479
  placement: tooltipPlacement(),
2288
2480
  slotProps: {
2289
2481
  popper: tooltipPopperProps
2290
2482
  },
2483
+ title: t('show-service-title'),
2291
2484
  children: jsx("span", {
2292
2485
  children: jsx(CustomIconButton, {
2293
2486
  "aria-label": "show service",
2294
2487
  "data-testid": "openShowServiceButton",
2295
- onKeyDown: stopTabPropagation,
2296
2488
  onClick: function onClick() {
2297
2489
  setServicePopupInfo({
2298
2490
  isOpen: true,
@@ -2301,26 +2493,27 @@ var Rows = function Rows(_ref2) {
2301
2493
  variant: 'show'
2302
2494
  });
2303
2495
  },
2496
+ onKeyDown: stopTabPropagation,
2304
2497
  children: jsx(Visibility, {})
2305
2498
  })
2306
2499
  })
2307
- }), userAddedService && jsx(Box, {
2500
+ }), !!userAddedService && jsx(Box, {
2308
2501
  children: jsx(CustomTooltip, {
2309
- title: deleteServiceTitle(t, serviceHasActiveLayers),
2502
+ "data-testid": "removeServiceTooltip",
2503
+ placement: tooltipPlacement(),
2310
2504
  slotProps: {
2311
2505
  popper: tooltipPopperProps
2312
2506
  },
2313
- placement: tooltipPlacement(),
2314
- "data-testid": "removeServiceTooltip",
2507
+ title: deleteServiceTitle(t, serviceHasActiveLayers),
2315
2508
  children: jsx("span", {
2316
2509
  children: jsx(CustomIconButton, {
2317
- "data-testid": "removeServiceButton",
2318
2510
  "aria-label": "delete service",
2511
+ "data-testid": "removeServiceButton",
2319
2512
  disabled: serviceHasActiveLayers,
2320
- onKeyDown: stopTabPropagation,
2321
2513
  onClick: function onClick() {
2322
2514
  return layerSelectRemoveService(serviceId, serviceUrl, serviceName);
2323
2515
  },
2516
+ onKeyDown: stopTabPropagation,
2324
2517
  children: jsx(Delete, {})
2325
2518
  })
2326
2519
  })
@@ -2508,15 +2701,15 @@ var ServiceOptionsDialogConnect = function ServiceOptionsDialogConnect(_ref) {
2508
2701
  service = getService(services, serviceUrl);
2509
2702
  serviceSetLayers({
2510
2703
  id: layersForService.id,
2511
- name: service && service.serviceName || layersForService.name,
2704
+ name: (service == null ? void 0 : service.serviceName) || layersForService.name,
2512
2705
  serviceUrl: serviceUrl,
2513
- "abstract": service && service["abstract"] || layersForService["abstract"],
2706
+ "abstract": (service == null ? void 0 : service["abstract"]) || layersForService["abstract"],
2514
2707
  layers: layersForService.layers,
2515
- scope: service && service.scope || 'user',
2708
+ scope: (service == null ? void 0 : service.scope) || 'user',
2516
2709
  isUpdating: true
2517
2710
  });
2518
2711
  clearImageCacheForAllMaps();
2519
- serviceTitle = service && service.serviceName || layersForService.name;
2712
+ serviceTitle = (service == null ? void 0 : service.serviceName) || layersForService.name;
2520
2713
  showSnackbar(getServiceSuccesUpdateMessage(serviceTitle));
2521
2714
  _context.next = 16;
2522
2715
  break;
@@ -2541,13 +2734,13 @@ var ServiceOptionsDialogConnect = function ServiceOptionsDialogConnect(_ref) {
2541
2734
  };
2542
2735
  }(), [serviceSetLayers, services, showSnackbar, t]);
2543
2736
  return jsx(ServiceOptionsDialog, {
2737
+ error: error,
2738
+ isLoading: isLoading,
2739
+ layerSelectReloadService: layerSelectReloadService,
2740
+ layerSelectRemoveService: layerSelectRemoveService,
2544
2741
  selectedLayers: selectedLayers,
2545
2742
  services: services,
2546
- layerSelectRemoveService: layerSelectRemoveService,
2547
- layerSelectReloadService: layerSelectReloadService,
2548
- setServicePopupInfo: setServicePopupInfo,
2549
- isLoading: isLoading,
2550
- error: error
2743
+ setServicePopupInfo: setServicePopupInfo
2551
2744
  });
2552
2745
  };
2553
2746
 
@@ -2562,41 +2755,6 @@ var ServiceOptionsButton = function ServiceOptionsButton(_ref) {
2562
2755
  });
2563
2756
  };
2564
2757
 
2565
- var DataExplorerButtonConnect = function DataExplorerButtonConnect(_ref) {
2566
- var mapId = _ref.mapId,
2567
- _ref$source = _ref.source,
2568
- source = _ref$source === void 0 ? 'app' : _ref$source;
2569
- var dispatch = useDispatch();
2570
- var dialogType = uiTypes.DialogTypes.DataExplorer;
2571
- var currentActiveMapId = useSelector(function (store) {
2572
- return uiSelectors.getDialogMapId(store, dialogType);
2573
- });
2574
- var isOpenInStore = useSelector(function (store) {
2575
- return uiSelectors.getisDialogOpen(store, dialogType);
2576
- });
2577
- var openDataExplorerDialog = React.useCallback(function () {
2578
- dispatch(uiActions.setActiveMapIdForDialog({
2579
- type: dialogType,
2580
- setOpen: currentActiveMapId !== mapId ? true : !isOpenInStore,
2581
- source: source,
2582
- mapId: mapId,
2583
- origin: mapEnums.MapActionOrigin.map
2584
- }));
2585
- }, [dispatch, dialogType, currentActiveMapId, mapId, isOpenInStore, source]);
2586
- return jsx(CustomTooltip, {
2587
- title: "MeteoGate Data Explorer",
2588
- children: jsx(CustomIconButton, {
2589
- variant: "tool",
2590
- "data-testid": "dataExplorerButton",
2591
- onClick: openDataExplorerDialog,
2592
- isSelected: currentActiveMapId !== mapId ? false : isOpenInStore,
2593
- children: jsx(MeteoGate, {
2594
- sx: {}
2595
- })
2596
- })
2597
- });
2598
- };
2599
-
2600
2758
  var LayerSelect = function LayerSelect(_ref) {
2601
2759
  var mapId = _ref.mapId,
2602
2760
  bounds = _ref.bounds,
@@ -2641,29 +2799,12 @@ var LayerSelect = function LayerSelect(_ref) {
2641
2799
  }
2642
2800
  };
2643
2801
  return jsxs(ToolContainerDraggable, {
2644
- title: showTitle ? "Layer Select " + mapId : 'Layer Select',
2645
- startSize: {
2646
- width: width,
2647
- height: height
2648
- },
2649
- minWidth: 320,
2650
- minHeight: 126,
2651
- startPosition: {
2652
- top: 150,
2653
- left: 100
2654
- },
2655
- isOpen: isOpen,
2656
- onResizeStop: function onResizeStop(_event, _direction, node) {
2657
- var width = node.offsetWidth,
2658
- height = node.offsetHeight;
2659
- onChangeSize({
2660
- width: width,
2661
- height: height
2662
- });
2663
- },
2664
- onClose: onClose,
2665
2802
  bounds: bounds,
2666
2803
  "data-testid": "layerSelectWindow",
2804
+ isOpen: isOpen,
2805
+ minHeight: 126,
2806
+ minWidth: 320,
2807
+ onClose: onClose,
2667
2808
  onMouseDown: function onMouseDown(event) {
2668
2809
  var target = event.target;
2669
2810
  var isButtonInScrollableList = target.closest('.layerInfoButton') || target.closest('.layerAddRemoveButton');
@@ -2674,8 +2815,25 @@ var LayerSelect = function LayerSelect(_ref) {
2674
2815
  }
2675
2816
  _onMouseDown(event);
2676
2817
  },
2818
+ onResizeStop: function onResizeStop(_event, _direction, node) {
2819
+ var width = node.offsetWidth,
2820
+ height = node.offsetHeight;
2821
+ onChangeSize({
2822
+ width: width,
2823
+ height: height
2824
+ });
2825
+ },
2677
2826
  order: order,
2678
2827
  source: source,
2828
+ startPosition: {
2829
+ top: 150,
2830
+ left: 100
2831
+ },
2832
+ startSize: {
2833
+ width: width,
2834
+ height: height
2835
+ },
2836
+ title: showTitle ? "Layer Select " + mapId : 'Layer Select',
2679
2837
  children: [jsx(Box, {
2680
2838
  sx: {
2681
2839
  padding: '4px 16px 0 16px'
@@ -2693,11 +2851,11 @@ var LayerSelect = function LayerSelect(_ref) {
2693
2851
  children: [jsx(Grid, {
2694
2852
  size: 12,
2695
2853
  children: jsx(KeywordFilterButtonConnect, {
2696
- mapId: mapId,
2697
2854
  isMultiMap: isMultiMap,
2855
+ mapId: mapId,
2698
2856
  source: source
2699
2857
  })
2700
- }), hasDataExplorer && jsx(Grid, {
2858
+ }), !!hasDataExplorer && jsx(Grid, {
2701
2859
  size: 12,
2702
2860
  children: jsx(DataExplorerButtonConnect, {
2703
2861
  mapId: mapId
@@ -2725,10 +2883,10 @@ var LayerSelect = function LayerSelect(_ref) {
2725
2883
  padding: '0 16px'
2726
2884
  },
2727
2885
  children: jsx(LayerListConnect, {
2728
- mapId: mapId,
2729
2886
  layerSelectHeight: height,
2730
- serviceListHeight: serviceListHeight,
2731
- layerSelectWidth: width
2887
+ layerSelectWidth: width,
2888
+ mapId: mapId,
2889
+ serviceListHeight: serviceListHeight
2732
2890
  })
2733
2891
  })]
2734
2892
  });
@@ -2934,51 +3092,34 @@ var ServicePopupUnwrapped = function ServicePopupUnwrapped(_ref2) {
2934
3092
  var isShowPopup = servicePopupVariant === 'show';
2935
3093
  var isServiceUrlDisabled = isShowPopup || servicePopupVariant === 'edit';
2936
3094
  return jsx(CustomDialog, {
2937
- open: isOpen,
2938
- hideBackdrop: hideBackdrop,
2939
- fullWidth: true,
2940
- maxWidth: "xs",
2941
- "data-testid": "servicePopup",
2942
- title: getTitleForVariant(t, servicePopupVariant),
2943
- sx: {
2944
- '& .MuiDialog-paper': {
2945
- backgroundColor: "geowebColors.cards.cardContainer",
2946
- maxWidth: 458
2947
- }
2948
- },
2949
- onClose: function onClose() {
2950
- return closePopup && closePopup();
2951
- },
2952
3095
  actions: isShowPopup ? jsx(Button, {
2953
3096
  onClick: function onClick() {
2954
3097
  return closePopup();
2955
3098
  },
2956
- variant: "tertiary",
2957
3099
  sx: {
2958
3100
  width: {
2959
3101
  xs: '100%',
2960
3102
  sm: '117px'
2961
3103
  }
2962
3104
  },
3105
+ variant: "tertiary",
2963
3106
  children: t('close')
2964
3107
  }) : jsxs(Fragment, {
2965
3108
  children: [jsx(Button, {
2966
- onClick: closePopup,
2967
3109
  "data-testid": "closePopupButtonCancel",
2968
- variant: "tertiary",
3110
+ onClick: closePopup,
2969
3111
  sx: {
2970
3112
  width: {
2971
3113
  xs: '100%',
2972
3114
  sm: '117px'
2973
3115
  }
2974
3116
  },
3117
+ variant: "tertiary",
2975
3118
  children: t('cancel')
2976
3119
  }), jsx(Button, {
2977
- type: "submit",
2978
- variant: "primary",
2979
- form: "servicePopupForm",
2980
- disabled: isSubmitDisabled || isLoading,
2981
3120
  "data-testid": "saveServiceButton",
3121
+ disabled: isSubmitDisabled || isLoading,
3122
+ form: "servicePopupForm",
2982
3123
  sx: {
2983
3124
  marginLeft: {
2984
3125
  xs: '0px!important',
@@ -2989,21 +3130,51 @@ var ServicePopupUnwrapped = function ServicePopupUnwrapped(_ref2) {
2989
3130
  sm: '117px'
2990
3131
  }
2991
3132
  },
3133
+ type: "submit",
3134
+ variant: "primary",
2992
3135
  children: t('save')
2993
3136
  })]
2994
3137
  }),
3138
+ "data-testid": "servicePopup",
3139
+ fullWidth: true,
3140
+ hideBackdrop: hideBackdrop,
3141
+ maxWidth: "xs",
3142
+ onClose: function onClose() {
3143
+ return closePopup == null ? void 0 : closePopup();
3144
+ },
3145
+ open: isOpen,
3146
+ sx: {
3147
+ '& .MuiDialog-paper': {
3148
+ backgroundColor: "geowebColors.cards.cardContainer",
3149
+ maxWidth: 458
3150
+ }
3151
+ },
3152
+ title: getTitleForVariant(t, servicePopupVariant),
2995
3153
  children: jsxs("form", {
2996
3154
  id: "servicePopupForm",
2997
- onSubmit: handleSubmit(function (formValues) {
2998
- return addNewService(formValues);
2999
- }),
3000
- children: [isLoading && jsx(Box, {
3155
+ onSubmit: handleSubmit(/*#__PURE__*/function () {
3156
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(formValues) {
3157
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
3158
+ while (1) switch (_context3.prev = _context3.next) {
3159
+ case 0:
3160
+ return _context3.abrupt("return", addNewService(formValues));
3161
+ case 1:
3162
+ case "end":
3163
+ return _context3.stop();
3164
+ }
3165
+ }, _callee3);
3166
+ }));
3167
+ return function (_x3) {
3168
+ return _ref5.apply(this, arguments);
3169
+ };
3170
+ }()),
3171
+ children: [!!isLoading && jsx(Box, {
3001
3172
  sx: {
3002
3173
  position: 'relative'
3003
3174
  },
3004
3175
  children: jsx(LinearProgress, {
3005
- "data-testid": "loadingIndicator",
3006
3176
  color: "secondary",
3177
+ "data-testid": "loadingIndicator",
3007
3178
  sx: {
3008
3179
  position: 'absolute',
3009
3180
  width: '100%',
@@ -3011,21 +3182,9 @@ var ServicePopupUnwrapped = function ServicePopupUnwrapped(_ref2) {
3011
3182
  }
3012
3183
  })
3013
3184
  }), jsx(ReactHookFormTextField, {
3014
- name: FormFields.serviceUrl,
3015
- label: t('service-url-label'),
3016
- onFocus: onFocusServiceUrl,
3017
3185
  autoFocus: !shouldDisableAutoFocus,
3018
- onBlur: onBlurServiceUrl,
3019
- onKeyDown: onKeyDownServiceUrl,
3020
- sx: style.textField,
3021
- rules: {
3022
- required: true,
3023
- validate: Object.assign({}, !isServiceUrlDisabled && {
3024
- onValidateServiceUrl: onValidateServiceUrl
3025
- })
3026
- },
3186
+ defaultValue: serviceUrl,
3027
3187
  disabled: isServiceUrlDisabled || isLoading,
3028
- isReadOnly: isShowPopup,
3029
3188
  inputSlotProps: {
3030
3189
  disableUnderline: isShowPopup,
3031
3190
  endAdornment: isShowPopup && jsx(InputAdornment, {
@@ -3043,46 +3202,58 @@ var ServicePopupUnwrapped = function ServicePopupUnwrapped(_ref2) {
3043
3202
  })
3044
3203
  })
3045
3204
  },
3046
- defaultValue: serviceUrl
3205
+ isReadOnly: isShowPopup,
3206
+ label: t('service-url-label'),
3207
+ name: FormFields.serviceUrl,
3208
+ onBlur: onBlurServiceUrl,
3209
+ onFocus: onFocusServiceUrl,
3210
+ onKeyDown: onKeyDownServiceUrl,
3211
+ rules: {
3212
+ required: true,
3213
+ validate: Object.assign({}, !isServiceUrlDisabled && {
3214
+ onValidateServiceUrl: onValidateServiceUrl
3215
+ })
3216
+ },
3217
+ sx: style.textField
3047
3218
  }), jsx(ReactHookFormTextField, {
3048
- name: FormFields.serviceName,
3219
+ defaultValue: serviceName,
3220
+ disabled: isShowPopup || isLoading,
3221
+ inputSlotProps: {
3222
+ disableUnderline: isShowPopup
3223
+ },
3224
+ isReadOnly: isShowPopup,
3049
3225
  label: t('service-name-label'),
3226
+ name: FormFields.serviceName,
3050
3227
  rules: {
3051
3228
  required: true,
3052
3229
  validate: {
3053
3230
  onValidateServiceName: onValidateServiceName
3054
3231
  }
3055
3232
  },
3233
+ sx: style.textField
3234
+ }), jsx(ReactHookFormTextField, {
3235
+ defaultValue: "",
3056
3236
  disabled: isShowPopup || isLoading,
3057
- isReadOnly: isShowPopup,
3237
+ helperText: !isShowPopup ? t('service-popup-helper-text') : '',
3058
3238
  inputSlotProps: {
3059
3239
  disableUnderline: isShowPopup
3060
3240
  },
3061
- sx: style.textField,
3062
- defaultValue: serviceName
3063
- }), jsx(ReactHookFormTextField, {
3241
+ isReadOnly: isShowPopup,
3242
+ label: t('service-abstracts-label'),
3064
3243
  multiline: true,
3065
- rows: 4,
3066
3244
  name: FormFields.serviceAbstracts,
3067
- label: t('service-abstracts-label'),
3068
- disabled: isShowPopup || isLoading,
3069
- isReadOnly: isShowPopup,
3070
- inputSlotProps: {
3071
- disableUnderline: isShowPopup
3072
- },
3073
- helperText: !isShowPopup ? t('service-popup-helper-text') : '',
3074
- sx: style.textField,
3075
- defaultValue: ""
3245
+ rows: 4,
3246
+ sx: style.textField
3076
3247
  }), !isServiceUrlDisabled && jsx(InitialValidationsTrigger, {
3077
- trigger: trigger,
3078
3248
  getValues: getValues,
3079
- onValidField: fetchServiceData
3249
+ onValidField: fetchServiceData,
3250
+ trigger: trigger
3080
3251
  })]
3081
3252
  })
3082
3253
  });
3083
3254
  };
3084
- var ServicePopup = function ServicePopup(_ref5) {
3085
- var props = Object.assign({}, (_objectDestructuringEmpty(_ref5), _ref5));
3255
+ var ServicePopup = function ServicePopup(_ref6) {
3256
+ var props = Object.assign({}, (_objectDestructuringEmpty(_ref6), _ref6));
3086
3257
  return jsx(ReactHookFormProvider, {
3087
3258
  options: Object.assign({}, defaultFormOptions, {
3088
3259
  defaultValues: {
@@ -3113,25 +3284,25 @@ var ServicePopupDialogConnect = function ServicePopupDialogConnect(_ref) {
3113
3284
  var activeService = useAppSelector(function (store) {
3114
3285
  return getActiveServiceById(store, serviceId);
3115
3286
  });
3116
- var serviceSetLayers = React__default.useCallback(function (payload) {
3287
+ var serviceSetLayers = React.useCallback(function (payload) {
3117
3288
  dispatch(serviceActions.serviceSetLayers(payload));
3118
3289
  }, [dispatch]);
3119
- var showSnackbar = React__default.useCallback(function (message) {
3290
+ var showSnackbar = React.useCallback(function (message) {
3120
3291
  dispatch(snackbarActions.openSnackbar({
3121
3292
  type: snackbarTypes.SnackbarMessageType.VERBATIM_MESSAGE,
3122
3293
  message: message
3123
3294
  }));
3124
3295
  }, [dispatch]);
3125
3296
  return jsx(ServicePopup, {
3126
- servicePopupVariant: variant,
3127
- isOpen: isOpen,
3128
3297
  closePopup: setServicePopupClosed,
3129
- services: services,
3130
- serviceSetLayers: serviceSetLayers,
3298
+ isOpen: isOpen,
3299
+ serviceAbstracts: activeService == null ? void 0 : activeService["abstract"],
3131
3300
  serviceId: serviceId,
3132
- serviceUrl: url || (activeService == null ? void 0 : activeService.serviceUrl),
3133
3301
  serviceName: activeService == null ? void 0 : activeService.serviceName,
3134
- serviceAbstracts: activeService == null ? void 0 : activeService["abstract"],
3302
+ servicePopupVariant: variant,
3303
+ serviceSetLayers: serviceSetLayers,
3304
+ serviceUrl: url || (activeService == null ? void 0 : activeService.serviceUrl),
3305
+ services: services,
3135
3306
  showSnackbar: showSnackbar
3136
3307
  });
3137
3308
  };
@@ -3145,7 +3316,7 @@ var ServicePopupConnect = function ServicePopupConnect() {
3145
3316
  url = _useAppSelector.url,
3146
3317
  serviceId = _useAppSelector.serviceId,
3147
3318
  variant = _useAppSelector.variant;
3148
- var setServicePopupClosed = React__default.useCallback(function () {
3319
+ var setServicePopupClosed = React.useCallback(function () {
3149
3320
  dispatch(layerSelectActions.closeServicePopupOpen());
3150
3321
  }, [dispatch]);
3151
3322
  if (!isOpen) {
@@ -3154,9 +3325,9 @@ var ServicePopupConnect = function ServicePopupConnect() {
3154
3325
  return jsx(ServicePopupDialogConnect, {
3155
3326
  isOpen: isOpen,
3156
3327
  serviceId: serviceId,
3157
- variant: variant,
3328
+ setServicePopupClosed: setServicePopupClosed,
3158
3329
  url: url,
3159
- setServicePopupClosed: setServicePopupClosed
3330
+ variant: variant
3160
3331
  });
3161
3332
  };
3162
3333
 
@@ -3189,21 +3360,21 @@ var LayerSelectConnect = function LayerSelectConnect(_ref) {
3189
3360
  var hasDataExplorer = !!config.GW_DATA_EXPLORER_CONFIGURATION_FILENAME;
3190
3361
  return jsxs(Fragment, {
3191
3362
  children: [jsx(LayerSelect, {
3192
- mapId: mapId || initialMapId,
3193
3363
  bounds: bounds,
3364
+ hasDataExplorer: hasDataExplorer,
3365
+ isMultiMap: isMultiMap,
3194
3366
  isOpen: isDialogOpen,
3367
+ mapId: mapId || initialMapId,
3195
3368
  onClose: onCloseDialog,
3196
- showTitle: showTitle,
3197
3369
  onMouseDown: setDialogOrder,
3198
3370
  order: dialogOrder,
3199
- source: uiSource,
3200
- isMultiMap: isMultiMap,
3201
- hasDataExplorer: hasDataExplorer
3371
+ showTitle: showTitle,
3372
+ source: uiSource
3202
3373
  }), jsx(KeywordFilterResultsConnect, {
3203
- mapId: mapId || initialMapId,
3204
- isMultiMap: isMultiMap
3374
+ isMultiMap: isMultiMap,
3375
+ mapId: mapId || initialMapId
3205
3376
  }), jsx(ServicePopupConnect, {})]
3206
3377
  });
3207
3378
  };
3208
3379
 
3209
- export { AllChipConnect, DataExplorerButtonConnect, KeywordFilterButtonConnect, KeywordFilterResults, KeywordFilterResultsConnect, KeywordFilterResultsListItemConnect, KeywordFilterSelectAllSwitchConnect, LAYER_SELECT_NAMESPACE, LayerAddRemoveButton, LayerList, LayerListConnect, LayerListDimensions, LayerListRow, LayerSelectButtonConnect, LayerSelectConnect, SearchFieldConnect, ServiceChip, ServiceChipConnect, ServiceList, ServiceListConnect, ServiceOptionsButton, ServiceOptionsDialog, ServiceOptionsDialogConnect, ServicePopup, ServicePopupConnect, ServicePopupDialogConnect, createMockStore, getServiceSuccesUpdateMessage, getSuccesMessage, isUserAddedService, layerSelectActions, initialState as layerSelectInitialState, layerSelectListener, layerSelectMiddlewares, layerSelectReducer, layerSelectReducersMap, selectors as layerSelectSelectors, layerSelectTranslations, types as layerSelectTypes, useAppSelector };
3380
+ export { AllChipConnect, DataExplorerButtonConnect, KeywordFilterButtonConnect, KeywordFilterResults, KeywordFilterResultsConnect, KeywordFilterResultsListItemConnect, KeywordFilterSelectAllSwitchConnect, LAYER_SELECT_NAMESPACE, LayerAddRemoveButton, LayerList, LayerListConnect, LayerListDimensions, LayerListRow, LayerSelectButtonConnect, LayerSelectConnect, SearchFieldConnect, ServiceChip, ServiceChipConnect, ServiceList, ServiceListConnect, ServiceOptionsButton, ServiceOptionsDialog, ServiceOptionsDialogConnect, ServicePopup, ServicePopupConnect, ServicePopupDialogConnect, createMockStore, getServiceSuccesUpdateMessage, getSuccesMessage, isUserAddedService, layerSelectActions, initialState as layerSelectInitialState, layerSelectListener, layerSelectMiddlewares, layerSelectReducer, layerSelectReducersMap, selectors as layerSelectSelectors, layerSelectTranslations, useAppSelector };